Modelos OCR: ¿Tesseract, PaddleOCR-VL o un VLM documental?

Traducción automática

Este artículo se tradujo automáticamente a partir de la versión original en inglés.

Elige un sistema de reconocimiento óptico de caracteres (OCR) a partir del documento y del resultado que necesites. Las páginas impresas limpias, los formularios, las tablas, los recibos, los artículos de investigación, las capturas de pantalla y la escritura manuscrita plantean problemas distintos. Decide primero si necesitas texto en bruto, maquetación de página, campos estructurados o respuestas respaldadas por el documento.

En un PDF, comprueba primero si el texto incrustado y la maquetación son utilizables. Extráelos directamente si cumplen los requisitos de la tarea. Prueba OCR clásico como Tesseract para escaneos limpios de páginas impresas. Prueba PaddleOCR-VL 1.6 para procesar la maquetación, el texto, las tablas y las fórmulas en tu propia infraestructura. Prueba dots.mocr para gráficos estructurados. Un modelo general de visión y lenguaje (VLM) es otro candidato cuando la tarea también requiere responder preguntas visuales.

Compara los candidatos según tus tipos de documento, los campos necesarios, los controles de datos, la latencia y el coste.

Tabla de decisión

Problema del documentoPunto de partidaMotivo
PDF con texto incrustado utilizableExtracción del texto y maquetación del PDFEvita reconocer texto que ya está almacenado en el archivo.
Escaneos impresos limpios a gran volumenPipeline de OCR clásicoBarato, predecible, adecuado para CPU y fácil de procesar por lotes.
PDFs complejos con tablas, fórmulas y figurasPaddleOCR-VL 1.6 o un VLM documental alojadoCompara un analizador especializado con un modelo general en las mismas páginas.
Extracción de campos estructuradosVLM con structured output o un analizador de dominioEl esquema de salida importa tanto como el reconocimiento de texto.
Documentos sensibles por sus datosOCR alojado en la propia infraestructura o VLM abiertoMantiene los documentos dentro de tu entorno.
Reconstrucción de la maquetaciónPaddleOCR-VL, dots.mocr u otro analizador de maquetaciónEl texto OCR plano pierde el orden de lectura, las tablas, los pies de figura y las secciones.
Flujos de trabajo con revisión humanaOCR más confianza y procedencia de fragmentosLos revisores necesitan trazabilidad de página, caja, campo y fuente.

OCR y comprensión documental

El OCR tradicional extrae caracteres. El análisis de documentos con AI también necesita maquetación y significado. Las celdas de las tablas, las casillas de verificación, las firmas, los pies de figura y las notas al pie pueden contener texto, pero reducirlas a una sola cadena destruye sus relaciones. Esa pérdida rompe después la extracción de campos y la respuesta a preguntas.

Los modelos de visión y lenguaje pueden extraer campos y responder preguntas sobre diagramas o tablas. Aun así, hay que comprobar sus resultados contra la página. PaddleOCR-VL 1.6 combina análisis de maquetación con un componente VLM de 0.9B, mientras que dots.mocr también analiza gráficos estructurados. Compara estos pipelines con OCR clásico en las páginas y los campos que necesitas; un modelo más grande no es motivo para sustituir un extractor que funciona.

Clases de modelos y herramientas

ClaseVentaja principalLimitaciónÚsalo cuando
OCR al estilo de TesseractCoste, transparencia y ejecución sin conexiónDébil con escritura manuscrita, maquetación, escaneos ruidosos y documentos con contenido variadoLa entrada es texto impreso limpio y la tarea es extraer texto.
VLM documental en la nubeGestiona PDFs complejos, gráficos, tablas y contexto multimodalCoste, latencia, residencia de datos y dependencia de una APINecesitas extracción de alta calidad o respuesta a preguntas sobre documentos variados.
PaddleOCR-VL 1.6Texto, tablas, fórmulas, gráficos, maquetación y 109 idiomasEl pipeline completo es más complejo que su componente VLM aisladoNecesitas un analizador documental alojado en la propia infraestructura con mantenimiento activo.
dots.mocrTexto documental y análisis de gráficos estructuradosRecursos para el serving de un modelo de 3B y calidad de salida dependiente de la tareaImportan los gráficos, las figuras o la reconstrucción orientada a SVG.
VLM general abiertoControl de los datos, personalización y razonamiento visual más amplioComplejidad de serving y variabilidad entre modelosNecesitas alojamiento propio más allá del análisis documental.
Analizador de maquetaciónCajas, orden de lectura y estructura documentalNormalmente necesita orquestación con OCR o VLMLa fidelidad de la maquetación es importante.
Pipeline híbridoControl del coste y enrutamientoRequiere más ingenieríaPuedes enviar las páginas fáciles a OCR barato y las difíciles a VLMs.

Una pequeña prueba del orden de lectura

La extracción de texto puede recuperar todas las palabras y aun así perder el orden de las filas de una tabla. Este PDF sintético contiene dos columnas:

ItemPrice
Cable10
Adapter25

Las asociaciones necesarias son Cable → 10 y Adapter → 25. El código escribe primero la columna izquierda y después la derecha. Compara la extracción predeterminada de PyMuPDF con su extracción ordenada por posición en la misma página. Guarda el código como reading_order.py y ejecútalo con uv run --with pymupdf==2.0 python reading_order.py; crea el PDF en memoria y no necesita un archivo de entrada.

import pymupdf

with pymupdf.open() as document:
    page = document.new_page(width=400, height=220)
    for x, values in [(40, ["Item", "Cable", "Adapter"]), (240, ["Price", "10", "25"])]:
        for y, value in zip([50, 80, 110], values):
            page.insert_text((x, y), value)

    stored = page.get_text().split()
    ordered = page.get_text(sort=True).split()
    assert stored == ["Item", "Cable", "Adapter", "Price", "10", "25"]
    assert ordered == ["Item", "Price", "Cable", "10", "Adapter", "25"]
    print("stored:", " ".join(stored))
    print("sorted:", " ".join(ordered))

Resultado observado con PyMuPDF 2.0:

stored: Item Cable Adapter Price 10 25
sorted: Item Price Cable 10 Adapter 25

La salida predeterminada conserva el texto, pero lo agrupa por columnas. La ordenación recupera el orden de las filas en este ejemplo, por lo que no hace falta OCR. Esta prueba comprueba un comportamiento de extracción en una página creada para el ejemplo; no compara la precisión de los modelos OCR. PyMuPDF documenta el problema del orden de lectura y la opción de ordenación. Las celdas con varias líneas, las celdas combinadas y las tablas múltiples requieren pruebas independientes. Para un documento real, define los campos y las relaciones esperados antes de comparar un extractor de texto, un motor OCR y un VLM documental.

Arquitectura práctica

Para un sistema de análisis de documentos con AI en producción, no enviaría por defecto todas las páginas al modelo más caro.

  1. Inspecciona el archivo y registra metadatos a nivel de página. En los PDFs, comprueba si el texto existente y el orden de lectura cumplen los requisitos de la tarea.
  2. Extrae directamente el texto incrustado utilizable. PyMuPDF recomienda comprobar si es necesario aplicar OCR antes de ejecutarlo sobre una página.
  3. Envía los escaneos impresos limpios sin texto utilizable a OCR clásico.
  4. Envía las tablas, las páginas con baja confianza, las regiones manuscritas y las maquetaciones complejas a un VLM o a un analizador especializado.
  5. Exige structured output para los campos y valida después los valores contra la página. Un esquema puede imponer la estructura de los campos sin demostrar que un valor aparece en el documento.
  6. Almacena los fragmentos de origen, los números de página, los cuadros delimitadores cuando estén disponibles y la versión del modelo.
  7. Muestrea la revisión humana según la confianza, el tipo de documento y el impacto posterior.

Añade enrutamiento cuando las pruebas demuestren que distintos tipos de página necesitan métodos diferentes. Comprueba que el enrutador no envía una página difícil por una ruta que pierda campos necesarios.

Lista de comprobación de evaluación

No evalúes el OCR únicamente con la tasa de error de caracteres. Para el análisis de documentos con AI, registra:

  • precisión a nivel de campo para los campos extraídos
  • conservación de las celdas de las tablas
  • precisión del orden de lectura
  • cobertura de páginas
  • tasa de campos no respaldados
  • soporte mediante citas o fragmentos para las afirmaciones extraídas
  • tasa de correcciones humanas
  • coste por página y latencia por documento

Lecturas recomendadas

Referencias