Los problemas de rendimiento utilizando Tesseract OCR desde una aplicación Python

StackOverflow https://stackoverflow.com/questions/4763956

  •  16-10-2019
  •  | 
  •  

Pregunta

Hace poco armó una interfaz para la exploración y la carga de documentos investigables a KnowledgeTree, nuestro sistema de gestión de documentos. Tenemos acceso a un montón de herramientas separadas para las diferentes partes de este proceso, pero quería combinar todo en una sola interfaz para mantener las cosas simples para los usuarios.

Aquí está la plataforma:

#    OS: Ubuntu Desktop 10.04
#    GUI Toolkit: wxPython
#    OCR package: Tesseract 3.00 (compiled executable)

Y aquí es el proceso básico:

#    1. Retrieve individual page images from scanner
#    2. Call Tesseract OCR executable to produce HOCR data for each page
#    3. Run extracted words against English dictionary to guess if page orientation is correct
#        3a. If word matches are below threshold, rotate page 90 degrees and try again
#    4. Detect document type and retrieve metadata from HOCR data
#    5. Merge scanned pages and HOCR data into a finished PDF
#    6. Upload PDF and attached metadata to document management system through KnowledgeTree's API

Funciona muy bien, excepto que el paso 2 es extremadamente lento en ciertos tipos de documentos. Se enrolla a través de informes de texto de ancho fijo básicas, pero tirar unos logotipos, líneas y otros contenidos ilegible allí, y que a veces puede pasar minutos en una sola página. Por no mencionar el hecho de que podría repetir eso hasta 4 veces si se trata de reorientarla. En comparación, el software incluido con el escáner utiliza ABBYY OCR, y puede crujir de 50 páginas en menos de un minuto, el cuidado de diseño de página y la orientación del texto casi a la perfección (me di cuenta que por eso ABBYY cuesta dinero). Desafortunadamente, el uso de este software de escaneo es más compleja para los usuarios, y sólo cubre los pasos 1-3 en su propio.

Mi pregunta es si debería estar acercándose a esto de manera diferente, tal vez mediante la separación de la OCR / subida de la interfaz de escaneo completo, de si hay algún paquete de OCR u otras soluciones que estoy con vistas a que podrían integrarse en una aplicación Python. ¿El hecho de que estoy llamando a una aplicación externa para hacer los problemas de rendimiento de trabajo causa?

Todo lo que hago aquí, es importante que tengo control sobre el paso 4, ya que requieren los usuarios configurar manualmente el tipo y metadatos para cada documento cargado podría ser un problema.

¿Fue útil?

Solución

El problema que tiene es que Tesseract es un motor de OCR, no la página software de análisis de diseño. El Tesseract página web dice que la versión 3.0, probablemente incluirá el análisis de diseño de página.

Sé que en las versiones anteriores sólo se responde bien si hay una sola columna de texto.

Creo que hay que poner en un paso de 1,5 que hacer algún análisis de la distribución y tratar de encontrar bloques de imágenes, logotipos, texto ilegible.

Es posible que desee ver en OCRfeeder , para ver a su solución.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top