Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Addestra un modello di etichettatura delle immagini con AutoML Vision Edge

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Per addestrare un modello di etichettatura delle immagini, fornisci ad AutoML Vision Edge un set di immagini e le etichette corrispondenti. AutoML Vision Edge usa questo set di dati per addestrare un nuovo modello nel cloud, che puoi usare per l'etichettatura delle immagini sul dispositivo nella tua app. (Vedi la Panoramica per informazioni generali su questa funzione.)

AutoML Vision Edge è un servizio Google Cloud. L'utilizzo del servizio è soggetto al Contratto di licenza di Google Cloud Platform e ai Termini specifici del servizio e viene fatturato di conseguenza. Per informazioni sulla fatturazione, vedere la pagina Prezzi di AutoML.

Prima di iniziare

1. Assembla i tuoi dati di allenamento

Innanzitutto, è necessario 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. Si noti che AutoML Vision Edge riduce la scalabilità della maggior parte delle immagini durante la preelaborazione, quindi in genere non vi è alcun vantaggio in termini di precisione nel fornire immagini ad altissima risoluzione.

  • Includere almeno 10, e preferibilmente 100 o più, esempi di ciascuna etichetta.

  • Includi più angoli, risoluzioni e sfondi per ciascuna 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 provenienti da una telecamera di sicurezza), i dati di allenamento dovrebbero essere composti da immagini sfocate 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 generalmente non possono 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, il modello probabilmente non può essere addestrato a farlo.

Quando hai le immagini di allenamento pronte, preparale per l'importazione in Firebase. Hai tre opzioni:

Opzione 1: archivio zip strutturato

Organizza le tue immagini di allenamento in directory, ciascuna denominata dopo 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 contenere fino a 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 allenamento su Google Cloud Storage e prepara un file CSV che elenca 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.

Per ulteriori informazioni sulla preparazione del file CSV, vedere Preparazione dei dati di allenamento nella documentazione di Cloud AutoML Vision.

Opzione 3: immagini senza etichetta

Etichetta le tue immagini di allenamento nella console Firebase dopo averle caricate, singolarmente o in un file zip non strutturato. Vedi il passaggio successivo.

2. Allena il tuo modello

Quindi, addestra un modello usando le tue immagini:

  1. Apri la pagina dei set di dati di visione in Google Cloud Console. Seleziona il tuo progetto quando richiesto.

  2. 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 .

  3. Nella scheda Importa del tuo set di dati, carica un archivio zip delle tue immagini di allenamento o un file CSV contenente le posizioni di Cloud Storage in cui le hai caricate. Consulta Assemblare i dati di allenamento .

  4. Al termine dell'attività di importazione, utilizzare la scheda Immagini per verificare i dati di addestramento ed etichettare eventuali immagini senza etichetta.

  5. Nella scheda Allenamento , fare clic su Avvia formazione .

    1. Assegna un nome al modello e seleziona il tipo di modello Edge .

    2. Configurare le seguenti impostazioni di addestramento, che regolano le prestazioni del modello generato:

      Ottimizza il modello per... La configurazione del modello da utilizzare. Puoi addestrare modelli più veloci e più piccoli quando la bassa latenza o le dimensioni ridotte del pacchetto sono importanti, o modelli più lenti e più grandi quando la precisione è più importante.
      Budget dell'ora del 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 di allenamento tipici
      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 assegnare un'etichetta a un'immagine. Spostando il dispositivo di scorrimento della soglia di confidenza , puoi vedere in che modo 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 che sono state etichettate correttamente e il numero di immagini che il modello ha etichettato data la soglia selezionata. Quando un modello ha un'elevata precisione, assegna etichette in modo errato meno spesso (meno falsi positivi).

Recall è il rapporto tra il numero di immagini che sono state 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).

L'ottimizzazione per la precisione o il richiamo dipenderà dal caso d'uso. Per ulteriori informazioni, vedere la guida per principianti di AutoML Vision e la guida di ML inclusivo - AutoML .

Quando trovi una soglia di confidenza che produce metriche con cui ti senti a tuo agio, prendine nota; utilizzerai la soglia di affidabilità 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, puoi distribuire il tuo modello per la previsione online, che esegue il tuo modello nel cloud. Questa opzione è trattata nei documenti Cloud AutoML . I documenti su questo sito trattano le restanti due opzioni.

Pubblica il modello

Pubblicando il modello su Firebase, puoi aggiornare il modello senza rilasciare una nuova versione dell'app e puoi utilizzare Remote Config e A/B Testing per servire dinamicamente diversi modelli a diversi insiemi di utenti.

Se scegli di fornire il modello solo ospitandolo con Firebase e non in bundle con la tua app, puoi ridurre le dimensioni del download iniziale 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. Questo è solitamente il modo più semplice per pubblicare un singolo modello.
  • Pubblica il modello direttamente dal tuo progetto Google Cloud su Firebase utilizzando l'SDK di amministrazione. È possibile utilizzare questo metodo per pubblicare in batch più modelli o per creare pipeline di pubblicazione automatizzate.

Per pubblicare il modello con l' API di gestione del modello di Admin SDK:

  1. Installa e inizializza l'SDK .

  2. Pubblica il modello.

    Sarà necessario 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 di 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 di 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

Associando il tuo modello alla tua app, puoi assicurarti che le funzionalità ML della tua app funzionino ancora quando il modello ospitato da Firebase non è disponibile.

Se pubblichi il modello e lo raggruppa con l'app, l'app utilizzerà l'ultima versione disponibile.

Per scaricare il tuo modello, fai clic su TF Lite nella pagina Test e utilizzo del tuo set di dati.

Prossimi passi

Ora che hai pubblicato o scaricato il modello, scopri come utilizzare il modello nelle tue app iOS+ e Android .