如何提高 tesseract 识别数字的结果

Posted

技术标签:

【中文标题】如何提高 tesseract 识别数字的结果【英文标题】:How to improve results of tesseract to recognize numbers 【发布时间】:2011-06-01 00:14:23 【问题描述】:

我正在开发能够识别 ISBN 号码的 iPhone 应用程序(ISBN:978-83-7380-900-0) 我为此使用了 tesseract,但效果不佳。我可以看到其他应用程序,使用相同的引擎工作得更好。

为了限制我使用这个配置行的字符: tess->SetVariable("tessedit_char_whitelist", "SN:0123456789X-"); 所以所有的“I”都被转换为“1”,而“B”被转换为8。使用它不会让那些字母出错,这对我来说并不重要。 之后,我使用正则表达式查找已识别文本的正确部分。

我还裁剪了图像,因此 tesseract 仅识别图像的一部分,其中 isbn 可见(我在相机叠加层上放置了颜色矩形,因此用户必须将代码放置在正确的位置) 我还将图像调整为 1000px 宽度(也尝试了其他尺寸)

光线好的时候效果很好,但是光线不好的时候就很难正确识别了。

isbn数的最后一位是控制和。

我该怎么做才能让它更好地工作? 有没有办法说 tesserect 仅在给定的正则表达式中识别文本? 也许我应该先对图像做点什么?

无法正确识别的示例图像:http://img412.imageshack.us/i/img0367si.jpg/http://img264.imageshack.us/i/img0361d.jpg/

【问题讨论】:

【参考方案1】:

我使用了一些预处理,目前结果非常好。 (归一化和自动阈值)我用简单的 iphone 图像处理来做到这一点。我也在制作 2 倍变焦的图像。 唯一的问题是,它真的很容易制作模糊图像,然后识别任何东西都是不可能的。 ocr识别的过程大约需要4s。它适用于图像 300 x 109:19KB 我只是想知道我该怎么做才能让它工作得更快,这样我就可以拍摄几张图像并处理所有这些。

【讨论】:

我有一个问题和一个答案。你能具体说说你做了什么预处理吗?您对图像应用了什么样的标准化和自动阈值?为了加快您处理我立即看到的内容,收集所有 ISBN 编号的图像并将它们粘贴到一张大画布图像上,然后只运行一次 OCR 迭代并解析数据以捕获模式。 THX

以上是关于如何提高 tesseract 识别数字的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何提高tesseract的OCR结果

如何提高Tesseract-OCR的识别精度

如何在 Android 中使用 OpenCV+Tesseract 进行准确的文本识别?

如何训练 tesseract 只识别 20 到 30 位数字?

如何训练 tesseract 识别低 DPI 下的小数字?

Python3.x:pytesseract识别率提高(样本训练)