Preparazione dei dati di addestramento

Preparazione delle immagini

  • Le immagini devono utilizzare un tipo di file supportato (vedi l'elenco sotto).

  • I modelli AutoML Vision sono ottimizzati per le fotografie di oggetti nel mondo reale.

  • I dati di addestramento devono essere il più possibile vicini ai dati su cui si effettuano le previsioni. Ad esempio, se il tuo caso d'uso comprende immagini sfocate e a bassa risoluzione (come quelle di una videocamera di sicurezza), i dati di addestramento devono essere composti da immagini sfocate e a bassa risoluzione. In generale, dovresti anche pensare di offrire più angolazioni, risoluzioni e sfondi per le tue immagini di addestramento.

  • I modelli AutoML Vision non possono prevedere le etichette che gli esseri umani possono assegnare. Quindi, se un essere umano non può essere addestrato ad assegnare etichette guardando l'immagine per 1-2 secondi, il modello probabilmente non potrà essere addestrato a farlo.

  • Consigliamo di aggiungere circa 1000 immagini di addestramento per etichetta. Il valore minimo per etichetta è 10 o 50 per i modelli avanzati. In genere, sono necessari più esempi per etichetta per addestrare modelli con più etichette per immagine e i risultati sono più difficili da interpretare.

  • I seguenti formati di immagine sono supportati durante l'addestramento del modello. La dimensione massima del file è 30 MB

    • JPEG
    • PNG
    • GIF
    • BMP
    • ICO

    I seguenti formati di immagine sono supportati quando si richiede una previsione (esecuzione di query) dal proprio modello. La dimensione massima del file è di 1,5 MB.

    • JPEG
    • PNG
    • GIF
  • Il modello funziona al meglio quando ci sono al massimo 100 volte più immagini per l'etichetta più comune rispetto all'etichetta meno comune. Consigliamo di rimuovere le etichette di frequenza molto bassa.

  • Prendi in considerazione l'idea di includere un'etichetta None_of_the_above e di immagini che non corrispondono a nessuna delle tue etichette definite. Ad esempio, per un set di dati di fiori, includi immagini di fiori esterni alle varietà etichettate ed etichettale come None_of_the_above. Ciò può migliorare la precisione del tuo modello. Tieni presente che, anche se il nome di qualsiasi etichetta funziona, None_of_the_above viene trattato in modo speciale dal sistema e viene sempre visualizzato per ultimo nell'elenco delle etichette nell'interfaccia utente.

Set di dati di addestramento e valutazione

Durante l'addestramento di un modello, i dati in un set di dati vengono suddivisi: un set di dati di addestramento, un set di dati di convalida e un set di dati di test.

Per creare un modello viene utilizzato un set di dati di addestramento. Il modello prova diversi algoritmi e parametri durante la ricerca di pattern nei dati di addestramento. Quando il modello identifica dei pattern, utilizza il set di dati di convalida per testare gli algoritmi e i pattern. Gli algoritmi e i pattern con il miglior rendimento vengono scelti tra quelli identificati durante la fase di addestramento.

Una volta identificati, gli algoritmi e i pattern con le migliori prestazioni vengono testati per verificare la frequenza degli errori, la qualità e la precisione utilizzando il set di dati di test.

Per evitare bias nel modello vengono utilizzati sia un set di dati di convalida che un set di dati di test. Durante la fase di convalida vengono utilizzati parametri del modello ottimali, che possono comportare metriche bias. L'utilizzo del set di dati di test per valutare la qualità del modello dopo la fase di convalida fornisce una valutazione imparziale della qualità del modello.

Per impostazione predefinita, AutoML Vision suddivide il set di dati in modo casuale in 3 set separati:

  • L'80% delle immagini viene utilizzato per l'addestramento.
  • Il 10% delle immagini viene utilizzato per l'ottimizzazione di iperparametri e/o per decidere quando interrompere l'addestramento.
  • Per la valutazione del modello viene utilizzato il 10% delle immagini. Queste immagini non vengono utilizzate nell'addestramento.

Se vuoi specificare a quale set di dati deve appartenere ogni immagine nel tuo file CSV, puoi utilizzare un file .csv come descritto nella prossima sezione

Creare un file CSV con etichette ed URI dell'immagine

Una volta che i tuoi file sono stati caricati con un bucket Cloud Storage nel formato richiesto (gs://bucket-name-vcm), puoi creare un file CSV in cui sono elencati tutti i dati di addestramento e le etichette delle categorie di tali dati. Il file CSV può avere qualsiasi nome file, deve trovarsi nello stesso bucket dei file immagine, avere la codifica UTF-8 e terminare con l'estensione .csv. Il file contiene una riga per ogni immagine del set da caricare, con queste colonne per ogni riga:

  1. Imposta l'assegnazione dei contenuti della riga. Questo campo è facoltativo e può corrispondere a uno dei seguenti valori:

    • TRAIN: utilizza image per addestrare il modello.
    • VALIDATION: utilizza image per convalidare i risultati restituiti dal modello durante l'addestramento.
    • TEST: utilizza image per verificare i risultati del modello dopo l'addestramento.

    Se non specifichi un set per l'immagine in una riga, AutoML Vision lo inserisce automaticamente in uno dei tre set per garantire che ci siano abbastanza contenuti per l'addestramento, la convalida e il test. AutoML Vision utilizza l'80% dei documenti di contenuti per l'addestramento, il 10% per la convalida e il 10% per i test. La dimensione massima di un set di dati di test è 50.000 immagini, anche se il 10% del set di dati totale supera tale valore massimo.

  2. I contenuti da classificare. Questo campo contiene URI di Google Cloud Storage per l'immagine. Gli URI di Google Cloud Storage fanno distinzione tra maiuscole e minuscole.

  3. Un elenco di etichette separate da virgole che identificano in che modo l'immagine è categorizzata. Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi. Puoi includere fino a 20 etichette per ogni immagine. Puoi anche lasciare vuote le etichette per l'etichettatura manuale tramite l'interfaccia utente o il servizio di etichettatura umana.

Ad esempio:

  • Etichettati: gs://my-storage-bucket-vcm/flowers/images/img100.jpg,daisy
  • Senza etichetta: gs://my-storage-bucket-vcm/flowers/images/img403.jpg
  • Più etichette: gs://my-storage-bucket-vcm/flowers/images/img384.jpg,dandelion,tulip,rose
  • Assegnata a un insieme: TEST,gs://my-storage-bucket-vcm/flowers/images/img805.jpg,daisy

Salva i contenuti come file CSV nel bucket di Cloud Storage.

Generazione di un file CSV per le immagini senza etichetta archiviate in Cloud Storage

Se hai già caricato immagini senza etichetta in Cloud Storage e vuoi generarle in un file CSV, esegui questo codice in Cloud Shell:

for f in $(gsutil ls gs://YOUR_BUCKET/YOUR_IMAGES_FOLDER/);
do echo UNASSIGNED,$f;
done >> labels.csv;

Quindi, copia il file CSV generato in un bucket di Google Storage:

gsutil cp labels.csv gs://YOUR_BUCKET/labels.csv

Errori comuni nel file CSV

  • Utilizzo di caratteri Unicode nelle etichette. Ad esempio, i caratteri giapponesi non sono supportati.
  • Utilizzo di spazi e caratteri non alfanumerici nelle etichette.
  • Righe vuote.
  • Colonne vuote (righe con due virgole successive).
  • Maiuscole errate nei percorsi delle immagini di Cloud Storage.
  • Controllo dell'accesso non corretto configurato per i file immagine. Il tuo account di servizio deve avere un accesso in lettura o superiore oppure i file devono essere leggibili pubblicamente.
  • Riferimenti a file non di immagine (ad esempio file PDF o PSD). Analogamente, i file che non sono file immagine ma che sono stati rinominati con un'estensione immagine causeranno un errore.
  • L'URI dell'immagine rimanda a un bucket diverso da quello del progetto corrente. Sono accessibili solo le immagini nel bucket di progetto.
  • File non in formato CSV.