3D 点云标注作业概览 - Amazon SageMaker

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 操作时,请在 HumanTaskConfigTaskTimeLimitInSeconds 参数中设置工作人员可处理任务的总时间。

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

人力

在创建 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 点云任务类型:

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

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

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

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

标签类别属性

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

例如,如果添加标签类别 car,您可能还希望捕获关于已标注汽车的其他数据,例如,是否遮挡了汽车或汽车的大小。您可以使用标签类别属性以捕获该元数据。在此示例中,如果您将属性 occluded 添加到 car 标签类别中,那么您可以为 occluded 属性分配 partialcompletelyno,并允许工作人员选择其中一个选项。

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

帧属性

添加帧属性以使工作人员能够提供有关单个点云帧的更多信息。最多可以指定 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 存储桶,请参阅《Amazon Simple Storage Service 用户指南》中的如何使用 CORS 添加跨域资源共享?