Identifica i contenuti delle immagini utilizzando la segmentazione semantica - Amazon SageMaker AI

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à.

Identifica i contenuti delle immagini utilizzando la segmentazione semantica

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 worker 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. Crei un lavoro di etichettatura di segmentazione semantica utilizzando la sezione Ground Truth della console Amazon SageMaker AI o l'operazione. CreateLabelingJob

Le immagini che contengono un numero elevato di oggetti che devono essere segmentati richiedono più tempo. Per aiutare i worker (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, consultare Strumento di auto-segmentazione.

Importante

Per questo tipo di attività, se si crea un file manifest personalizzato, utilizza "source-ref" per identificare la posizione di ciascun file immagine in Amazon S3 che desideri 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 AI. SageMaker Nella fase 10, scegli Immagine dal menu a discesa della categoria Attività e scegli 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 processo di etichettatura con la console, si specificano le istruzioni per consentire ai worker di completare il processo e le etichette tra cui i worker possono scegliere.

Gif che mostra un esempio su come creare un lavoro di etichettatura a segmentazione semantica nella console AI. SageMaker

Creare un processo di etichettatura con segmentazione semantica () API

Per creare un processo di etichettatura con segmentazione semantica, utilizzate l'operazione. SageMaker API CreateLabelingJob Questo API definisce questa operazione per tutti. AWS SDKs Per visualizzare un elenco delle lingue specifiche SDKs supportate per questa operazione, consultate la sezione Vedere anche di. CreateLabelingJob

Segui queste istruzioni su Creare un Labeling Job () 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 la pre-annotazione Lambda ARN per la tua regione, consulta. PreHumanTaskLambdaArn

  • Le funzioni Lambda di consolidamento delle annotazioni per questo tipo di attività terminano con ACS-SemanticSegmentation. Per trovare la 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 si crea un lavoro di etichettatura utilizzando ilAPI, è necessario fornire un modello di attività di lavoro in. UiTemplateS3Uri Copia e modifica il modello seguente. Modifica solo short-instructions, full-instructions e header.

Carica questo modello su S3 e fornisci l'S3 URI per questo file. 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 S3OutputPath parametro quando si utilizza il campo Output API dataset location della sezione Job overview 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 Etichettatura dei dati di output del lavoro.

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