Modelli personalizzati con ML Kit

Per impostazione predefinita, le API di ML Kit utilizzano modelli di machine learning addestrati da Google. Questi modelli sono progettati per coprire una vasta gamma di applicazioni. Tuttavia, alcuni casi d'uso richiedono modelli più mirati. Per questo motivo alcune API ML Kit ora consentono di sostituire i modelli predefiniti con modelli TensorFlow Lite personalizzati.

Sia l'API Image Labeling che l'API Object Detection & Tracking offrono supporto per modelli di classificazione delle immagini personalizzati. Sono compatibili con una selezione di modelli preaddestrati di alta qualità su TensorFlow Hub o con il tuo modello personalizzato addestrati con TensorFlow, AutoML Vision Edge o TensorFlow Lite Model Maker.

Se hai bisogno di una soluzione personalizzata per altri domini o casi d'uso, visita la pagina relativa al machine learning sul dispositivo per avere indicazioni su tutte le soluzioni e gli strumenti di Google per il machine learning sul dispositivo.

Vantaggi dell'utilizzo di ML Kit con modelli personalizzati

I vantaggi dell'utilizzo di un modello di classificazione delle immagini personalizzato con ML Kit sono:

  • API di alto livello facili da utilizzare: non hai bisogno di gestire input/output di modelli di basso livello, gestire la pre-elaborazione/post-elaborazione delle immagini o la creazione di una pipeline di elaborazione.
  • Non devi preoccuparti della mappatura delle etichette, ML Kit estrae le etichette dai metadati del modello TFLite ed esegue la mappatura al posto tuo.
  • Supporta modelli personalizzati da un'ampia gamma di origini, dai modelli preaddestrati pubblicati su TensorFlow Hub ai nuovi modelli addestrati con TensorFlow, AutoML Vision Edge o Model Maker di TensorFlow Lite.
  • Supporta i modelli ospitati su Firebase. Riduce le dimensioni degli APK scaricando i modelli on demand. Esegui il push degli aggiornamenti dei modelli senza ripubblicare l'app ed esegui semplici test A/B con Firebase Remote Config.
  • Ottimizzato per l'integrazione con le API Fotocamera di Android.

In particolare per il rilevamento e il monitoraggio degli oggetti:

  • Migliora la precisione della classificazione individuando prima gli oggetti ed eseguendo il classificatore solo sull'area dell'immagine correlata.
  • Offri un'esperienza interattiva in tempo reale fornendo agli utenti un feedback immediato sugli oggetti mentre vengono rilevati e classificati.

Usa un modello di classificazione delle immagini preaddestrato

Puoi utilizzare modelli TensorFlow Lite preaddestrati, a condizione che soddisfino una serie di criteri. Tramite TensorFlow Hub offriamo una serie di modelli verificati, da Google o da altri creatori di modelli, che soddisfano questi criteri.

Usa un modello pubblicato su TensorFlow Hub

TensorFlow Hub offre un'ampia gamma di modelli di classificazione delle immagini preaddestrati, di vari creatori di modelli, che possono essere utilizzati con le API Image Labeling e Object Detection and Tracking. Segui questi passaggi.

  1. Scegli un modello dalla raccolta di modelli compatibili con ML Kit.
  2. Scarica il file del modello .tflite dalla pagina dei dettagli del modello. Se disponibile, scegli un formato del modello con i metadati.
  3. Consulta le nostre guide relative all'API Image Labeling o all'API Object Detection and Tracking per includere un file del modello nel tuo progetto e utilizzarlo nella tua applicazione Android o iOS.

Addestra il tuo modello di classificazione delle immagini

Se nessun modello di classificazione delle immagini preaddestrato soddisfa le tue esigenze, esistono vari modi per addestrare il tuo modello TensorFlow Lite. Alcuni dei quali sono descritti in dettaglio di seguito.

Opzioni per addestrare il proprio modello di classificazione delle immagini
AutoML Vision Edge
  • Offerto tramite AI di Google Cloud
  • Crea modelli di classificazione delle immagini all'avanguardia
  • Valuta facilmente rendimento e dimensioni
Model Maker TensorFlow Lite
  • Riaddestra un modello (Transfer Learning), richiede meno tempo e meno dati rispetto all'addestramento di un modello da zero
Converti un modello TensorFlow in TensorFlow Lite
  • Addestra un modello con TensorFlow, quindi convertilo in TensorFlow Lite

AutoML Vision Edge

I modelli di classificazione delle immagini addestrati utilizzando AutoML Vision Edge sono supportati dai modelli personalizzati nelle API Image Labeling e API Object Detection and Tracking. Queste API supportano anche il download dei modelli ospitati con il deployment del modello Firebase.

Per saperne di più su come utilizzare un modello addestrato con AutoML Vision Edge nelle tue app per Android e iOS, segui le guide ai modelli personalizzati per ogni API, in base al tuo caso d'uso.

Model Maker TensorFlow Lite

La libreria TFLite Model Maker semplifica il processo di adattamento e conversione di un modello di rete neurale TensorFlow in dati di input specifici durante il deployment di questo modello per applicazioni ML on-device. Puoi seguire la classificazione di Colab per le immagini con Model Maker di TensorFlow Lite.

Per saperne di più su come utilizzare un modello addestrato con Model Maker nelle tue app per Android e iOS, segui le nostre guide per l'API Image Labeling o l'API Object Detection and Tracking, a seconda del tuo caso d'uso.

Modelli creati utilizzando il convertitore TensorFlow Lite

Se hai già un modello di classificazione di immagini TensorFlow, puoi convertirlo utilizzando il convertitore TensorFlow Lite. Assicurati che il modello creato soddisfi i requisiti di compatibilità riportati di seguito.

Per saperne di più su come utilizzare un modello TensorFlow Lite nelle app per Android e iOS, consulta le nostre guide per l'API Image Labeling o l'API Object Detection and Tracking, a seconda del caso d'uso.

Compatibilità del modello TensorFlow Lite

Puoi utilizzare qualsiasi modello di classificazione di immagini TensorFlow Lite preaddestrato, a condizione che soddisfi i seguenti requisiti:

Tensori

  • Il modello deve avere un solo tensore di input con i seguenti vincoli:
    • I dati sono in formato pixel RGB.
    • I dati sono di tipo UINT8 o FLOAT32. Se il tipo di tensore di input è FLOAT32, deve specificare il valore NormalizationOptions collegando i metadati.
    • Il tensore ha 4 dimensioni : BxHxWxC, dove:
      • B è la dimensione del batch. Deve essere 1 (l'inferenza su batch di grandi dimensioni non è supportata).
      • W e H sono la larghezza e l'altezza dell'input.
      • "C" è il numero di canali previsti. Deve essere 3.
  • Il modello deve avere almeno un tensore di output con classi N e 2 o 4 dimensioni:
    • (1xN)
    • (1x1x1xN)
  • Attualmente sono completamente supportati solo i modelli a testa singola. I modelli multi-head possono generare risultati imprevisti.

Metadati

Puoi aggiungere metadati al file TensorFlow Lite come spiegato in Aggiungere metadati al modello TensorFlow Lite.

Per utilizzare un modello con il tensore di input FLOAT32, devi specificare il valore NormalizationOptions nei metadati.

Ti consigliamo inoltre di collegare questi metadati al tensore di output TensorMetadata:

  • Una mappa di etichette che specifica il nome di ogni classe di output, ad esempio un AssociatedFile di tipo TENSOR_AXIS_LABELS (in caso contrario possono essere restituiti solo gli indici numerici delle classi di output)
  • Una soglia di punteggio predefinita al di sotto della quale i risultati sono considerati con affidabilità troppo bassa per essere restituiti, come una ProcessUnit con ScoreThresholdingOptions