Vai al contenuto

Come esportare in TF GraphDef da YOLOv8 per la distribuzione

Quando si distribuiscono modelli di computer vision all'avanguardia, come YOLOv8, in ambienti diversi, si possono incontrare 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

Dopo aver esportato il file YOLOv8 modello al modello TF GraphDef il passaggio successivo è la distribuzione. Il primo passaggio principale e consigliato per l'esecuzione di un TF GraphDef modello consiste nell'utilizzare il metodo YOLO("model.pb"), come illustrato in precedenza nel frammento di codice di utilizzo.

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.

DOMANDE FREQUENTI

Come posso esportare un modello YOLOv8 nel formato TF GraphDef ?

Ultralytics YOLOv8 i modelli possono essere esportati nel formato TensorFlow GraphDef (TF GraphDef ) senza problemi. Questo formato fornisce una rappresentazione serializzata e indipendente dalla piattaforma del modello, ideale per essere distribuito in ambienti diversi come quelli mobile e web. Per esportare un modello YOLOv8 in formato TF GraphDef , segui i seguenti passaggi:

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 informazioni sulle diverse opzioni di esportazione, visita la documentazione diUltralytics sull'esportazione dei modelli.

Quali sono i vantaggi dell'utilizzo di TF GraphDef per la distribuzione del modello YOLOv8 ?

Esportare i modelli di YOLOv8 nel formato TF GraphDef offre molteplici vantaggi, tra cui:

  1. Indipendenza dalla piattaforma: TF GraphDef offre un formato indipendente dalla piattaforma, consentendo ai modelli di essere distribuiti in vari ambienti, compresi i browser web e i dispositivi mobili.
  2. Ottimizzazioni: Il formato consente diverse ottimizzazioni, come il ripiegamento delle costanti, la quantizzazione e le trasformazioni dei grafi, che migliorano l'efficienza dell'esecuzione e riducono l'utilizzo della memoria.
  3. Accelerazione hardware: I modelli in formato TF GraphDef possono sfruttare gli acceleratori hardware come GPU, TPU e chip AI per aumentare le prestazioni.

Per saperne di più sui vantaggi, consulta la sezioneTF GraphDef della nostra documentazione.

Perché dovrei utilizzare Ultralytics YOLOv8 rispetto ad altri modelli di rilevamento degli oggetti?

Ultralytics YOLOv8 offre numerosi vantaggi rispetto ad altri modelli come YOLOv5 e YOLOv7. Alcuni dei principali vantaggi sono:

  1. Prestazioni all'avanguardia: YOLOv8 offre velocità e precisione eccezionali per il rilevamento, la segmentazione e la classificazione degli oggetti in tempo reale.
  2. Facilità d'uso: Dispone di un'API di facile utilizzo per la formazione, la convalida, la previsione e l'esportazione dei modelli, che la rende accessibile sia ai principianti che agli esperti.
  3. Ampia compatibilità: Supporta diversi formati di esportazione, tra cui ONNX, TensorRT, CoreML e TensorFlow, per offrire opzioni di distribuzione versatili.

Scopri ulteriori dettagli nella nostra introduzione a YOLOv8.

Come posso distribuire un modello YOLOv8 su un hardware specializzato utilizzando TF GraphDef ?

Una volta esportato un modello YOLOv8 nel formato TF GraphDef , puoi distribuirlo su diverse piattaforme hardware specializzate. Gli scenari tipici di distribuzione includono:

  • TensorFlow Serving: Utilizza TensorFlow Serving per una distribuzione scalabile dei modelli negli ambienti di produzione. Supporta la gestione dei modelli e un servizio efficiente.
  • Dispositivi mobili: Converti i modelli di TF GraphDef in TensorFlow Lite, ottimizzati per i dispositivi mobili e incorporati, consentendo l'inferenza sul dispositivo.
  • Browser web: Distribuisci i modelli utilizzando TensorFlow.js per l'inferenza lato client nelle applicazioni web.
  • Acceleratori AI: Sfrutta le TPU e i chip AI personalizzati per accelerare l'inferenza.

Per informazioni dettagliate, consulta la sezione Opzioni di distribuzione.

Dove posso trovare le soluzioni ai problemi più comuni durante l'esportazione dei modelli di YOLOv8 ?

Per la risoluzione dei problemi più comuni legati all'esportazione dei modelli di YOLOv8 , Ultralytics fornisce guide e risorse complete. Se riscontri problemi durante l'installazione o l'esportazione dei modelli, consulta:

Queste risorse dovrebbero aiutarti a risolvere la maggior parte dei problemi legati all'esportazione e alla distribuzione dei modelli di YOLOv8 .



Creato 2024-03-22, Aggiornato 2024-07-05
Autori: glenn-jocher (5), RizwanMunawar (1), Burhan-Q (1), abirami-vina (1)

Commenti