0

Python で Google クラウド ビジョン API を使用しています
( https://googlecloudplatform.github.io/google-cloud-python/stable/vision-usage.html )

listしかし、単一の画像のアノテーション結果がsで構成されている理由がわかりませんでした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'

image.detect1 つの画像に対して複数の注釈が返されるのはなぜですか?
検出結果は各属性( 、 など)に含まれているので不要に思えannotations[0].facesますannotations[0].logos

そして、自分のイメージで API を試すと、annotations長さ 1 の が返されます。

だから私の質問は:

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

1 に答える 1

0

Google Cloud Vision API は現在、任意の画像に適用できる 10 種類のアノテーションを提供しています。たとえば、利用可能な 10 の注釈の中から、次のものを検出できます。

だから、あなたの質問に答えるために:

  • Vision API は、返すように要求した注釈を返します。複数のアノテーションが返されるように要求すると、複数が返されます。10 個のアノテーションのうち 1 つだけをリクエストすると、1 つだけが返されます。投稿で引用した Python コードの例では、FACE_DETECTION と LOGO_DETECTION の 2 つの注釈が返されるように要求しているため、これら 2 つの注釈だけが返されます。
  • 解析したい注釈のみを解析する必要があります。各アノテーションには費用がかかるため (料金についてはこのページを参照)、結果を確認したいアノテーションのみをリクエストすることをお勧めします。そうしないと、費用がかかる可能性があります。

投稿で引用した Python の例を実行すると、コードを介して検出するために選択した注釈の数に関係なく、len(annotations) は「1」を返すことに注意してください。

また、画像にロゴが見つからないなど、値を返さない注釈を含めると、何も返されないことにも注意してください。

于 2017-09-11T19:33:30.367 に答える