最近,我建立了一个界面,用于扫描可搜索文档并将其上传到我们的文档管理系统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,可以在不到一分钟的时间内处理50+页面,几乎完美地处理页面布局和文本方向(我意识到这就是ABBYY花费钱的原因)。不幸的是,对于用户来说,使用这个扫描软件要复杂得多,并且只涉及步骤1-3本身。
我的问题是,我是否应该以不同的方式处理这个问题,也许可以将OCR/upload与扫描接口完全分离,如果有任何OCR包或其他我忽略的解决方案可以集成到Python应用程序中。我调用外部应用程序来完成工作这一事实会导致性能问题吗?
无论我在这里做什么,重要的是我可以控制步骤4,因为要求用户手动设置每个上传的文档的类型和元数据可能是一个问题。
发布于 2011-01-27 07:03:26
问题是,Tesseract是一个OCR引擎,而不是页面布局分析软件。tesseract网站说3.0版可能会包括页面布局分析。
我知道,在以前的版本中,只有当有一列文本时,它才会有很好的响应。
我认为你需要在一个步骤1.5,做一些布局分析,并试图找到块的图像,标识,难以辨认的文本。
您可能想看看OCRfeeder,看看他的解决方案。
https://stackoverflow.com/questions/4763956
复制相似问题