3D 点云标记作业概述 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

3D 点云标记作业概述

本主题概述了 Ground Truth 3D 点云标记作业的独特功能。您可以使用 3D 点云标记作业,以让工作人员在 3D 点云中标记对象,这些点云是从 3D 传感器(例如 LiDAR)和深度摄像机中生成的,或者是从 3D 重建中生成的(通过拼接无人机等代理捕获的图像)。

作业预处理时间

在创建 3D 点云标记作业时,您需要提供输入清单文件。输入清单文件可能是:

  • 帧输入清单文件;在每一行中具有单个点云帧。

  • 序列输入清单文件;在每一行中具有单个序列。序列定义为点云帧的时间序列。

对于这两种类型的清单文件,作业预处理时间(即,Ground Truth 开始向工作人员发送任务之前的时间)取决于您在输入清单文件中提供的点云帧的总数和大小。对于帧输入清单文件,这是清单文件中的行数。对于序列清单文件,这是每个序列中的帧数乘以清单文件中的总序列数或总行数。

此外,每个点云的点数和融合的传感器数据对象(例如图像)数也会影响作业预处理时间。平均而言,Ground Truth 可以在大约 5 分钟内预处理 200 个点云帧。如果您创建具有大量点云帧的 3D 点云标记作业,作业预处理时间可能会更长。例如,如果您创建一个包含 4 个点云序列的序列输入清单文件,并且每个序列包含 200 个点云,Ground Truth 将预处理 800 个点云,因此,作业预处理时间可能大约为 20 分钟。在此期间,标记作业状态为 InProgress

在预处理 3D 点云标记作业时,您将收到 CloudWatch 消息以通知您作业的状态。要查找这些消息,请在标记作业日志中搜索 3D_POINT_CLOUD_PROCESSING_STATUS

对于帧输入清单文件,CloudWatch 日志将具有类似下面的消息:

{ "labeling-job-name": "example-point-cloud-labeling-job", "event-name": "3D_POINT_CLOUD_PROCESSING_STATUS", "event-log-message": "datasetObjectId from: 0 to 10, status: IN_PROGRESS" }

事件日志消息 datasetObjectId from: 0 to 10, status: IN_PROGRESS 指定在输入清单中已处理的帧数。每次处理一个帧后,您会收到一条新消息。例如,在处理单个帧后,您收到另一条消息以指示 datasetObjectId from: 1 to 10, status: IN_PROGRESS

对于序列输入清单文件,CloudWatch 日志将具有类似下面的消息:

{ "labeling-job-name": "example-point-cloud-labeling-job", "event-name": "3D_POINT_CLOUD_PROCESSING_STATUS", "event-log-message": "datasetObjectId: 0, status: IN_PROGRESS" }

事件日志消息 datasetObjectId from: 0, status: IN_PROGRESS 指定在输入清单中已处理的序列数。每次处理一个序列后,您会收到一条新消息。例如,在处理单个序列后,在开始处理下一个序列时,您收到一条消息以指示 datasetObjectId from: 1, status: IN_PROGRESS

作业完成时间

工作人员可能需要花几小时的时间才能完成 3D 点云标记作业。您可以在创建标记作业时设置工作人员可处理每个任务的总时间。您可以为工作人员处理任务设置的最长时间为 7 天。默认值为 3 天。

强烈建议您创建工作人员可在 12 小时内完成的任务。在处理任务时,工作人员必须将工作人员 UI 保持打开状态。他们可以随时保存工作,Ground Truth 每 15 分钟保存一次他们的工作。

在使用 SageMaker CreateLabelingJob API 操作时,请在 TaskTimeLimitInSecondsHumanTaskConfig 参数中设置工作人员可处理任务的总时间。

在控制台中创建标记作业时,您可以在选择人力类型和工作组时指定该时间限制。

Workforces

在创建 3D 点云标记作业时,您需要指定一个工作组以完成点云注释任务。您可以从自己的工作人员的私有人力中选择一个工作组,或者从在 AWS Marketplace 上选择的供应商人力中选择一个工作组。您无法将 Amazon Mechanical Turk 人力用于 3D 点云标记作业。

要了解供应商人力的更多信息,请参阅管理供应商人力

要了解如何创建和管理私有人力,请参阅使用私有人力

工作人员用户界面 (UI)

Ground Truth 提供了工作人员用户界面 (UI)、工具和辅助标记功能,以帮助工作人员完成 3D 点云标记任务。

在控制台中创建标记作业时,您可以预览工作人员 UI。

在使用 API 操作 CreateLabelingJob 创建标记作业时,您必须提供 Ground Truth 在 HumanTaskUiArn 参数中提供的 ARN,以便为任务类型指定工作人员 UI。您可以将 HumanTaskUiArn 与 SageMaker RenderUiTemplate API 操作一起使用以预览工作人员 UI。

您可以提供在工作人员 UI 中显示的工作人员说明、标签以及标签类别属性(可选)。

标签类别属性

在创建 3D 点云对象跟踪或对象检测标记作业时,您可以添加一个或多个标签类别属性。您可以将帧属性添加到所有 3D 点云任务类型:

  • Label category attribute (标签类别属性) – 选项列表(字符串)、自由格式文本框或与一个或多个标签关联的数字字段。工作人员使用它来提供有关标签的元数据。

  • Frame attribute (帧属性) – 选项列表(字符串)、自由格式文本框或每个点云帧上显示的数字字段(工作人员将发送到注释)。工作人员使用它来提供有关帧的元数据。

此外,您还可以使用标签和帧属性让工作人员验证 3D 点云标签验证作业中的标签。

可以使用以下部分了解有关这些属性的更多信息。要了解如何将标签类别和帧属性添加到标记作业,请使用所选任务类型页面上的 Create Labeling Job (创建标记作业) 部分。

标签类别属性

将标签类别属性添加到标签,以使工作人员能够提供有关他们创建的注释的更多信息。标签类别属性将添加到单个标签或所有标签。当标签类别属性应用于所有标签时,它称为全局标签类别属性

例如,如果您添加汽车标签类别,您可能还需要捕获有关标记汽车的其他数据,例如,是否遮挡了汽车或汽车的大小。您可以使用标签类别属性以捕获该元数据。在本示例中,如果您将 occluded 属性添加到汽车标签类别,则可以将部分 occluded 属性完全分配给 occluded 属性,并使工作人员能够选择以下选项之一。

在创建标签验证作业时,您可以将标签类别属性添加到您希望工作人员验证的每个标签中。

帧属性

添加帧属性以使工作人员能够提供有关各个点云帧的更多信息。您可以指定最多 10 个帧属性,并且这些属性将显示在所有帧上。

例如,您可以添加一个框架属性,允许工作人员输入一个数字。您可能希望使用此属性让工作人员确定他们在特定帧中看到的对象数。

在另一个示例中,您可能希望提供自由格式的文本框,以使工作人员能够为问题提供自由格式答案。

在创建标签验证作业时,您可以添加一个或多个帧属性,以要求工作人员提供有关点云帧中所有标签的反馈。

工作人员说明

您可以提供工作人员说明,以帮助工作人员完成点云标记任务。您可能希望使用这些说明以执行以下操作:

  • 注释对象时的最佳实践和要避免的事项。

  • 提供的标签类别属性(对于对象检测和对象跟踪任务)以及如何使用它们的说明。

  • 有关在使用键盘快捷键进行标记时如何节省时间的建议。

在创建标记作业时,您可以使用 SageMaker 控制台添加工作人员说明。如果使用 API 操作 CreateLabelingJob 创建标记作业,您可以在标签类别配置文件中指定工作人员说明。

除了说明以外,Ground Truth 还提供一个链接以帮助工作人员导航和使用工作人员门户。请在工作人员说明中选择任务类型以查看这些说明。

描述任务

工作人员可以拒绝任务。

如果说明不清晰、输入数据显示不正确或者工作线程遇到任务的其他一些问题,则工作人员会拒绝任务。如果每个数据集对象的工作人员数 (NumberOfHumanWorkersPerDataObject) 拒绝任务,则数据对象将标记为已过期,并且不会发送给其他工作人员。

3D 点云标记作业权限要求

在创建 3D 点云标记作业时,除了分配使用 IAM 的 Ground Truth 权限中提供的权限要求以外,您还必须将一个 CORS 策略添加到包含输入清单文件的 S3 存储桶中。

将 CORS 权限策略添加到 S3 存储桶

在创建 3D 点云标记作业时,您可以在 S3 中指定输入数据和清单文件所在的存储桶以及存储输出数据的存储桶。这些存储桶可能是相同的。您必须将以下跨源资源共享 (CORS) 策略附加到输入和输出存储桶。如果您使用Amazon S3控制台将策略添加到存储桶,则必须使用 JSON 格式。

JSON

[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET", "HEAD", "PUT" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [ "Access-Control-Allow-Origin" ], "MaxAgeSeconds": 3000 } ]

XML

<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedMethod>HEAD</AllowedMethod> <AllowedMethod>PUT</AllowedMethod> <MaxAgeSeconds>3000</MaxAgeSeconds> <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>

要了解如何将 CORS 策略添加到 S3 存储桶,请参阅 中的如何使用 CORS 添加跨域资源共享Amazon Simple Storage Service 控制台用户指南?。