我正在考虑的公司正在考虑将其当前的OCR引擎(Nuance的OmniPage)转换为开源替代品,如Tesseract。
为了获得一些性能基准(执行速度和准确性)来比较两者,我得到了一个非常简单的程序,只是为了了解Tesseract 3.2 C API的执行情况。
我的初步观察(其中一些可能已关闭,请随时在评论中纠正我的解释):
style
元素即可设置left
,right
,{{1 HTML标记的{}},width
和height
属性,因此此限制很小。如果只是关于其他因素,那么迁移可能没有太多问题。但是,这种性能限制是一个杀手锏。
然后,我心想:与其商业等价物相比,Tesseract的表现如何糟糕?谷歌肯定会为表现而努力。
所以,我几乎可以肯定这个问题来自我。我要么没有以正确的方式使用API,我也没有改变我应该或其他我刚才缺少的设置。
以下是与Tesseract相关的测试程序部分:
position
我尝试了不同的页面分割模式,并且没有激活创建的特定格式,只是像以前一样失望。我还尝试将一些预处理脚本应用于图像,看看它是否对检测有所帮助,但没有成功。我尝试只使用一个字典进行测试,但它对性能没有太大的影响。多页TIF文件和单页TIF图像也存在相同的性能问题,并且还没有尝试其他格式。
使用VerySleepy对应用程序进行快速分析表明,大部分执行时间都花费在与#include "baseapi.h"
#include "allheaders.h"
// ...
// Tesseract initialization
tesseract::TessBaseAPI api;
api.Init("", "eng+deu+fra");
api.SetPageSegMode(tesseract::PageSegMode::PSM_AUTO_OSD);
api.SetVariable("tessedit_create_hocr", "1"); // for the hOCR output
// ...
// OCR
PIX* pixs = pixRead(image_path.c_str());
STRING result;
api.ProcessPages(image_path.c_str(), NULL, 0, &result);
// ... write the result to a file
和new
相关的边界框上。
我真的希望我们迁移到开源库而不是商业产品,所以如果有人能帮助我通过API获得更好的性能,我将不胜感激。除非我能获得显着改进以获得与当前引擎类似的性能结果,否则迁移不会发生。
非常感谢你宝贵的时间。
以下是我的测试集中的图片:
答案 0 :(得分:10)
我认为你不能为此做点什么。这是对的,与OmniPage或ABBYY等商业引擎相比,Tesseact的速度非常慢。每个比较测试都显示出来。这些公司正在以OCR为生,对速度,准确性和其他因素非常认真。