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

4

我正在开发一款iPhone应用,用于识别ISBN号码(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个回答

3

我使用了一些预处理技术,目前效果不错。(归一化和自动阈值)我在iPhone上使用简单的图像处理来完成这项工作。我还制作了具有2倍缩放的图像。 唯一的问题是很容易产生模糊图像,然后就无法识别任何内容。 OCR识别过程大约需要4秒钟,并且可以处理300 x 109像素,大小为19KB的图像。 我想知道如何使它更快地工作,以便能够拍摄多张图片并对它们进行处理。


我有一个问题和一个答案。你能具体告诉我你做了什么预处理吗?你应用了什么样的归一化和自动阈值到图像上?为了加快处理速度,我看到的是将所有ISBN号码的图像收集起来,粘贴到一个大画布图像上,并运行一次OCR迭代,然后解析数据以捕获模式。谢谢。 - SKR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接