Guida all'esportazione del modello YOLO26 in TFLite per il deployment
Il deployment di modelli di computer vision su dispositivi edge o embedded richiede un formato in grado di garantire prestazioni senza interruzioni.
Il formato di esportazione TensorFlow Lite o TFLite ti consente di ottimizzare i tuoi modelli Ultralytics YOLO26 per attività come object detection e image classification in applicazioni basate su dispositivi edge. In questa guida, vedremo i passaggi per convertire i tuoi modelli nel formato TFLite, facilitando le prestazioni dei tuoi modelli su diversi dispositivi edge.
Perché dovresti esportare in TFLite?
Introdotto da Google nel maggio 2017 come parte del framework TensorFlow, TensorFlow Lite, o TFLite in breve, è un framework di deep learning open source progettato per l'inferenza on-device, nota anche come edge computing. Fornisce agli sviluppatori gli strumenti necessari per eseguire i propri modelli addestrati su dispositivi mobili, embedded e IoT, oltre che su computer tradizionali.
TensorFlow Lite è compatibile con un'ampia gamma di piattaforme, tra cui Linux embedded, Android, iOS e microcontrollori (MCU). Esportare il tuo modello in TFLite rende le tue applicazioni più veloci, più affidabili e capaci di funzionare offline.
Caratteristiche principali dei modelli TFLite
I modelli TFLite offrono un'ampia gamma di funzionalità chiave che abilitano il machine learning on-device aiutando gli sviluppatori a eseguire i propri modelli su dispositivi mobili, embedded ed edge:
-
Ottimizzazione on-device: TFLite ottimizza per il machine learning on-device, riducendo la latenza elaborando i dati localmente, migliorando la privacy evitando la trasmissione di dati personali e riducendo al minimo la dimensione del modello per risparmiare spazio.
-
Supporto per più piattaforme: TFLite offre un'ampia compatibilità di piattaforma, supportando Android, iOS, Linux embedded e microcontrollori.
-
Supporto per diversi linguaggi: TFLite è compatibile con vari linguaggi di programmazione, inclusi Java, Swift, Objective-C, C++ e Python.
-
Alte prestazioni: Raggiunge prestazioni superiori tramite l'accelerazione hardware e l'ottimizzazione del modello.
Opzioni di deployment in TFLite
Prima di esaminare il codice per esportare i modelli YOLO26 nel formato TFLite, capiamo come vengono solitamente utilizzati i modelli TFLite.
TFLite offre varie opzioni di deployment on-device per modelli di machine learning, tra cui:
- Deployment con Android e iOS: Le applicazioni Android e iOS con TFLite possono analizzare i feed della fotocamera e i sensori edge-based per rilevare e identificare oggetti. TFLite offre anche librerie iOS native scritte in Swift e Objective-C. Il diagramma dell'architettura qui sotto mostra il processo di deployment di un modello addestrato su piattaforme Android e iOS utilizzando TensorFlow Lite.
-
Implementazione con Linux embedded: Se l'esecuzione di inferenze su un Raspberry Pi utilizzando la Guida Ultralytics non soddisfa i requisiti di velocità per il tuo caso d'uso, puoi utilizzare un modello TFLite esportato per accelerare i tempi di inferenza. Inoltre, è possibile migliorare ulteriormente le prestazioni utilizzando un dispositivo Coral Edge TPU.
-
Deployment con microcontrollori: I modelli TFLite possono essere distribuiti anche su microcontrollori e altri dispositivi con solo pochi kilobyte di memoria. Il runtime principale occupa appena 16 KB su un Arm Cortex M3 ed è in grado di eseguire molti modelli di base. Non richiede supporto per sistemi operativi, librerie C o C++ standard o allocazione dinamica della memoria.
Esporta in TFLite: Converti il tuo modello YOLO26
Puoi migliorare l'efficienza di esecuzione del modello on-device e ottimizzare le prestazioni convertendo i tuoi modelli nel formato TFLite.
Installazione
Per installare i pacchetti necessari, esegui:
# Install the required package for YOLO26
pip install ultralyticsPer istruzioni dettagliate e best practice relative al processo di installazione, controlla la nostra guida all'installazione di Ultralytics. Se durante l'installazione dei pacchetti richiesti per YOLO26 riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.
Utilizzo
Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione nativamente, rendendo semplice integrarli nel tuo flusso di lavoro di distribuzione preferito. Puoi visualizzare l'elenco completo dei formati di esportazione supportati e delle opzioni di configurazione per scegliere la configurazione migliore per la tua applicazione.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo26n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo26n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")Argomenti di esportazione
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
format | str | 'tflite' | Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione. |
imgsz | int o tuple | 640 | Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche. |
half | bool | False | Abilita la quantizzazione FP16 (precisione dimezzata), riducendo le dimensioni del modello e potenzialmente velocizzando l'inferenza sull'hardware supportato. |
int8 | bool | False | Attiva la quantizzazione INT8, comprimendo ulteriormente il modello e velocizzando l'inferenza con una perdita minima di accuratezza, principalmente per i dispositivi edge. |
nms | bool | False | Aggiunge la Non-Maximum Suppression (NMS), essenziale per un post-elaborazione del rilevamento accurato ed efficiente. |
batch | int | 1 | Specifica la dimensione dell'inferenza batch del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict. |
data | str | 'coco8.yaml' | Percorso del file di configurazione del dataset (default: coco8.yaml), essenziale per la quantizzazione. |
fraction | float | 1.0 | Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente di calibrare su un sottoinsieme dell'intero dataset, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset. |
device | str | None | Specifica il dispositivo per l'esportazione: CPU (device=cpu), MPS per Apple silicon (device=mps). |
Per ulteriori dettagli sul processo di esportazione, visita la pagina della documentazione di Ultralytics sull'esportazione.
Deployment dei modelli TFLite YOLO26 esportati
Dopo aver esportato correttamente i tuoi modelli Ultralytics YOLO26 in formato TFLite, ora puoi distribuirli. Il primo passaggio, principale e consigliato, per eseguire un modello TFLite è utilizzare il metodo YOLO("model.tflite"), come illustrato nel frammento di codice di utilizzo precedente. Tuttavia, per istruzioni approfondite sul deployment dei tuoi modelli TFLite in vari altri contesti, dai un'occhiata alle seguenti risorse:
-
Android: Una guida rapida per integrare TensorFlow Lite nelle applicazioni Android, fornendo passaggi facili da seguire per configurare ed eseguire modelli di machine learning.
-
iOS: Dai un'occhiata a questa guida dettagliata per gli sviluppatori sull'integrazione e il deployment di modelli TensorFlow Lite nelle applicazioni iOS, che offre istruzioni e risorse passo dopo passo.
-
Esempi end-to-end: Questa pagina fornisce una panoramica di vari esempi di TensorFlow Lite, mostrando applicazioni pratiche e tutorial progettati per aiutare gli sviluppatori a implementare TensorFlow Lite nei propri progetti di machine learning su dispositivi mobili ed edge.
Riepilogo
In questa guida, ci siamo concentrati su come esportare nel formato TFLite. Convertendo i tuoi modelli Ultralytics YOLO26 nel formato modello TFLite, puoi migliorare l'efficienza e la velocità dei modelli YOLO26, rendendoli più efficaci e adatti agli ambienti di edge computing.
Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TFLite.
Inoltre, se sei curioso riguardo ad altre integrazioni Ultralytics YOLO26, dai un'occhiata alla nostra pagina della guida all'integrazione. Troverai molte informazioni utili e approfondimenti lì.
FAQ
Come posso esportare un modello YOLO26 nel formato TFLite?
Per esportare un modello YOLO26 nel formato TFLite, puoi utilizzare la libreria Ultralytics. Per prima cosa, installa il pacchetto richiesto utilizzando:
pip install ultralyticsQuindi, utilizza il seguente frammento di codice per esportare il tuo modello:
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo26n_float32.tflite'Per gli utenti CLI, puoi farlo con:
yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.tflite'Per maggiori dettagli, visita la guida all'esportazione Ultralytics.
Quali sono i vantaggi dell'utilizzo di TensorFlow Lite per il deployment dei modelli YOLO26?
TensorFlow Lite (TFLite) è un framework open source di deep learning progettato per l'inferenza on-device, rendendolo ideale per il deployment di modelli YOLO26 su dispositivi mobili, embedded e IoT. I vantaggi chiave includono:
- Ottimizzazione on-device: Riduci al minimo la latenza e migliora la privacy elaborando i dati localmente.
- Compatibilità della piattaforma: Supporta Android, iOS, Linux embedded e MCU.
- Prestazioni: Utilizza l'accelerazione hardware per ottimizzare la velocità e l'efficienza del modello.
Per saperne di più, dai un'occhiata alla guida di TFLite.
È possibile eseguire modelli YOLO26 TFLite su Raspberry Pi?
Sì, puoi eseguire modelli YOLO26 TFLite su Raspberry Pi per migliorare le velocità di inferenza. Per prima cosa, esporta il tuo modello nel formato TFLite come spiegato sopra. Quindi, utilizza uno strumento come TensorFlow Lite Interpreter per eseguire il modello sul tuo Raspberry Pi.
Per ulteriori ottimizzazioni, potresti prendere in considerazione l'utilizzo di Coral Edge TPU. Per i passaggi dettagliati, fai riferimento alla nostra guida al deployment su Raspberry Pi e alla guida all'integrazione di Edge TPU.
Posso utilizzare modelli TFLite su microcontrollori per le previsioni YOLO26?
Sì, TFLite supporta il deployment su microcontrollori con risorse limitate. Il runtime principale di TFLite richiede solo 16 KB di memoria su un Arm Cortex M3 ed è in grado di eseguire modelli YOLO26 di base. Questo lo rende adatto al deployment su dispositivi con potenza computazionale e memoria minime.
Per iniziare, visita la guida di TFLite Micro per microcontrollori.
Quali piattaforme sono compatibili con i modelli YOLO26 esportati in TFLite?
TensorFlow Lite offre un'ampia compatibilità di piattaforma, consentendoti di eseguire il deployment dei modelli YOLO26 su una vasta gamma di dispositivi, inclusi:
- Android e iOS: Supporto nativo tramite le librerie Android e iOS di TFLite.
- Linux embedded: Ideale per computer a scheda singola come Raspberry Pi.
- Microcontrollori: Adatto per MCU con risorse limitate.
Per ulteriori informazioni sulle opzioni di deployment, consulta la nostra guida al deployment dettagliata.
Come posso risolvere i problemi comuni durante l'esportazione del modello YOLO26 in TFLite?
Se riscontri errori durante l'esportazione di modelli YOLO26 in TFLite, le soluzioni comuni includono:
- Controlla la compatibilità dei pacchetti: Assicurati di utilizzare versioni compatibili di Ultralytics e TensorFlow. Fai riferimento alla nostra guida all'installazione.
- Supporto del modello: Verifica che il modello YOLO26 specifico supporti l'esportazione TFLite controllando la pagina della documentazione sull'esportazione di Ultralytics.
- Problemi di quantizzazione: Quando utilizzi la quantizzazione INT8, assicurati che il percorso del tuo dataset sia specificato correttamente nel parametro
data.
Per ulteriori suggerimenti sulla risoluzione dei problemi, visita la nostra guida ai problemi comuni.