2011-01-21 42 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,看看他的解决方案。