你当前正在访问 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。

分析货架图像

若要分析货架图像,请执行以下步骤:

  1. 将要分析的图像上传到 Blob 存储容器,并获取绝对 URL。

  2. 将以下 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>'
    }"
    
  3. 必要时在命令中进行如下更改:

    1. 将“<subscriptionKey>”替换为视觉资源密钥。
    2. 将“<endpoint>”替换为视觉资源终结点。 例如:https://YourResourceName.cognitiveservices.azure.com
    3. 将“<your_run_name>”替换为任务队列唯一的测试运行名称。 这是异步 API 任务队列名称,你可以稍后用来检索 API 响应。 例如: .../runs/test1?api-version...
    4. <your_url_string> 内容替换为图像的 Blob URL
  4. 打开命令提示符窗口。

  5. 将文本编辑器中编辑的 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 发出简单的分析调用。 接下来,请了解如何使用自定义产品识别模型更好地解决业务需求。