在 iPhone 中使用 Tesseract OCR 从驾驶执照中读取数据

Posted

技术标签:

【中文标题】在 iPhone 中使用 Tesseract OCR 从驾驶执照中读取数据【英文标题】:reading data from driving license using Tesseract OCR in iPhone 【发布时间】:2014-04-14 20:12:43 【问题描述】:

我正在尝试从美国驾驶执照中读取信息。但我无法从图像中获得正确的文本。

我正在尝试阅读上面的图像,但我得到了一些奇怪的结果。我得到如下信息:

7 WISCONSIN **i_.* 4' L. _- 驾驶执照普通 ' Q555-5555-2555-00 35533 I5 .4 ClassDMXxX Enduslmmls TPMXXX J Sex r mnBLQ EyesBl-U 0000.501" 0.00.100 X 限制 0n 返回 MM 08484005 X E0". 00-20-2010 它是简·昆西 ' * 1' 3913' ECIJ-SWILEKgSJVEEQIJNSRIEMREKBVAY jilfccgbwm 太阳队 20 多岁 黑河瀑布 w: 54015-0000

很少有单词是正确的。我应该怎么做才能获得更准确的信息? 我的代码:

Tesseract* tesseract4 = [[Tesseract alloc] initWithDataPath:@"tessdata" language:@"eng"];
[tesseract4 setVariableValue:@"*'\"-_:.0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" forKey:@"tessedit_char_whitelist"];
[tesseract4 setImage:[UIImage imageNamed:@"dlWI.jpg"]];
[tesseract4 recognize];

NSLog(@"%@", [tesseract4 recognizedText]);

【问题讨论】:

恕我直言,您必须增加对比度,背景图案需要不那么明显 所以你的意思是我需要增加文本的对比度并减少背景的对比度。你能建议我一些如何做的方向吗?我是图像处理新手。 我会开始使用像 photoshop 或类似的应用程序,并尝试生成效果更好的图像。那么你知道哪些步骤是必要的,你可以尝试使用 CIFilters 来达到这个目的...... @pankaj 你做了什么?实现这一目标? @PoojaM.Bohora 我从来没有用这个 sdk 得到准确的结果,试试其他更好的付费版本,比如 abbyy。 【参考方案1】:

尝试查看这个问题,它解释了如何将图像转换为灰度并稍微处理图像以提高 Tessseract 的结果质量

ios Tesseract OCR Image Preperation

此外,值得确保您的白名单仅包含您要处理的字符。因此,如果您不需要 :_* 则不要将它们包含在白名单中,这应该会稍微清理结果

【讨论】:

嗨,亚当,感谢您回复并提供网址。我尝试使用链接中提到的方法并将图像转换为灰度并对其进行了一些处理。但我仍然无法正确获取所有内容。如果您检查图像,背景中有很多彩色字符。这可能会引起麻烦。该图像的最后一行被正确读取,因为它具有白色背景。有没有办法从图像中删除背景文本并使其成为白色背景? 我会说背景确实引起了问题,因为它有很多噪音。我唯一可以建议的是查找 iOS 的图像处理,特别是颜色替换。您可以寻找替换文本上使用的背景颜色以消除噪音

以上是关于在 iPhone 中使用 Tesseract OCR 从驾驶执照中读取数据的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 中使用 Tesseract OCR 从驾驶执照中读取数据

是否可以使用 Tesseract OCR 识别 iPhone 屏幕上绘制的字符?

iPhone iso的Tesseract限制?适用于 ios 的任何其他 OCR 引擎

如何在 iOS 中使用 Tesseract OCR 库从图像中识别准确的文本?

48 (OC) 适配iPad和iPhone以及横竖屏适配。

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