你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
货架产品识别(预览版):使用预先训练的模型分析货架图像
若要开始使用产品识别,最快的方法是使用内置的预先训练 AI 模型。 使用产品理解 API 可以上传货架图像并获取产品和空隙的位置。
注意
图像中显示的品牌不属于 Microsoft,不表示品牌所有者对 Microsoft 或 Microsoft 产品任何形式的认可,也不表示 Microsoft 对品牌所有者或其产品的认可。
先决条件
- Azure 订阅 - 免费创建订阅
- 获取 Azure 订阅后,请在 Azure 门户中创建视觉资源。 该资源必须部署在“美国东部”或“美国西部 2”区域。 部署后,选择”转到资源”。
- 需要从创建的资源获取密钥和终结点,以便将应用程序连接到 Azure AI 视觉服务。 你稍后会在本指南中将密钥和终结点粘贴到下面的代码中。
- 一个具有 Blob 存储容器的 Azure 存储资源。 创建一个
- 已安装 cURL。 或者,可以使用其他 REST 平台,例如 Swagger 或 VS Code 的 REST 客户端扩展。
- 货架图像。 可以下载我们的示例图像或使用你自己的图像。 每个图像的最大文件大小为 20 MB。
分析货架图像
若要分析货架图像,请执行以下步骤:
将要分析的图像上传到 Blob 存储容器,并获取绝对 URL。
将以下
curl
命令复制到文本编辑器中。curl -X PUT -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "<endpoint>/computervision/productrecognition/ms-pretrained-product-detection/runs/<your_run_name>?api-version=2023-04-01-preview" -d "{ 'url':'<your_url_string>' }"
必要时在命令中进行如下更改:
- 将“
<subscriptionKey>
”替换为视觉资源密钥。 - 将“
<endpoint>
”替换为视觉资源终结点。 例如:https://YourResourceName.cognitiveservices.azure.com
。 - 将“
<your_run_name>
”替换为任务队列唯一的测试运行名称。 这是异步 API 任务队列名称,你可以稍后用来检索 API 响应。 例如:.../runs/test1?api-version...
- 将
<your_url_string>
内容替换为图像的 Blob URL
- 将“
打开命令提示符窗口。
将文本编辑器中编辑的
curl
命令粘贴到命令提示符窗口,然后运行命令。
检查响应
成功的响应以 JSON 格式返回。 产品理解 API 结果在 ProductUnderstandingResultApiModel
JSON 字段中返回:
{
"imageMetadata": {
"width": 2000,
"height": 1500
},
"products": [
{
"id": "string",
"boundingBox": {
"x": 1234,
"y": 1234,
"w": 12,
"h": 12
},
"classifications": [
{
"confidence": 0.9,
"label": "string"
}
]
}
],
"gaps": [
{
"id": "string",
"boundingBox": {
"x": 1234,
"y": 1234,
"w": 123,
"h": 123
},
"classifications": [
{
"confidence": 0.8,
"label": "string"
}
]
}
]
}
有关每个 JSON 字段的定义,请参阅以下部分。
产品理解结果 API 模型
产品理解操作的结果。
名称 | Type | 描述 | 必需 |
---|---|---|---|
imageMetadata |
ImageMetadataApiModel | 图像元数据信息,例如高度、宽度和格式。 | 是 |
products |
DetectedObjectApiModel | 在图像中检测到的产品。 | 是 |
gaps |
DetectedObjectApiModel | 在图像中检测到的空隙。 | 是 |
图像元数据 API 模型
图像元数据信息,例如高度、宽度和格式。
名称 | Type | 描述 | 必需 |
---|---|---|---|
width |
integer | 图像的宽度(以像素为单位)。 | 是 |
height |
integer | 图像的高度(以像素为单位)。 | 是 |
检测到的对象 API 模型
描述在图像中检测到的对象。
名称 | Type | 描述 | 必须 |
---|---|---|---|
id |
string | 检测到的对象的 ID。 | 否 |
boundingBox |
BoundingBoxApiModel | 图像内部区域的边框。 | 是 |
classifications |
ImageClassificationApiModel | 检测到的对象的分类置信度。 | 是 |
边框 API 模型
图像内部区域的边框。
名称 | Type | 描述 | 必需 |
---|---|---|---|
x |
integer | 区域左上角点的左坐标(以像素为单位)。 | 是 |
y |
integer | 区域左上角点的上坐标(以像素为单位)。 | 是 |
w |
integer | 从区域左上角点测得的宽度(以像素为单位)。 | 是 |
h |
integer | 从区域左上角点测得的高度(以像素为单位)。 | 是 |
图像分类 API 模型
描述标签的图像分类置信度。
名称 | Type | 描述 | 必需 |
---|---|---|---|
confidence |
FLOAT | 分类预测的置信度。 | 是 |
label |
字符串 | 分类预测的标签。 | 是 |
后续步骤
在本指南中,你已了解如何使用预先训练的产品理解 REST API 发出简单的分析调用。 接下来,请了解如何使用自定义产品识别模型更好地解决业务需求。