Apigee Edge のドキュメントを表示しています。
  Apigee X のドキュメントに移動。 情報
バージョン: 1.4.1
機械学習モデルを使用して、画像の内容とテキストを検出します。
ここでは、この拡張機能の構成と使用に関するリファレンスを提供します。API プロキシからこの拡張機能を使用する前に、次の操作を行う必要があります。
- サービス アカウントで Cloud Vision API を有効にします。 
- 画像のソースとして Cloud Storage を使用する場合、Google Cloud Storage 拡張機能リファレンスに記載されているとおり、この拡張機能の Cloud Storage へのアクセスも許可する必要があります。 
- サービス アカウントに Cloud Vision(と Cloud Storage(使用している場合))に対するアクセス権限がある場合、GCP Console でサービス アカウントキーを作成します。 
- 拡張機能の追加と構成を行うときに、構成リファレンスを使用して、生成されたキーの 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 Console で拡張機能を構成する手順については、拡張機能の追加と構成をご覧ください。
拡張機能の共通プロパティ
すべての拡張機能には次のプロパティがあります。
| プロパティ | 説明 | デフォルト | 必須 | 
|---|---|---|---|
| name | この拡張機能に付ける名前。 | なし | ○ | 
| packageName | Apigee Edge から提供された拡張機能パッケージの名前。 | なし | ○ | 
| version | 拡張機能を構成する拡張機能パッケージのバージョン番号。 | なし | ○ | 
| configuration | 追加する拡張機能に固有の構成値。この拡張機能パッケージのプロパティをご覧ください。 | なし | ○ |