Vai al contenuto

Una guida all'esportazione del modello YOLO26 in TFLite per la distribuzione

Framework di distribuzione edge TensorFlow

La distribuzione di modelli di computer vision su dispositivi edge o embedded richiede un formato che possa garantire prestazioni ottimali.

Il formato di esportazione TensorFlow Lite o TFLite consente di ottimizzare i modelli Ultralytics YOLO26 per attività come il rilevamento di oggetti e la classificazione di immagini in applicazioni basate su dispositivi edge. In questa guida, illustreremo i passaggi per convertire i modelli nel formato TFLite, facilitando le prestazioni dei modelli su vari dispositivi edge.

Perché dovresti esportare in TFLite?

Introdotto da Google nel maggio 2017 come parte del loro framework TensorFlow, TensorFlow Lite, o TFLite in breve, è un framework open-source di deep learning progettato per l'inferenza on-device, noto anche come edge computing. Fornisce agli sviluppatori gli strumenti necessari per eseguire i loro modelli addestrati su dispositivi mobili, embedded e IoT, così come sui computer tradizionali.

TensorFlow Lite è compatibile con un'ampia gamma di piattaforme, tra cui Linux embedded, Android, iOS e microcontrollori (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 una vasta gamma di funzionalità chiave che consentono il machine learning on-device, aiutando gli sviluppatori a eseguire i propri modelli su dispositivi mobili, embedded e edge:

  • Ottimizzazione On-device: TFLite ottimizza per l'ML on-device, riducendo la latenza elaborando i dati localmente, migliorando la privacy non trasmettendo dati personali e riducendo al minimo le dimensioni del modello per risparmiare spazio.

  • Supporto multi piattaforma: TFLite offre un'ampia compatibilità con le piattaforme, supportando Android, iOS, Linux embedded e microcontrollori.

  • Supporto linguistico diversificato: TFLite è compatibile con vari linguaggi di programmazione, tra cui Java, Swift, Objective-C, C++ e python.

  • Alte Prestazioni: Ottiene prestazioni superiori grazie all'accelerazione hardware e all'ottimizzazione del modello.

Opzioni di implementazione in TFLite

Prima di esaminare il codice per l'esportazione dei modelli YOLO26 nel formato TFLite, cerchiamo di comprendere come vengono normalmente utilizzati i modelli TFLite.

TFLite offre diverse opzioni di implementazione on-device per i modelli di machine learning, tra cui:

  • Distribuzione con Android e iOS: Sia le applicazioni Android che iOS con TFLite possono analizzare i feed e i sensori della telecamera edge-based per detect e identificare gli oggetti. TFLite offre anche librerie iOS native scritte in Swift e Objective-C. Il diagramma dell'architettura sottostante mostra il processo di distribuzione di un modello addestrato su piattaforme Android e iOS utilizzando TensorFlow Lite.

Architettura di implementazione TensorFlow per dispositivi mobili

  • Implementazione con Embedded Linux: Se l'esecuzione di inferenze su un Raspberry Pi utilizzando la Guida Ultralytics 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 microcontrollori: I modelli TFLite possono anche essere distribuiti su microcontrollori e altri dispositivi con solo pochi kilobyte di memoria. Il runtime principale si adatta a soli 16 KB su un Arm Cortex M3 e può eseguire molti modelli di base. Non richiede il supporto del sistema operativo, alcuna libreria C o C++ standard o allocazione dinamica della memoria.

Esportazione in TFLite: Conversione del tuo modello YOLO26

Puoi migliorare l'efficienza dell'esecuzione del modello sul dispositivo e ottimizzare le prestazioni convertendo i tuoi modelli nel formato TFLite.

Installazione

Per installare i pacchetti richiesti, esegui:

Installazione

# Install the required package for YOLO26
pip install ultralytics

Per istruzioni dettagliate e best practice relative al processo di installazione, consulta la nostra guida all'installazione di Ultralytics. Durante l'installazione dei pacchetti richiesti per YOLO26, se riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Utilizzo

Tutti i modelli Ultralytics YOLO26 sono progettati per supportare l'esportazione out-of-the-box, rendendo facile integrarli nel flusso di lavoro di deployment preferito. È possibile visualizzare l'elenco completo dei formati di esportazione e delle opzioni di configurazione supportati per scegliere la configurazione migliore per la propria applicazione.

Utilizzo

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

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

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

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

Argomenti di esportazione

ArgomentoTipoPredefinitoDescrizione
formatstr'tflite'Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione.
imgszint oppure tuple640Dimensione dell'immagine desiderata per l'input del modello. Può essere un numero intero per immagini quadrate o una tupla (height, width) per dimensioni specifiche.
halfboolFalseAbilita la quantizzazione FP16 (mezza precisione), riducendo le dimensioni del modello e potenzialmente accelerando l'inferenza su hardware supportato.
int8boolFalseAttiva la quantizzazione INT8, comprimendo ulteriormente il modello e accelerando l'inferenza con una perdita di accuratezza minima, principalmente per i dispositivi edge.
nmsboolFalseAggiunge la Non-Maximum Suppression (NMS), essenziale per una post-elaborazione del detect accurata ed efficiente.
batchint1Specifica la dimensione del batch di inferenza del modello di esportazione o il numero massimo di immagini che il modello esportato elaborerà contemporaneamente in modalità predict .
datastr'coco8.yaml'Percorso del dataset file di configurazione (predefinito: coco8.yaml), essenziale per la quantizzazione.
fractionfloat1.0Specifica la frazione del dataset da utilizzare per la calibrazione della quantizzazione INT8. Consente la calibrazione su un sottoinsieme del dataset completo, utile per esperimenti o quando le risorse sono limitate. Se non specificato con INT8 abilitato, verrà utilizzato l'intero dataset.
devicestrNoneSpecifica il dispositivo per l'esportazione: CPU (device=cpu), MPS per Apple silicon (device=mps).

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

Distribuzione di modelli YOLO26 TFLite esportati

Dopo aver esportato con successo i modelli Ultralytics YOLO26 nel formato TFLite, è ora possibile distribuirli. Il primo passo principale e raccomandato per eseguire un modello TFLite è utilizzare il YOLO("model.tflite") method, come indicato nel precedente frammento di codice di utilizzo. Tuttavia, per istruzioni approfondite sulla distribuzione dei 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 la configurazione e l'esecuzione di modelli di machine learning.

  • iOS: Dai un'occhiata a questa guida dettagliata per gli sviluppatori sull'integrazione e la distribuzione di modelli TensorFlow Lite in applicazioni iOS, che offre istruzioni e risorse dettagliate.

  • Esempi End-To-End: Questa pagina fornisce una panoramica di vari esempi di TensorFlow Lite, mostrando applicazioni pratiche e tutorial progettati per aiutare gli sviluppatori a implementare TensorFlow Lite nei loro progetti di machine learning su dispositivi mobili e edge.

Riepilogo

In questa guida, ci siamo concentrati su come esportare nel formato TFLite. Convertendo i modelli Ultralytics YOLO26 nel formato modello TFLite, è possibile migliorare l'efficienza e la velocità dei modelli YOLO26, rendendoli più efficaci e adatti agli ambienti di edge computing.

Per ulteriori dettagli sull'utilizzo, visitare la documentazione ufficiale di TFLite.

Inoltre, se siete curiosi di conoscere altre integrazioni Ultralytics YOLO26, consultate la nostra pagina della guida all'integrazione. Lì troverete molte informazioni utili e approfondimenti.

FAQ

Come si esporta un modello YOLO26 in formato TFLite?

Per esportare un modello YOLO26 nel formato TFLite, è possibile utilizzare la libreria Ultralytics. Per prima cosa, installare il pacchetto richiesto utilizzando:

pip install ultralytics

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

from ultralytics import YOLO

# Load the YOLO26 model
model = YOLO("yolo26n.pt")

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

Per gli utenti CLI, è possibile farlo con:

yolo export model=yolo26n.pt format=tflite # creates 'yolo26n_float32.tflite'

Per maggiori dettagli, visita la guida all'esportazione di Ultralytics.

Quali sono i vantaggi dell'utilizzo di TensorFlow Lite per la distribuzione di modelli YOLO26?

TensorFlow Lite (TFLite) è un framework di deep learning open-source progettato per l'inferenza su dispositivo, rendendolo ideale per la distribuzione di modelli YOLO26 su dispositivi mobili, embedded e IoT. I principali vantaggi includono:

  • Ottimizzazione on-device: riduci al minimo la latenza e migliora la privacy elaborando i dati localmente.
  • Compatibilità della 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 modelli YOLO26 TFLite su Raspberry Pi?

Sì, è possibile eseguire modelli YOLO26 TFLite su Raspberry Pi per migliorare le velocità di inferenza. Per prima cosa, esportare il modello nel formato TFLite come spiegato sopra. Quindi, utilizzare uno strumento come TensorFlow Lite Interpreter per eseguire il modello sul proprio Raspberry Pi.

Per ulteriori ottimizzazioni, si potrebbe considerare l'utilizzo di Coral Edge TPU. Per i passaggi dettagliati, consultare la nostra guida alla distribuzione su Raspberry Pi e la guida all'integrazione di Edge TPU.

Posso utilizzare modelli TFLite su microcontroller per le previsioni YOLO26?

Sì, TFLite supporta la distribuzione su microcontrollori con risorse limitate. Il runtime di base di TFLite richiede solo 16 KB di memoria su un Arm Cortex M3 e può eseguire modelli YOLO26 di base. Ciò lo rende adatto alla distribuzione su dispositivi con minima potenza computazionale e memoria.

Per iniziare, visita la guida a TFLite Micro per microcontrollori.

Quali piattaforme sono compatibili con i modelli YOLO26 esportati in TFLite?

TensorFlow Lite offre un'ampia compatibilità di piattaforma, consentendo di distribuire modelli YOLO26 su una vasta gamma di dispositivi, tra cui:

  • Android e iOS: Supporto nativo tramite 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 ulteriori informazioni sulle opzioni di deployment, consulta la nostra guida al deployment dettagliata.

Come si risolvono i problemi comuni durante l'esportazione del modello YOLO26 in TFLite?

Se si riscontrano errori durante l'esportazione dei modelli YOLO26 in TFLite, le soluzioni comuni includono:

  • Verifica la compatibilità dei pacchetti: assicurati di utilizzare versioni compatibili di Ultralytics e TensorFlow. Consulta la nostra guida all'installazione.
  • Supporto del modello: Verificare che lo specifico modello YOLO26 supporti l'esportazione TFLite consultando la pagina della documentazione di esportazione di Ultralytics.
  • Problemi di quantizzazione: Quando si utilizza la quantizzazione INT8, assicurarsi che il percorso del dataset sia specificato correttamente nel data parametro.

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



📅 Creato 1 anno fa ✏️ Aggiornato 5 giorni fa
glenn-jocherlakshanthadpderrengerlakshanthadambitious-octopusUltralyticsAssistantMatthewNoyceRizwanMunawarabirami-vina

Commenti