Configurare un progetto di etichettatura delle immagini

Informazioni su come creare ed eseguire progetti di etichettatura dei dati per etichettare le immagini in Azure Machine Learning. Usare l'etichettatura dei dati assistita da Machine Learning (ML) o l'etichettatura human-in-the-loop per facilitare l'attività.

Configurare le etichette per la classificazione, il rilevamento degli oggetti (rettangolo delimitatore), la segmentazione dell'istanza (poligono) o la segmentazione semantica (anteprima).

È anche possibile usare lo strumento di etichettatura dei dati in Azure Machine Learning per creare un progetto di etichettatura del testo.

Importante

Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente in anteprima pubblica. La versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate. Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Funzionalità di etichettatura delle immagini

L'etichettatura dei dati di Azure Machine Learning è uno strumento che è possibile usare per creare, gestire e monitorare i progetti di etichettatura dei dati. Usarlo per:

  • Coordinare i dati, le etichette e i membri del team per gestire in modo efficiente le attività di etichettatura.
  • Tenere traccia dello stato di avanzamento e mantenere la coda delle attività di etichettatura incomplete.
  • Avviare e arrestare il progetto e controllare lo stato di avanzamento dell'etichettatura.
  • Esaminare ed esportare i dati etichettati come set di dati di Azure Machine Learning.

Importante

Le immagini di dati con cui si lavora nello strumento di etichettatura dei dati di Azure Machine Learning devono essere disponibili in un archivio dati Archiviazione BLOB di Azure. Se non si dispone di un archivio dati esistente, è possibile caricare i file di dati in un nuovo archivio dati quando si crea un progetto.

I dati dell'immagine possono essere qualsiasi file con una di queste estensioni di file:

  • .jpg
  • .jpeg
  • .png
  • .Jpe
  • .jfif
  • .Bmp
  • .Tif
  • .Tiff
  • .Dcm
  • .Dicom

Ogni file è un elemento da etichettare.

È anche possibile usare un asset di dati MLTable come input per un progetto di etichettatura delle immagini, purché le immagini nella tabella siano uno dei formati precedenti. Per altre informazioni, vedere Come usare gli asset di dati MLTable.

Prerequisiti

Questi elementi vengono usati per configurare l'etichettatura delle immagini in Azure Machine Learning:

  • Dati da etichettare, in file locali o in Archiviazione BLOB di Azure.
  • I set di etichette da applicare.
  • Le istruzioni per l'etichettatura.
  • Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
  • Un'area di lavoro di Azure Machine Learning. Vedere Creare un'area di lavoro di Azure Machine Learning.

Creare un progetto di etichettatura di immagini

I progetti di etichettatura vengono amministrati in Azure Machine Learning. Usare la pagina Etichettatura dati in Machine Learning per gestire i progetti.

Se i dati sono già presenti in Archiviazione BLOB di Azure, assicurarsi che siano disponibili come archivio dati prima di creare il progetto di etichettatura.

  1. Per creare un progetto, scegliere Aggiungi il progetto.

  2. In Nome progetto immettere un nome per il progetto.

    Non è possibile riutilizzare il nome del progetto, anche se si elimina il progetto.

  3. Per creare un progetto di etichettatura delle immagini, per Tipo di supporto selezionare Immagine.

  4. Per Tipo di attività Etichettatura selezionare un'opzione per lo scenario:

    • Per applicare solo una singola etichetta a un'immagine da un set di etichette, selezionare Classificazione immagini multiclasse.
    • Per applicare una o più etichette a un'immagine da un set di etichette, selezionare Classificazione immagini con più etichette. Ad esempio, una foto di un cane potrebbe essere etichettata sia con il cane che con il giorno.
    • Per assegnare un'etichetta a ogni oggetto all'interno di un'immagine e aggiungere caselle di delimitazione, selezionare Identificazione oggetto (rettangolo delimitatore).
    • Per assegnare un'etichetta a ogni oggetto all'interno di un'immagine e disegnare un poligono intorno a ogni oggetto, selezionare Segmentazione istanza (Poligono).
    • Per disegnare maschere su un'immagine e assegnare una classe di etichetta a livello di pixel, selezionare Segmentazione semantica (anteprima).

    Screenshot that shows creating a labeling project to manage labeling.

  5. Selezionare Avanti per continuare.

Aggiungere forza lavoro (facoltativo)

Selezionare Use a vendor labeling company from Azure Marketplace only if you've engaged a data labeling company from Azure Marketplace (Usa una società di etichettatura dei fornitori da Azure Marketplace). Selezionare quindi il fornitore. Se il fornitore non viene visualizzato nell'elenco, deselezionare questa opzione.

Assicurarsi di contattare prima il fornitore e firmare un contratto. Per altre informazioni, vedere Usare un'azienda fornitore di etichette dati (anteprima).

Selezionare Avanti per continuare.

Specificare i dati da etichettare

Se è già stato creato un set di dati contenente i dati, selezionare il set di dati nell'elenco a discesa Selezionare un set di dati esistente.

È anche possibile selezionare Crea un set di dati per usare un archivio dati di Azure esistente o per caricare i file locali.

Nota

Un progetto non può contenere più di 500.000 file. Se il set di dati supera questo numero di file, vengono caricati solo i primi 500.000 file.

Mapping delle colonne di dati (anteprima)

Se si seleziona un asset di dati MLTable, viene visualizzato un passaggio aggiuntivo Mapping colonne dati per specificare la colonna contenente gli URL dell'immagine.

È necessario specificare una colonna mappata al campo Immagine . Facoltativamente, è anche possibile eseguire il mapping di altre colonne presenti nei dati. Ad esempio, se i dati contengono una colonna Etichetta , è possibile eseguirne il mapping al campo Categoria . Se i dati contengono una colonna Attendibilità , è possibile eseguirne il mapping al campo Attendibilità .

Se si importano etichette da un progetto precedente, le etichette devono essere nello stesso formato delle etichette create. Ad esempio, se si creano etichette di rettangolo delimitatore, le etichette importate devono anche essere etichette di rettangolo delimitatore.

Opzioni di importazione (anteprima)

Quando si include una colonna Category nel passaggio Mapping colonne di dati, usare Opzioni di importazione per specificare come gestire i dati etichettati.

È necessario specificare una colonna mappata al campo Immagine . Facoltativamente, è anche possibile eseguire il mapping di altre colonne presenti nei dati. Ad esempio, se i dati contengono una colonna Etichetta , è possibile eseguirne il mapping al campo Categoria . Se i dati contengono una colonna Attendibilità , è possibile eseguirne il mapping al campo Attendibilità .

Se si importano etichette da un progetto precedente, le etichette devono essere nello stesso formato delle etichette create. Ad esempio, se si creano etichette di rettangolo delimitatore, le etichette importate devono anche essere etichette di rettangolo delimitatore.

Creare un set di dati da un archivio dati di Azure

In molti casi, è possibile caricare i file locali. Tuttavia, Archiviazione di Azure Explorer offre un modo più rapido e affidabile per trasferire una grande quantità di dati. È consigliabile usare Storage Explorer come modalità predefinita per lo spostamento dei file.

Per creare un set di dati dai dati già archiviati in BLOB Archiviazione:

  1. Seleziona Crea.
  2. In Nome immettere un nome per il set di dati. Facoltativamente, immetti una descrizione.
  3. Verificare che Tipo di set di dati sia impostato su File. Per le immagini sono supportati solo i tipi di set di dati di file.
  4. Selezionare Avanti.
  5. Selezionare Da Archiviazione di Azure e quindi avanti.
  6. Selezionare l'archivio dati e quindi selezionare Avanti.
  7. Se i dati si trovano in una sottocartella all'interno di Blob Archiviazione, scegliere Sfoglia per selezionare il percorso.
    • Per includere tutti i file nelle sottocartelle del percorso selezionato, aggiungere /** al percorso.
    • Per includere tutti i dati nel contenitore corrente e le relative sottocartelle, aggiungere **/*.* al percorso.
  8. Seleziona Crea.
  9. Selezionare l'asset di dati creato.

Creare un set di dati dai dati caricati

Per caricare direttamente i dati:

  1. Seleziona Crea.
  2. In Nome immettere un nome per il set di dati. Facoltativamente, immetti una descrizione.
  3. Verificare che Tipo di set di dati sia impostato su File. Per le immagini sono supportati solo i tipi di set di dati di file.
  4. Selezionare Avanti.
  5. Selezionare Da file locali e quindi selezionare Avanti.
  6. (Facoltativo) Selezionare un archivio dati. È anche possibile lasciare l'impostazione predefinita da caricare nell'archivio BLOB predefinito (workspaceblobstore) per l'area di lavoro di Machine Learning.
  7. Selezionare Avanti.
  8. Selezionare Carica>file o Carica>cartella per selezionare i file o le cartelle locali da caricare.
  9. Nella finestra del browser trovare i file o le cartelle e quindi selezionare Apri.
  10. Continuare a selezionare Carica finché non si specificano tutti i file e le cartelle.
  11. Facoltativamente, è possibile scegliere di selezionare la casella di controllo Sovrascrivi se esiste già. Verificare l'elenco di file e cartelle.
  12. Selezionare Avanti.
  13. Confermare i dettagli. Selezionare Indietro per modificare le impostazioni o selezionare Crea per creare il set di dati.
  14. Infine, selezionare l'asset di dati creato.

Configurare l'aggiornamento incrementale

Se si prevede di aggiungere nuovi file di dati al set di dati, usare l'aggiornamento incrementale per aggiungere i file al progetto.

Quando si imposta Abilita aggiornamento incrementale a intervalli regolari, il set di dati viene controllato periodicamente per l'aggiunta di nuovi file a un progetto in base alla frequenza di completamento dell'etichettatura. Il controllo dei nuovi dati si arresta quando il progetto contiene al massimo 500.000 file.

Selezionare Abilita aggiornamento incrementale a intervalli regolari quando si vuole che il progetto monitori continuamente i nuovi dati nell'archivio dati.

Deselezionare la selezione se non si desidera aggiungere automaticamente nuovi file nell'archivio dati al progetto.

Importante

Non creare una nuova versione per il set di dati da aggiornare. In tal caso, gli aggiornamenti non verranno visualizzati perché il progetto di etichettatura dati viene aggiunto alla versione iniziale. Usare invece Archiviazione di Azure Explorer per modificare i dati nella cartella appropriata in Blob Archiviazione.

Inoltre, non rimuovere i dati. La rimozione dei dati dal set di dati usato dal progetto causa un errore nel progetto stesso.

Dopo aver creato il progetto, usare la scheda Dettagli per modificare l'aggiornamento incrementale, visualizzare il timestamp per l'ultimo aggiornamento e richiedere un aggiornamento immediato dei dati.

Specificare le classi di etichetta

Nella pagina Categorie etichetta specificare un set di classi per classificare i dati.

La precisione e la velocità degli etichettatori sono influenzate dalla loro capacità di scegliere tra le classi. Ad esempio, invece di includere genere e specie completi per le piante o gli animali, usare i codici di campo o abbreviare il genere.

È possibile usare un elenco semplice o creare gruppi di etichette.

  • Per creare un elenco flat, selezionare Aggiungi categoria di etichette per creare ogni etichetta.

    Screenshot that shows how to add a flat structure of labels.

  • Per creare etichette in gruppi diversi, selezionare Aggiungi categoria di etichette per creare le etichette di primo livello. Selezionare quindi il segno più (+) sotto ogni livello principale per creare il livello successivo di etichette per tale categoria. È possibile creare fino a sei livelli per qualsiasi raggruppamento.

    Screenshot that shows how to add groups of labels.

È possibile selezionare etichette a qualsiasi livello durante il processo di assegnazione di tag. Ad esempio, le etichette Animal, Animal/Cat, Animal/DogColor, Color/Black, , Color/Whitee Color/Silver sono tutte opzioni disponibili per un'etichetta. In un progetto con più etichette non è necessario selezionare una di ogni categoria. In questo caso, assicurarsi di includere queste informazioni nelle istruzioni.

Descrivere l'attività di etichettatura delle immagini

È importante spiegare chiaramente l'attività di etichettatura. Nella pagina Istruzioni di etichettatura è possibile aggiungere un collegamento a un sito esterno con istruzioni di etichettatura oppure fornire istruzioni nella casella di modifica della pagina. Le istruzioni devono essere basate sull'attività e appropriate per i destinatari. Considerare queste domande:

  • Quali sono gli etichettatori di etichette verranno visualizzati e come sceglieranno tra di loro? Esiste un testo di riferimento da consultare?
  • Cosa è necessario fare se nessuna etichetta risulta appropriata?
  • Cosa è necessario fare se più etichette risultano appropriate?
  • Qual è la soglia di attendibilità da applicare a un'etichetta? Vuoi che l'etichettatore sia meglio indovinare se non sono certi?
  • Cosa è necessario fare con gli oggetti di interesse parzialmente bloccati o sovrapposti?
  • Cosa è necessario fare se un oggetto di interesse è tagliato dal bordo dell'immagine?
  • Cosa dovrebbero fare se pensano di aver commesso un errore dopo aver inviato un'etichetta?
  • Cosa dovrebbero fare se individuano problemi di qualità dell'immagine, tra cui condizioni di illuminazione scadenti, riflessi, perdita di stato attivo, sfondo indesiderato incluso, angoli anomali della fotocamera e così via?
  • Cosa devono fare se più revisori hanno opinioni diverse sull'applicazione di un'etichetta?

Per i rettangoli di selezione, le domande importanti sono:

  • Come viene definito il rettangolo di selezione per questa attività? Deve rimanere interamente sull'interno dell'oggetto o deve essere sull'esterno? Deve essere ritagliato il più possibile o è accettabile lasciare uno spazio vuoto?
  • Qual è il livello di attenzione e coerenza che l'etichettatore dovrà applicare per la definizione dei rettangoli di selezione?
  • Qual è la definizione visiva di ogni classe di etichetta? È possibile fornire un elenco di casi normali, perimetrali e contatori per ogni classe?
  • Cosa devono fare gli etichettatori se l'oggetto è piccolo? Deve essere etichettata come oggetto o deve ignorare l'oggetto come sfondo?
  • In che modo gli etichettatori devono gestire un oggetto visualizzato solo parzialmente nell'immagine?
  • In che modo gli etichettatori devono gestire un oggetto parzialmente coperto da un altro oggetto?
  • In che modo gli etichettatori devono gestire un oggetto senza limiti chiari?
  • In che modo gli etichettatori devono gestire un oggetto che non è la classe oggetto di interesse, ma presenta analogie visive con un tipo di oggetto pertinente?

Nota

Gli etichettatori possono selezionare le prime nove etichette usando i tasti numerici da 1 a 9.

Controllo qualità (anteprima)

Per ottenere etichette più accurate, usare la pagina Controllo qualità per inviare ogni elemento a più etichette.

Importante

L'etichettatura del consenso è attualmente disponibile in anteprima pubblica.

La versione di anteprima viene messa a disposizione senza contratto di servizio e non è consigliata per i carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate.

Per altre informazioni, vedere le Condizioni supplementari per l'uso delle anteprime di Microsoft Azure.

Per inviare ogni elemento a più etichette, selezionare Abilita etichettatura del consenso (anteprima). Impostare quindi i valori per Gli etichettatori minimi e Il numero massimo di etichette per specificare il numero di etichette da usare. Assicurarsi di avere il numero massimo di etichettatori disponibili. Non è possibile modificare queste impostazioni dopo l'avvio del progetto.

Se viene raggiunto un consenso dal numero minimo di etichettatori, l'elemento viene etichettato. Se non viene raggiunto un consenso, l'elemento viene inviato a più etichettatori. Se non è presente alcun consenso dopo che l'elemento passa al numero massimo di etichettatori, lo stato è Needs Review e il proprietario del progetto è responsabile dell'etichettatura dell'elemento.

Nota

I progetti di segmentazione dell'istanza non possono usare l'etichettatura del consenso.

Usare l'etichettatura assistita da ML

Per accelerare le attività di etichettatura, nella pagina di etichettatura assistita da ML è possibile attivare modelli di Machine Learning automatici. Le immagini mediche (file con estensione .dcm ) non sono incluse nell'etichettatura assistita. Se il tipo di progetto è Semantic Segmentation (Anteprima), l'etichettatura assistita da ML non è disponibile.

All'inizio del progetto di etichettatura, gli elementi vengono ri shuffati in un ordine casuale per ridurre potenziali distorsioni. Tuttavia, il modello sottoposto a training riflette eventuali distorsioni presenti nel set di dati. Ad esempio, se l'80% degli elementi è di una singola classe, circa l'80% dei dati usati per eseguire il training del modello viene atterrato in tale classe.

Per abilitare l'etichettatura assistita, selezionare Abilita etichettatura assistita di Machine Learning e specificare una GPU. Se non si ha una GPU nell'area di lavoro, viene creato un cluster GPU (nome risorsa: DefLabelNC6v3, vmsize: Standard_NC6s_v3) per l'utente e aggiunto all'area di lavoro. Il cluster viene creato con un minimo di zero nodi, il che significa che non costa nulla quando non è in uso.

L'etichettatura assistita da ML è costituita da due fasi:

  • Clustering
  • Pre-etichettatura

Il numero di elementi dati etichettato necessario per avviare l'etichettatura assistita non è un numero fisso. Questo numero può variare in modo significativo da un progetto di etichettatura a un altro. Per alcuni progetti, a volte è possibile visualizzare attività pre-etichetta o cluster dopo 300 elementi etichettati manualmente. L'etichettatura assistita da ML usa una tecnica denominata transfer learning. L'apprendimento per il trasferimento usa un modello con training preliminare per avviare il processo di training. Se le classi del set di dati sono simili alle classi nel modello con training preliminare, le pre-etichette potrebbero diventare disponibili dopo solo poche centinaia di elementi etichettati manualmente. Se il set di dati differisce significativamente dai dati usati per eseguire il pre-training del modello, il processo potrebbe richiedere più tempo.

Quando si usa l'etichettatura del consenso, l'etichetta di consenso viene usata per il training.

Poiché le etichette finali si basano ancora sull'input dell'etichettatore, questa tecnologia viene talvolta definita etichettatura umana nel ciclo .

Nota

L'etichettatura dei dati assistita da ML non supporta gli account di archiviazione predefiniti protetti dietro una rete virtuale. È necessario usare un account di archiviazione non predefinito per l'etichettatura dei dati assistita da ML. L'account di archiviazione non predefinito può essere protetto tramite la rete virtuale.

Clustering

Dopo aver inviato alcune etichette, il modello di classificazione inizia a raggruppare elementi simili. Queste immagini simili vengono presentate agli etichettatori nella stessa pagina per rendere più efficiente l'assegnazione di tag manuali. Il clustering è particolarmente utile quando un etichettatore visualizza una griglia di quattro, sei o nove immagini.

Dopo aver eseguito il training di un modello di Machine Learning sui dati etichettati manualmente, il modello viene troncato all'ultimo livello completamente connesso. Le immagini senza etichetta vengono quindi passate attraverso il modello troncato in un processo denominato incorporamento o definizione delle caratteristiche. Questo processo incorpora ogni immagine in uno spazio ad alta dimensione definito dal livello del modello. Altre immagini nello spazio più vicino all'immagine vengono usate per le attività di clustering.

La fase di clustering non viene visualizzata per i modelli di rilevamento oggetti o la classificazione del testo.

Pre-etichettatura

Dopo aver inviato etichette sufficienti per il training, un modello di classificazione stima i tag o un modello di rilevamento oggetti stima i rettangoli di selezione. L'etichettatore ora vede le pagine che contengono etichette stimate già presenti in ogni elemento. Per il rilevamento degli oggetti, vengono visualizzati anche i rettangoli di selezione previsti. L'attività prevede la revisione di queste stime e la correzione di eventuali immagini etichettate in modo non corretto prima dell'invio della pagina.

Dopo aver eseguito il training di un modello di Machine Learning sui dati etichettati manualmente, il modello viene valutato su un set di test di elementi etichettati manualmente. La valutazione consente di determinare l'accuratezza del modello in base a soglie di attendibilità diverse. Il processo di valutazione imposta una soglia di confidenza oltre la quale il modello è abbastanza accurato per mostrare le pre-etichette. Il modello viene quindi valutato in base ai dati non etichettati. Gli elementi con stime più sicure della soglia vengono usati per l'etichettatura preliminare.

Inizializzare il progetto di etichettatura delle immagini

Dopo l'inizializzazione del progetto di etichettatura, alcuni aspetti non saranno modificabili. Non è possibile cambiare il tipo di attività o il set di dati. È invece possibile modificare le etichette e l'URL per la descrizione dell'attività. Esaminare attentamente le impostazioni prima di creare il progetto. Dopo aver inviato il progetto, tornare alla pagina di panoramica etichettatura dei dati, che mostra il progetto come Inizializzazione.

Nota

Questa pagina potrebbe non essere aggiornata automaticamente. Dopo una pausa, aggiornare manualmente la pagina per visualizzare lo stato del progetto come Creato.

Risoluzione dei problemi

Per problemi relativi alla creazione di un progetto o all'accesso ai dati, vedere Risolvere i problemi di etichettatura dei dati.

Passaggi successivi