Google Cloud Vision 擴充功能

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

版本:1.4.1

使用機器學習模型探索圖片中的內容和文字。

本文提供設定和使用這個擴充功能的參考資料。從 API Proxy 使用這個擴充功能前,您必須:

  1. 為您的服務帳戶啟用 Cloud Vision API

  2. 如果您使用 Cloud Storage 做為映像檔來源,則須另外授予 Cloud Storage 這項擴充功能的存取權,詳情請參閱 Google Cloud Storage Extension 參考資料

  3. 如果您擁有具有 Cloud Vision 權限 (以及 Cloud Storage,正在使用 Cloud Storage) 的服務帳戶,請使用 GCP 控制台產生該服務帳戶的金鑰

  4. 透過設定參考資料新增及設定擴充功能時,使用產生的金鑰 JSON 檔案內容。

關於 Cloud Vision

Google Cloud Vision API 使用機器學習模型來分析圖片。您可以訓練模型,讓 API 使用或使用內建模型

Cloud Vision 使用內建模型將圖片分門別類,例如「摩天大樓」、「帆船」、「獅子」或「艾菲爾鐵塔」。這項功能可偵測圖片中的物體、臉孔、標誌和地標,並找出圖片中包含的字詞。

範例

以下範例說明如何使用擴充功能呼叫政策,為 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 Proxy,請按照下列指示操作。如需使用 Apigee 控制台設定擴充功能的相關步驟,請參閱「新增及設定擴充功能」。

常見擴充功能屬性

每個擴充功能都有下列屬性。

屬性 說明 預設 必要
name 您要為這項擴充功能設定的名稱。 相容
packageName Apigee Edge 指定的擴充功能套件名稱。 相容
version 擴充功能的擴充功能套件版本號碼。 相容
configuration 您要新增的擴充功能專屬的設定值。請參閱「這個擴充功能套件的屬性」一文 相容