验证和调整标签 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

验证和调整标签

当需要验证数据集上的标签时,Amazon SageMaker Ground Truth 提供让工作人员验证标签是否正确或调整之前标签的功能。

这些类型的作业分为两个不同的类别:

  • 标签验证 – 工作人员指出现有标签是否正确或评级其质量,并可添加注释来解释自己的推理。工作人员将无法修改或调整标签。

    如果您创建 3D 点云或视频帧标签调整或验证作业,则可以选择使标签类别属性(不支持 3D 点云语义分割)和帧属性由工作人员编辑。

  • 标签调整 – 工作人员调整之前的注释,如果适用,还调整标签类别和帧属性以更正它们。

以下 Ground Truth 内置任务类型支持调整和验证标注作业:

  • 边界框

  • 语义分割

  • 3D 点云对象检测、3D 点云对象跟踪和 3D 点云语义分割

  • 所有视频帧对象检测和视频帧对象跟踪任务类型 – 边界框、折线、多边形和关键点

提示

对于 3D 点云和视频帧标注验证作业,建议将新的标签类别属性或帧属性添加到标注作业中。工作人员可以使用这些属性来验证单个标签或整个帧。要了解有关标签类别和帧属性的更多信息,请参阅工作人员用户界面 (UI)(对于 3D 点云)和工作人员用户界面 (UI)(对于视频帧)。

您可以使用 SageMaker 控制台或 API 启动标签验证和调整作业。

创建验证和调整标注作业的要求

要创建标签验证或调整作业,必须满足以下条件。

  • 对于非流式标注作业:您使用的输入清单文件必须包含要调整的标签的标签属性名称 (LabelAttributeName)。当您链接成功完成的标注作业时,输出清单文件将用作新链接作业的输入清单文件。要了解 Ground Truth 为每种任务类型生成的输出清单文件格式的更多信息,请参阅输出数据

    对于流式标注作业:您发送到调整或验证标注作业的 Amazon SNS 输入主题的 Amazon SNS 消息必须包含您想要调整或验证的标签的标签属性名称。要查看如何使用流式标注作业创建调整或验证标注作业的示例,请参阅 GitHub 中的此 Jupyter 笔记本示例

  • 除非使用 图像标签验证 任务类型来验证边界框或语义分割图像标签,否则验证或调整标注作业的任务类型必须与原始作业的任务类别相同。有关视频帧任务类型要求的更多详细信息,请参阅下一个要点。

  • 对于视频帧注释验证和调整作业,必须使用从前一个标注作业创建注释时所使用的相同注释任务类型。例如,如果您创建视频帧对象检测作业以让工作人员在对象周围绘制边界框,然后创建视频对象检测调整作业,则必须指定边界框作为注释任务类型。要了解更多视频帧注释任务类型,请参阅任务类型

  • 为调整或验证标注作业选择的任务类型必须支持审计工作流。以下 Ground Truth 内置任务类型支持调整和验证标注作业:边界框、语义分割、3D 点云对象检测、3D 点云对象跟踪和 3D 点云语义分割,以及所有视频帧对象检测和视频帧对象跟踪任务类型 – 边界框、折线、多边形和关键点。

创建标签验证作业(控制台)

通过在控制台中选择标签验证任务类型,可以创建边界框和语义分割标注作业。要为 3D 点云和视频帧任务类型创建验证作业,必须选择与原始标注作业相同的任务类型,并选择显示现有标签。使用以下部分之一为您的任务类型创建标签验证作业。

创建图像标签验证作业(控制台)

按照以下过程操作,使用控制台创建边界框或语义分割验证作业。此过程假定您已经创建了边界框或语义分割标注作业,并且作业状态为“完成”。这是生成要验证的标签的标注作业。

要创建图像标签验证作业,请执行以下操作:
  1. 通过 https://console.aws.amazon.com/sagemaker/ 打开 SageMaker 控制台并选择标注作业

  2. 通过链接先前的作业或从头开始,同时指定包含已标注的数据对象的输入清单,以启动新的标注作业。

  3. 任务类型窗格中,选择标签验证

  4. 选择下一步

  5. 工作人员部分中,选择您要使用的人力类型。有关人力选项的更多详细信息,请参阅创建和管理人力

  6. (可选)选择人力后,指定任务超时任务到期时间

  7. 现有标签显示选项窗格中,系统会显示清单中可用的标签属性名称。选择用于标识希望工作人员验证的标签的标签属性名称。Ground Truth 会尝试通过分析清单来检测和填充这些值,但您可能需要设置正确的值。

  8. 利用工具设计器的说明区域提供背景信息,说明以前的标注者需要做什么,现在的验证者需要检查什么。

    您可以添加新标签,供工作人员从中选择以验证标签。例如,您可以要求工作人员验证图像质量,并提供清晰模糊标签。工作人员还可以选择添加注释来解释他们的选择。

  9. 选择查看预览可检查工具是否正确显示之前的标签,并清楚显示标签验证任务。

  10. 选择创建。这将创建并启动标注作业。

创建点云或视频帧标签验证作业(控制台)

按照以下过程操作,使用控制台创建 3D 点云或视频帧验证作业。此过程假设您已经使用生成要验证的标签类型的任务类型创建了标注作业,并且作业状态为“完成”。

要创建图像标签验证作业,请执行以下操作:
  1. 通过 https://console.aws.amazon.com/sagemaker/ 打开 SageMaker 控制台并选择标注作业

  2. 通过链接先前的作业或从头开始,同时指定包含已标注的数据对象的输入清单,以启动新的标注作业。

  3. 任务类型窗格中,选择与链接的标注作业相同的任务类型。例如,如果原始标注作业是视频帧对象检测关键点标注作业,请选择该任务类型。

  4. 选择下一步

  5. 工作人员部分中,选择您要使用的人力类型。有关人力选项的更多详细信息,请参阅创建和管理人力

  6. (可选)选择人力后,指定任务超时任务到期时间

  7. 打开显示现有标签旁边的开关。

  8. 选择验证

  9. 对于标签属性名称,请从清单中选择与要显示以进行验证的标签相对应的名称。您只能看到与上一屏幕所选任务类型相匹配的标签的标签属性名称。Ground Truth 会尝试通过分析清单来检测和填充这些值,但您可能需要设置正确的值。

  10. 利用工具设计器的说明区域提供背景信息,说明以前的标注者需要做什么,现在的验证者需要检查什么。

    您无法修改标签或添加新标签。您可以添加新的标签类别属性或帧属性以及删除和修改它们。建议将新的标签类别属性或帧属性添加到标注作业中。工作人员可以使用这些属性来验证单个标签或整个帧。

    默认情况下,工作人员无法编辑先前存在的标签类别属性和帧属性。如果要使标签类别或帧属性可编辑,请选中此属性对应的允许工作人员编辑此属性复选框。

    要了解有关标签类别和帧属性的更多信息,请参阅工作人员用户界面 (UI)(对于 3D 点云)和工作人员用户界面 (UI)(对于视频帧)。

  11. 选择查看预览可检查工具是否正确显示之前的标签,并清楚显示标签验证任务。

  12. 选择创建。这将创建并启动标注作业。

创建标签调整作业(控制台)

使用以下部分之一为您的任务类型创建标签验证作业。

创建图像标签调整作业(控制台)

按照以下过程操作,使用控制台创建边界框或语义分割调整标注作业。此过程假定您已经创建了边界框或语义分割标注作业,并且作业状态为“完成”。这是生成要调整的标签的标注作业。

创建图像标签调整作业(控制台)
  1. 通过 https://console.aws.amazon.com/sagemaker/ 打开 SageMaker 控制台并选择标注作业

  2. 通过链接先前的作业或从头开始,同时指定包含已标注的数据对象的输入清单,以启动新的标注作业。

  3. 选择与原始标注作业相同的任务类型。

  4. 选择下一步

  5. 工作人员部分中,选择您要使用的人力类型。有关人力选项的更多详细信息,请参阅创建和管理人力

  6. (可选)选择人力后,指定任务超时任务到期时间

  7. 通过选择标题旁边的箭头,展开现有标签显示选项

  8. 选中我想显示此作业的数据集中的现有标签旁边的框。

  9. 对于标签属性名称,请从清单中选择与要显示以进行调整的标签相对应的名称。您只能看到与上一屏幕所选任务类型相匹配的标签的标签属性名称。Ground Truth 会尝试通过分析清单来检测和填充这些值,但您可能需要设置正确的值。

  10. 利用工具设计器的说明区域提供背景信息,说明以前的标注者需要做什么,现在的验证者需要检查和调整什么。

  11. 选择查看预览以检查工具是否正确显示之前的标签并清楚地显示任务。

  12. 选择创建。这将创建并启动标注作业。

创建点云或视频帧标签调整作业(控制台)

按照以下过程操作,使用控制台创建 3D 点云或视频帧调整作业。此过程假设您已经使用生成要验证的标签类型的任务类型创建了标注作业,并且作业状态为“完成”。

创建 3D 点云或视频帧标签调整作业(控制台)
  1. 打开 SageMaker 控制台:https://console.amazonaws.cn/sagemaker/,然后选择标注作业

  2. 通过链接先前的作业或从头开始,同时指定包含已标注的数据对象的输入清单,以启动新的标注作业。

  3. 选择与原始标注作业相同的任务类型。

  4. 打开显示现有标签旁边的开关。

  5. 选择调整

  6. 对于标签属性名称,请从清单中选择与要显示以进行调整的标签相对应的名称。您只能看到与上一屏幕所选任务类型相匹配的标签的标签属性名称。Ground Truth 会尝试通过分析清单来检测和填充这些值,但您可能需要设置正确的值。

  7. 利用工具设计器的说明区域提供背景信息,说明以前的标注者需要做什么,现在的调整者需要检查什么。

    您不能删除或修改现有标签,但可以添加新标签。您可以添加新的标签类别属性或帧属性以及删除和修改它们。

    默认情况下,工作人员可以编辑先前存在的标签类别属性和帧属性。如果要使标签类别或帧属性不可编辑,请取消选中此属性对应的允许工作人员编辑此属性复选框。

    要了解有关标签类别和帧属性的更多信息,请参阅工作人员用户界面 (UI)(对于 3D 点云)和工作人员用户界面 (UI)(对于视频帧)。

  8. 选择查看预览以检查工具是否正确显示之前的标签并清楚地显示任务。

  9. 选择创建。这将创建并启动标注作业。

启动标签验证或调整作业 (API)

通过链接已成功完成的作业启动标签验证或调整作业,或者使用 CreateLabelingJob 操作从头开始启动新作业。该过程与使用 CreateLabelingJob 设置新标注作业几乎相同,只是做了一些修改。使用以下部分了解需要进行哪些修改才能链接标注作业以创建调整或验证标注作业。

当您使用 Ground Truth API 创建调整或验证标注作业时,必须使用与原始标注作业不同的 LabelAttributeName。原始标注作业是用于创建要调整或验证的标签的作业。

重要

CreateLabelingJobLabelCategoryConfigS3Uri 中为调整或验证作业标识的标签类别配置文件必须包含原始标注作业中使用的相同标签。您可以添加新标签。对于 3D 点云和视频帧作业,可以将新的标签类别和帧属性添加到标签类别配置文件中。

边界框和语义分割

要创建边界框或语义分割标签验证或调整作业,请使用以下指导原则为 CreateLabelingJob 操作指定 API 属性。

  • 使用 LabelAttributeName 参数可指定要用于已验证或已调整的标签的输出标签名称。您必须使用与原始标注作业所用不同的 LabelAttributeName

  • 如果要链接作业,则将在自定义 UI 模板中指定要调整或验证的前一个标注作业中的标签。要了解如何创建自定义模板,请参阅创建自定义工作人员模板

    UiTemplateS3Uri 参数中标识 UI 模板的位置。SageMaker 提供小部件,您可以在自定义模板中使用这些小部件来显示旧标签。使用以下 crowd 元素之一中的 initial-value 属性提取需要验证或调整的标签,并将其包含在任务模板中:

    • crowd-semantic-segmentation – 在自定义 UI 任务模板中使用此 crowd 元素来指定需要验证或调整的语义分割标签。

    • crowd-bounding-box – 在自定义 UI 任务模板中使用此 crowd 元素来指定需要验证或调整的边界框标签。

  • LabelCategoryConfigS3Uri 参数必须包含与之前标注作业相同的标签类别。

  • PreHumanTaskLambdaArnAnnotationConsolidationLambdaArn 使用边界框或语义分割调整或验证 Lambda ARN:

    • 对于边界框,调整标注作业 Lambda 函数 ARN 以 AdjustmentBoundingBox 结尾,验证 Lambda 函数 ARN 以 VerificationBoundingBox 结尾。

    • 对于语义分割,调整标注作业 Lambda 函数 ARN 以 AdjustmentSemanticSegmentation 结尾,验证 Lambda 函数 ARN 以 VerificationSemanticSegmentation 结尾。

3D 点云和视频帧

  • 使用 LabelAttributeName 参数可指定要用于已验证或已调整的标签的输出标签名称。您必须使用与原始标注作业所用不同的 LabelAttributeName

  • 必须使用原始标注作业所使用的人工任务 UI Amazon 资源名称 (ARN) (HumanTaskUiArn)。要查看支持的 ARN,请参阅 HumanTaskUiArn

  • 在标签类别配置文件中,必须在 auditLabelAttributeName 参数中指定用于创建调整或验证标注作业的前一个标注作业的标签属性名称 (LabelAttributeName)。

  • 您可以使用由 LabelCategoryConfigS3Uri 参数标识的标签类别配置文件中的 editsAllowed 参数指定您的标注作业是验证还是调整标注作业。

    • 对于验证标注作业,必须使用 editsAllowed 参数指定不能修改所有标签。editsAllowed 必须在 labels 的每个条目中设置为 "none"。您也可以指定工作人员是否可以调整标签类别属性和帧属性。

    • 或者,对于调整标注作业,可以使用 editsAllowed 参数来指定工作人员可以或不可以修改的标签、标签类别属性和帧属性。如果不使用此参数,则所有标签、标签类别属性和帧属性均可调整。

    要了解有关 editsAllowed 参数和配置标签类别配置文件的更多信息,请参阅标签类别配置文件架构

  • 对于调整和验证标注作业,对 PreHumanTaskLambdaArnAnnotationConsolidationLambdaArn 使用 3D 点云或视频帧调整 Lambda ARN:

    • 对于 3D 点云,调整和验证标注作业 Lambda 函数 ARN 以 Adjustment3DPointCloudSemanticSegmentationAdjustment3DPointCloudObjectTrackingAdjustment3DPointCloudObjectDetection 结尾,分别用于 3D 点云语义分割、对象跟踪和对象检测。

    • 对于视频帧,调整和验证标注作业 Lambda 函数 ARN 以 AdjustmentVideoObjectDetectionAdjustmentVideoObjectTracking 结尾,分别用于视频帧对象检测和对象跟踪。

Ground Truth 将标签验证或调整作业的输出数据存储在您在 CreateLabelingJob 操作的 S3OutputPath 参数中指定的 S3 存储桶中。有关标签验证或调整标注作业的输出数据的更多信息,请参阅输出清单中的标签验证和调整数据

输出清单中的标签验证和调整数据

Amazon SageMaker Ground Truth 将标签验证数据写入标签元数据中的输出清单。它将两个属性添加到元数据中:

  • type 属性,值为 groundtruth/label-verification

  • worker-feedback 属性,具有 comment 值数组。工作人员输入注释时添加此属性。如果没有注释,则不会显示此字段。

以下示例输出清单显示标签验证数据的显示方式:

{ "source-ref":"S3 bucket location", "verify-bounding-box":"1", "verify-bounding-box-metadata": { "class-name": "bad", "confidence": 0.93, "type": "groundtruth/label-verification", "job-name": "verify-bounding-boxes", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "worker-feedback": [ {"comment": "The bounding box on the bird is too wide on the right side."}, {"comment": "The bird on the upper right is not labeled."} ] } }

调整任务的工作人员输出类似于原始任务的工作人员输出,但它包含调整后的值以及 adjustment-status 属性,该属性值为 adjustedunadjusted,以指示是否进行了调整。

有关不同任务的输出的更多示例,请参阅输出数据

注意事项和考虑事项

要在创建标签验证或调整作业时获得预期行为,请仔细验证输入数据。

  • 如果您使用的是图像数据,请验证清单文件是否包含十六进制 RGB 颜色信息。

  • 为节省处理成本,请筛选数据以确保标注作业输入清单中不包含不需要的对象。

  • 添加所需的 Amazon S3 权限以确保您的输入数据得到正确处理。

当您使用 Ground Truth API 创建调整或验证标注作业时,必须使用与原始标注作业不同的 LabelAttributeName

语义分割作业的颜色信息要求

为了在验证或调整任务中正确重现颜色信息,该工具需要清单中的十六进制 RGB 颜色信息(例如 #FFFFFF 表示白色)。当您设置语义分割验证或调整作业时,该工具会检查清单以确定是否存在此信息。如果找不到此信息,Amazon SageMaker Ground Truth 会显示错误消息并结束作业设置。

在语义分割工具的先前迭代中,类别颜色信息并不是以十六进制 RGB 格式输出到输出清单中的。在引入验证和调整工作流的同时,输出清单也引入了这一功能。因此,旧的输出清单与这个新工作流不兼容。

开始作业前筛选数据

Amazon SageMaker Ground Truth 会处理输入清单中的所有对象。如果您有一个部分标注的数据集,则可能需要对输入清单使用 Amazon S3 Select 查询来创建自定义清单。未标注的对象会单独失败,但不会导致作业失败,而且可能会产生处理成本。筛选掉您不希望验证的对象会降低您的成本。

如果使用控制台创建验证作业,则可以使用控制台提供的筛选工具。如果您使用 API 创建作业,请根据需要使数据筛选成为工作流的一部分。