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

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

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 保持打开状态。他们可以随时保存工作,地面真理将每 15 分钟保存一次他们的工作。

使用 SageMaker 时CreateLabelingJobAPI 操作,请在TaskTimeLimitInSeconds的参数HumanTaskConfig.

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

Workforces

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

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

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

工作人员用户界面 (UI)

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

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

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

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

标签类别属性

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

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

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

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

可以使用以下部分了解这些属性的更多信息。要了解如何将标注类别和框架属性添加到标注作业,请使用创建标记 Job部分中的“任务类型” 页面您选择的。

标签类别属性

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

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

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

Frame 属性

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

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

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

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

工作人员说明

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

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

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

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

在创建标记作业时,您可以使用 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 用户指南)。