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

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

3D 点云标记作业概述

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

作业预处理时间

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

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

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

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

此外,每个点云的点数和融合的传感器数据对象(例如图像)数也会影响作业预处理时间。平均而言,GGround Truth Trture 可以在大约 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 保持打开状态。他们可以随时保存工作,GGround Truth Trture 将每 15 分钟保存一次他们的工作。

使用 SageMaker 时CreateLabelingJob在 API 操作中,设置工作人员可以使用的总时间TaskTimeLimitInSeconds的参数HumanTaskConfig.

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

人力

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

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

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

工作人员用户界面 (UI)

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

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

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

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

标签类别属性

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

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

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

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

有关这些属性的更多信息,请参阅以下部分。要了解如何向标注作业添加标签类别和框架属性,请使用创建标记 Job部分上的“Task 类型” 页您选择的。

标签类别属性

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

例如,如果添加标签类别汽车,您可能还希望捕获有关标记的汽车的其他数据,例如,是否遮挡了汽车或汽车的大小。您可以使用标签类别属性以捕获该元数据。在此示例中,如果添加了属性遮挡了到汽车标签类别,你可以分配局部的完全遮挡了属性,并允许工作人员选择其中一个选项。

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

帧属性

添加帧属性以使工作人员能够提供有关单个点云帧的更多信息。最多可以指定 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 添加跨域资源共享?在亚马逊简单存储服务用户指南中。