Condividi tramite


Classificazione delle immagini con ML.NET e Windows Machine Learning

Flusso di classificazione delle immagini

Questa guida illustra come eseguire il training di un modello di rete neurale per classificare le immagini degli alimenti usando ML.NET Model Builder, esportare il modello in formato ONNX e distribuire il modello in un'applicazione di Windows Machine Learning in esecuzione localmente in un dispositivo Windows. Non sono necessarie competenze precedenti nell'apprendimento automatico e verranno fornite istruzioni dettagliate per eseguire il processo.

Per informazioni su come compilare ed eseguire il training di un modello con ML.NET Model Builder, è possibile passare a Eseguire il training di un modello.

Se hai un modello e vuoi imparare a creare un'app WinML da zero, naviga all'esercitazione completa sull'app WinML.

Se vuoi ottenere la soluzione predefinita per un'app WinML, puoi clonare il file della soluzione e testarlo subito.

Sceneggiatura

In questa esercitazione si creerà un'applicazione di classificazione degli alimenti di Machine Learning eseguita nei dispositivi Windows. Verrà eseguito il training del modello per riconoscere determinati tipi di modelli per classificare un'immagine di cibo e, quando viene fornita un'immagine, restituirà un tag di classificazione e il valore di confidenza percentuale associato di tale classificazione.

Prerequisiti per l'addestramento del modello

Per compilare ed eseguire il training del modello, usare la ML.NET Model Buider in Visual Studio.

  • Per usare un generatore di modelli di ML.NET è necessario Visual Studio 2019 16.6.1 o versione successiva. È possibile ottenere Visual Studio qui.
  • È necessario un account Azure per eseguire il training di un modello con ML.NET Model Builder nell'area di lavoro di Azure ML. Se non si ha familiarità con Azure, è possibile iscriversi per ottenere un account Azure gratuito.

Annotazioni

Sono disponibili altre informazioni sulle opzioni di iscrizione di Azure e sugli account gratuiti di Azure? Vedere Creare un account Azure.

ML.NET Model Builder è un'estensione grafica intuitiva di Visual Studio, usata per compilare, eseguire il training e distribuire modelli di Machine Learning personalizzati. Usa Machine Learning automatizzato (AutoML) per esplorare diversi algoritmi e impostazioni di Machine Learning per trovare quello più adatto allo scenario.

ML.NET Model Builder viene fornito con Visual Studio versione 16.6.1 o successiva, quando si installa uno dei carichi di lavoro .NET. Assicurarsi che il componente ML.NET Model Builder sia archiviato nel programma di installazione quando si scarica o si modifica Visual Studio. Per verificare se il tuo VS ha i componenti di Generatore modelli ML.NET, vai su Estensioni e seleziona Gestisci estensioni. Digitare Model Builder nella barra di ricerca per esaminare i risultati dell'estensione.

Estensione del generatore di modelli

ML.NET Generatore modelli è attualmente una funzionalità di anteprima. Quindi, per usare lo strumento, in Visual Studio è necessario passare a Strumenti > Opzioni Ambiente > Funzionalità > di anteprima e abilitare ML.NET Generatore modelli:

Abilitare l'estensione del generatore di modelli

Annotazioni

Per altre informazioni su ML.NET Model Builder e su diversi scenari supportati, Vedere la documentazione di Model Builder.

Prerequisiti per la distribuzione di app di Windows ML

Per creare e distribuire un'app Widows ML, sono necessari gli elementi seguenti:

  • Windows 10 versione 1809 (build 17763) o versione successiva. È possibile controllare il numero di versione della build eseguendo winver tramite il comando (Windows logo key + R)Esegui .
  • Windows SDK per la build 17763 o successiva. È possibile ottenere l'SDK qui.
  • Visual Studio 2019 versione 16.6.1 o successiva. È possibile ottenere Visual Studio qui.
  • Estensione Windows ML Code Generator (mlgen) di Visual Studio. Scarica per VS 2019.
  • Se decidi di creare un'app Universal Windows Platform (UWP), dovrai abilitare il workload di sviluppo per la piattaforma UWP in Visual Studio.
  • Dovrai anche abilitare la modalità sviluppatore nel PC

Annotazioni

Le API di Windows ML sono integrate nelle versioni più recenti di Windows 10 (1809 o versioni successive) e Windows Server 2019. Se la piattaforma di destinazione è versioni precedenti di Windows, puoi convertire l'app WinML nel pacchetto NuGet ridistribuibile (Windows 8.1 o versione successiva).

Prepara i dati

È necessario eseguire il training dei modelli di Machine Learning con i dati esistenti. In questa guida userai un set di dati di immagini alimentari di Kaggle Open Datasets. Questo set di dati viene distribuito con la licenza di dominio pubblico.

Importante

Per usare questo set di dati, è necessario rispettare il termine dell'uso del sito Kaggle e dei termini liscence che accompagnano il set di dati Food-11 stesso. Microsoft non garantisce alcuna garanzia o rappresentazione relativa al sito o al set di dati.

Il set di dati ha tre divisioni, ovvero valutazione, training e convalida, e contiene 16643 immagini alimentari raggruppate in 11 principali categorie alimentari. Le immagini nel set di dati di ogni categoria di alimenti vengono inserite in una cartella separata, che rende più conveniente il processo di training del modello.

Scaricare il set di dati qui. Si noti che il set di dati è di circa 1 GB e potrebbe essere richiesto di creare un account nel sito Web Kaggle per scaricare i dati.

Set di dati delle immagini del cibo

Se si vuole, è possibile usare qualsiasi altro set di dati di immagini pertinenti. Come minimo, è consigliabile usare almeno 30 immagini per tag nel set di training iniziale. È anche possibile raccogliere alcune immagini aggiuntive per testare il modello dopo il training.

Assicurarsi inoltre che tutte le immagini di training soddisfino i criteri seguenti:

  • formato .jpg, .png, .bmpo .gif.
  • dimensioni non superiori a 6 MB (4 MB per le immagini di stima).
  • non inferiore a 256 pixel sul bordo più corto; qualsiasi immagine più breve di questa verrà automaticamente ridimensionata dal servizio Visione personalizzata.

Passaggi successivi

Dopo aver ottenuto i prerequisiti ordinati e aver preparato il set di dati, è possibile procedere alla creazione del modello WinML. Nella parte successiva si userà il generatore di modelli ML.NET per creare ed eseguire il training del modello di classificazione.