Google Cloud Vision 拡張機能

<ph type="x-smartling-placeholder"></ph> 現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント
詳細

<ph type="x-smartling-placeholder">

バージョン: 1.4.1

ML モデルを使用して、画像内のコンテンツとテキストを検出します。

ここでは、この拡張機能を構成して使用するためのリファレンスを提供します。この拡張機能を API プロキシで使用する前に、次のことを行う必要があります。

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

  2. Cloud Storage を画像のソースとして使用する場合は、Google Cloud Storage 拡張機能のリファレンスで説明されているように、この拡張機能に Cloud Storage へのアクセス権を付与する必要もあります。

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

  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
                  }
              ]
          }
      }
   ]
}

操作

<ph type="x-smartling-placeholder">

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 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 なし