谷歌愿景文本检测响应逐行

时间:2017-10-03 15:27:15

标签: swift google-cloud-vision

我正在使用Google vision api在收据图片上执行文字识别。我得到了一些很好的结果,但返回的格式非常不可靠。如果文本之间存在较大间隙,则读数将打印下面的行而不是旁边的行。

例如,使用以下Recipt Image我得到以下回复:

    4x Löwenbräu Original a 3,00 12,00 1
    8x Weissbier dunkel a 3,30 26,401
    3x Hefe-Weissbier a 3,30 9,90 1
    1x Saft 0,25
    1x Grosses Wasser
    1x Vegetarische Varia
    1x Gyros
    1x Baby Kalamari Gefu
    2x Gyros Folie
    1x Schafskäse Ofen
    1x Bifteki Metaxa
    1x Schweinefilet Meta
    1x St ifado
    1x Tee
    2,50 1
    2,40 1
    9,90 1
    8,90 1
    12,90
    a 9,9019,80 1
    6,90 1
    11,90 1
    13,90 1
    14,90 1
    2,10 1

在尝试将价格与文本等联系起来之后,哪些开始并且符合预期,但后来变得相当有用。理想的响应如下:

    4x Löwenbräu Original a 3,00 12,00 1
    8x Weissbier dunkel    a 3,30 26,401
    3x Hefe-Weissbier      a 3,30 9,90 1
    1x Saft 0,25                  2,50 1
    1x Grosses Wasser             2,40 1
    1x Vegetarische Varia         9,90 1
    1x Gyros                      8,90 1
    1x Baby Kalamari Gefu        12,90 1
    2x Gyros Folie         a 9,9019,80 1
    1x Schafskäse Ofen            6,90 1
    1x Bifteki Metaxa            11,90 1
    1x Schweinefilet Meta        13,90 1
    1x St ifado                  14,90 1
    1x Tee                        2,10 1

或接近于此。

是否有格式化请求可以添加到api以获得不同的响应?我在使用tessereact时已经取得了成功,您可以在其中更改输出格式以实现此结果,并且想知道视觉api是否具有类似的东西。

我理解api会返回可以使用的字母坐标,但我希望不必进入那种深度。

3 个答案:

答案 0 :(得分:2)

您可以向JSON请求添加feature提示。对于这样的收据的图像,DOCUMENT_TEXT_DETECTION会给出好的结果:

{
  "requests": [
    {
      "image": {
        "source": {
          "imageUri": "https://i.stack.imgur.com/TRTXo.png"
        }
      },
      "features": [
        {
          "type": "DOCUMENT_TEXT_DETECTION"
        }
      ]
    }
  ]
}

您可以复制上述JSON并将其粘贴到documentation page试用此API 窗格中的请求正文中。结果:

4x LOwenbräu Original a 3,00 12,00 1
8x Weissbier dunkel a 3, 3026, 40 1
3x Hefe-Weissbier a 3,30990 1
1x Saft 0,25 2, 50 1
1x Grosses Wasser 2, 40 1
1x Vegetarische Varia 9,90 1
1x Gyros 8,90 1
1x Baby Kalamari Gefu 12,90 !
2x Gyros Folie a 9,9019, 80 1
1x Schaf skäse Ofen 6,90 1
1x Bifteki Metaxa 11,90 1
1x Schweinefilet Meta 13,90 1
1x Stifado 14, 90 1
1x Tee 2, 10 1
目前,Googie Vision的配置远不如Tesseract。因为Google支持这两个项目,所以猜测未来哪个项目将获得更高优先级?

答案 1 :(得分:2)

这可能是一个迟到的答案,但添加它以供将来参考。对于相距很远的文本,DOCUMENT_TEXT_DETECTION也不能提供正确的线段分割。

以下代码基于字符多边形坐标进行简单的线段分割。

https://github.com/sshniro/line-segmentation-algorithm-to-gcp-vision

答案 2 :(得分:0)

Google Vision API有一种方法fullTextAnnotation,该方法返回带有\n指定行尾的全文字符串,您可以尝试一下。希望它对您有用。