您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
版本:2.0.0
使用机器学习模型发现图片中的内容和文字。
本文档提供了有关配置和使用此扩展程序的参考信息。在通过 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 |
特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性 | 无 | 是 |