您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。 信息
版本:2.0.2
使用机器学习模型发现图片中的内容和文字。
此内容提供了有关配置和使用此扩展程序的参考信息。在 API 代理中使用此扩展程序之前,您必须执行以下操作:
为您的服务账号启用 Cloud Vision API。
如果您要使用 Cloud Storage 作为图片来源,还需要按照 Google Cloud Storage 扩展程序参考文档中的说明,授予此扩展程序对 Cloud Storage 的访问权限。
当您拥有具有 Cloud Vision 权限(以及 Cloud Storage 权限,如果您使用 Cloud Storage)的服务账号后,请使用 Google Cloud 控制台为该服务账号生成密钥。
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
}
]
}
}
]
}
操作
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 |
特定于您要添加的附加信息的配置值。请参阅此扩展程序软件包的属性 | 无 | 是 |