Segmentação semântica da imagem - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Segmentação semântica da imagem

Para identificar o conteúdo de uma imagem no nível de pixel, use uma tarefa de rotulagem de segmentação semântica do Amazon SageMaker Ground Truth. Quando recebem um trabalho de rotulagem de segmentação semântica, os operadores classificam pixels na imagem em um conjunto de rótulos ou classes predefinidos. O Ground Truth oferece suporte a trabalhos de rotulagem de segmentação semântica única e multiclasse.

As imagens que contêm um grande número de objetos que precisam ser segmentados exigem mais tempo. Para ajudar os operadores (de força de trabalho privada ou de fornecedores) a rotular esses objetos em menos tempo e com maior precisão, o Ground Truth fornece uma ferramenta de segmentação automática assistida por inteligência artificial. Para obter mais informações, consulte Ferramenta de segmentação automática.

Você cria um trabalho de rotulagem de segmentação semântica usando a seção Ground Truth do SageMaker console da Amazon ou a CreateLabelingJoboperação.

Importante

Para esse tipo de tarefa, se você criar seu próprio arquivo de manifesto, use "source-ref" para identificar o local de cada arquivo de imagem que deseja rotular. Para ter mais informações, consulte Dados de entrada.

Criar um trabalho de rotulagem de segmentação semântica (Console)

Você pode seguir as instruções Criar um trabalho de rotulagem (console) para aprender como criar um trabalho de rotulagem de segmentação semântica no SageMaker console. Na Etapa 10, escolha Imagem, no menu suspenso Categoria da tarefa, e Segmentação de semântica como o tipo de tarefa.

O Ground Truth fornece uma interface de usuário do operador que se parece com a seguinte para tarefas de rotulagem. Ao criar o trabalho de rotulagem com o console, você especifica instruções para ajudar os operadores a concluírem o trabalho e os rótulos que eles podem escolher.

Criar um trabalho de rotulagem de segmentação semântica (API)

Para criar um trabalho de rotulagem de segmentação semântica, use a operação de SageMaker API. CreateLabelingJob Essa API define essa operação para todos os AWS SDKs. Para ver uma lista de SDKs específicos de idiomas compatíveis com essa operação, revise a seção Ver também do CreateLabelingJob.

Siga as instruções em Criar um trabalho de rotulagem (API) e faça o seguinte enquanto você configura a solicitação:

  • As funções do Lambda de pré-anotação para esse tipo de tarefa terminam com PRE-SemanticSegmentation. Para encontrar a pré-anotação Lambda ARN para sua região, consulte. PreHumanTaskLambdaArn

  • As funções do Lambda de consolidação de anotações para esse tipo de tarefa terminam com ACS-SemanticSegmentation. Para encontrar o ARN Lambda de consolidação de anotações para sua região, consulte. AnnotationConsolidationLambdaArn

Veja a seguir um exemplo de uma solicitação do SDK Python (Boto3) da AWS para criar um trabalho de rotulagem de dados automatizada na região Leste dos EUA (Norte da Virgínia). Todos os parâmetros em vermelho devem ser substituídos por suas especificações e recursos.

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' }, ] )

Fornecer um modelo para trabalhos de rotulagem de segmentação semântica

Se você criar um trabalho de rotulagem usando a API, será necessário fornecer um modelo de tarefas de operador em UiTemplateS3Uri. Copie e modifique o modelo a seguir. Modifique somente short-instructions, full-instructions e header.

Faça upload deste modelo para o S3 e forneça o URI do S3 para este arquivo em 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>

Dados de saída de segmentação semântica

Depois de criar um trabalho de rotulagem de segmentação de semântica, seus dados de saída serão localizados no bucket do Amazon S3 especificado no parâmetro S3OutputPath ao usar a API ou no campo Localização do conjunto de dados de saída da seção Visão geral do trabalho do console.

Para saber mais sobre o arquivo manifesto de saída gerado pelo Ground Truth, e sobre a estrutura do arquivo que o Ground Truth usa para armazenar os dados de saída, consulte Dados de saída.

Para ver um exemplo de arquivo manifesto de saída de um trabalho de rotulagem de segmentação de semântica, consulte Segmentação de semântica da nuvem de pontos 3D.