Condividi tramite


Preparare i dati per le attività di visione artificiale con ML automatizzato

SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)

Importante

Il supporto per il training di modelli di visione artificiale con ML automatizzato in Azure Machine Learning è una funzionalità di anteprima pubblica sperimentale. 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.

Questo articolo illustra come preparare i dati delle immagini per il training dei modelli di visione artificiale con ML automatizzato in Azure Machine Learning. Per generare modelli per le attività di visione artificiale con ML automatizzato, è necessario portare i dati delle immagini etichettati come input per il training del modello sotto forma di MLTable.

È possibile creare un oggetto MLTable dai dati di training etichettati in formato JSONL. Se i dati di training etichettati sono in un formato differente, ad esempio Pascal Visual Object Classes (VOC) o COCO, è possibile usare uno script di conversione per convertirli in JSONL e quindi creare un oggetto MLTable. In alternativa, è possibile usare lo strumento di etichettatura dei dati di Azure Machine Learning per etichettare manualmente le immagini. Esportare quindi i dati etichettati da usare per il training del modello di AutoML.

Prerequisiti

Ottenere dati etichettati

Per eseguire il training di modelli di visione artificiale usando AutoML, è necessario ottenere i dati di training etichettati. Le immagini devono essere caricate nel cloud. Le annotazioni delle etichette devono essere in formato JSONL. È possibile usare lo strumento dii etichettatura dei dati di Azure Machine Learning per etichettare i dati, oppure iniziare con i dati di immagine pre-etichettati.

Usare lo strumento di etichettatura dei dati di Azure Machine Learning per etichettare i dati di training

Se i dati non sono pre-etichettati, è possibile usare lo strumento di etichettatura dei dati di Azure Machine Learning per etichettare manualmente le immagini. Questo strumento genera automaticamente i dati necessari per il training nel formato accettato. Per altre informazioni, vedere Configurare un progetto di etichettatura di immagini.

Lo strumento consente di creare, gestire e monitorare le attività di etichettatura dei dati per:

  • Classificazione immagini (multiclasse e multietichetta)
  • Rilevamento oggetti (rettangolo di selezione)
  • Segmentazione istanza (poligono)

Se si dispone già di dati etichettati da usare, esportarli come set di dati di Azure Machine Learning e accedere al set di dati nella scheda Set di dati in Studio di Azure Machine Learning. È possibile passare questo set di dati esportato come input usando il formato azureml:<tabulardataset_name>:<version>. Per altre informazioni, vedere Esportare le etichette.

Ecco un esempio di come passare un set di dati esistente come input per i modelli di visione artificiale di training.

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

training_data:
  path: azureml:odFridgeObjectsTrainingDataset:1
  type: mltable
  mode: direct

Usare i dati di training pre-etichettati dal computer locale

Se si dispone di dati etichettati da usare per eseguire il training del modello, caricare le immagini in Azure. È possibile caricare le immagini nell'archiviazione BLOB di Azure predefinita dell'area di lavoro di Azure Machine Learning. Registrarle come asset di dati. Per altre informazioni, vedere Creare e gestire asset di dati.

Lo script seguente carica i dati dell'immagine nel computer locale nel percorso ./data/odFridgeObjects nell'archivio dati di Archiviazione BLOB di Azure. Crea quindi un nuovo asset di dati con il nome fridge-items-images-object-detection nell'area di lavoro di Azure Machine Learning.

Se esiste già un asset di dati con il nome fridge-items-images-object-detection nell'area di lavoro di Azure Machine Learning, il codice aggiorna il numero di versione dell'asset di dati e lo indirizza al nuovo percorso in cui sono stati caricati i dati dell'immagine.

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Creare un file con estensione yml con la configurazione seguente.

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: ./data/odFridgeObjects
type: uri_folder

Per caricare le immagini come asset di dati, eseguire il comando dell'interfaccia della riga di comando v2 seguente con il percorso del file con estensione yml, il nome dell'area di lavoro, il gruppo di risorse e l'ID sottoscrizione.

az ml data create -f [PATH_TO_YML_FILE] --workspace-name [YOUR_AZURE_WORKSPACE] --resource-group [YOUR_AZURE_RESOURCE_GROUP] --subscription [YOUR_AZURE_SUBSCRIPTION]

Se in un archivio dati esistente sono già presenti dei dati, è possibile crearne un asset di dati. Specificare il percorso dei dati nell'archivio dati anziché il percorso del computer locale. Aggiornare il codice precedente con il frammento di codice seguente.

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Creare un file con estensione yml con la configurazione seguente.

$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: fridge-items-images-object-detection
description: Fridge-items images Object detection
path: azureml://subscriptions/<my-subscription-id>/resourcegroups/<my-resource-group>/workspaces/<my-workspace>/datastores/<my-datastore>/paths/<path_to_image_data_folder>
type: uri_folder

Ottenere quindi le annotazioni delle etichette in formato JSONL. Lo schema dei dati etichettati dipende dall'attività di visione artificiale in questione. Per altre informazioni sullo schema JSONL necessario per ogni tipo di attività, vedere Schemi di dati per eseguire il training di modelli di visione artificiale con Machine Learning automatizzato.

Se i dati di training sono in un formato diverso, ad esempio, Pascal VOC o COCO, degli script helper possono convertire i dati in JSONL. Gli script sono disponibili negli esempi di notebook.

Dopo aver creato il file .jsonl, è possibile registrarlo come asset di dati usando l'interfaccia utente. Assicurarsi di selezionare il tipo stream nella sezione dello schema, come illustrato in questa animazione.

Animazione che mostra come registrare un asset di dati dai file jsonl.

Usare i dati di training pre-etichettati da Archiviazione BLOB di Azure

Se i dati di training etichettati sono presenti in un contenitore nell'archiviazione BLOB di Azure, è possibile accedervi direttamente. Creare un archivio dati in tale contenitore. Per altre informazioni, vedere Creare e gestire asset di dati.

Creare MLTable

Una volta che i dati etichettati sono in formato JSONL, è possibile usarli per creare MLTable come illustrato in questo frammento di codice yaml. MLtable inserisce i dati in un oggetto utilizzabile per il training.

paths:
  - file: ./train_annotations.jsonl
transformations:
  - read_json_lines:
        encoding: utf8
        invalid_lines: error
        include_path_column: false
  - convert_column_types:
      - columns: image_url
        column_type: stream_info

È quindi possibile passare MLTable come input di dati per il processo di training di AutoML. Per altre informazioni, vedere Come configurare AutoML per il training di modelli di visione artificiale.