3

我最近整理了一个界面,用于扫描和上传可搜索文档到我们的文档管理系统 KnowledgeTree。对于这个过程的不同部分,我们可以使用大量单独的工具,但我想将所有内容组合到一个界面中,以使用户的操作变得简单。

这是平台:

#    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/上传与扫描界面完全分开,是否有任何 OCR 包或其他我忽略的解决方案可以集成到 Python 应用程序中。我正在调用外部应用程序来完成工作这一事实会导致性能问题吗?

无论我在这里做什么,重要的是我可以控制第 4 步,因为要求用户手动设置每个上传文档的类型和元数据可能是个问题。

4

1 回答 1

1

您遇到的问题是 Tesseract 是 OCR 引擎,而不是页面布局分析软件。tesseract 网站说3.0 版可能会包含页面布局分析。

我知道在以前的版本中,它只有在只有一列文本时才会响应良好。

我认为你需要在步骤 1.5 中进行一些布局分析并尝试查找图像、徽标、难以辨认的文本块。

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

于 2011-01-27T07:03:26.850 回答