谷歌视觉OCR的坐标值不完整。

10
我有一个脚本正在遍历不同形式的图像。在解析 Google Vision 文本检测响应时,我使用“boundingPoly”中每个文本项的 XY 坐标来具体查找表单不同部分的数据。
我遇到的问题是,有些响应仅返回 X 坐标。例如:
{u'description': u'sometext', u'boundingPoly': {u'vertices': [{u'x': 5595}, {u'x': 5717}, {u'y': 122, u'x': 5717}, {u'y': 122, u'x': 5595}

我已经设置了一个 try/except 块(使用 Python 2.7)来捕获这个问题,但是总是出现同样的问题:KeyError: 'y'。我正在遍历数千个表单;到目前为止,在一千个中有十行发生了这种情况。

有人遇到过这个问题吗?除了在出现此错误时尝试重新提交请求以外,是否还有其他解决方法?

1个回答

8

来自文档:

boundingPoly

object(BoundingPoly)

围绕面部的边界多边形。边界框的坐标是以原始图像的比例返回的,如ImageParams中所返回的那样。根据人类的期望,边界框被计算为“框定”面部。它基于landmarker结果。请注意,如果在要注释的图像中仅出现部分面孔,则BoundingPoly可能未生成一个或多个x和/或y坐标(多边形将是无界的)。

我认为这意味着在这种情况下,“y”值为0,或者更一般地说,是边缘值。换句话说,它不知道边界多边形真正结束的位置,因为文本一直延伸到图像的边缘,因此图像并没有提供足够的信息来确定文本实际上是否结束。就图像提供的信息而言,它在“y”为0时结束。


考虑到它出现的位置,这是有意义的;没有y坐标的文本位于图像顶部(可能具有y值为0)。 - crld

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