Creare un progetto personalizzato
Per creare un modello personalizzato di Visione di Azure AI, è necessario prima di tutto disporre di una risorsa di Servizi di Azure AI (o una risorsa di Visione di Azure AI). Dopo aver distribuito tale risorsa nella sottoscrizione, è necessario creare un progetto personalizzato.
Componenti di un progetto Visione personalizzato
Il primo componente di un progetto personalizzato è il set di dati. Il set di dati è la raccolta di immagini da usare durante il training del modello, insieme al file COCO che definisce le informazioni sulle etichette di tali immagini. Il set di dati viene archiviato in un contenitore di archiviazione BLOB di Azure e il file COCO viene illustrato più avanti in questa unità.
Dopo aver definito le immagini e le etichette delle classi, è possibile eseguire il training del modello personalizzato. Quando si esegue il training del modello, specificare il tipo di modello di cui eseguire il training, il set di dati da usare e il budget di training (in quantità di tempo). Al termine del training del modello, è possibile visualizzare le prestazioni e usare il modello per le stime.
Nella maggior parte dei casi, i passaggi da seguire sono:
- Creare il contenitore di archiviazione BLOB e caricare solo le immagini di training.
- Creare il set di dati per il progetto e connetterlo al contenitore di archiviazione BLOB. Quando si crea il set di dati, si definisce il tipo di progetto (classificazione immagini, rilevamento oggetti o riconoscimento del prodotto).
- Assegnare etichette ai dati nel progetto di etichettatura dei dati di Azure Machine Learning, che crea il file COCO nel contenitore di archiviazione BLOB.
- Collegare il file COCO completato per le immagini etichettate al set di dati.
- Eseguire il training del modello personalizzato in base al set di dati e alle etichette create.
- Verificare le prestazioni ed eseguire l'iterazione se le prestazioni di training non soddisfano le aspettative.
Una volta che si è soddisfatti delle prestazioni, il modello può essere usato in Vision Studio o nella propria applicazione.
File COCO
Un file COCO è un file JSON con un formato specifico che definisce:
- immagini: definisce la posizione dell'immagine nell'archivio BLOB, il nome, la larghezza, l'altezza e l'ID.
- annotazioni: definisce le classificazioni (o gli oggetti), compresi la categoria in cui l'immagine è classificata, l'area e il rettangolo di selezione (se l'etichettatura viene usata per il rilevamento oggetti).
- categorie: definisce l'ID della classe di etichette denominata.
Nella maggior parte dei casi, i file COCO vengono creati etichettando le immagini di training in un progetto di etichettatura dei dati di Azure Machine Learning. Se si esegue la migrazione da un progetto di Visione personalizzata precedente, è possibile usare lo script di migrazione per creare il file COCO.
Un file COCO di esempio è simile al seguente:
{
"images": [
{
"id": 1,
"width": 1024,
"height": 768,
"file_name": "abc.jpg",
"coco_url": "AmlDatastore://fruit/abc.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/abc.jpg",
"date_captured": "<date>"
},
{
"id": 2,
"width": 1024,
"height": 768,
"file_name": "xyz.jpg",
"coco_url": "AmlDatastore://fruit/xyz.jpg",
"absolute_url": "https://myBlobStorage.blob.core.windows.net/fruit/xyz.jpg",
"date_captured": "<date>"
},
<...>
],
"annotations": [
{
"id": 1,
"category_id": 1,
"image_id": 1,
"area": 0.0
},
{
"id": 2,
"category_id": 1,
"image_id": 2,
"area": 0.0
},
<...>
],
"categories": [
{
"id": 1,
"name": "apple"
},
{
"id": 2,
"name": "orange"
},
{
"id": 3,
"name": "banana"
}
]
}
Se si sta etichettando un set di dati per il rilevamento oggetti, ogni annotazione nel file COCO contiene anche una matrice di rettangoli di selezione i cui valori sono A sinistra, In alto, Larghezza e Altezza.
"bbox": [
0.11803319477782331,
0.41586723392402375,
0.7765206955096307,
0.3483334397217212
]
Creazione del set di dati
Dopo aver creato le immagini nel contenitore di archiviazione BLOB, è possibile creare il set di dati per il training usando l'API REST o Vision Studio. La richiesta REST sarà simile alla chiamata REST seguente:
curl -X PUT https://<endpoint>/computervision/datasets/<dataset-name>?api-version=<version>\
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: <subscription-key>" \
--data-ascii "
{
'annotationKind':'imageClassification',
'annotationFileUris':['<URI>']
}"
Se si usa Vision Studio, passare al riquadro del modello personalizzato, selezionare la risorsa e creare il set di dati. Da qui è possibile aprire o creare un progetto di etichettatura dei dati di Azure Machine Learning oppure caricare un file COCO esistente. L'esercizio di questo modulo illustra come creare il set di dati in questo modo.
L'uso di Vision Studio consente di connettersi al progetto di etichettatura in Azure Machine Learning invece di specificare il file COCO nella richiesta REST. Gli altri esempi di questo modulo usano Vision Studio, ma se si preferisce usare REST, i relativi esempi sono disponibili nelle pagine della documentazione.