OpenCV 3.1 + tesseract 3.04 的 OCR(文本识别)结果因识别顺序而异

OCR(Text Recognition) result from OpenCV 3.1 + tesseract 3.04 varies depending on the order of recognition

我目前正在使用以下示例代码:

https://github.com/opencv/opencv_contrib/blob/master/modules/text/samples/textdetection.cpp


奇怪的是,OCR 结果似乎会根据我传递给 ocr 模块的图像顺序而有所不同。

e.g.)如果有100帧图片有文字,识别出来的结果可能不一样 - 我按顺序将每一帧传递给 tesseract 模块(总共 100 帧) 和 - 我将每个帧不按顺序传递给 tesseract 模块(总共 100 帧)


理想情况下,上述两种情况应该有相同的结果。

我已经确认不是erFilter部件引起的。来自 erFilter 的结果完全相同。这种差异似乎发生在 openCV 中的 tesseract 或 tesseract 包装器内部。

差异也可以从只是置信度值差异很小,到识别的文本不同。

我觉得 OpenCV 或 tesseract 记住了一些东西并影响了新框架的 OCR 结果,但我找不到任何说明这一点的规范。

请告诉我这是否正常,因为 OpenCV/Tesseract 行为。

尝试使用ClearAdaptiveClassifier()清除自适应数据或使用配置变量关闭自适应分类器:

classify_enable_learning 0
classify_enable_adaptive_matcher 0

参见Tesseract FAQ