为什么google-cloud-python的vision API会返回多个注释?

时间:2017-06-29 03:43:13

标签: python google-cloud-vision google-cloud-python vision-api

我正在使用带有Python的Google云视觉API (https://googlecloudplatform.github.io/google-cloud-python/stable/vision-usage.html

但我无法理解为什么单个图像的注释结果由1.length组成。
document说:

2

为什么list会为单个图片返回多个注释? 这似乎是不必要的,因为检测结果包含在每个属性中(annotation>>> from google.cloud import vision >>> from google.cloud.vision.feature import Feature >>> from google.cloud.vision.feature import FeatureTypes >>> client = vision.Client() >>> image = client.image(source_uri='gs://my-test-bucket/image.jpg') >>> features = [Feature(FeatureTypes.FACE_DETECTION, 5), ... Feature(FeatureTypes.LOGO_DETECTION, 3)] >>> annotations = image.detect(features) >>> len(annotations) 2 >>> for face in annotations[0].faces: ... print(face.joy) Likelihood.VERY_LIKELY Likelihood.VERY_LIKELY Likelihood.VERY_LIKELY >>> for logo in annotations[0].logos: ... print(logo.description) 'google' 'github' 等)。

当我用我自己的图像尝试api时,它返回长度为1的image.detect

所以我的问题是:

  • 为什么python的vision api客户端会为单个图像返回多个注释?
  • 我是否需要解析列表annotations[0].faces中的每个annotations[0].logos

1 个答案:

答案 0 :(得分:0)

Google Cloud Vision API目前提供10种不同的注释,可以应用于任何图像。例如,在10个可用注释中,您可以检测到:

  • 如果图像中存在任何可识别的徽标。
  • 您可以检测图像中是否存在任何面孔并返回详细信息 关于每张脸。
  • 您可以阅读有关从here开始的所有可用注释的详情。

所以,回答你的问题:

  • vision API将返回您请求返回的任何注释。 如果您要求返回多个注释,它将返回 多。如果您只请求10个注释中的1个,它将只返回一个注释。您在帖子中引用的示例Python代码 请求返回两个注释:FACE_DETECTION AND LOGO_DETECTION,那么这两个注释将被返回。
  • 您只需要解析要解析的注释。因为每个 注释有费用(价格见this page),我建议你只要求 你希望看到结果的注释,否则它可以获得 昂贵。

注意在运行您在帖子中引用的Python示例时,无论您选择通过代码检测多少注释,len(注释)都将返回“1”。

另请注意,您所包含的任何不返回任何值的注释,例如图像中未找到任何徽标,都不会返回任何内容。