Domanda

Recentemente ho messo insieme un'interfaccia per la scansione e il caricamento di documenti ricercabili per KnowledgeTree, il nostro sistema di gestione dei documenti. Abbiamo accesso a un sacco di strumenti separati per le diverse parti di questo processo, ma ho voluto unire il tutto in un'unica interfaccia per mantenere le cose semplici per gli utenti.

Ecco la piattaforma:

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

E qui è il processo di 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

Funziona meravigliosamente, se non che la fase 2 è estremamente lento su alcuni tipi di documenti. Si rotola proprio attraverso i rapporti di base a larghezza fissa di testo, ma buttare un paio di loghi, linee e altri contenuti illeggibile in là, e talvolta può spendere minuti in una singola pagina. Per non parlare del fatto che si potrebbe ripetere che fino a 4 volte se cerca di riorientare esso. In confronto, il software fornito con lo scanner utilizza OCR di ABBYY, e può sgranocchiare 50 + pagine in meno di un minuto, avendo cura di layout di pagina e orientamento del testo quasi perfettamente (mi rendo conto che è il motivo ABBYY costa denaro). Purtroppo, utilizzando questo software di scansione è più complessa per gli utenti, e solo copre i passaggi 1-3 sul proprio.

La mia domanda è se dovrei avvicinarsi in modo diverso, forse separando l'OCR / upload dall'interfaccia di scansione completamente, di se ci sono dei pacchetti di OCR o altre soluzioni che sto con vista che potrebbero essere integrati in un'applicazione Python. Sarebbe il fatto che sto chiamando un'applicazione esterna per fare i problemi di lavoro causa di prestazioni?

Qualunque cosa che faccio qui, è importante che ho il controllo su passaggio 4, dal momento che richiede agli utenti di impostare manualmente il tipo e metadati per ciascun documento caricato potrebbe essere un problema.

È stato utile?

Soluzione

Il problema che si sta avendo è che Tesseract è un motore di OCR, non pagina software di analisi del layout. Il tesseract sito dice che la versione 3.0 sarà probabilmente includere l'analisi del layout di pagina.

Lo so nelle versioni precedenti risponde bene solo se v'è una sola colonna di testo.

Credo che è necessario mettere in un passo di 1,5 che avrebbe fatto qualche analisi del layout e cercare di trovare blocchi di immagini, loghi, testi illeggibili.

Si potrebbe desiderare di guardare OCRfeeder , per vedere la sua soluzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top