2011-01-21 94 views
3

我最近將用於掃描和上載可搜索文檔的接口放到了我們的文檔管理系統KnowledgeTree中。我們可以爲這個過程的不同部分獲得大量獨立的工具,但我想將所有的東西合併到一個界面中,以便爲用戶保持簡單。從Python應用程序中使用Tesseract OCR的性能問題

這裏的平臺:

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

這裏的基本過程是:

# 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 

它精美的作品,除了第2步是在某些類型的文件非常慢。它通過基本固定寬度的文本報告進行滾動,但是會在其中放入一些徽標,行和其他無法讀取的內容,並且有時可以在單個頁面上花費幾分鐘時間。更不用說,如果它重新調整方向,它可以重複4次。相比之下,與掃描儀一起打包的軟件使用ABBYY OCR,並且可以在一分鐘內完成50多頁的頁面處理,幾乎完美地處理了頁面佈局和文本定位(我意識到這就是ABBYY花錢的原因)。不幸的是,使用這個掃描軟件對於用戶而言更爲複雜,並且僅僅包括步驟1-3。

我的問題是我是否應該以不同的方式處理這個問題,可能是將OCR/upload從掃描界面完全分開,如果有任何OCR包或其他我可以忽略的解決方案,可以集成到Python應用程序中。我打電話給外部應用程序來完成這項工作會導致性能問題嗎?

無論我在這裏做什麼,重要的是我可以控制第4步,因爲要求用戶手動設置每個上載文檔的類型和元數據可能會成爲問題。

+1

如果您在其中一個圖像文件上使用自身(Python外部)的tesseract,是否需要很長時間?在相關郵件列表中,您可能會更好地使用此問題。 – 2011-01-21 23:06:57

+0

我測試了幾個不同的頁面,差別通常是幾分之一秒。謝謝。 – 2011-01-27 21:50:51

回答

1

您遇到的問題是Tesseract是OCR引擎,而不是頁面佈局分析軟件。 tesseract website表示版本3.0可能會包含頁面佈局分析。

我知道在以前的版本中,它只有在有一列文本時才能很好地響應。

我認爲你需要在步驟1.5中進行一些佈局分析,並嘗試查找圖像,徽標,難以辨認的文本塊。

你可能想看看OCRfeeder,看看他的解決方案。