Per impostazione predefinita, le API di ML Kit utilizzano modelli di machine learning addestrati da Google. Questi modelli sono progettati per essere adatti a una vasta gamma di applicazioni. Tuttavia, alcuni casi d'uso richiedono modelli più mirati. Questo è il motivo per cui alcune API ML Kit ora ti consentono di sostituire i modelli predefiniti con i modelli personalizzati TensorFlow Lite.
Sia l'etichettatura delle immagini che l'API Object Detection & Tracking offrono supporto per i 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 addestrato 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 Machine Learning on-device per indicazioni su tutte le soluzioni e gli strumenti di Google per il machine learning sul dispositivo.
Vantaggi dell'utilizzo del ML Kit con modelli personalizzati
I vantaggi di utilizzare un modello di classificazione delle immagini personalizzato con ML Kit sono:
- API di alto livello facili da usare: non dovrai gestire operazioni di input/output dei modelli di basso livello, gestire la pre-/elaborazione post-immagine o creare una pipeline di elaborazione.
- Non devi preoccuparti di mappare le 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 a nuovi modelli addestrati con TensorFlow, AutoML Vision Edge o TensorFlow Lite Model Maker.
- Supporta i modelli ospitati con Firebase. Riduce le dimensioni degli APK scaricando i modelli on demand. Esegui il push degli aggiornamenti del modello senza ripubblicare l'app ed esegui facilmente test A/B con Firebase Remote Config.
- Ottimizzata per l'integrazione con le API Android Fotocamera.
In particolare per il rilevamento e il rilevamento di oggetti:
- Migliora la precisione della classificazione individuando prima gli oggetti ed esegui il classificatore solo nell'area delle immagini correlate.
- Fornisci un'esperienza interattiva in tempo reale fornendo agli utenti feedback immediati sugli oggetti non appena vengono rilevati e classificati.
Utilizza un modello di classificazione delle immagini preaddestrato
Puoi utilizzare i modelli preaddestrati di TensorFlow Lite, a condizione che soddisfino un insieme di criteri. Tramite TensorFlow Hub offriamo una serie di modelli verificati, realizzati da Google o da altri creator di modelli, che soddisfano questi criteri.
Utilizza un modello pubblicato su TensorFlow Hub
TensorFlow Hub offre una vasta gamma di modelli di classificazione delle immagini preaddestrati, di vari creator, che possono essere utilizzati con le API Image Labeling and Object Detection and Tracking. Segui questi passaggi:
- Scegli un modello dalla raccolta di modelli compatibili con ML Kit.
- Scarica il file .tflite dalla pagina dei dettagli del modello. Se disponibile, scegli un formato di modello con i metadati.
- Segui le nostre guide per l'API Image Labeling o l'API Object Detection and Tracking per raggruppare il file del modello con il 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 si adatta alle tue esigenze, puoi addestrare il tuo modello TensorFlow Lite in diversi modi, alcuni dei quali sono descritti e discussi più in dettaglio di seguito.
Opzioni per addestrare il tuo modello di classificazione delle immagini | |
---|---|
AutoML Vision Edge |
|
Modello creatore TensorFlow Lite |
|
Convertire un modello TensorFlow 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 Object Detection and Tracking API. Queste API supportano anche il download di modelli ospitati con il deployment dei modelli Firebase.
Per scoprire di più su come utilizzare un modello addestrato con AutoML Vision Edge nelle tue app per Android e iOS, segui le guide dei modelli personalizzati per ogni API, a seconda del caso d'uso.
Creazione modelli TensorFlow Lite
La libreria TFLite Model Maker semplifica il processo di adattamento e conversione di un modello di rete neurale TensorFlow in particolari dati di input durante il deployment di questo modello per applicazioni ML on-device. Puoi seguire la pagina Colab per la classificazione delle immagini con TensorFlow Lite Model Maker.
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 caso d'uso.
Modelli creati con il convertitore TensorFlow Lite
Se hai già un modello di classificazione delle immagini TensorFlow, puoi convertirlo utilizzando il convertitore TensorFlow Lite. Assicurati che il modello creato soddisfi i requisiti di compatibilità riportati di seguito.
Per scoprire come utilizzare un modello TensorFlow Lite 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 caso d'uso.
Compatibilità dei modelli TensorFlow Lite
Puoi utilizzare qualsiasi modello di classificazione delle 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 hanno il formato di pixel RGB.
- I dati sono di tipo UINT8 o FLOAT32. Se il tipo di tensore di input è FLOAT32, deve specificare le opzioni NormalizationOptions collegando i metadati.
- Il tensore ha 4 dimensioni : BxHxWxC, dove:
- B è la dimensione del batch. Deve essere 1 (l'inferenza su batch più grandi non è supportata).
- W e H sono la larghezza e l'altezza di input.
- C è il numero di canali previsti. Deve essere 3.
- Il modello deve avere almeno un tensore di output con classi N e due o quattro dimensioni:
- (1xN)
- (1x1x1xN)
- Attualmente sono supportati solo i modelli a testa singola. I modelli multi-head possono produrre risultati imprevisti.
Metadati
Puoi aggiungere i metadati al file TensorFlow Lite come spiegato in Aggiunta di metadati al modello TensorFlow Lite.
Per utilizzare un modello con tensore di input FLOAT32, devi specificare le NormalizationOptions nei metadati.
Ti consigliamo inoltre di collegare questi metadati al tensore di output TensorMetadata:
- Una mappa delle etichette che specifica il nome di ogni classe di output, ad esempio AssociatedFile con tipo TENSOR_AXIS_LABELS (altrimenti possono essere restituiti solo gli indici delle classi di output)
- Una soglia di punteggio predefinita al di sotto della quale i risultati vengono considerati troppo bassi per poter essere restituiti come ProcessUnit con ScoreThresholdingOptions