Segmentazione semantica immagine - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Segmentazione semantica immagine

Per identificare il contenuto di un'immagine a livello di pixel, utilizza un'attività di etichettatura semantica di Amazon SageMaker Ground Truth. Quando viene assegnato un processo di etichettatura di segmentazione semantica, i lavoratori classificano i pixel nell'immagine in un set di etichette o classi predefinite. Ground Truth supporta processi di etichettatura a segmentazione semantica singola e multi-classe.

Le immagini che contengono un numero elevato di oggetti che devono essere segmentati richiedono più tempo. Per aiutare i lavoratori (provenienti da una forza lavoro privata o di un fornitore) a etichettare questi oggetti in meno tempo e con maggiore precisione, Ground Truth fornisce uno strumento di segmentazione automatica assistito dall'IA. Per informazioni, consulta Strumento di auto-segmentazione.

Crei un lavoro di etichettatura di segmentazione semantica utilizzando la sezione Ground Truth della SageMaker console Amazon o l'operazione. CreateLabelingJob

Importante

Per questo tipo di attività, se si crea un file manifesto personalizzato, utilizzare "source-ref" per identificare la posizione di ciascun file immagine in Amazon S3 che si desidera etichettare. Per ulteriori informazioni, consulta Dati di input.

Creazione di un processo di etichettatura di segmentazione semantica (console)

Puoi seguire le istruzioni Creazione di un processo di etichettatura (console) per imparare a creare un processo di etichettatura a segmentazione semantica nella console. SageMaker Nel passaggio 10, scegliere Immagine dal menu a discesa della categoria Attività e scegliere Segmentazione semantica come tipo di attività.

Ground Truth fornisce un'interfaccia utente di lavoro simile alla seguente per le attività di etichettatura. Quando si crea il lavoro di etichettatura con la console, si specificano le istruzioni per consentire ai lavoratori di completare il processo e le etichette tra cui i lavoratori possono scegliere.

Creare un processo di etichettatura di segmentazione semantica (API)

Per creare un processo di etichettatura a segmentazione semantica, utilizza l'operazione API. SageMaker CreateLabelingJob Questa API definisce questa operazione per tutti gli SDK. AWS Per visualizzare l'elenco degli SDK specifici del linguaggio supportati per questa operazione, consulta la sezione Vedi anche di CreateLabelingJob.

Segui queste istruzioni su Creazione di un processo di etichettatura (API) ed effettua le seguenti operazioni durante la configurazione della richiesta:

  • Le funzioni Lambda di pre-annotazione per questo tipo di attività terminano con PRE-SemanticSegmentation. Per trovare l'ARN Lambda di pre-annotazione per la tua regione, consulta. PreHumanTaskLambdaArn

  • Le funzioni Lambda di consolidamento delle annotazioni per questo tipo di attività terminano con ACS-SemanticSegmentation. Per trovare l'ARN Lambda di consolidamento delle annotazioni per la tua regione, consulta. AnnotationConsolidationLambdaArn

Di seguito è riportato un esempio di richiesta AWS Python SDK (Boto3) per creare un processo di etichettatura nella regione Stati Uniti orientali (Virginia settentrionale). Tutti i parametri in rosso devono essere sostituiti con le specifiche e le risorse.

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

Fornire un modello per i processi di etichettatura della segmentazione semantica

Se stai creando un'attività di etichettatura utilizzando l'API, devi fornire un modello personalizzato in UiTemplateS3Uri. Copiare e modificare il modello seguente. Modificare solo short-instructions, full-instructions e header.

Carica questo modello in S3 e fornisci l'URI S3 per questo file in 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>

Dati di output di segmentazione semantica

Dopo aver creato un processo di etichettatura di segmentazione semantica, i dati di output si troveranno nel bucket Amazon S3 specificato nel parametro S3OutputPath quando si utilizza l'API o nel campo Posizione del set di dati di output della sezione Panoramica processo della console.

Per ulteriori informazioni sul file manifest di output generato da Ground Truth e sulla struttura di file utilizzata da Ground Truth per archiviare i dati di output, consulta Dati di output.

Per visualizzare un esempio di file manifesto di output per un processo di etichettatura di segmentazione semantica, vedere Output della segmentazione semantica con nuvole di punti 3D.