图像分类(多标签) - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

图像分类(多标签)

当您需要工作人员对图像中的多个对象进行分类时,请使用 Amazon SageMaker Ground Truth 多标签图像分类标记任务。例如,下图显示了一只狗和一只猫。您可以使用多标签图像分类将标签“dog”和“cat”与此图像相关联。


            照片由 Anusha Barwa 拍摄于 Unsplash

在处理多标签图像分类任务时,工作人员应选择所有适用的标签,且必须选择至少一个标签。使用此任务类型创建作业时,您最多可提供 50 个标签类别。

在控制台中创建标记作业时,Ground Truth 不会针对未向图像应用标签的情况提供“无”类别。要向工作人员提供此选项,请在创建多标签图像分类作业时,包含类似于“无”或“其他”的标签。

要限制工作人员为每个图像选择单个标签,请使用 图像分类(单个标签) 任务类型。

重要

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

创建多标签图像分类标记作业(控制台)

您可以按照 创建标记作业(控制台)中的说明进行操作,以了解如何在 SageMaker 控制台中创建多标签图像分类标记作业。In Step 10, choose Image from the Task category drop down menu, and choose Image Classification (Multi-label) as the task type.

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

创建多标签图像分类标记作业 (API)

要创建多标签图像分类标记作业,请使用 SageMaker API 操作 CreateLabelingJob。该 API 为所有 AWS 开发工具包定义了该操作。To see a list of language-specific SDKs supported for this operation, review the See Also section of CreateLabelingJob.

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

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

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

The following is an example of an AWS Python SDK (Boto3) request to create a labeling job in the 美国东部(弗吉尼亚北部) Region. 所有红色参数都应替换为您的规范和资源。

response = client.create_labeling_job( LabelingJobName='example-multi-label-image-classification-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-ImageMultiClassMultiLabel', 'TaskKeywords': [ 'Image Classification', ], 'TaskTitle': 'Multi-label image classification task', 'TaskDescription': 'Select all labels that apply to the images shown', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-ImageMultiClassMultiLabel' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

为多标签图像分类提供模板

如果要使用 API 创建标记作业,必须在 UiTemplateS3Uri 中提供工作人员任务模板。复制并修改以下模板。Only modify the short-instructions, full-instructions, and header.

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

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-image-classifier-multi-select name="crowd-image-classifier-multi-select" src="{{ task.input.taskObject | grant_read_access }}" header="Please identify all classes in image" categories="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Multi Label Image classification 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 labels that best suit the image.</li></ol> </full-instructions> <short-instructions> <h3><span style="color: rgb(0, 138, 0);">Good example</span></h3> <p>Enter description to explain the correct label to the workers</p> <h3><span style="color: rgb(230, 0, 0);">Bad example</span></h3> <p>Enter description of an incorrect label</p> </short-instructions> </crowd-image-classifier-multi-select> </crowd-form>

多标签图像分类输出数据

Once you have created a multi-label image classification labeling job, your output data will be located in the Amazon S3 bucket specified in the S3OutputPath parameter when using the API or in the Output dataset location field of the Job overview section of the console.

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

要查看多标签图像分类标记作业的输出清单文件示例,请参阅多标签分类作业输出