Configurare un progetto di etichettatura di immagini

È possibile apprendere come creare ed eseguire i 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 di testi.

Importante

Gli elementi contrassegnati (anteprima) in questo articolo sono attualmente disponibili 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

I dati di testo usati nello strumento di etichettatura dei dati di Azure Machine Learning devono essere disponibili in un archivio dati di Archiviazione Blob di Azure. Se non si ha 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 delle seguenti estensioni:

  • .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 in 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:

  • I dati da etichettare, inclusi in file locali o nell'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 dei 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. Per 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 multietichetta. Ad esempio, la foto di un cane potrebbe essere etichettata sia con cane che con giorno.
    • Per assegnare un'etichetta a ogni oggetto all'interno di un'immagine e aggiungere rettangoli delimitatori, 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 Poligono (Segmentazione istanza).
    • Per disegnare maschere su un'immagine e assegnare una classe di etichetta a livello di pixel, selezionare Segmentazione semantica (anteprima).

    Screenshot che mostra la creazione di un progetto di etichettatura per gestire l'attività di etichettatura.

  5. Selezionare Avanti per continuare.

Aggiungere forza lavoro (facoltativo)

Selezionare Usa una società fornitrice di etichettatura da Azure Marketplace solo se ci si è rivolti a un'azienda di etichettatura dati 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 una società fornitrice di etichettatura (anteprima).

Selezionare Avanti per continuare.

Specificare i dati da etichettare

Se è già stato creato un set di dati contenente i dati da usare, selezionarlo nell'elenco a discesa Seleziona 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 altro passaggio Mapping delle colonne di 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 suddette devono essere nello stesso formato delle etichette create. Ad esempio, se si creano etichette di rettangolo delimitatore, anche le etichette importate devono essere di rettangolo delimitatore.

Opzioni di importazione (anteprima)

Quando si include una colonna Categoria nel passaggio Mapping delle 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 suddette devono essere nello stesso formato delle etichette create. Ad esempio, se si creano etichette di rettangolo delimitatore, anche le etichette importate devono essere di rettangolo delimitatore.

Creare un set di dati da un archivio dati di Azure

In molti casi è possibile caricare i file locali. Azure Storage Explorer offre tuttavia 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 Archiviazione Blob:

  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 selezionare Avanti.
  6. Selezionare l'archivio dati e quindi selezionare Avanti.
  7. Se i dati si trovano in una sottocartella all'interno dell'Archiviazione Blob, 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 per il caricamento nell'archivio BLOB predefinito (workspaceblobstore) per l'area di lavoro di Machine Learning.
  7. Selezionare Avanti.
  8. Selezionare Carica>Carica file o Carica>Carica cartella per selezionare i file o le cartelle locali da caricare.
  9. Nella finestra del browser, trovare i file o le cartelle, quindi selezionare Apri.
  10. Continuare a selezionare Carica fino a quando 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 oppure selezionare Crea per creare il set di dati.
  14. Selezionare infine 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 l'opzione Abilita aggiornamento incrementale a intervalli regolari è impostata, il set di dati viene controllato periodicamente per verificare se sono presenti nuovi file da caricare in un progetto in base alla frequenza di completamento dell'etichettatura. Il controllo della presenza di nuovi dati viene interrotto quando il progetto raggiunge il limite massimo di 500.000 file.

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

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

Importante

Quando l'aggiornamento incrementale è abilitato, è consigliabile 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 dei dati viene aggiunto alla versione iniziale. Usare invece Azure Storage Explorer per modificare i dati nella cartella appropriata in Archiviazione Blob.

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 etichette specificare un set di classi per classificare i dati.

La capacità di scegliere tra le classi influisce sull'accuratezza e sulla velocità degli etichettatori. 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 semplice, selezionare Aggiungi categoria di etichette per creare ogni etichetta.

    Screenshot che mostra come aggiungere una struttura piatta di etichette.

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

    Screenshot che mostra come aggiungere gruppi di etichette.

È possibile selezionare etichette a qualsiasi livello durante il processo di assegnazione di tag. Ad esempio, le etichette Animal, Animal/Cat, Animal/Dog, Color, Color/Black, Color/White e Color/Silver sono tutte opzioni disponibili per un'etichetta. In un progetto con più etichette non è necessario selezionare una opzione di ogni categoria. Se si desidera che questa operazione venga eseguita, 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 che include tali istruzioni o fornire le istruzioni nella casella di modifica della pagina. Le istruzioni devono essere basate sull'attività e appropriate per i destinatari. Considerare queste domande:

  • Quali sono le etichette che saranno visibili agli etichettatori e come potranno scegliere tra le etichette? 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? In caso di subbio, si vuole usare l'ipotesi migliore dell'etichettatore?
  • 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à delle immagini, tra cui condizioni di illuminazione scadenti, riflessi, sfocatura, sfondo indesiderato incluso, angoli anomali della fotocamera e così via?
  • Cosa dovrebbero 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 stare completamente all'interno dell'oggetto o all'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 etichettato come oggetto oppure occorre 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. È possibile includere queste informazioni nelle istruzioni.

Controllo qualità (anteprima)

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

Importante

L'etichettatura basata su 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ù etichettatori, selezionare Abilita etichettatura basata su consenso (anteprima). Impostare quindi i valori per Numero minimo etichettatori e Numero massimo etichettatori per specificare quanti etichettatori usare. Assicurarsi che il numero di etichettatori disponibili corrisponda al numero massimo specificato. 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 il consenso non viene raggiunto dopo il passaggio dell'elemento al numero massimo di etichettatori, il relativo stato è Da rivedere e il proprietario del progetto è responsabile dell'etichettatura dell'elemento.

Nota

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

Usare l'etichettatura assistita da ML

Per accelerare le attività di etichettatura, nella pagina 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 mescolati in modo casuale per ridurre le 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 rientrerà in tale classe.

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

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

  • Clustering
  • Pre-etichettatura

Il numero di elementi dati etichettati 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, talvolta è possibile visualizzare le attività di pre-etichettatura o di clustering dopo che vengono etichettati manualmente 300 elementi. L'etichettatura assistita da ML usa una tecnica denominata apprendimento induttivo. L'apprendimento induttivo usa un modello con training preliminare per avviare rapidamente 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 training preliminare del modello, il processo potrebbe richiedere più tempo.

Quando si usa l'etichettatura basata su consenso, l'etichetta basata su consenso viene usata per il training.

Poiché le etichette finali si basano ancora sull'input dell'etichettatore, questa tecnologia viene a volte chiamata etichettatura human-in-the-loop.

Nota

L'etichettatura dei dati assistita da ML non supporta gli account di archiviazione predefiniti protetti da 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 non etichettate vengono quindi passate attraverso il modello troncato in un processo comunemente noto come incorporamento o definizione delle funzionalità. 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 dei testi.

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 delimitatori. L'etichettatore ora visualizza 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 del 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 confidenza 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 con confidenza maggiore rispetto alla 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

La pagina di panoramica 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.