0

私は、Python
https://googlecloudplatform.github.io/google-cloud-python/stable/vision-usage.htmlgoogle-cloud-pythonのビジョンAPIが複数の注釈を返す理由

でGoogleクラウドビジョンAPIで働いていますが、単一の画像の注釈結果がlistannotationのSから成り、なぜ私は理解できませんでした。
documentは言う:

>>> 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' 

image.detectは、単一の画像に対して複数の注釈を返すのはなぜ?
検出結果が各属性(annotations[0].faces,annotations[0].logosなど)に含まれているため、不要と思われます。

そして、私は自分のイメージでAPIをしようとすると、それは長さ1

annotationsを返します。だから私の質問は次のとおりです。

  • PythonのビジョンAPIクライアントは、単一の画像に対して複数の注釈を返すのはなぜ?
  • リスト内のannotationをすべて解析する必要がありますか。annotations

答えて

0

現在Google Cloud Vision APIには、どの画像にも適用できる10種類の注釈が​​用意されています。たとえば、利用可能な10の注釈のうち、次のものを検出できます。

  • イメージ内に認識可能なロゴがある場合は、
  • 画像に顔が存在するかどうかを検出し、各顔について詳細 を返すことができます。
  • hereから利用可能なすべての注釈の詳細を読むことができます。だから、

は、あなたの質問にお答えします

  • ビジョンAPIは、あなたがそれを返すように要求するすべての注釈を返します。 返される複数の注釈を求める場合は、 倍を返します。 10個の注釈のうち1個だけを要求すれば、それはただ1個だけ返されます。ポスト から引用したPythonコードの例では、FACE_DETECTIONと LOGO_DETECTIONという2つのアノテーションが返されます.2つの注釈だけが返されます。
  • 解析する注釈のみを解析する必要があります。 アノテーションには費用がかかります(価格についてはthis pageを参照してください)。 注釈のみをリクエストして、結果を表示したい場合は、 を高価にすることをおすすめします。

メモあなたの投稿で引用されたPythonの例を実行すると、len(注釈)はコードで検出する注釈の数にかかわらず "1"を返します。

また、画像にロゴが含まれていないなど、値を返さないアノテーションは何も返されません。