Les problèmes de performance à l'aide de Tesseract OCR d'une application Python

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

  •  16-10-2019
  •  | 
  •  

Question

J'ai récemment mis en place une interface pour la numérisation et téléchargement des documents consultables à KnowledgeTree, notre système de gestion des documents. Nous avons accès à une multitude d'outils séparés pour les différentes parties de ce processus, mais je voulais combiner tout en une seule interface pour garder les choses simples pour les utilisateurs.

Voici la plate-forme:

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

Et voici le processus de base:

#    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

Il fonctionne à merveille, sauf que l'étape 2 est très lent sur certains types de documents. Il roule à travers des rapports de texte à largeur fixe de base, mais jeter quelques logos, lignes et autres contenus illisibles là-dedans, et il peut parfois passer minutes sur une seule page. Sans parler du fait qu'il pourrait répéter jusqu'à 4 fois si elle essaie de le réorienter. En comparaison, le logiciel fourni avec le scanner utilise ABBYY OCR, et peut crunch 50+ pages en moins d'une minute, en prenant soin de l'orientation et la mise en page du texte presque parfaitement la page (je me rends compte que ce pourquoi les coûts ABBYY argent). Malheureusement, en utilisant ce logiciel de numérisation est plus complexe pour les utilisateurs, et ne couvre pas 1-3 sur son propre.

Ma question est de savoir si je devrais approcher différemment, peut-être en séparant l'OCR / téléchargement de l'interface de balayage complètement, de s'il y a des paquets OCR ou d'autres solutions que je suis avec vue qui pourraient être intégrées dans une application Python. Est-ce que le fait que j'appelle une application externe pour faire les questions cause le travail de performance?

Tout ce que je fais ici, il est important que j'ai le contrôle de l'étape 4, car exigeant que les utilisateurs de définir manuellement le type et les métadonnées pour chaque document téléchargé pourrait être un problème.

Était-ce utile?

La solution

Le problème que vous rencontrez est que Tesseract est un moteur OCR, pas la page logiciel d'analyse de la mise en page. dit que la version 3.0 inclura probablement l'analyse de la mise en page du site Tesseract .

Je sais que dans les versions précédentes, il répond bien que s'il y a une seule colonne de texte.

Je pense que vous avez besoin de mettre dans une étape 1.5 qui ferait une analyse de la mise en page et essayer de trouver des blocs d'images, logos, texte illisible.

Vous voudrez peut-être regarder OCRfeeder , pour voir sa solution.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top