Vai al contenuto

Come esportare in TF GraphDef da YOLOv8 per la distribuzione

Quando devi distribuire modelli di computer vision all'avanguardia, come YOLOv8, in ambienti diversi, potresti incorrere in problemi di compatibilità. Google TensorFlow GraphDef , o TF GraphDef , offre una soluzione fornendo una rappresentazione serializzata e indipendente dalla piattaforma del tuo modello. Utilizzando il formato del modello TF GraphDef , puoi distribuire il tuo modello YOLOv8 in ambienti in cui l'ecosistema completo TensorFlow potrebbe non essere disponibile, come ad esempio i dispositivi mobili o l'hardware specializzato.

In questa guida ti spiegheremo passo dopo passo come esportare i tuoi modelli nel formato Ultralytics YOLOv8 modelli nel formato TF GraphDef . Convertendo il tuo modello, potrai semplificare la distribuzione e utilizzare le funzionalità di computer vision di YOLOv8 in una gamma più ampia di applicazioni e piattaforme.

TensorFlow GraphDef

Perché dovresti esportare su TF GraphDef ?

TF GraphDef è un potente componente dell'ecosistema TensorFlow sviluppato da Google. Può essere utilizzato per ottimizzare e distribuire modelli come YOLOv8. L'esportazione in TF GraphDef ci permette di spostare i modelli dalla ricerca alle applicazioni reali. Permette ai modelli di essere eseguiti in ambienti privi dell'intero framework di TensorFlow .

Il formato GraphDef rappresenta il modello come un grafico di calcolo serializzato. Questo permette di utilizzare varie tecniche di ottimizzazione come il ripiegamento delle costanti, la quantizzazione e le trasformazioni del grafo. Queste ottimizzazioni garantiscono un'esecuzione efficiente, un utilizzo ridotto della memoria e una maggiore velocità di inferenza.

GraphDef I modelli possono utilizzare acceleratori hardware come GPU, TPU e chip di intelligenza artificiale, ottenendo significativi guadagni di prestazioni per la pipeline di inferenza YOLOv8 . Il formato TF GraphDef crea un pacchetto autonomo con il modello e le sue dipendenze, semplificando la distribuzione e l'integrazione in diversi sistemi.

Caratteristiche principali dei modelli TF GraphDef

TF GraphDef offre caratteristiche distinte per semplificare l'implementazione e l'ottimizzazione dei modelli.

Ecco una panoramica delle sue caratteristiche principali:

  • Serializzazione dei modelli: TF GraphDef fornisce un modo per serializzare e memorizzare i modelli TensorFlow in un formato indipendente dalla piattaforma. Questa rappresentazione serializzata ti permette di caricare ed eseguire i tuoi modelli senza la base di codice originale di Python , rendendo più semplice la distribuzione.

  • Ottimizzazione dei grafi: TF GraphDef consente di ottimizzare i grafi computazionali. Queste ottimizzazioni possono aumentare le prestazioni snellendo il flusso di esecuzione, riducendo le ridondanze e adattando le operazioni a un hardware specifico.

  • Flessibilità di distribuzione: I modelli esportati nel formato GraphDef possono essere utilizzati in diversi ambienti, tra cui dispositivi con risorse limitate, browser web e sistemi con hardware specializzato. Questo apre la possibilità di una distribuzione più ampia dei tuoi modelli TensorFlow .

  • Focus sulla produzione: GraphDef è progettato per la distribuzione in produzione. Supporta un'esecuzione efficiente, funzioni di serializzazione e ottimizzazioni in linea con i casi d'uso reali.

Opzioni di distribuzione con TF GraphDef

Prima di addentrarci nel processo di esportazione dei modelli di YOLOv8 in TF GraphDef , diamo un'occhiata ad alcune situazioni tipiche di distribuzione in cui viene utilizzato questo formato.

Ecco come puoi distribuire TF GraphDef in modo efficiente su diverse piattaforme.

  • TensorFlow Servire: Questo framework è stato progettato per distribuire i modelli di TensorFlow in ambienti di produzione. TensorFlow Serving offre la gestione dei modelli, il versioning e l'infrastruttura per un efficiente servizio di modelli su scala. È un modo semplice per integrare i modelli basati su GraphDef nei servizi web o nelle API di produzione.

  • Dispositivi mobili e incorporati: Con strumenti come TensorFlow Lite, puoi convertire i modelli di TF GraphDef in formati ottimizzati per smartphone, tablet e vari dispositivi embedded. I tuoi modelli possono quindi essere utilizzati per l'inferenza sul dispositivo, dove l'esecuzione avviene localmente, offrendo spesso un aumento delle prestazioni e funzionalità offline.

  • Browser web: TensorFlow.js consente di distribuire i modelli TF GraphDef direttamente all'interno dei browser web. Apre la strada ad applicazioni di rilevamento degli oggetti in tempo reale eseguite sul lato client, sfruttando le funzionalità di YOLOv8 attraverso JavaScript.

  • Hardware specializzato: la natura di TF GraphDef 's platform-agnostic permette di puntare su hardware personalizzato, come acceleratori e TPU (Tensor Processing Unit). Questi dispositivi possono offrire vantaggi in termini di prestazioni per i modelli ad alta intensità di calcolo.

Esportare i modelli di YOLOv8 in TF GraphDef

Puoi convertire il tuo modello di rilevamento degli oggetti YOLOv8 nel formato TF GraphDef , che è compatibile con diversi sistemi, per migliorarne le prestazioni su tutte le piattaforme.

Installazione

Per installare il pacchetto richiesto, 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 TF GraphDef format
model.export(format='pb')  # creates 'yolov8n.pb'

# Load the exported TF GraphDef model
tf_graphdef_model = YOLO('yolov8n.pb')

# Run inference
results = tf_graphdef_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to TF GraphDef format
yolo export model=yolov8n.pt format=pb  # creates 'yolov8n.pb'

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

Per maggiori dettagli sulle opzioni di esportazione supportate, visita la pagina di documentazione diUltralytics sulle opzioni di distribuzione.

Distribuzione di modelli esportati YOLOv8 TF GraphDef

Una volta esportato il modello YOLOv8 nel formato TF GraphDef , il passo successivo è la distribuzione. Il primo passo principale e consigliato per eseguire un modello TF GraphDef è utilizzare il metodo YOLO("model.pb"), come mostrato in precedenza nel frammento di codice d'uso.

Tuttavia, per maggiori informazioni sulla distribuzione dei modelli TF GraphDef , consulta le seguenti risorse:

  • TensorFlow Servizio: Una guida su TensorFlow Serving che insegna come distribuire e servire i modelli di apprendimento automatico in modo efficiente negli ambienti di produzione.

  • TensorFlow Lite: Questa pagina descrive come convertire i modelli di apprendimento automatico in un formato ottimizzato per l'inferenza sul dispositivo con TensorFlow Lite.

  • TensorFlow.js: Una guida sulla conversione dei modelli che insegna come convertire i modelli di TensorFlow o Keras nel formato TensorFlow.js per utilizzarli nelle applicazioni web.

Sommario

In questa guida abbiamo spiegato come esportare i modelli Ultralytics YOLOv8 nel formato TF GraphDef . In questo modo potrai distribuire in modo flessibile i tuoi modelli ottimizzati YOLOv8 in diversi ambienti.

Per ulteriori dettagli sull'utilizzo, visita la documentazione ufficiale di TF GraphDef .

Per maggiori informazioni sull'integrazione di Ultralytics YOLOv8 con altre piattaforme e framework, non dimenticare di dare un'occhiata alla nostra guida all'integrazione. Contiene ottime risorse e approfondimenti per aiutarti a sfruttare al meglio YOLOv8 nei tuoi progetti.



Creato 2024-03-22, Aggiornato 2024-04-03
Autori: RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)

Commenti