我已经构建了一个使用 Tesseract (V3.03 rc1) 来识别一些特定文本字符串的应用程序。不幸的是,这些打印在自定义字体上,需要我构建自己的训练数据文件。我已经在 iOS(使用https://github.com/gali8/Tesseract-OCR-iOS获得灵感)和 Android(使用https://github.com/rmtheis/tess-two/获得灵感)上构建了应用程序出色地)。
两个平台的工作流程如下:
我在预览屏幕上选择一个边界框,我可以在其中裁剪相关文本,并相应地裁剪图像。
我使用 OpenCV 获取二进制图像(使用 OpenCV 的自适应阈值函数,两个平台的参数相同)
我将这个二进制图像传递给 Tesseract。两个平台(Android 和 iOS)都使用相同的训练数据文件。
然而,iOS 完美地识别了文本字符串,而 Android 不断地错误识别某些字符(Ss 为 6s,Hs 为 6s)。
在这两个平台上,我使用相同的白名单字符串,禁用 load_type_dawg 和 load_system_dawg,并选择保存 blob 选项。
有没有人遇到过这种情况?我是否缺少在 iOS 中自动处理的 Android 设置?Android 有什么特别的地方没有让我想到吗?
任何想法或建议将不胜感激!