Frage

Ich habe kürzlich eine Schnittstelle zum Scannen und Hochladen durchsuchbare Dokumente auf KnowledGetree, unser Dokumentverwaltungssystem, zusammengestellt. Wir haben Zugriff auf viele separate Tools für verschiedene Teile dieses Prozesses, aber ich wollte alles in einer Schnittstelle kombinieren, um die Dinge für die Benutzer einfach zu halten.

Hier ist die Plattform:

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

Und hier ist der Grundprozess:

#    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

Es funktioniert wunderschön, außer dass Schritt 2 ist extrem langsam auf bestimmten Arten von Dokumenten. Es rollt direkt durch grundlegende Textberichte mit fester Breite, wirft jedoch ein paar Logos, Zeilen und andere unlesbare Inhalte hinein und kann manchmal Minuten für eine einzelne Seite verbringen. Ganz zu schweigen von der Tatsache, dass es das bis zu 4 Mal wiederholen könnte, wenn es versucht, es neu zu orientieren. Im Vergleich dazu verwendet die mit dem Scanner verpackte Software Abbyy OCR und kann mehr als 50 Seiten in weniger als einer Minute knusprigen, um sich fast perfekt um Seitenlayout und Textorientierung zu kümmern (mir ist der Grund, warum Abbyy Geld kostet). Leider ist die Verwendung dieser Scan-Software für die Benutzer komplexer und deckt nur die Schritte 1 bis 3 für sich ab.

Meine Frage ist, ob ich mich dem anders nähern sollte, möglicherweise durch Trennen der OCR/Upload von der Scan -Schnittstelle vollständig, wenn es OCR -Pakete oder andere Lösungen gibt, die ich übersehen kann, die in eine Python -Anwendung integriert werden könnten. Würde die Tatsache, dass ich eine externe Anwendung anrufe, um die Arbeitsleistung zu erzeugen, Leistungsprobleme verursachen?

Was auch immer ich hier mache, es ist wichtig, dass ich die Kontrolle über Schritt 4 habe, da die Benutzer den Typ und die Metadaten für jedes hochgeladene Dokument manuell festlegen müssen, könnte ein Problem sein.

War es hilfreich?

Lösung

Das Problem, das Sie haben, ist, dass Tesseract eine OCR -Engine ist und keine Seitenlayout -Analyse -Software. Das Tesseract -Website Laut Version 3.0 wird wahrscheinlich die Seitenlayoutanalyse enthalten.

Ich weiß in früheren Versionen, dass es nur gut reagiert, wenn es eine einzelne Textspalte gibt.

Ich denke, Sie müssen einen Schritt 1.5 einlegen, in dem einige Layoutanalysen durchgeführt werden und versuchen, Bilderblöcke, Logos und unleserlicher Text zu finden.

Vielleicht möchten Sie sich ansehen Ocrfeeder, um seine Lösung zu sehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top