Google Cloud Vision 扩展程序

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

版本:1.4.1

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

本文内容提供了有关配置和使用此扩展程序的参考信息。通过 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>

下面的分配消息政策使用存储扩展程序响应的变量的值来分配响应载荷。

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

Action

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 特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性