Condividi tramite


Creare un modello di analisi delle immagini personalizzato (anteprima)

Image Analysis 4.0 consente di eseguire il training di un modello personalizzato con immagini di training personalizzate. Assegnando manualmente delle etichette alle immagini, è possibile eseguire il training di un modello per applicare tag personalizzati alle immagini (classificazione immagini), oppure per rilevare oggetti personalizzati (rilevamento oggetti). I modelli di Image Analysis 4.0 sono particolarmente efficaci durante l'apprendimento con pochi scatti, pertanto è possibile ottenere modelli accurati con meno dati di training.

Nella presente guida si illustra come creare ed eseguire il training di un modello di classificazione immagini personalizzato. Sono indicate alcune differenze tra il training di un modello di classificazione immagini e il modello di rilevamento oggetti.

Prerequisiti

  • Sottoscrizione di Azure: creare un account gratuito
  • Dopo aver creato la sottoscrizione di Azure, creare una risorsa di Visione nel portale di Azure per ottenere la chiave e l'endpoint. Se si seguono le istruzioni della presente guida utilizzando Vision Studio, è necessario creare la risorsa nell'area Stati Uniti orientali. Al termine della distribuzione, fare clic su Vai alla risorsa. Copiare la chiave e l'endpoint in un percorso temporaneo da utilizzare in un secondo momento.
  • Risorsa di Archiviazione di Azure - Creazione
  • Un set di immagini con cui eseguire il training del modello di classificazione. È possibile usare il set di immagini di esempio in GitHub. In alternativa, è possibile usare immagini personalizzate. Sono sufficienti circa 3-5 immagini per classe.

Nota

Non è consigliabile utilizzare modelli personalizzati per ambienti business critical a causa della latenza potenzialmente elevata. Quando i clienti eseguono il training di modelli personalizzati in Vision Studio, questi modelli personalizzati appartengono alla risorsa visione di cui sono stati sottoposti a training e il cliente è in grado di effettuare chiamate a tali modelli usando l'API Analizza immagine . Quando si effettuano queste chiamate, il modello personalizzato viene caricato in memoria e l'infrastruttura di previsione viene inizializzata. Quando ciò accade, i clienti potrebbero riscontrare una latenza più lunga del previsto prima di ricevere i risultati della previsione.

Creazione di un nuovo modello personalizzato

Per iniziare, passare a Vision Studio e selezionare la scheda di analisi immagini. Selezionare quindi il riquadro Modelli personalizzati.

Screenshot del riquadro Personalizza modelli.

Accedere quindi con l'account Azure e selezionare la risorsa Visione. Se non è presente, è possibile crearne una da questa schermata.

Importante

Per eseguire il training di un modello personalizzato in Vision Studio, è necessario che la sottoscrizione di Azure sia approvata per l'accesso. Richiedere l'accesso tramite questo modulo.

Screenshot della schermata seleziona risorsa.

Preparare le immagini per eseguire il training

Sarà necessario caricare i dati di training in un contenitore di Archiviazione BLOB di Azure. Passare alla risorsa di archiviazione nel portale di Azure e passare alla scheda Browser archiviazione. Qui è possibile creare un contenitore BLOB e caricare le immagini. Inserirle tutte nella radice del contenitore.

Aggiungere un set di dati

Per eseguire il training di un modello personalizzato, è necessario associarlo a un Set di dati nel quale siano presenti le immagini e le relative informazioni sull'etichetta come dati di training. In Vision Studio, selezionare la scheda Set di dati per visualizzare i set di dati.

Per creare un nuovo set di dati, selezionare Aggiungi nuovo set di dati. Nella finestra popup immettere un nome e selezionare un tipo di set di dati per il caso d'uso. I modelli di classificazione delle immagini applicano etichette di contenuto all'intera immagine, mentre i modelli di rilevamento oggetti applicano etichette oggetti a posizioni specifiche nell'immagine. I modelli di riconoscimento dei prodotti sono una sottocategoria di modelli di rilevamento oggetti ottimizzati per il rilevamento dei prodotti al dettaglio.

Scegliere Archiviazione BLOB

Selezionare quindi il contenitore dall'account di Archiviazione BLOB di Azure in cui sono state archiviate le immagini di training. Selezionare la casella per consentire a Vision Studio l'accesso in lettura e scrittura nel contenitore di archiviazione BLOB. Questo è un passaggio necessario per importare i dati con etichetta. Creazione del set di dati.

Creare un progetto di etichettatura di Azure Machine Learning

Per trasmettere le informazioni sull'etichettatura è necessario disporre di un file COCO. Un modo semplice per generare un file COCO consiste nel creare un progetto di Azure Machine Learning, contenente un flusso di lavoro di etichettatura dei dati.

Nella pagina dei dettagli del set di dati, selezionare Aggiungi nuovo progetto di etichettatura dei dati. Denominarlo e selezionare Crea nuova area di lavoro. Verrà visualizzata una nuova scheda del portale di Azure dove è possibile creare il progetto di Azure Machine Learning.

Scegliere Azure Machine Learning

Dopo aver creato il progetto di Azure Machine Learning, tornare alla scheda Vision Studio e selezionarlo in Area di lavoro. Il portale di Azure Machine Learning si apre in una nuova scheda del browser.

Azure Machine Learning: creare etichette

Per avviare l'etichettatura, seguire le istruzioni della richiesta Aggiungi classi di etichette per aggiungere le classi di etichette.

Classi di etichette

Aggiungere etichette di classe

Dopo aver aggiunto tutte le etichette di classe, salvarle, selezionare Avvia nel progetto, quindi scegliere Dati etichetta nella parte superiore.

Avviare l'etichettatura

Azure Machine Learning: dati di training per l’etichettatura manuale

Scegliere Avvia etichettatura e seguire le istruzioni delle richieste per etichettare tutte le immagini. Al termine, tornare alla scheda Vision Studio nel browser.

A questo punto, selezionare Aggiungi file COCO, quindi scegliere Importa file COCO da un progetto di etichettatura dei dati di Azure ML. I dati con etichetta vengono importati da Azure Machine Learning.

Il file COCO appena creato viene archiviato nel contenitore Archiviazione di Azure collegato a questo progetto. È ora possibile importarlo nel flusso di lavoro di personalizzazione del modello. selezionare l'ID nell'elenco a discesa. Una volta importato il file COCO nel set di dati, quest'ultimo può essere utilizzato per eseguire il training di un modello.

Nota

Importare i file COCO da un'altra posizione

Se si dispone già di un file COCO pronto per essere importato, passare alla scheda Set di dati e selezionare Add COCO files to this dataset. È possibile scegliere di aggiungere un file COCO specifico da un account di archiviazione BLOB o di importarlo dal progetto di etichettatura di Azure Machine Learning.

Attualmente, Microsoft sta risolvendo un problema che causa un errore di importazione del file COCO con set di dati di grandi dimensioni, se avviato in Vision Studio. Per eseguire il training con un set di dati di grandi dimensioni, è consigliabile, in alternativa, utilizzare l'API REST.

Scegliere COCO

Informazioni sui file COCO

I file COCO sono file JSON con campi obbligatori specifici: "images", "annotations" e "categories". Un file COCO di esempio ha un aspetto simile al seguente:

{
 "images": [
   {
     "id": 1,
     "width": 500,
     "height": 828,
     "file_name": "0.jpg",
     "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/0.jpg"
   },
    {
      "id": 2,
      "width": 754,
      "height": 832,
      "file_name": "1.jpg",
      "absolute_url": "https://blobstorage1.blob.core.windows.net/cpgcontainer/1.jpg"
    },

   ...

  ],
  "annotations": [
    {
      "id": 1,
      "category_id": 7,
      "image_id": 1,
      "area": 0.407,
      "bbox": [
        0.02663142641129032,
        0.40691584277841153,
        0.9524163571731749,
        0.42766634515266866
      ]
    },
    {
      "id": 2,
      "category_id": 9,
      "image_id": 2,
      "area": 0.27,
      "bbox": [
        0.11803319477782331,
        0.41586723392402375,
        0.7765206955096307,
        0.3483334397217212
      ]
    },
    ...

  ],
  "categories": [
    {
      "id": 1,
      "name": "vegall original mixed vegetables"
    },
    {
      "id": 2,
      "name": "Amy's organic soups lentil vegetable"
    },
    {
      "id": 3,
      "name": "Arrowhead 8oz"
    },

    ...

  ]
}

Informazioni di riferimento sui campi del file COCO

Se si genera un file COCO partendo da zero, assicurarsi che tutti i campi obbligatori siano stati compilati con i dati corretti. Le tabelle seguenti descrivono tutti i campi presenti in un file COCO:

"immagini"

Chiave Type Description Obbligatorio?
id integer ID immagine univoco, a partire da 1
width integer Larghezza dell'immagine in pixel
height integer Altezza dell'immagine in pixel
file_name string Nome univoco dell’immagine
absolute_url oppure coco_url string Percorso dell’immagine come URI assoluto in un BLOB in un contenitore BLOB. La risorsa Visione deve avere l'autorizzazione per leggere i file di annotazione e tutti i file di immagine a cui si fa riferimento.

Il valore di absolute_url è reperibile nelle proprietà del contenitore BLOB:

URL assoluto

"annotazioni"

Chiave Type Description Obbligatorio?
id integer ID dell’annotazione
category_id integer ID della categoria definita nella sezione categories
image_id integer ID dell’immagine
area integer Valore di 'Width' x 'Height' (terzo e quarto valore di bbox) No
bbox list[float] Coordinate relative del rettangolo delimitatore (da 0 a 1), nell'ordine 'Left', 'Top', 'Width', 'Height'

"categorie"

Chiave Type Description Obbligatorio?
id integer ID univoco per ogni categoria (classe di etichetta). Devono essere presenti nella sezione annotations.
name string Nome della categoria (classe etichetta)

Verifica del file COCO

È possibile utilizzare il codice di esempio Python per controllare il formato di un file COCO.

Eseguire il training del modello personalizzato

Per avviare il training di un modello con il file COCO, passare alla scheda Modelli personalizzati e selezionare Aggiungi nuovo modello. Immettere un nome per il modello e selezionare Image classification o Object detection come tipo di modello.

Creare un modello personalizzato

Selezionare il set di dati associato al file COCO contenente le informazioni sull'etichettatura.

Quindi, selezionare un’allocazione di tempo ed eseguire il training del modello. Per esempi di piccole dimensioni, è possibile usare un budget 1 hour.

Esaminare i dettagli del training

Il completamento del training potrebbe richiedere del tempo. I modelli di Image Analysis 4.0 possono essere precisi solo nel caso di set di dati di training di piccole dimensioni, tuttavia il training richiede più tempo rispetto al training dei modelli precedenti.

Valutare il modello sottoposto a training

Al termine del training, è possibile visualizzare la valutazione delle prestazioni del modello. Sono utilizzate le metriche seguenti:

  • Classificazione immagini: precisione media, Accuratezza Top 1, Accuratezza Top 5
  • Rilevamento oggetti: precisione media @ 30, precisione media @ 50, precisione media @ 75

Se non viene fornito un set di valutazione durante il training del modello, le prestazioni riportate vengono stimate in base a una parte del set di training. Si consiglia vivamente di avvalersi di un set di dati di valutazione (con lo stesso processo descritto in precedenza) per ottenere una previsione attendibile delle prestazioni del modello.

Screenshot della valutazione

Testare un modello personalizzato in Vision Studio

Dopo aver creato un modello personalizzato, è possibile eseguire il test selezionando il pulsante Prova nella schermata di valutazione del modello.

Screenshot della schermata di valutazione del modello con il pulsante Prova evidenziato.

Verrà visualizzata la pagina Estrarre tag comuni dalle immagini. Scegliere il modello personalizzato dal menu a discesa e caricare un’immagine di test.

Screenshot della selezione del modello di test in Vision Studio.

I risultati della previsione vengono visualizzati nella colonna destra.

Passaggi successivi

Nella presente guida si è creato ed eseguito il training di un modello di classificazione immagini personalizzato, avvalendosi dell'analisi delle immagini. In seguito, sarà possibile apprendere maggiori informazioni sull'API Analizza immagine 4.0, per richiamare il modello personalizzato da un'applicazione con gli SDK REST o della libreria.