Identificación del contenido de las imágenes mediante la segmentación semántica - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Identificación del contenido de las imágenes mediante la segmentación semántica

Para identificar el contenido de una imagen a nivel de píxel, utilice una tarea de etiquetado de segmentación semántica de Amazon SageMaker Ground Truth. Cuando se asigna un trabajo de etiquetado de segmentación semántica, los trabajadores clasifican los píxeles de la imagen en un conjunto de etiquetas o clases predefinidas. Ground Truth admite trabajos de etiquetado de segmentación semántica de clase única y múltiple. Puede crear un trabajo de etiquetado de segmentación semántica desde la sección Ground Truth de la consola de Amazon SageMaker AI o la operación CreateLabelingJob.

Las imágenes que contienen un gran número de objetos que deben segmentarse requieren más tiempo. Para ayudar a los trabajadores (de personal privado o de proveedor) a etiquetar estos objetos en menos tiempo y con mayor precisión, Ground Truth proporciona una herramienta de segmentación automática asistida por IA. Para obtener más información, consulta Herramienta de segmentación automática.

importante

Para este tipo de tarea, si crea su propio archivo de manifiesto, utilice "source-ref" para identificar la ubicación de cada archivo de imagen en Amazon S3 que desee etiquetar. Para obtener más información, consulte Datos de entrada.

Crear un trabajo de etiquetado de segmentación semántica (consola)

Puede seguir las instrucciones de Crear un trabajo de etiquetado (consola) para aprender a crear un trabajo de etiquetado de segmentación semántica en la consola de SageMaker AI. En el paso 10, elija Image (Imagen) en el menú desplegable Task category (Categoría de tarea) y, luego, Semantic segmentation (Segmentación semántica) como tipo de tarea.

Ground Truth proporciona una interfaz de usuario de trabajador similar a la siguiente para las tareas de etiquetado. Al crear el trabajo de etiquetado con la consola, se especifican instrucciones para ayudar a los trabajadores a completar el trabajo y las etiquetas que los trabajadores pueden elegir.

Gif que muestra un ejemplo sobre cómo crear un trabajo de etiquetado de segmentación semántica en la consola de SageMaker AI.

Crear un trabajo de etiquetado de segmentación semántica (API)

Para crear un trabajo de etiquetado de segmentación semántica, utilice la operación CreateLabelingJob de la API de SageMaker. Esta API define esta operación para todos los SDK de AWS. Para ver una lista de SDK específicos de lenguajes admitidos para esta operación, consulte la sección Ver también de CreateLabelingJob.

Siga las instrucciones de Crear un trabajo de etiquetado (API) y haga lo siguiente mientras configura su solicitud:

  • Las funciones de Lambda de preanotación para este tipo de tareas terminan con PRE-SemanticSegmentation. Para buscar el ARN de Lambda de preanotación para su región, consulte PreHumanTaskLambdaArn.

  • Las funciones de Lambda de consolidación de anotaciones para este tipo de tareas terminan con ACS-SemanticSegmentation. Para buscar el ARN de Lambda de consolidación de anotaciones para su región, consulte AnnotationConsolidationLambdaArn.

A continuación se ofrece un ejemplo de solicitud del SDK de AWS Python (Boto3) para crear un trabajo de etiquetado en la región Este de EE. UU. (Norte de Virginia). Todos los parámetros en rojo deben reemplazarse con sus especificaciones y 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' }, ] )

Proporcionar una plantilla para trabajos de etiquetado de segmentación semántica

Si crea un trabajo de etiquetado con la API, debe proporcionar una plantilla de tarea del trabajador en UiTemplateS3Uri. Copie y modifique la siguiente plantilla. Modifique únicamente short-instructions, full-instructions y header.

Cargue esta plantilla a S3 y proporcione el URI de S3 para este archivo en 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>

Datos de salida de segmentación semántica

Después de crear un trabajo de etiquetado de segmentación semántica, los datos de salida se ubicarán en el bucket de Amazon S3 especificado en el parámetro S3OutputPath al utilizar la API o en el campo Ubicación de conjunto de datos de salida de la sección Información general del trabajo de la consola.

Para obtener más información sobre el archivo de manifiesto de salida generado por Ground Truth y la estructura de archivos que Ground Truth utiliza para almacenar los datos de salida, consulte Etiquetado de los datos de salida del trabajo.

Para ver un ejemplo de un archivo de manifiesto de salida para un trabajo de etiquetado de segmentación semántica, consulte Salida de segmentación semántica de nubes de puntos 3D.