Google Cloud Vision 擴充功能

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

版本:1.2.0

運用機器學習模型找出圖片中的內容和文字。

這項內容提供設定與使用這項擴充功能的參考資源。如要透過 API Proxy 使用這個擴充功能,您必須:

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

  2. 如果您使用 Cloud Storage 做為映像檔來源,您也必須按照 Google Cloud Storage 擴充功能參考資料中所述,將這個擴充功能的存取權授予 Cloud Storage。

  3. 如果您擁有具備 Cloud Vision 和 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>

下列「指派訊息」政策會使用儲存擴充功能回應的變數值來指派回應酬載。

<?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>

下列「指派訊息」政策會使用儲存擴充功能回應的變數值來指派回應酬載。

<?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 您要新增的擴充功能專屬的設定值。請參閱「這個擴充功能套件的屬性」一文 相容