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 di deep learning 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 vedere il codice per esportare i modelli di YOLOv8 nel formato TFLite, cerchiamo di capire 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: Sia le applicazioni Android che quelle iOS con TFLite possono analizzare i feed delle telecamere e i sensori edge-based per rilevare e identificare gli oggetti. TFLite offre anche librerie native per 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 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 TensorFlow Lite nelle applicazioni 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.



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

Commenti