Guida all'esportazione del modello YOLO11 in TFLite per l'implementazione
L'implementazione 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 consente di ottimizzare i modelli per compiti Ultralytics YOLO11 modelli per compiti quali il rilevamento di oggetti e la classificazione di immagini in applicazioni basate su dispositivi edge. In questa guida illustreremo i passaggi per convertire i vostri modelli nel formato TFLite, facilitando così le prestazioni dei vostri modelli su vari dispositivi edge.
Perché esportare in TFLite?
Introdotto da Google nel maggio 2017 come parte del suo framework TensorFlow , TensorFlow Lite, o TFLite in breve, è un framework open-source di deep learning progettato per l'inferenza sui dispositivi, nota anche come edge computing. Fornisce agli sviluppatori gli strumenti necessari per eseguire i 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 MCU. L'esportazione del modello in TFLite rende le applicazioni più veloci, affidabili e in grado di funzionare offline.
Caratteristiche principali dei modelli TFLite
I modelli TFLite offrono un'ampia gamma di funzionalità chiave che consentono l'apprendimento automatico on-device, aiutando gli sviluppatori a eseguire i loro modelli su dispositivi mobili, embedded ed edge:
-
Ottimizzazione sul dispositivo: TFLite ottimizza la ML on-device, riducendo la latenza grazie all'elaborazione dei dati a livello locale, migliorando la privacy grazie all'assenza di trasmissione di dati personali e riducendo al minimo le dimensioni del modello per risparmiare spazio.
-
Supporto di più piattaforme: TFLite offre un'ampia compatibilità con le piattaforme, supportando Android, iOS, Linux embedded e microcontrollori.
-
Supporto di diversi linguaggi: TFLite è compatibile con diversi linguaggi di programmazione, tra cui Java, Swift, Objective-C, C++ e Python.
-
Prestazioni elevate: Raggiunge prestazioni superiori grazie all'accelerazione hardware e all'ottimizzazione dei modelli.
Opzioni di distribuzione in TFLite
Prima di esaminare il codice per l'esportazione dei modelli di YOLO11 nel formato TFLite, cerchiamo di capire come vengono normalmente utilizzati i modelli TFLite.
TFLite offre diverse opzioni di distribuzione on-device per i modelli di apprendimento automatico, tra cui:
- Distribuzione con Android e iOS: entrambe le applicazioni Android e iOS con TFLite possono analizzare i feed delle telecamere e dei sensori basati sui bordi per rilevare e identificare gli oggetti. TFLite offre anche librerie native iOS scritte in Swift e Objective-C. Il diagramma dell'architettura sottostante mostra il processo di distribuzione di un modello addestrato sulle piattaforme Android e iOS utilizzando TensorFlow Lite.
-
Implementazione con Embedded Linux: Se l'esecuzione di inferenze su un Raspberry Pi utilizzando la guidaUltralytics non soddisfa i requisiti di velocità per il caso d'uso, è possibile utilizzare un modello TFLite esportato per accelerare i tempi di inferenza. Inoltre, è possibile migliorare ulteriormente le prestazioni utilizzando un dispositivo Coral Edge TPU .
-
Distribuzione con microcontrollori: I modelli TFLite possono essere distribuiti anche su microcontrollori e altri dispositivi con pochi kilobyte di memoria. Il core runtime sta in 16 KB su un Arm Cortex M3 e può eseguire molti modelli di base. Non richiede il supporto del sistema operativo, né librerie standard C o C++, né allocazione di memoria dinamica.
Esportazione in TFLite: Conversione del modello YOLO11
È possibile migliorare l'efficienza dell'esecuzione dei modelli sul dispositivo e ottimizzare le prestazioni convertendoli in formato TFLite.
Installazione
Per installare i pacchetti richiesti, eseguire:
Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consultare la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLO11, se si incontrano difficoltà, consultare la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.
Utilizzo
Prima di immergersi nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLO11 sono disponibili per l'esportazione, ma è possibile assicurarsi che il modello selezionato supporti la funzionalità di esportazione qui.
Utilizzo
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
# Load the exported TFLite model
tflite_model = YOLO("yolo11n_float32.tflite")
# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
Per maggiori dettagli sul processo di esportazione, visitare la pagina di documentazioneUltralytics sull'esportazione.
Distribuzione dei modelli esportati YOLO11 TFLite
Dopo aver esportato con successo i modelli Ultralytics YOLO11 in formato TFLite, è ora possibile distribuirli. Il primo passo principale e consigliato per eseguire un modello TFLite è utilizzare il metodo YOLO("model.tflite"), come indicato nel precedente frammento di codice d'uso. Tuttavia, per istruzioni approfondite su come distribuire i modelli TFLite in varie altre impostazioni, consultare le seguenti risorse:
-
Android: Una guida rapida per l'integrazione di TensorFlow Lite nelle applicazioni di Android , che fornisce passaggi facili da seguire per l'impostazione e l'esecuzione di modelli di apprendimento automatico.
-
iOS: Questa guida dettagliata per gli sviluppatori sull'integrazione e la distribuzione dei modelli di TensorFlow Lite nelle applicazioni di iOS offre istruzioni e risorse passo dopo passo.
-
Esempi end-to-end: Questa pagina offre una panoramica di vari esempi di TensorFlow Lite, mostrando applicazioni pratiche ed esercitazioni progettate per aiutare gli sviluppatori a implementare TensorFlow Lite nei loro progetti di apprendimento automatico su dispositivi mobili ed edge.
Sintesi
In questa guida ci siamo concentrati su come esportare in formato TFLite. Convertendo i modelli Ultralytics YOLO11 in formato TFLite, è possibile migliorare l'efficienza e la velocità dei modelli YOLO11 , rendendoli più efficaci e adatti agli ambienti di edge computing.
Per ulteriori dettagli sull'uso, visitate la documentazione ufficiale di TFLite.
Inoltre, se siete curiosi di conoscere altre integrazioni di Ultralytics YOLO11 , non dimenticate di consultare la nostra guida alle integrazioni. Troverete tonnellate di informazioni e approfondimenti utili.
FAQ
Come si esporta un modello YOLO11 in formato TFLite?
Per esportare un modello YOLO11 in formato TFLite, è possibile utilizzare la libreria Ultralytics . Per prima cosa, installare il pacchetto richiesto usando:
Quindi, utilizzare il seguente frammento di codice per esportare il modello:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TFLite format
model.export(format="tflite") # creates 'yolo11n_float32.tflite'
Per gli utenti di CLI , è possibile ottenere questo risultato con:
Per maggiori dettagli, visitate la guida all'esportazione diUltralytics .
Quali sono i vantaggi dell'utilizzo di TensorFlow Lite per ladistribuzione del modello YOLO11 ?
TensorFlow Lite (TFLite) è un framework open-source di deep learning progettato per l'inferenza on-device, ideale per l'implementazione di modelli YOLO11 su dispositivi mobili, embedded e IoT. I vantaggi principali includono:
- Ottimizzazione sul dispositivo: Ridurre al minimo la latenza e migliorare la privacy elaborando i dati localmente.
- Compatibilità di piattaforma: Supporta Android, iOS, Linux integrato e MCU.
- Prestazioni: Utilizza l'accelerazione hardware per ottimizzare la velocità e l'efficienza del modello.
Per saperne di più, consultate la guida TFLite.
È possibile eseguire i modelli YOLO11 TFLite su Raspberry Pi?
Sì, è possibile eseguire i modelli YOLO11 TFLite su Raspberry Pi per migliorare la velocità di inferenza. Per prima cosa, esportare il modello in formato TFLite come spiegato qui. Quindi, utilizzare uno strumento come TensorFlow Lite Interpreter per eseguire il modello sul Raspberry Pi.
Per ulteriori ottimizzazioni, si può considerare l'uso di Coral Edge TPU. Per i passaggi dettagliati, consultare la nostra guida all'installazione di Raspberry Pi.
È possibile utilizzare i modelli TFLite sui microcontrollori per le previsioni di YOLO11 ?
Sì, TFLite supporta la distribuzione su microcontrollori con risorse limitate. Il core runtime di TFLite richiede solo 16 KB di memoria su un Arm Cortex M3 ed è in grado di eseguire i modelli di base di YOLO11 . Ciò lo rende adatto all'impiego su dispositivi con potenza di calcolo e memoria minime.
Per iniziare, visitate la guida TFLite Micro per microcontrollori.
Quali piattaforme sono compatibili con i modelli YOLO11 esportati da TFLite?
TensorFlow Lite offre un'ampia compatibilità con le piattaforme, consentendo di distribuire i modelli YOLO11 su un'ampia gamma di dispositivi, tra cui:
- Android e iOS: supporto nativo attraverso le librerie TFLite Android e iOS .
- Linux integrato: Ideale per computer a scheda singola come Raspberry Pi.
- Microcontrollori: Adatto per MCU con risorse limitate.
Per ulteriori informazioni sulle opzioni di distribuzione, consultate la nostra guida dettagliata alla distribuzione.
Come si risolvono i problemi più comuni durante l'esportazione del modello YOLO11 in TFLite?
Se si riscontrano errori durante l'esportazione dei modelli YOLO11 in TFLite, le soluzioni più comuni sono le seguenti:
- Verificare la compatibilità dei pacchetti: Assicurarsi di utilizzare versioni compatibili di Ultralytics e TensorFlow. Consultare la nostra guida all'installazione.
- Supporto del modello: Verificare che il modello specifico di YOLO11 supporti l'esportazione TFLite .
Per ulteriori suggerimenti sulla risoluzione dei problemi, visitate la nostra guida ai problemi comuni.