Google Cloud Vision 扩展程序

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

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

版本:1.2.0

使用机器学习模型发现图片中的内容和文字。

本文提供了配置和使用此扩展程序的参考信息。通过 API 代理使用此扩展程序之前,您必须:

  1. 为您的服务账号启用 Cloud Vision API

  2. 如果要将 Cloud Storage 用作映像来源,则还需要向 Cloud Storage 授予此扩展程序的访问权限,如 Google 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 特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性