Per addestrare un modello di etichettatura delle immagini, fornisci ad AutoML Vision Edge un set di immagini e le etichette corrispondenti. AutoML Vision Edge utilizza questo set di dati per addestrare un nuovo modello nel cloud, che puoi utilizzare per l'etichettatura delle immagini sul dispositivo nella tua app. (Vedi Panoramica per informazioni generali su questa funzione.)
AutoML Vision Edge è un servizio Google Cloud. L'utilizzo del servizio è soggetto al Contratto di licenza e ai Termini specifici del servizio di Google Cloud Platform e viene fatturato di conseguenza. Per informazioni sulla fatturazione, consulta la pagina dei prezzi di AutoML.
Prima di iniziare
Se non disponi già di un progetto Firebase o Google Cloud, creane uno nella console Firebase .
Acquisisci familiarità con le linee guida presentate in Inclusive ML guide - AutoML .
Se desideri solo provare AutoML Vision Edge e non disponi dei tuoi dati di addestramento, scarica un set di dati di esempio come uno dei seguenti:
- Set di dati di esempio di immagini di fiori ufficiali di TensorFlow
- Questo set di dati sull'alfabeto della lingua dei segni americana (ASL).
Puoi trovare altri set di dati ospitati su Kaggle .
1. Assembla i tuoi dati di allenamento
Innanzitutto, devi mettere insieme un set di dati di addestramento di immagini etichettate. Tieni a mente le seguenti linee guida:
Le immagini devono essere in uno dei seguenti formati: JPEG, PNG, GIF, BMP, ICO.
Ogni immagine deve essere di 30 MB o inferiore. Tieni presente che AutoML Vision Edge esegue il downscaling della maggior parte delle immagini durante la pre-elaborazione, quindi in genere non c'è alcun vantaggio in termini di precisione nel fornire immagini ad altissima risoluzione.
Includi almeno 10, e preferibilmente 100 o più, esempi di ciascuna etichetta.
Includi più angolazioni, risoluzioni e sfondi per ogni etichetta.
I dati di addestramento dovrebbero essere il più vicino possibile ai dati su cui devono essere fatte le previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate e a bassa risoluzione (come quelle di una telecamera di sicurezza), i tuoi dati di addestramento dovrebbero essere composti da immagini sfocate e a bassa risoluzione.
I modelli generati da AutoML Vision Edge sono ottimizzati per fotografie di oggetti nel mondo reale. Potrebbero non funzionare bene per raggi X, disegni a mano, documenti scansionati, ricevute e così via.
Inoltre, i modelli non possono generalmente prevedere etichette che gli esseri umani non possono assegnare. Quindi, se un essere umano non può assegnare etichette guardando l'immagine per 1-2 secondi, è probabile che nemmeno il modello possa essere addestrato a farlo.
Quando hai pronte le immagini di addestramento, preparale per l'importazione in Firebase. Hai tre opzioni:
Opzione 1: archivio zip strutturato
Organizza le tue immagini di addestramento in directory, ognuna con il nome di un'etichetta e contenente immagini che sono esempi di quell'etichetta. Quindi, comprimi la struttura della directory in un archivio zip.
I nomi delle directory in questo archivio zip possono avere una lunghezza massima di 32 caratteri ASCII e possono contenere solo caratteri alfanumerici e il carattere di sottolineatura ( _
).
Per esempio:
my_training_data.zip |____accordion | |____001.jpg | |____002.jpg | |____003.jpg |____bass_guitar | |____hofner.gif | |____p-bass.png |____clavier |____well-tempered.jpg |____well-tempered (1).jpg |____well-tempered (2).jpg
Opzione 2: Cloud Storage con indice CSV
Carica le tue immagini di addestramento su Google Cloud Storage e prepara un file CSV che elenchi l'URL di ogni immagine e, facoltativamente, le etichette corrette per ogni immagine. Questa opzione è utile quando si utilizzano set di dati molto grandi.
Ad esempio, carica le tue immagini su Cloud Storage e prepara un file CSV come il seguente:
gs://your-training-data-bucket/001.jpg,accordion gs://your-training-data-bucket/002.jpg,accordion gs://your-training-data-bucket/003.jpg,accordion gs://your-training-data-bucket/hofner.gif,bass_guitar gs://your-training-data-bucket/p-bass.png,bass_guitar gs://your-training-data-bucket/well-tempered.jpg,clavier gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier
Le immagini devono essere archiviate in un bucket che fa parte del progetto Google Cloud corrispondente del tuo progetto Firebase.
Consulta Preparazione dei dati di addestramento nella documentazione di Cloud AutoML Vision per ulteriori informazioni sulla preparazione del file CSV.
Opzione 3: immagini senza etichetta
Etichetta le tue immagini di addestramento nella console Firebase dopo averle caricate, singolarmente o in un file zip non strutturato. Vedere il passaggio successivo.
2. Allena il tuo modello
Successivamente, addestra un modello utilizzando le tue immagini:
Apri la pagina Vision Datasets in Google Cloud Console. Seleziona il tuo progetto quando richiesto.
Fare clic su Nuovo set di dati , fornire un nome per il set di dati, selezionare il tipo di modello che si desidera addestrare e fare clic su Crea set di dati .
Nella scheda Importa del set di dati, carica un archivio ZIP delle immagini di addestramento o un file CSV contenente le posizioni di Cloud Storage in cui le hai caricate. Vedere Assemblare i dati di addestramento .
Al termine dell'attività di importazione, utilizzare la scheda Immagini per verificare i dati di addestramento ed etichettare eventuali immagini senza etichetta.
Nella scheda Addestra , fai clic su Inizia formazione .
Assegna un nome al modello e seleziona il tipo di modello Edge .
Configura le seguenti impostazioni di addestramento, che regolano le prestazioni del modello generato:
Ottimizza il modello per... La configurazione del modello da usare. Puoi addestrare modelli più veloci e più piccoli quando la bassa latenza o le dimensioni ridotte del pacchetto sono importanti oppure modelli più lenti e più grandi quando la precisione è più importante. Budget ore nodo Il tempo massimo, in ore di calcolo, da dedicare all'addestramento del modello. Più tempo di addestramento si traduce generalmente in un modello più accurato.
Si noti che l'addestramento può essere completato in meno del tempo specificato se il sistema determina che il modello è ottimizzato e l'addestramento aggiuntivo non migliorerebbe la precisione. Ti vengono fatturate solo le ore effettivamente utilizzate.
Tempi tipici di allenamento Set molto piccoli 1 ora 500 immagini 2 ore 1.000 immagini 3 ore 5.000 immagini 6 ore 10.000 immagini 7 ore 50.000 immagini 11 ore 100.000 immagini 13 ore 1.000.000 di immagini 18 ore
3. Valuta il tuo modello
Al termine dell'addestramento, puoi fare clic sulla scheda Valuta per visualizzare le metriche delle prestazioni per il modello.
Un uso importante di questa pagina è determinare la soglia di confidenza che funziona meglio per il tuo modello. La soglia di confidenza è la confidenza minima che il modello deve avere per poter assegnare un'etichetta a un'immagine. Spostando il dispositivo di scorrimento Soglia di confidenza , puoi vedere in che modo le diverse soglie influiscono sulle prestazioni del modello. Le prestazioni del modello vengono misurate utilizzando due metriche: precisione e richiamo .
Nel contesto della classificazione delle immagini, la precisione è il rapporto tra il numero di immagini etichettate correttamente e il numero di immagini etichettate dal modello data la soglia selezionata. Quando un modello ha un'elevata precisione, assegna etichette in modo errato meno spesso (meno falsi positivi).
Il richiamo è il rapporto tra il numero di immagini etichettate correttamente e il numero di immagini con contenuto che il modello avrebbe dovuto essere in grado di etichettare. Quando un modello ha un richiamo elevato, non riesce ad assegnare alcuna etichetta meno spesso (meno falsi negativi).
Se ottimizzi per la precisione o il richiamo dipenderà dal tuo caso d'uso. Consulta la guida per principianti di AutoML Vision e la guida al machine learning inclusivo - AutoML per ulteriori informazioni.
Quando trovi una soglia di confidenza che produce metriche con cui ti senti a tuo agio, prendine nota; utilizzerai la soglia di confidenza per configurare il modello nella tua app. (Puoi utilizzare questo strumento in qualsiasi momento per ottenere un valore di soglia appropriato.)
4. Pubblica o scarica il tuo modello
Se sei soddisfatto delle prestazioni del modello e desideri utilizzarlo in un'app, hai tre opzioni, tra le quali puoi scegliere qualsiasi combinazione: distribuire il modello per la previsione online, pubblicare il modello su Firebase o scaricare il modello e raggrupparlo con la tua app.
Distribuisci il modello
Nella scheda Test e utilizzo del set di dati è possibile distribuire il modello per la previsione online, che esegue il modello nel cloud. Questa opzione è trattata nei documenti di Cloud AutoML . I documenti su questo sito trattano le restanti due opzioni.
Pubblica il modello
Pubblicando il modello in Firebase, puoi aggiornare il modello senza rilasciare una nuova versione dell'app e puoi utilizzare Remote Config e A/B Testing per offrire dinamicamente diversi modelli a diversi gruppi di utenti.
Se scegli di fornire il modello solo ospitandolo con Firebase e non raggruppandolo con la tua app, puoi ridurre le dimensioni iniziali del download della tua app. Tieni presente, tuttavia, che se il modello non è in bundle con la tua app, qualsiasi funzionalità relativa al modello non sarà disponibile fino a quando la tua app non scaricherà il modello per la prima volta.
Per pubblicare il tuo modello, puoi utilizzare uno dei due metodi:
- Scarica il modello TF Lite dalla pagina Test e utilizzo del tuo set di dati in Google Cloud Console, quindi carica il modello nella pagina Modello personalizzato della console Firebase. Di solito questo è il modo più semplice per pubblicare un singolo modello.
- Pubblica il modello direttamente dal tuo progetto Google Cloud su Firebase utilizzando Admin SDK. È possibile utilizzare questo metodo per pubblicare in batch diversi modelli o per creare pipeline di pubblicazione automatizzate.
Per pubblicare il modello con l' API di gestione del modello Admin SDK:
Pubblica il modello.
Dovrai specificare l'identificatore di risorsa del modello, che è una stringa simile al seguente esempio:
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
Il numero di progetto del bucket Cloud Storage che contiene il modello. Questo potrebbe essere il tuo progetto Firebase o un altro progetto Google Cloud. Puoi trovare questo valore nella pagina Impostazioni della console Firebase o nella dashboard di Google Cloud Console. MODEL_ID
L'ID del modello, ottenuto dall'API AutoML Cloud. Pitone
# First, import and initialize the SDK. # Get a reference to the AutoML model source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format( # See above for information on these values. project_number, model_id )) # Create the model object tflite_format = ml.TFLiteFormat(model_source=source) model = ml.Model( display_name="example_model", # This is the name you will use from your app to load the model. tags=["examples"], # Optional tags for easier management. model_format=tflite_format) # Add the model to your Firebase project and publish it new_model = ml.create_model(model) new_model.wait_for_unlocked() ml.publish_model(new_model.model_id)
Node.js
// First, import and initialize the SDK. (async () => { // Get a reference to the AutoML model. See above for information on these // values. const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`; // Create the model object and add the model to your Firebase project. const model = await ml.createModel({ displayName: 'example_model', // This is the name you use from your app to load the model. tags: ['examples'], // Optional tags for easier management. tfliteModel: { automlModel: automlModel }, }); // Wait for the model to be ready. await model.waitForUnlocked(); // Publish the model. await ml.publishModel(model.modelId); process.exit(); })().catch(console.error);
Scarica e raggruppa il modello con la tua app
Raggruppando il tuo modello con la tua app, puoi assicurarti che le funzionalità ML della tua app continuino a funzionare quando il modello ospitato da Firebase non è disponibile.
Se pubblichi il modello e lo aggreghi insieme alla tua app, l'app utilizzerà l'ultima versione disponibile.
Per scaricare il tuo modello, fai clic su TF Lite nella pagina Test e utilizzo del set di dati.
Prossimi passi
Ora che hai pubblicato o scaricato il modello, scopri come utilizzare il modello nelle tue app iOS+ e Android .