您正在查看 Apigee Edge 文档。
  前往 Apigee X 文档。 信息
版本:1.4.1
使用机器学习模型发现图片中的内容和文字。
本文档提供了有关配置和使用此扩展程序的参考信息。在通过 API 代理使用此扩展程序之前,您必须满足以下条件:
- 为您的服务账号启用 Cloud Vision API。 
- 如果您将 Cloud Storage 用作图片来源,则还需要向此扩展程序授予对 Cloud Storage 的访问权限,如 Google Cloud Storage 扩展程序参考文档中所述。 
- 如果您有一个拥有 Cloud Vision(以及 Cloud Storage,如果您使用该服务)权限的服务账号,请使用 GCP 控制台为该服务账号生成密钥。 
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>
以下 AssignMessage 政策使用存储扩展程序响应的变量的值来分配响应载荷。
<?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>
以下 AssignMessage 政策使用存储扩展程序响应的变量的值来分配响应载荷。
<?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 控制台配置扩展程序的步骤,请参阅添加和配置扩展程序。
常见的扩展属性
每个扩展程序都有以下属性。
| 属性 | 说明 | 默认 | 必需 | 
|---|---|---|---|
| name | 您为扩展程序配置此名称。 | 无 | 是 | 
| packageName | Apigee Edge 提供的扩展包的名称。 | 无 | 是 | 
| version | 配置扩展程序所用的扩展程序软件包的版本号。 | 无 | 是 | 
| configuration | 特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性 | 无 | 是 |