你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

货架图像合成(预览版)

产品识别工作流的一个环节涉及到修复和修改输入图像,使服务可以正确执行。

本指南介绍如何使用拼结 API 组合同一物理货架的多张图像:这样可以提供整个零售货架的合成图像,即使多个不同的摄像头只捕捉到了该货架的一部分。

本指南还将介绍在拼结不同图像时如何使用纠正 API 纠正透视失真。

先决条件

  • Azure 订阅 - 免费创建订阅
  • 获取 Azure 订阅后,请在 Azure 门户中创建视觉资源。 该资源必须部署在“美国东部”或“美国西部 2”区域。 部署后,选择”转到资源”。
    • 需要从创建的资源获取密钥和终结点,以便将应用程序连接到 Azure AI 视觉服务。 你稍后会在快速入门中将密钥和终结点粘贴到下方的代码中。
  • 一个具有 Blob 存储容器的 Azure 存储资源。 创建一个
  • 已安装 cURL。 或者,可以使用其他 REST 平台,例如 Swagger 或 VS Code 的 REST 客户端扩展。
  • 一组展示了同一货架相邻部分的照片。 建议图像相互之间重叠一半的面积。 可以从 GitHub 下载并使用“未拼结的”示例图像。

使用拼结 API

拼结 API 可以组合同一物理货架的多个图像。

Three photos of shelves, next to their combined composite photo.

注意

图像中显示的品牌不属于 Microsoft,不表示品牌所有者对 Microsoft 或 Microsoft 产品任何形式的认可,也不表示 Microsoft 对品牌所有者或其产品的认可。

若要对一组图像运行图像拼结操作,请执行以下步骤:

  1. 将要拼结到一起的图像上传到 Blob 存储容器,并获取每个图像的绝对 URL。 一次最多可以拼结 10 张图像。

  2. 将以下 curl 命令复制到文本编辑器中。

    curl.exe -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "https://<endpoint>/computervision/imagecomposition:stitch?api-version=2023-04-01-preview" --output <your_filename> -d "{
        'images': [
            '<your_url_string_>',
            '<your_url_string_2>',
            ...
        ]
    }"
    
  3. 必要时在命令中进行如下更改:

    1. <subscriptionKey> 的值替换为视觉资源密钥。
    2. <endpoint> 的值替换为视觉资源终结点。 例如:https://YourResourceName.cognitiveservices.azure.com
    3. <your_url_string> 内容替换为图像的 Blob URL。 应该根据图像显示的物理空间从左到右、从上到下将图像排序。
    4. <your_filename> 替换为要从中获取结果的文件的名称和扩展名(例如 download.jpg)。
  4. 打开命令提示符窗口。

  5. 将文本编辑器中编辑的 curl 命令粘贴到命令提示符窗口,然后运行命令。

检查拼结响应

该 API 返回 200 响应,新文件将下载到指定的位置。

使用纠正 API

完成拼结操作后,我们建议执行纠正操作以获得最佳分析结果。

Photos of a retail shelf, before and after the rectify operation.

注意

图像中显示的品牌不属于 Microsoft,不表示品牌所有者对 Microsoft 或 Microsoft 产品任何形式的认可,也不表示 Microsoft 对品牌所有者或其产品的认可。

若要纠正合成图像中的透视失真,请执行以下步骤:

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

  2. 将以下 curl 命令复制到文本编辑器中。

    curl.exe -H "Ocp-Apim-Subscription-Key: <subscriptionKey>" -H "Content-Type: application/json" "https://<endpoint>/computervision/imagecomposition:rectify?api-version=2023-04-01-preview" --output <your_filename> -d "{
      'url': '<your_url_string>',
      'controlPoints': {
        'topLeft': {
          'x': 0.1,
          'y': 0.1
        },
        'topRight': {
          'x': 0.2,
          'y': 0.2
        },
        'bottomLeft': {
          'x': 0.3,
          'y': 0.3
        },
        'bottomRight': {
          'x': 0.4,
          'y': 0.4
        }
      }
    }"
    
  3. 必要时在命令中进行如下更改:

    1. <subscriptionKey> 的值替换为视觉资源密钥。

    2. <endpoint> 的值替换为视觉资源终结点。 例如:https://YourResourceName.cognitiveservices.azure.com

    3. <your_url_string> 替换为图像的 Blob 存储 URL。

    4. 替换请求正文中的四个控制点坐标。 X 是横轴坐标,Y 是纵轴坐标。 坐标已规范化,例如 0.5,0.5 表示图像的中点,1,1 表示右下角。 设置坐标以定义图像中显示的货架的四个角。

      Photo of a shelf with its four corners outlined.

      注意

      图像中显示的品牌不属于 Microsoft,不表示品牌所有者对 Microsoft 或 Microsoft 产品任何形式的认可,也不表示 Microsoft 对品牌所有者或其产品的认可。

    5. <your_filename> 替换为要从中获取结果的文件的名称和扩展名(例如 download.jpg)。

  4. 打开命令提示符窗口。

  5. 将文本编辑器中编辑的 curl 命令粘贴到命令提示符窗口,然后运行命令。

检查纠正响应

该 API 返回 200 响应,新文件将下载到指定的位置。

后续步骤

在本指南中,你已了解如何准备货架照片以供分析。 接下来,请调用产品理解 API 获取分析结果。