Creare un processo di classificazione delle immagini (Multi-etichetta) - 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à.

Creare un processo di classificazione delle immagini (Multi-etichetta)

Usa un'attività di classificazione delle immagini multietichetta di Amazon SageMaker Ground Truth quando hai bisogno di lavoratori per classificare più oggetti in un'immagine. Ad esempio, l'immagine seguente raffigura un cane e un gatto. È possibile utilizzare la classificazione delle immagini multi-etichetta per associare le etichette "cane" e "gatto" a questa immagine. La pagina seguente fornisce informazioni sulla creazione di un processo di classificazione delle immagini.

Foto di Anusha Barwa su Unsplash

Quando si utilizza a un'attività di classificazione delle immagini multi-etichetta, i worker possono scegliere tutte le etichette applicabili, ma devono sceglierne almeno una. Durante la creazione di un processo utilizzando questo tipo di attività, è possibile fornire fino a 50 categorie di etichette.

Durante la creazione del processo di etichettatura nella console, Ground Truth non fornisce una categoria "nessuna" quando nessuna delle etichette si applica a un'immagine. Per fornire questa opzione ai worker, includere un'etichetta simile a "nessuna" o "altro" quando si crea un processo di classificazione delle immagini multi-etichetta.

Per limitare la scelta dei worker a una singola etichetta per ogni immagine, utilizza il tipo di attività Creare un processo di classificazione delle immagini (etichetta singola).

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 classificazione delle immagini multi-etichetta (console)

Puoi seguire le istruzioni Creazione di un processo di etichettatura (console) per imparare a creare un processo di etichettatura di classificazione delle immagini multietichetta nella SageMaker console. Nella fase 10, scegli Immagine dal menu a discesa della categoria Attività e scegli Classificazione immagine (etichetta multipla) come tipo di attività.

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

Interfaccia utente di lavoro di esempio per l'etichettatura delle attività, fornita da Ground Truth.

Creare un processo di etichettatura con classificazione delle immagini multietichetta () API

Per creare un processo di etichettatura con classificazione delle immagini multietichetta, 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 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-ImageMultiClassMultiLabel. 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-ImageMultiClassMultiLabel. 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-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' }, ] )

Fornire un modello per la classificazione di immagini con più etichette

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

Dati di output della classificazione delle immagini multi-etichetta

Dopo aver creato un processo di etichettatura per la classificazione delle immagini multietichetta, i dati di output si troveranno nel bucket Amazon S3 specificato nel S3OutputPath parametro quando si utilizza API il campo Output 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 manifest di output per il processo di etichettatura di classificazione delle immagini multi-etichetta, consulta Risultati del lavoro di classificazione multietichetta.