Meet YOLO26: next-gen vision AI.

Link to this sectionEsportazione ONNX per modelli YOLO26#

Inferenza fino al 43% più veloce.
  • Esportare il modello Ultralytics YOLO26 in ONNX può offrire fino al 43% di incremento nella velocità di inferenza, consentendo un deployment più rapido ed efficiente.

Spesso, quando esegui il deployment di modelli di computer vision, hai bisogno di un formato di modello che sia al contempo flessibile e compatibile con diverse piattaforme.

Esportare i modelli Ultralytics YOLO26 nel formato ONNX semplifica il deployment e garantisce prestazioni ottimali in vari ambienti. Questa guida ti mostrerà come convertire facilmente i tuoi modelli YOLO26 in ONNX e migliorare la loro scalabilità ed efficacia nelle applicazioni del mondo reale.



Watch: Ultralytics YOLO26 vs Ultralytics YOLO11 ONNX Inference Test | ~43% Faster Inference with YOLO26 🚀

Link to this sectionONNX e ONNX Runtime#

ONNX, che sta per Open Neural Network Exchange, è un progetto comunitario inizialmente sviluppato da Facebook e Microsoft. Lo sviluppo continuo di ONNX è uno sforzo collaborativo supportato da diverse organizzazioni come IBM, Amazon (tramite AWS) e Google. Il progetto mira a creare un formato di file aperto progettato per rappresentare modelli di machine learning in un modo che consenta di utilizzarli tra diversi framework di IA e hardware.

I modelli ONNX possono essere utilizzati per passare da un framework all'altro senza interruzioni. Ad esempio, un modello di deep learning addestrato in PyTorch può essere esportato nel formato ONNX e poi facilmente importato in TensorFlow.

ONNX model portability across deep learning frameworks

In alternativa, i modelli ONNX possono essere utilizzati con ONNX Runtime. ONNX Runtime è un acceleratore multipiattaforma versatile per modelli di machine learning compatibile con framework come PyTorch, TensorFlow, TFLite, scikit-learn, ecc.

ONNX Runtime ottimizza l'esecuzione dei modelli ONNX sfruttando le funzionalità specifiche dell'hardware. Questa ottimizzazione consente ai modelli di essere eseguiti in modo efficiente e con alte prestazioni su varie piattaforme hardware, inclusi CPU, GPU e acceleratori specializzati.

ONNX Runtime cross-platform inference acceleration

Che venga usato indipendentemente o insieme a ONNX Runtime, ONNX fornisce una soluzione flessibile per il model deployment e la compatibilità nel machine learning.

Link to this sectionCaratteristiche principali dei modelli ONNX#

La capacità di ONNX di gestire vari formati può essere attribuita alle seguenti caratteristiche chiave:

  • Rappresentazione comune del modello: ONNX definisce un insieme comune di operatori (come convoluzioni, livelli, ecc.) e un formato dati standard. Quando un modello viene convertito nel formato ONNX, la sua architettura e i suoi pesi vengono tradotti in questa rappresentazione comune. Questa uniformità garantisce che il modello possa essere compreso da qualsiasi framework che supporti ONNX.

  • Versioning e compatibilità con le versioni precedenti: ONNX mantiene un sistema di versioning per i suoi operatori. Questo assicura che, anche man mano che lo standard evolve, i modelli creati nelle versioni precedenti rimangano utilizzabili. La compatibilità con le versioni precedenti è una caratteristica cruciale che impedisce ai modelli di diventare rapidamente obsoleti.

  • Rappresentazione del modello basata su grafi: ONNX rappresenta i modelli come grafi computazionali. Questa struttura basata su grafi è un modo universale di rappresentare i modelli di machine learning, dove i nodi rappresentano operazioni o calcoli e i bordi rappresentano i tensori che fluiscono tra di essi. Questo formato è facilmente adattabile a vari framework che rappresentano anch'essi i modelli come grafi.

  • Strumenti ed ecosistema: Esiste un ricco ecosistema di strumenti attorno a ONNX che assistono nella conversione, visualizzazione e ottimizzazione del modello. Questi strumenti facilitano il lavoro degli sviluppatori con i modelli ONNX e la conversione dei modelli tra diversi framework senza problemi.

Link to this sectionUtilizzo comune di ONNX#

Prima di passare a come esportare i modelli YOLO26 nel formato ONNX, diamo un'occhiata a dove vengono solitamente utilizzati i modelli ONNX.

Link to this sectionDeployment su CPU#

I modelli ONNX vengono spesso distribuiti su CPU grazie alla loro compatibilità con ONNX Runtime. Questo runtime è ottimizzato per l'esecuzione su CPU. Migliora significativamente la velocità di inferenza e rende fattibili i deployment su CPU in tempo reale.

Link to this sectionOpzioni di deployment supportate#

Sebbene i modelli ONNX siano comunemente usati su CPU, possono anche essere distribuiti sulle seguenti piattaforme:

  • Accelerazione GPU: ONNX supporta pienamente l'accelerazione GPU, in particolare NVIDIA CUDA. Ciò consente un'esecuzione efficiente sulle GPU NVIDIA per attività che richiedono un'elevata potenza di calcolo.

  • Dispositivi edge e mobili: ONNX si estende ai dispositivi edge e mobili, perfetto per scenari di inferenza on-device e in tempo reale. È leggero e compatibile con l'hardware edge, e funge da base per i formati NPU dei produttori come Qualcomm QNN per dispositivi Snapdragon e RKNN per NPU Rockchip.

  • Browser web: ONNX può essere eseguito direttamente nei browser web, alimentando applicazioni di IA interattive e dinamiche basate sul web.

Link to this sectionEsportazione dei modelli YOLO26 in ONNX#

Puoi espandere la compatibilità del modello e la flessibilità di deployment convertendo i modelli YOLO26 nel formato ONNX. Ultralytics YOLO26 fornisce un processo di esportazione diretto che può migliorare significativamente le prestazioni del tuo modello su diverse piattaforme.

Link to this sectionInstallazione#

Per installare il pacchetto richiesto, 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 YOLO26. Durante l'installazione dei pacchetti necessari per YOLO26, se riscontri difficoltà, consulta la nostra guida ai problemi comuni per soluzioni e suggerimenti.

Link to this sectionUtilizzo#

Prima di immergerti nelle istruzioni per l'uso, assicurati di dare un'occhiata alla gamma di modelli YOLO26 offerti da Ultralytics. Questo ti aiuterà a scegliere il modello più appropriato per i requisiti del tuo progetto.

Il formato ONNX supporta le modalità Export, Predict e Validate. Esporta il tuo modello, quindi carica il modello esportato per eseguire l'inferenza o convalidarne l'accuratezza.

Esportazione
from ultralytics import YOLO

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

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Export an INT8-quantized ONNX model with calibration data
model.export(format="onnx", quantize=8, data="coco8.yaml")  # creates 'yolo26n_int8.onnx'
Previsione
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Convalida
from ultralytics import YOLO

# Load the exported ONNX model
model = YOLO("yolo26n.onnx")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Link to this sectionArgomenti di esportazione#

Quando esporti il tuo modello YOLO26 nel formato ONNX, puoi personalizzare il processo utilizzando vari argomenti per ottimizzarlo in base alle tue specifiche esigenze di deployment:

ArgomentoTipoPredefinitoDescrizione
formatstr'onnx'Formato di destinazione per il modello esportato, che definisce la compatibilità con vari ambienti di distribuzione.
imgszint o 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.
quantizeint o strNonePrecisione di quantizzazione: 16 (FP16) o 8 (quantizzazione statica INT8 con ONNX Runtime utilizzando immagini di calibrazione da data, producendo un modello _int8.onnx); 32/non impostato è FP32. Sostituisce i flag deprecati half/int8.
datastrNoneYAML del dataset utilizzato per la calibrazione INT8. Se omesso con quantize=8, Ultralytics seleziona il dataset di calibrazione predefinito per l'attività del modello.
fractionfloat1.0Frazione di immagini di calibrazione da utilizzare per la quantizzazione INT8.
dynamicboolFalseConsente dimensioni di input dinamiche, migliorando la flessibilità nella gestione di dimensioni variabili delle immagini.
simplifyboolTrueSemplifica il grafo del modello con onnxslim, migliorando potenzialmente le prestazioni e la compatibilità.
opsetintNoneSpecifica la versione dell'opset ONNX per la compatibilità con diversi parser e runtime ONNX. Se non impostato, utilizza l'ultima versione supportata.
nmsboolFalseAggiunge la Non-Maximum Suppression (NMS), essenziale per un post-processing del rilevamento accurato ed efficiente.
batchint1Specifica la dimensione dell'inferenza batch del modello esportato o il numero massimo di immagini che il modello esportato elaborerà simultaneamente in modalità predict.
devicestrNoneSpecifica il dispositivo per l'esportazione: GPU (device=0), CPU (device=cpu), MPS per Apple silicon (device=mps).

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

Link to this sectionDeployment di modelli YOLO26 ONNX esportati#

Una volta esportati con successo i tuoi modelli Ultralytics YOLO26 nel formato ONNX, il passo successivo è distribuire questi modelli in vari ambienti. Per istruzioni dettagliate sul deployment dei tuoi modelli ONNX, dai un'occhiata alle seguenti risorse:

  • Documentazione dell'API Python di ONNX Runtime: Questa guida fornisce informazioni essenziali per caricare ed eseguire modelli ONNX utilizzando ONNX Runtime.

  • Deployment su dispositivi Edge: Dai un'occhiata a questa pagina di documentazione per diversi esempi di deployment di modelli ONNX su edge.

  • Tutorial ONNX su GitHub: Una raccolta di tutorial completi che coprono vari aspetti dell'utilizzo e dell'implementazione di modelli ONNX in diversi scenari.

  • Triton Inference Server: Scopri come distribuire i tuoi modelli ONNX con Triton Inference Server di NVIDIA per deployment scalabili e ad alte prestazioni.

In questa guida, hai imparato come esportare i modelli Ultralytics YOLO26 nel formato ONNX per aumentarne l'interoperabilità e le prestazioni su varie piattaforme. Ti sono stati anche presentati ONNX Runtime e le opzioni di deployment di ONNX.

L'esportazione ONNX è solo uno dei molti formati di esportazione supportati da Ultralytics YOLO26, che ti consente di distribuire i tuoi modelli in quasi tutti gli ambienti. A seconda delle tue esigenze specifiche, potresti anche voler esplorare altre opzioni di esportazione come TensorRT per le massime prestazioni GPU o CoreML per i dispositivi Apple.

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

Inoltre, se vuoi saperne di più su altre integrazioni di Ultralytics YOLO26, visita la nostra pagina della guida all'integrazione. Troverai molte risorse utili e approfondimenti lì.

Link to this sectionFAQ#

Link to this sectionCome posso esportare modelli YOLO26 nel formato ONNX utilizzando Ultralytics?#

Per esportare i tuoi modelli YOLO26 nel formato ONNX utilizzando Ultralytics, segui questi passaggi:

Utilizzo
from ultralytics import YOLO

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

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo26n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo26n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")

Per maggiori dettagli, visita la documentazione di esportazione.

Link to this sectionQuali sono i vantaggi dell'utilizzo di ONNX Runtime per il deployment dei modelli YOLO26?#

L'utilizzo di ONNX Runtime per il deployment di modelli YOLO26 offre diversi vantaggi:

  • Compatibilità multipiattaforma: ONNX Runtime supporta varie piattaforme, come Windows, macOS e Linux, garantendo che i tuoi modelli vengano eseguiti senza problemi in diversi ambienti.
  • Accelerazione hardware: ONNX Runtime può sfruttare ottimizzazioni specifiche dell'hardware per CPU, GPU e acceleratori dedicati, fornendo inferenza ad alte prestazioni.
  • Interoperabilità tra framework: I modelli addestrati in framework popolari come PyTorch o TensorFlow possono essere facilmente convertiti nel formato ONNX ed eseguiti utilizzando ONNX Runtime.
  • Ottimizzazione delle prestazioni: ONNX Runtime può fornire fino a 3x di velocità su CPU rispetto ai modelli PyTorch nativi, rendendolo ideale per scenari di deployment in cui le risorse GPU sono limitate.

Scopri di più consultando la documentazione di ONNX Runtime.

Link to this sectionQuali opzioni di deployment sono disponibili per i modelli YOLO26 esportati in ONNX?#

I modelli YOLO26 esportati in ONNX possono essere distribuiti su varie piattaforme, tra cui:

  • CPU: Utilizzo di ONNX Runtime per l'inferenza ottimizzata su CPU.
  • GPU: Sfruttare NVIDIA CUDA per un'accelerazione GPU ad alte prestazioni.
  • Dispositivi Edge: Esecuzione di modelli leggeri su dispositivi edge e mobili per un'inferenza in tempo reale on-device.
  • Browser web: Esecuzione di modelli direttamente all'interno dei browser web per applicazioni interattive basate sul web.
  • Servizi cloud: Deployment su piattaforme cloud che supportano il formato ONNX per un'inferenza scalabile.

Per ulteriori informazioni, esplora la nostra guida sulle opzioni di deployment del modello.

Link to this sectionPerché dovrei usare il formato ONNX per i modelli Ultralytics YOLO26?#

L'utilizzo del formato ONNX per i modelli Ultralytics YOLO26 offre numerosi vantaggi:

  • Interoperabilità: ONNX consente ai modelli di essere trasferiti senza problemi tra diversi framework di machine learning.
  • Ottimizzazione delle prestazioni: ONNX Runtime può migliorare le prestazioni del modello utilizzando ottimizzazioni specifiche dell'hardware.
  • Flessibilità: ONNX supporta vari ambienti di deployment, consentendoti di utilizzare lo stesso modello su piattaforme diverse senza modifiche.
  • Standardizzazione: ONNX fornisce un formato standardizzato ampiamente supportato in tutto il settore, garantendo la compatibilità a lungo termine.

Consulta la guida completa sull'esportazione dei modelli YOLO26 in ONNX.

Link to this sectionCome posso risolvere i problemi durante l'esportazione dei modelli YOLO26 in ONNX?#

Durante l'esportazione dei modelli YOLO26 in ONNX, potresti riscontrare problemi comuni come dipendenze non corrispondenti o operazioni non supportate. Per risolvere questi problemi:

  1. Verifica di aver installato la versione corretta delle dipendenze richieste.
  2. Controlla la documentazione ONNX ufficiale per gli operatori e le funzionalità supportate.
  3. Rivedi i messaggi di errore per trovare indizi e consulta la guida ai problemi comuni di Ultralytics.
  4. Prova a utilizzare argomenti di esportazione diversi come simplify=True o a regolare la versione opset.
  5. Per problemi di dimensione di input dinamica, imposta dynamic=True durante l'esportazione.

Se i problemi persistono, contatta il supporto di Ultralytics per ulteriore assistenza.

Commenti