谷歌云视觉 - 数字和数字识别技术 OCR

17

我一直在尝试使用Python实现一款OCR程序,可以读取特定格式的数字,即XXX-XXX。我使用了Google的Cloud Vision API文本识别,但结果不可靠。在30张高对比度的1280 x 1024位图图像中,只有少数几张得出了正确的输出结果,或者至少在结果中包含了正确的输出。该程序倾向于漏掉一些数字,输出非英语语言或混杂一些特殊字符。

目标是至少连续输出正确的数字,即使结果中夹杂着其他垃圾信息也没关系。是否有办法帮助程序更好地识别数字?例如,限制结果为特定格式或仅限数字?

2个回答

10

我无法告诉你为什么这样会起作用,也许与语言是如何被读取有关,例如 o 和 0,l 和 1 等。但每当我使用 OCR 并且我特别寻找数字时,我会将检测语言设置为"Korean"。这对我来说效果非常好,并且极大地影响了准确性。


我可以确认这一点 - 使用韩语也可以提高OCR.space API的数字OCR识别率。 - Fabrice Zaks

6
此时无法向Vision API请求添加约束条件或指定特定的预期数字格式,正如Cloud Vision API项目经理在这里提到的那样。
您还可以检查所有可能的请求参数(在API参考文档中),其中没有任何指示要指定数字格式的内容。目前只有以下选项:
- latLongRect:指定图像的位置 - languageHints:为text_detection指定预期语言(支持的语言列表在这里
我假设您已经检查了多个响应(包括不同的图像区域),以查看是否可以使用不同数字的位置重构文本?
请注意,Vision API和text_detection并没有针对您的数据进行优化。如果您有大量注释数据,实际上使用Tensorflow构建自己的模型也是一种选择。这篇博客文章解释了一个系统设置来检测车牌(具有特定的号码格式)。所有代码都可以在Github上找到,该问题似乎与您的问题非常相关。

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