使用边界框标注物体 - Rekognition

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用边界框标注物体

如果要让模型检测图像中物体的位置,则必须标识物体是什么以及它在图像中的位置。边界框是用来隔离图像中物体的方框。可以使用边界框来训练模型以检测同一图像中的不同物体。可以通过为边界框分配标签来标识物体。

注意

如果要训练模型查找带有图像级标签的物体、场景和概念,则无需执行此步骤。

例如,如果要训练检测 Amazon Echo Dot 设备的模型,则可以在图像中的每个 Echo Dot 周围绘制一个边界框,再为边界框分配名为 Echo Dot 的标签。下图显示了 Echo Dot 设备周围的边界框。该图像还包含了一个没有边界框的 Amazon Echo。

Amazon Echo Dot 和 Echo 设备,Echo Dot 周围有边界框。

使用边界框定位物体(控制台)

在此过程中,您将使用控制台在图像中物体的周围绘制边界框。您还可以通过为边界框分配标签来标识图像中的物体。

注意

不能使用 Safari 浏览器为图像添加边界框。有关支持的浏览器,请参阅设置 Amazon Rekognition Custom Labels

在添加边界框之前,必须至少向数据集添加一个标签。有关更多信息,请参阅 添加新标签(控制台)

向图像添加边界框(控制台)
  1. 打开亚马逊 Rekognition 控制台,网址为https://console.aws.amazon.com/rekognition/

  2. 选择使用自定义标签

  3. 选择开始

  4. 在左侧导航窗格中,选择项目

  5. 项目页面上,选择要使用的项目。此时将显示项目的详细信息页面。

  6. 在项目详细信息页面上,选择对图像进行贴标

  7. 如果要向训练数据集图像添加边界框,请选择训练选项卡。否则,请选择测试选项卡,向测试数据集图像添加边界框。

  8. 选择开始标注,进入标注模式。

  9. 在图像库中,选择要向其添加边界框的图像。

  10. 选择绘制边界框。在显示边界框编辑器之前,会显示一系列提示。

  11. 在右侧的标签窗格中,选择要分配给边界框的标签。

  12. 在绘图工具中,将指针放在所需物体的左上角区域。

  13. 按住鼠标左键,在物体周围绘制一个方框。尝试将边界框绘制得尽量靠近物体。

  14. 松开鼠标键。该边界框会突出显示。

  15. 如果有更多图像需要标注,请选择下一步。否则,请选择完成,完成标注。

    UI 可用于在图像周围绘制边界框,图中所示为木质表面上的 Amazon Echo 和 Echo Dot 智能扬声器。
  16. 重复步骤 1—7,直到在每张包含物体的图像中都创建了一个边界框。

  17. 选择保存更改以保存您的更改。

  18. 选择退出,退出标注模式。

使用边界框定位物体 (SDK)

可以使用 UpdateDatasetEntries API 来添加或更新图像的物体位置信息。UpdateDatasetEntries 接受一个或多个 JSON 行。每个 JSON 行代表一张图像。对于物体定位,JSON 行类似如下。

{"source-ref": "s3://bucket/images/IMG_1186.png", "bounding-box": {"image_size": [{"width": 640, "height": 480, "depth": 3}], "annotations": [{ "class_id": 1, "top": 251, "left": 399, "width": 155, "height": 101}, {"class_id": 0, "top": 65, "left": 86, "width": 220, "height": 334}]}, "bounding-box-metadata": {"objects": [{ "confidence": 1}, {"confidence": 1}], "class-map": {"0": "Echo", "1": "Echo Dot"}, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2013-11-18T02:53:27", "job-name": "my job"}}

source-ref 字段表示图像的位置。JSON 行还包含了图像上每个物体的带标签的边界框。有关更多信息,请参阅 清单文件中的物体定位

为图像分配边界框
  1. 使用 ListDatasetEntries 获取现有图像的 JSON 行。在 source-ref 字段中,指定要为其分配图像级标签的图像的位置。有关更多信息,请参阅 列出数据集条目 (SDK)

  2. 按照清单文件中的物体定位中的信息更新上一步中返回的 JSON 行。

  3. 调用 UpdateDatasetEntries 来更新图像。有关更多信息,请参阅 向数据集中添加更多图像