Google Cloud Vision 拡張機能

機械学習モデルを使用して、画像の内容とテキストを検出します。

ここでは、この拡張機能を構成して使用する方法についてのリファレンスを示します。API プロキシからこの拡張機能を使用する前に、次の操作を行う必要があります。

  1. サービス アカウントの Cloud Vision API を有効化します。

  2. 画像のソースとして Cloud Storage を使用する場合、Google Cloud Storage 拡張機能リファレンスに記載されているとおり、この拡張機能の Cloud Storage へのアクセスも許可する必要があります。

  3. Cloud Vision(および使用している場合は Cloud Storage)の権限があるサービス アカウントを持っている場合、サービス アカウントのキーを生成します。

  4. 構成リファレンスを使用して拡張機能の追加と構成を行う場合、生成されるキーの JSON ファイルの内容を使用します。

Cloud Vision について

Google Cloud Vision API では、機械学習モデルを使用して画像を分析します。API 向けにモデルをトレーニングしたり、組み込みのモデルを使用したりできます。

組み込みモデルを使用すると、Cloud Vision は画像をカテゴリ(「超高層ビル」、「帆船」、「ライオン」、「エッフェル塔」など)に分類します。画像内の物体、顔、ロゴ、ランドマークを検出し、画像に含まれる単語を検索します。

サンプル

次の例は、ExtensionCallout ポリシーを使用して Cloud Vision 拡張機能アクションのサポートを構成する方法を示しています。

ラベル検出

次の例では、拡張機能の detectLabels アクションで image_uri の画像を取得し、分析のため Cloud Vision API に渡しています。API は画像を調べ、画像の内容にどのラベルを適用するかを決定します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Cloud-Vision-Extension">
        <DisplayName>Cloud Vision Extension</DisplayName>
        <Connector>cloud-vision-extension-example</Connector>
        <Action>detectLabels</Action>
        <Input><![CDATA[
        {
            "image_uri" : "gs://cloud-vision-example/empire-state-building.jpg"
        }
        ]]></Input>
        <Output>vision.labels.retrieved</Output>
    </ConnectorCallout>
    

次の Assign Message ポリシーは、拡張機能のレスポンスを格納する変数の値を使用して、レスポンス ペイロードを割り当てています。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Image-Labels">
        <DisplayName>Get Image Labels</DisplayName>
        <AssignTo type="response" createNew="false"/>
        <Set>
            <Payload contentType="application/json">{vision.labels.retrieved}</Payload>
        </Set>
    </AssignMessage>
    

非常に高いビルがある都会の画像の場合、次のようなレスポンスを受け取ることがあります。

{
      "labels": [
          {
              "locations": [

              ],
              "properties": [

              ],
              "mid": "/m/0j_s4",
              "locale": "",
              "description": "metropolitan area",
              "score": 0.9868549704551697,
              "confidence": 0,
              "topicality": 0.9868549704551697,
              "boundingPoly": null
          },
          {
              "locations": [

              ],
              "properties": [

              ],
              "mid": "/m/079cl",
              "locale": "",
              "description": "skyscraper",
              "score": 0.966157853603363,
              "confidence": 0,
              "topicality": 0.966157853603363,
              "boundingPoly": null
          }
      ]
    }
    

テキスト検出

次の例では、拡張機能の detectText アクションで image_uri の画像を取得し、分析のため Cloud Vision API に渡しています。API は画像を調べ、画像内のテキストを識別します。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ConnectorCallout async="false" continueOnError="true" enabled="true" name="Cloud-Vision-Text">
        <DisplayName>Cloud Vision Text</DisplayName>
        <Connector>cloud-vision-extension-example</Connector>
        <Action>detectText</Action>
        <Input><![CDATA[
        {
            "image_uri" : "gs://cloud-vision-example/parking-signs1.jpg"
        }
        ]]></Input>
        <Output>vision.text.retrieved</Output>
    </ConnectorCallout>
    

次の Assign Message ポリシーは、拡張機能のレスポンスを格納する変数の値を使用して、レスポンス ペイロードを割り当てています。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Image-Text">
        <DisplayName>Get Image Text</DisplayName>
        <AssignTo type="response" createNew="false"/>
        <Set>
            <Payload contentType="application/json">{vision.text.retrieved}</Payload>
        </Set>
    </AssignMessage>
    

駐車場の標識が含まれている画像の場合、次のようなレスポンスを受け取ることがあります。

{
      "text": [
          {
              "locations": [

              ],
              "properties": [

              ],
              "mid": "",
              "locale": "en",
              "description": "RESERVED\nVISITORPARKING\nPARKING\nONLY>\n$150 FINE\n",
              "score": 0,
              "confidence": 0,
              "topicality": 0,
              "boundingPoly": {
                  "vertices": [
                      {
                          "x": 64,
                          "y": 56
                      },
                      {
                          "x": 378,
                          "y": 56
                      },
                      {
                          "x": 378,
                          "y": 218
                      },
                      {
                          "x": 64,
                          "y": 218
                      }
                  ]
              }
          },
          {
              "locations": [

              ],
              "properties": [

              ],
              "mid": "",
              "locale": "",
              "description": "RESERVED",
              "score": 0,
              "confidence": 0,
              "topicality": 0,
              "boundingPoly": {
                  "vertices": [
                      {
                          "x": 243,
                          "y": 56
                      },
                      {
                          "x": 378,
                          "y": 56
                      },
                      {
                          "x": 378,
                          "y": 84
                      },
                      {
                          "x": 243,
                          "y": 84
                      }
                  ]
              }
          }
       ]
    }
    

アクション

detectLabels

指定された画像内のエンティティに関する情報を検出し、抽出します。検出するエンティティは、幅広いカテゴリにわたります。たとえば、このアクションを使用して物体、場所、活動、動物の種類、製品などを識別します。

Cloud Vision API ドキュメントも必ずご覧ください。

リクエスト パラメータ

パラメータ 説明 デフォルト 必須
image_uri 画像のソース。インターネットまたは Google Cloud Storage(形式: gs://bucketname/filename)からのものです。ソースが Google Cloud Storage の場合、画像ファイルは公開されている必要があります。 文字列 なし

構文

<Input><![CDATA[{
        "image_uri" : "uri-of-image-to-analyze"
    }
    ]]></Input>
    

次の例では、拡張機能の detectLabels アクションで、指定された画像を分析するため Vision API に送信しています。

<Input><![CDATA[
    {
        "image_uri" : "gs://cloud-vision-example/empire-state-building.jpg"
    }
    ]]></Input>
    

レスポンス

画像内で検出されたエンティティを表すラベルの labels 配列が含まれるオブジェクト。詳細についてはラベルの検出をご覧ください。

detectText

指定された画像からテキストを検出し、抽出します。

リクエスト パラメータ

パラメータ 説明 デフォルト 必須
image_uri 画像のソース。インターネットまたは Google Cloud Storage(形式: gs://bucketname/filename)からのものです。ソースが Google Cloud Storage の場合、画像ファイルは公開されている必要があります。 文字列 なし

構文

<Input><![CDATA[
    {
        "image_uri" : "uri-of-image-to-analyze"
    }
    ]]></Input>
    

次の例では、拡張機能の detectText アクションで、指定された画像を分析するため Vision API に送信しています。

<Input><![CDATA[
    {
        "image_uri" : "gs://cloud-vision-example/parking-signs1.jpg"
    }
    ]]></Input>
    

レスポンス

検出されたテキストの text 配列が含まれるオブジェクト。詳細についてはラベルの検出をご覧ください。

構成リファレンス

API プロキシで使用するために、この拡張機能を構成してデプロイする場合、次の項目を使用します。Apigee コンソールで拡張機能を構成する手順については、拡張機能の追加と構成をご覧ください。

拡張機能の共通プロパティ

すべての拡張機能には次のプロパティがあります。

プロパティ 説明 デフォルト 必須
name この拡張機能に付ける名前。 なし
packageName Apigee Edge から提供された拡張機能パッケージの名前。 なし
version 拡張機能を構成する拡張機能パッケージのバージョン番号。 なし
configuration 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 なし