26 puntos por GN⁺ 2025-06-17 | 2 comentarios | Compartir por WhatsApp
  • Un modelo OCR de imagen a Markdown de alto rendimiento que va más allá del simple reconocimiento de texto y convierte el documento completo a una estructura Markdown
  • Convierte fórmulas matemáticas a formato LaTeX, agrega descripciones automáticas a las imágenes y genera tablas como tablas HTML/Markdown, produciendo una salida optimizada para uso con LLM
  • Reconoce firmas, marcas de agua y casillas de verificación y las transforma en formatos como <signature>, <watermark>, ☐/☑, mostrando una gran capacidad para procesar distintos componentes del documento
  • Puede usarse fácilmente mediante Transformers de Hugging Face o un servidor vLLM, y también está disponible como app web a través de la librería docext
  • Ofrece muy alta precisión y nivel de estructuración para diversos tipos de documentos y diseños complejos, por lo que resulta muy útil para contratos, formularios, reportes y más

Descripción general del proyecto e importancia

  • Nanonets-OCR-s es un modelo innovador que supera las capacidades del OCR convencional (reconocimiento óptico de caracteres), ya que analiza el significado y la estructura del documento y entrega el resultado en formato Markdown
  • Distingue fórmulas, imágenes, tablas, casillas de verificación, firmas y marcas de agua, y las convierte con etiquetado y formas de representación significativas (LaTeX, HTML, Markdown, etc.), ofreciendo una salida adecuada para tareas downstream o procesamiento documental basado en LLM (modelos de lenguaje grandes)
  • En comparación con proyectos OCR open source existentes, muestra un mejor desempeño en estructuras documentales complejas y en la extracción de diversos elementos semánticos, además de un mayor potencial para aplicar flujos de trabajo automatizados
  • Es una versión afinada del modelo Qwen2.5-VL-3B-Instruct, capaz de identificar distintos componentes del documento y etiquetarlos con marcado semántico útil

Características principales

  • Reconocimiento de fórmulas LaTeX
    • Convierte y genera automáticamente expresiones y fórmulas matemáticas incluidas en el documento en sintaxis LaTeX, ya sea en formato inline ($...$) o display ($$...$$)
  • Descripción inteligente de imágenes
    • Para cada imagen, describe en detalle la naturaleza, el estilo y el contenido de la imagen dentro de una etiqueta <img>
    • También describe logos, charts y gráficos junto con su contexto y significado, transformándolos en una entrada adecuada para uso con LLM
  • Detección y separación de firmas
    • Separa las imágenes de firma del texto y las procesa dentro de una etiqueta <signature> independiente
    • Tiene alto valor para el procesamiento automático de documentos legales y de negocios
  • Extracción de marcas de agua
    • Detecta el texto de las marcas de agua insertadas en el documento y lo organiza por separado dentro de una etiqueta <watermark>
  • Conversión de casillas de verificación y botones de opción
      • Salida con símbolos Unicode estándar: ☐ (sin marcar), ☑ (marcada), ☒ (rechazada)
    • Mejora la confiabilidad al procesar documentos de tipo formulario, como encuestas y solicitudes
  • Extracción de estructuras de tabla complejas
    • Convierte incluso tablas complejas en tablas Markdown y HTML, ofreciendo alta utilidad

Formas principales de uso

Ejemplo de código en Python

  • Puede cargarse y ejecutarse fácilmente usando la librería transformers de Hugging Face
  • Al ingresar una imagen, entrega el resultado en forma de Markdown estructurado con texto, tablas, fórmulas, descripciones de imágenes, marcas de agua y más
  • Los números de página o las marcas de agua se envuelven y distinguen con ,
  • Las casillas de verificación se muestran con símbolos Unicode (☐, ☑)

Uso basado en vLLM

  • Se puede registrar el modelo en un servidor vLLM y acceder a él fácilmente mediante una API compatible con OpenAI
  • Al ingresar imágenes, devuelve resultados convertidos en un formato consistente con texto, tablas, fórmulas, marcas de agua y más

Uso del paquete docext

  • Mediante un paquete independiente llamado docext, es posible aplicar Nanonets-OCR-s directamente a la estructuración de documentos con solo ejecutar comandos
  • Se puede consultar la documentación en GitHub

2 comentarios

 
GN⁺ 2025-06-17
Comentarios de Hacker News
  • Trabajo en Nanonets y estoy muy entusiasmado de publicar Nanonets-OCR-s, un modelo VLM de 3B.
    Es un modelo liviano optimizado para convertir documentos en Markdown limpio y estructurado.
    Aprendió la estructura y el contexto de los documentos (tablas, fórmulas, imágenes, diagramas, marcas de agua, casillas de verificación, etc.).
    Entre sus funciones principales están el reconocimiento de fórmulas LaTeX (convirtiendo correctamente la diferencia entre fórmulas en línea y en bloque), descripciones integradas de imágenes (usando etiquetas img, con soporte para gráficos/logos/diagramas, etc.), detección y separación de firmas (salida dentro de un bloque signature), extracción de marcas de agua (guardadas con una etiqueta watermark), manejo inteligente de casillas de verificación y botones de opción (mejora la confiabilidad del posprocesamiento con conversión a Unicode) y extracción de estructuras de tablas complejas (incluyendo tablas con múltiples filas/columnas, bien renderizadas en Markdown y HTML).
    Si quieren probarlo ustedes mismos, pueden revisar Huggingface o Docext Colab

    • El enlace correcto de Docext es README.md

    • Me pregunto si el LLM que están usando presenta alucinaciones (hallucination).

    • Me pregunto si es posible extraer las imágenes en sí, o si todavía hace falta un proceso de extracción aparte.

    • Me pregunto si se puede usar para parsear fotos o PDFs de menús de restaurante a un esquema JSON (probablemente con ayuda de un LLM para el posprocesamiento), o si un LLM multimodal grande sería más adecuado para ese caso de uso.

  • Probé varios LLM para traducir un diccionario shipibo (lengua indígena del Perú)-español a un diccionario en inglés, pero hay dos columnas, saltos de línea extraños y las definiciones mezclan shipibo y español, así que es difícil de interpretar.
    Además, la calidad del escaneo no es buena.
    Creo que debería probar este modelo.

  • Desde hace tiempo he estado buscando una solución para tomar todos los materiales guardados durante décadas en Word y PowerPoint y convertir cada elemento a una forma estandarizada que permita reutilizarlo en otros formatos.
    Esto es un bloque fundamental indispensable para construir ese sistema.
    Ahora hace falta una función de archivo o historial, es decir, poder archivar y volver a cargar fácilmente cada elemento.
    De verdad es un trabajo genial.

    • Opino que quizá sería más simple empezar con una conversión básica usando unoconv o pandoc, y luego usar un LLM para depurar el texto plano.
  • Me da pena que este tipo de modelos apunten solo a Markdown.
    En la práctica, Markdown tiene muchas variantes y carece de buen soporte para notas al pie, bibliografía y figuras.
    Hace falta un formato con una especificación más estructurada y clara.

    • En realidad, mientras convertimos a Markdown también entrenamos al modelo con etiquetado semántico.
      Por ejemplo, extrae las fórmulas como LaTeX y describe en detalle las imágenes (diagramas, figuras, etc.) con etiquetas img.
      También usa etiquetas para signature, watermark, números de página y más.
      Las tablas complejas (multifila/multicolumna) se extraen como tablas HTML, no en Markdown.

    • El concepto de “Markdown estructurado” me entusiasmó más que el modelo OCR con LLM en sí, pero al final da la impresión de que se queda en etiquetar ciertos elementos, así que su utilidad fuera del modelo se siente algo limitada.

  • Me pregunto cuáles son las ventajas y desventajas frente a docling(https://github.com/docling-project/docling).

  • Me pregunto qué diferencias tiene frente a Datalab/Marker(https://github.com/datalab-to/marker).
    He comparado muchos convertidores de PDF->MD y hasta ahora Marker ha sido el mejor, aunque no es perfecto.

    • Según mi experiencia personal, Marker funciona bastante bien para convertir papers complejos con fórmulas y código mezclados.
      Por ejemplo, si se procesa con Marker una página de un paper sobre la transformada inversa de Laplace en Fortran, donde se mezclan fórmulas (en línea y de display) y bloques de código monoespaciado, el inline $\sigma_0$ se rompe como "<sup>s</sup> 0" y $f(t)$ queda como "<i>f~</i>~t*!".
      La fortaleza de este modelo es que genera correctamente esas partes de forma nativa.
      Captura de pantalla de referencia(https://imgur.com/a/Q7UYIfW)

    • Apenas estoy empezando mi propia comparación cruzada; si pudieras compartir una lista de candidatos, te lo agradecería muchísimo.

  • Yo mismo hice un script en Powershell para aplicar este modelo a PDFs desde cualquier lugar.
    Al probarlo, mi GPU (1080 8GB) ya es vieja, así que la velocidad de ejecución es bastante lenta (al menos 5 minutos por página).
    Si a alguien le interesa probar una utilidad de PDF a markdown que funcione en Cloud Run (con soporte para GPU externa), avíseme.
    Cuando la termine, también compartiré el enlace.

    • Acabo de hacerlo funcionar en Cloud Run y reporté algunos resultados de muestra.
      En parte de los resultados de animate.pdf, se extraen bien el título, el autor, la editorial, las ilustraciones en blanco y negro (descritas con etiquetas img) y las etiquetas de digitalización de Google.
      Incluso el índice se extrae perfectamente en forma de tabla.
      Salvo por la lentitud, estoy muy satisfecho con la funcionalidad y la precisión.

    • Me interesa muchísimo un servicio de PDF a markdown usando Cloud Run.

  • Me pregunto cómo maneja documentos con tablas de múltiples columnas o múltiples filas (por ejemplo: rowspan en la página 1 y colspan en la página 29 de este PDF).

  • Me pregunto qué tal es el desempeño reconociendo texto no inglés.
    Tengo entendido que los OCR basados en LLM todavía están muy por detrás del OCR tradicional en soporte para otros idiomas.

    • Me pregunto si eso viene de experiencia directa o de una comprensión general.
      En mi experiencia, cuando uso Google Translate y ChatGPT directamente sobre imágenes, ChatGPT siempre rinde mejor.
      Sobre todo con menús escritos a mano en japonés, también traduce y explica muy bien.
  • Un modelo que no menciona soporte multilingüe en la práctica rinde muy mal con PDFs que no están en inglés.

    • En efecto, fue entrenado principalmente en inglés, pero parte de los datos de entrenamiento también incluían chino y varios idiomas europeos.
      Además, el modelo base (Qwen-2.5-VL-3B) es multilingüe.
      Vi una publicación en Reddit donde decían que también funcionaba bien con chino(enlace).
 
chakankim 2025-06-18

Probé procesar una muestra de recibo de tarjeta en coreano; aunque la velocidad es lenta, lo está leyendo perfectamente.