Vai al contenuto

Guida all'esportazione del modello YOLOv8 in TFLite per la distribuzione

Logo TFLite

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 Ultralytics YOLOv8 modelli per attività come il rilevamento di oggetti e la classificazione di immagini in applicazioni basate su dispositivi edge. In questa guida ti illustreremo i passaggi per convertire i tuoi modelli nel formato TFLite, in modo da facilitare le prestazioni dei tuoi modelli su vari dispositivi edge.

Perché dovresti 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 per l'apprendimento profondo progettato per l'inferenza sui dispositivi, nota anche come edge computing. Offre agli sviluppatori gli strumenti necessari per eseguire i loro 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. Esportare il tuo modello in TFLite rende le tue 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 per 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 YOLOv8 al formato TFLite, capiamo come vengono normalmente utilizzati i modelli TFLite.

TFLite offre diverse opzioni di implementazione sul dispositivo 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 di architettura qui sotto mostra il processo di distribuzione di un modello addestrato sulle piattaforme Android e iOS utilizzando TensorFlow Lite.

Architettura

  • Implementazione con Embedded Linux: Se l'esecuzione di inferenze su un Raspberry Pi utilizzando la GuidaUltralytics 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 .

  • Distribuzione con i 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é l'allocazione dinamica della memoria.

Esportazione in TFLite: Conversione del modello YOLOv8

Puoi migliorare l'efficienza dell'esecuzione dei modelli sul dispositivo e ottimizzare le prestazioni convertendoli in formato TFLite.

Installazione

Per installare i pacchetti necessari, esegui:

Installazione

# Install the required package for YOLOv8
pip install ultralytics

Per istruzioni dettagliate e buone pratiche relative al processo di installazione, consulta la nostra Guida all'installazione diUltralytics . Durante l'installazione dei pacchetti necessari per YOLOv8, se dovessi incontrare delle difficoltà, consulta la nostra guida ai problemi comuni per trovare soluzioni e suggerimenti.

Utilizzo

Prima di immergerti nelle istruzioni d'uso, è importante notare che tutti i modelli diUltralytics YOLOv8 sono disponibili per l'esportazione, ma qui puoi assicurarti che il modello che hai scelto supporti la funzionalità di esportazione.

Utilizzo

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolov8n_float32.tflite'

# Load the exported TFLite model
tflite_model = YOLO("yolov8n_float32.tflite")

# Run inference
results = tflite_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TFLite format
yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

# Run inference with the exported model
yolo predict model='yolov8n_float32.tflite' source='https://ultralytics.com/images/bus.jpg'

Per maggiori dettagli sul processo di esportazione, visita la pagina di documentazione diUltralytics sull'esportazione.

Distribuzione dei modelli esportati di YOLOv8 TFLite

Dopo aver esportato con successo i tuoi modelli Ultralytics YOLOv8 in formato TFLite, ora puoi distribuirli. Il primo passo principale e consigliato per eseguire un modello TFLite è quello di utilizzare il metodo YOLO("model.tflite"), come indicato nel precedente frammento di codice. Tuttavia, per istruzioni approfondite su come distribuire i tuoi modelli TFLite in varie altre impostazioni, dai un'occhiata alle seguenti risorse:

  • Android: Una guida rapida per l'integrazione di TensorFlow Lite nelle applicazioni di Android , che fornisce passaggi facili da seguire per impostare ed eseguire modelli di apprendimento automatico.

  • iOS: Dai un'occhiata a questa guida dettagliata per gli sviluppatori sull'integrazione e la distribuzione dei modelli di TensorFlow Lite nelle applicazioni di iOS , che 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 e tutorial pensati per aiutare gli sviluppatori a implementare TensorFlow Lite nei loro progetti di apprendimento automatico su dispositivi mobili ed edge.

Sommario

In questa guida ci siamo concentrati su come esportare in formato TFLite. Convertendo i tuoi modelli Ultralytics YOLOv8 in formato TFLite, puoi migliorare l'efficienza e la velocità dei modelli YOLOv8 , 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 di conoscere le altre integrazioni di Ultralytics YOLOv8 , dai un'occhiata alla nostra guida alle integrazioni. Troverai tonnellate di informazioni utili e approfondimenti che ti aspettano.

DOMANDE FREQUENTI

Come faccio a esportare un modello YOLOv8 in formato TFLite?

Per esportare un modello YOLOv8 in formato TFLite, puoi utilizzare la libreria Ultralytics . Per prima cosa, installa il pacchetto necessario utilizzando:

pip install ultralytics

Quindi, utilizza il seguente frammento di codice per esportare il tuo modello:

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TFLite format
model.export(format="tflite")  # creates 'yolov8n_float32.tflite'

Per gli utenti di CLI , puoi ottenere questo risultato con:

yolo export model=yolov8n.pt format=tflite  # creates 'yolov8n_float32.tflite'

Per maggiori dettagli, visita la guida all'esportazione diUltralytics .

Quali sono i vantaggi dell'utilizzo di TensorFlow Lite per la distribuzione del modello YOLOv8 ?

TensorFlow Lite (TFLite) è un framework open-source di deep learning progettato per l'inferenza on-device, ideale per l'implementazione di modelli YOLOv8 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 a livello locale.
  • Compatibilità con la 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ù, consulta la guida TFLite.

È possibile eseguire i modelli di YOLOv8 TFLite su Raspberry Pi?

Sì, puoi eseguire i modelli YOLOv8 TFLite su Raspberry Pi per migliorare la velocità di inferenza. Per prima cosa, esporta il tuo modello in formato TFLite come spiegato qui. Poi, 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 passi dettagliati, consulta la nostra guida all'implementazione di Raspberry Pi.

Posso utilizzare i modelli TFLite sui microcontrollori per le previsioni di YOLOv8 ?

Sì, TFLite supporta l'implementazione su microcontrollori con risorse limitate. Il core runtime di TFLite richiede solo 16 KB di memoria su un Arm Cortex M3 e può eseguire i modelli di base di YOLOv8 . Questo lo rende adatto a essere utilizzato su dispositivi con una potenza di calcolo e una memoria minime.

Per iniziare, visita la guida TFLite Micro per microcontrollori.

Quali piattaforme sono compatibili con i modelli YOLOv8 esportati da TFLite?

TensorFlow Lite offre un'ampia compatibilità con le piattaforme, consentendoti di distribuire i modelli YOLOv8 su un'ampia gamma di dispositivi, tra cui:

  • Android e iOS: Supporto nativo attraverso le librerie TFLite Android e iOS .
  • Embedded Linux: Ideale per computer a scheda singola come Raspberry Pi.
  • Microcontrollori: Adatto per MCU con risorse limitate.

Per maggiori informazioni sulle opzioni di distribuzione, consulta la nostra guida dettagliata alla distribuzione.

Come posso risolvere i problemi più comuni durante l'esportazione del modello YOLOv8 in TFLite?

Se riscontri degli errori durante l'esportazione dei modelli di YOLOv8 in TFLite, le soluzioni più comuni sono le seguenti:

  • Verifica la compatibilità dei pacchetti: Assicurati di utilizzare versioni compatibili di Ultralytics e TensorFlow. Consulta la nostra guida all'installazione.
  • Supporto del modello: Verifica che il modello specifico di YOLOv8 supporti l'esportazione TFLite controllando qui.

Per ulteriori suggerimenti sulla risoluzione dei problemi, visita la nostra guida ai problemi comuni.



Creato 2024-03-01, Aggiornato 2024-07-05
Autori: glenn-jocher (6), abirami-vina (1)

Commenti