使用语义分割识别图像内容 - Amazon SageMaker

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

使用语义分割识别图像内容

要在像素级别识别图像内容,请使用 Amazon G SageMaker round Truth 语义分割标签任务。在分配语义分割标注作业时,工作人员会将图像中的像素分类为一组预定义的标签或类。Ground Truth 支持单类和多类语义分割标注作业。您可以使用 Amazon SageMaker 控制台的 Ground Truth 部分或CreateLabelingJob操作创建语义分段标签作业。

包含大量需要分割的对象的图像需要更多时间。为有助于工作人员(来自私有人力或供应商人力)在更短的时间更准确地标注这些对象,Ground Truth 提供了一个 AI 辅助自动分割工具。有关信息,请参阅自动分割工具

重要

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

创建语义分割标注作业(控制台)

您可以按照说明学习创建标注作业(控制台)如何在 SageMaker 控制台中创建语义分段标注作业。在步骤 10 中,从任务类别下拉菜单中选择图像,然后选择语义分割作为任务类型。

Ground Truth 为标注任务提供类似于以下内容的工作人员 UI。使用控制台创建标注作业时,需要指定说明,以便于工作人员完成工作人员可以从中选择的作业和标签。

Gif 显示了如何在 SageMaker 控制台中创建语义分割标签作业的示例。

创建语义分割标注 Job () API

要创建语义分割标注作业,请使用 SageMaker API操作CreateLabelingJob。这为所有人API定义了此操作 AWS SDKs。要查看此操作SDKs支持的特定语言列表,请查看的 “另请参阅” 部分。CreateLabelingJob

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

  • 此任务类型的注释前 Lambda 函数以 PRE-SemanticSegmentation 结尾。要查找您所在地区的预注释 ARN Lambda,请参阅。PreHumanTaskLambdaArn

  • 此任务类型的注释合并 Lambda 函数以 ACS-SemanticSegmentation 结尾。要查找您所在地区的注释合并 Lambd ARN a,请参阅。AnnotationConsolidationLambdaArn

以下是在美国东部 SDK(弗吉尼亚北部)地区创建标签任务的AWS Python (Boto3) 请求示例。所有红色参数都应替换为您的规范和资源。

response = client.create_labeling_job( LabelingJobName='example-semantic-segmentation-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-SemanticSegmentation, 'TaskKeywords': [ 'Semantic Segmentation', ], 'TaskTitle': 'Semantic segmentation task', 'TaskDescription': 'For each category provided, segment out each relevant object using the color associated with that category', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

为语义分割标注作业提供模板

如果您使用创建标签作业API,则必须在中提供工作人员任务模板UiTemplateS3Uri。复制并修改以下模板。仅修改 short-instructionsfull-instructionsheader

将此模板上传到 S3,并在中URI为该文件提供 S3 UiTemplateS3Uri

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-semantic-segmentation name="crowd-semantic-segmentation" src="{{ task.input.taskObject | grant_read_access }}" header="Please segment out all pedestrians." labels="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Segmentation instructions"> <ol><li><strong>Read</strong> the task carefully and inspect the image.</li> <li><strong>Read</strong> the options and review the examples provided to understand more about the labels.</li> <li><strong>Choose</strong> the appropriate label that best suits an object and paint that object using the tools provided.</li></ol> </full-instructions> <short-instructions> <h2><span style="color: rgb(0, 138, 0);">Good example</span></h2> <p>Enter description to explain a correctly done segmentation</p> <p><br></p><h2><span style="color: rgb(230, 0, 0);">Bad example</span></h2> <p>Enter description of an incorrectly done segmentation</p> </short-instructions> </crowd-semantic-segmentation> </crowd-form>

语义分割输出数据

创建语义分段标签任务后,您的输出数据将位于使用时S3OutputPath参数中指定的 Amazon S3 存储桶中,API或者位于控制台任务概述部分的输出数据集位置字段中。

要了解有关 Ground Truth 生成的输出清单文件以及 Ground Truth 用来存储输出数据的文件结构的更多信息,请参阅标注任务输出数据

要查看语义分割标注作业的输出清单文件示例,请参阅3D 点云语义分割输出