Bounding Box - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Bounding Box

用于训练机器学习模型的映像通常包含多个对象。要对图像中的一个或多个对象进行分类和本地化,请使用 Amazon SageMaker Ground Truth 边界框标记作业任务类型。在这种情况下,本地化意味着边界框的像素位置。

您可以使用 Amazon SageMaker 控制台的 “Ground Truth” 部分或CreateLabelingJoboperation.

重要

对于此任务类型,如果您创建自己的清单文件,请使用"source-ref"以识别 Amazon S3 中您要标记的每个图像文件的位置。有关更多信息,请参阅 输入数据

创建边界框标记作业(控制台)

你可以按照说明进行操作创建标记作业(控制台)以了解如何在 SageMaker 控制台中创建边界框标记作业。在步骤 10 中,选择Image来自 的任务类别下拉菜单,然后选择边界框作为任务类型。

为标记任务提供类似于以下内容的工作人员 UI。在您使用控制台创建标记作业时,需要指定说明,以帮助工作人员完成作业和工作人员可以从中选择的多达 50 个标签。

创建边界框标记作业 (API)

要创建边界框标记作业,请使用 SageMaker API 操作。CreateLabelingJob. 该 API 为所有 Amazon 开发工具包定义了该操作。要查看此操作支持的特定于语言的 SDK 列表,请查看另请参阅部分CreateLabelingJob.

请按照创建标记作业 (API)中的说明进行操作,并在配置请求时执行以下操作:

  • 此任务类型的注释前 Lambda 函数以结尾PRE-BoundingBox. 要查找您的区域的注释前 Lambda ARN,请参阅PreHumanTaskLambdaArn.

  • 此任务类型的注释合并 Lambda 函数以结尾ACS-BoundingBox. 要查找您的区域的注释合并 Lambda ARN,请参阅AnnotationConsolidationLambdaArn.

以下是一个示例:AmazonPython 软件开发工具包 (Boto3) 请求在美国东部(弗吉尼亚北部)区域创建标记作业。所有红色参数都应替换为您的规范和资源。

response = client.create_labeling_job( LabelingJobName='example-bounding-box-labeling-job, LabelAttributeName='label', InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json' } }, 'DataAttributes': { 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/file-to-store-output-data', 'KmsKeyId': 'string' }, RoleArn='arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json', StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': 'arn:aws:sagemaker:region:*:workteam/private-crowd/*', 'UiConfig': { 'UiTemplateS3Uri': 's3://bucket/path/worker-task-template.html' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-BoundingBox', 'TaskKeywords': [ 'Bounding Box', ], 'TaskTitle': 'Bounding Box task', 'TaskDescription': 'Draw bounding boxes around objects in an image', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-BoundingBox' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

为边界框标记作业提供模板

如果要使用 API 创建标记作业,必须在 UiTemplateS3Uri 中提供工作人员任务模板。复制并修改以下模板。仅修改 short-instructionsfull-instructionsheader。将此模板上传到 S3,并在 UiTemplateS3Uri 中为此文件提供 S3 URI。

边界框输出数据

创建了边框标签作业后,您的输出数据将位于S3OutputPath使用 API 时的参数或输出数据集位置字段的Job 概述控制台的部分。

例如,成功完成的单类边界框任务的输出清单文件将包含以下内容:

[ { "boundingBox": { "boundingBoxes": [ { "height": 2832, "label": "bird", "left": 681, "top": 599, "width": 1364 } ], "inputImageProperties": { "height": 3726, "width": 2662 } } } ]

boundingBoxes 参数标识围绕标识为“鸟”的对象绘制的边界框相对于图像左上角的位置,该位置被认为是 (0,0) 像素坐标。在上一个示例中,lefttop 确定边界框左上角的像素相对于图像左上角的位置。边界框的尺寸使用 heightwidth 进行标识。inputImageProperties 参数给出原始输入图像的像素尺寸。

当您使用边界框任务类型时,您可以创建单类和多类边界框标记作业。成功完成的多类边界框的输出清单文件将包含以下内容:

[ { "boundingBox": { "boundingBoxes": [ { "height": 938, "label": "squirrel", "left": 316, "top": 218, "width": 785 }, { "height": 825, "label": "rabbit", "left": 1930, "top": 2265, "width": 540 }, { "height": 1174, "label": "bird", "left": 748, "top": 2113, "width": 927 }, { "height": 893, "label": "bird", "left": 1333, "top": 847, "width": 736 } ], "inputImageProperties": { "height": 3726, "width": 2662 } } } ]

要了解有关边界框标记作业产生的输出清单文件的更多信息,请参阅边界框作业输出

要详细了解 Ground Truth 生成的输出清单文件以及 Ground Truth 用于存储输出数据的文件结构,请参阅。输出数据.