Google Cloud Vision - 数字和数字OCR

时间:2016-09-16 22:06:03

标签: python ocr google-cloud-platform google-cloud-vision text-recognition

我一直在尝试使用Python实现一个OCR程序,该程序读取具有特定格式的数字XXX-XXX。我使用了谷歌的Cloud Vision API文本识别,但结果并不可靠。在30个高对比度1280 x 1024 bmp图像中,只有少数产生正确的输出,或者至少在结果中包含正确的输出。该程序倾向于省略一些数字,以非英语语言输出或潜入一些特殊字符。

目标是至少连续输出正确的数字,如果结果与其他垃圾混在一起并不重要。有没有办法帮助程序更好地识别数字,例如将结果限制为特定格式,或仅限于数字?

2 个答案:

答案 0 :(得分:5)

此时无法添加约束或为Vision API请求提供特定的预期数字格式,如here所述(由Cloud Vision API的项目经理提供)。

您还可以检查所有可能的请求参数(在API reference中),none表示指定数字格式的任何内容。目前只有选项:

  • latLongRect:指定图像的位置
  • languageHints:表示text_detection的预期语言(支持的语言列表here

我假设您已经检查了多个响应(包含不同的图像区域)以查看是否可以使用不同数字的位置重建文本?

请注意,Vision API和text_detection并未专门针对您的数据进行优化,如果您有大量带注释的数据,也可以选择使用Tensorflow实际构建您自己的模型。 This blogpost解释了用于检测车牌号码的系统设置(具有特定的数字格式)。所有代码都可以在Github上找到,问题似乎与您的问题非常相关。

答案 1 :(得分:4)

我无法告诉你为什么会这样,也许它与语言的读取方式有关,o vs 0,l vs 1等等。但每当我使用OCR并且我专门寻找数字时,我都有读取将检测语言设置为"韩语"。它对我来说非常好用,并且极大地影响了它的准确性。