Usare l’integrazione ONNX per esportare i modelli Ultralytics YOLO
Scopri come esportare i modelli Ultralytics YOLO11 in ONNX, eseguire inferenze con il modello esportato e distribuirlo su CPU, GPU, dispositivi mobili ed edge.
Abirami Vina11 min di lettura
Quando le soluzioni di IA hanno iniziato ad attirare l'attenzione, la maggior parte dei modelli veniva distribuita su potenti server in ambienti controllati. Tuttavia, con il progresso della tecnologia, la distribuzione si è estesa ben oltre il data center.
Oggi i modelli di IA funzionano su qualsiasi dispositivo, dai server cloud e dai computer desktop agli smartphone e ai dispositivi edge. Questo cambiamento consente un'elaborazione più rapida, funzionalità offline e sistemi più intelligenti che operano più vicino al luogo in cui vengono generati i dati.
Un ambito in cui questo cambiamento è particolarmente evidente è la visione artificiale, un ramo dell'IA che consente alle macchine di interpretare i dati visivi. Viene utilizzata per applicazioni come il riconoscimento facciale, la guida autonoma e l'analisi video in tempo reale. Con la diffusione di questi casi d'uso, aumenta anche la necessità di modelli in grado di funzionare senza problemi su hardware e piattaforme diversi.
Tuttavia, implementare modelli di visione artificiale su un'ampia gamma di piattaforme di destinazione non è sempre semplice. I dispositivi differiscono per hardware, sistemi operativi e framework supportati, rendendo essenziali flessibilità e compatibilità.
Ecco perché poter esportare modelli di computer vision come Ultralytics YOLO11 in diversi formati è fondamentale. Ad esempio, l'integrazione ONNX (scambio aperto di reti neurali) supportata da Ultralytics offre un modo pratico per colmare il divario tra addestramento e distribuzione. ONNX è un formato aperto che rende i modelli indipendenti dai framework e pronti per la distribuzione su diverse piattaforme.

Fig. 1. ONNX ti permette di prendere un modello addestrato con un framework ed eseguirlo facilmente con un altro.
In questo articolo approfondiremo l'integrazione di ONNX supportata da Ultralytics e vedremo come esportare il tuo modello YOLO11 per una distribuzione flessibile e multipiattaforma.
Che cos'è ONNX e ONNX Runtime?#
Open Neural Network Exchange è un progetto open source che definisce un formato standard per i modelli di machine learning. Sviluppato originariamente da Microsoft e Facebook, permette agli sviluppatori di addestrare un modello con un framework, come PyTorch, ed eseguirlo con un altro, come TensorFlow. Questo rende lo sviluppo dell'IA più flessibile, collaborativo e accessibile, soprattutto in settori come la computer vision.
ONNX offre un insieme comune di operatori e un formato di file unificato, semplificando il trasferimento dei modelli tra strumenti, framework, runtime e compilatori diversi. Normalmente, un modello addestrato con un framework non è facilmente compatibile con un altro, ma con ONNX puoi esportare il tuo modello una sola volta e distribuirlo praticamente ovunque: su CPU (unità di elaborazione centrale), GPU (unità di elaborazione grafica), dispositivi mobili o hardware edge.
Inoltre, ONNX Runtime è un motore di inferenza ad alte prestazioni sviluppato appositamente per eseguire modelli in formato ONNX. È progettato per eseguire i modelli ONNX più velocemente e con maggiore efficienza su un'ampia gamma di piattaforme, inclusi server, dispositivi mobili e hardware edge. ONNX Runtime è compatibile con framework diffusi come PyTorch, TensorFlow, TensorFlow Lite e scikit-learn, semplificando l'integrazione nei diversi flussi di lavoro e la distribuzione dei modelli ovunque servano.

Fig. 2. ONNX e ONNX Runtime consentono una distribuzione flessibile dei modelli su più piattaforme.
Funzionalità principali di ONNX#
Prima di vedere come esportare Ultralytics YOLO11 in formato ONNX, esaminiamo alcune caratteristiche fondamentali di questo formato.
Che tu stia passando da uno strumento all'altro, distribuendo su dispositivi diversi o aggiornando i sistemi, ONNX aiuta a mantenere tutto operativo senza intoppi. Ecco cosa rende unico il formato dei modelli ONNX:
- Un unico formato standard: ONNX utilizza un metodo comune per descrivere la struttura dei modelli, ad esempio livelli e operazioni (da intendere come elementi costitutivi). Quando un modello viene convertito in ONNX, segue questo standard, così qualsiasi sistema che supporta ONNX può comprenderlo ed eseguirlo.
- Compatibilità con le versioni precedenti: Anche se ONNX continua a evolversi, garantisce che i modelli meno recenti funzionino ancora con le versioni più nuove. Questo significa che non devi riaddestrare o ricostruire i modelli ogni volta che ONNX viene aggiornato.
- Progettazione dei modelli basata su grafi: I modelli ONNX sono strutturati come grafi di calcolo, in cui ogni nodo rappresenta un'operazione (ad esempio un livello o una funzione matematica) e gli archi indicano il flusso dei dati. Questa struttura basata su grafi facilita l'integrazione con i diversi sistemi che utilizzano strutture di grafi di calcolo simili.
- Strumenti pratici per gli sviluppatori: Include numerosi strumenti che ti aiutano a convertire, convalidare e ottimizzare i modelli. Questi strumenti semplificano il trasferimento dei modelli tra framework diversi e possono accelerarne la distribuzione, soprattutto nelle applicazioni di computer vision.
Panoramica dell'integrazione di ONNX#
Esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, in formato ONNX è semplice e richiede pochi passaggi.
Per iniziare, installa il pacchetto Python di Ultralytics usando un gestore di pacchetti come pip. Per farlo, esegui pip install ultralytics nel prompt dei comandi o nel terminale.
Con il pacchetto Ultralytics puoi addestrare, testare, perfezionare, esportare e distribuire facilmente i modelli per diverse attività di computer vision, rendendo l'intero processo più rapido ed efficiente. Se durante l'installazione riscontri difficoltà, consulta la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Dopo aver installato il pacchetto Ultralytics, puoi caricare ed esportare il modello YOLO11 in formato ONNX usando il codice riportato di seguito. Questo esempio carica un modello YOLO11 preaddestrato (yolo11n.pt) e lo esporta come file ONNX (yolo11n.onnx), pronto per essere distribuito su piattaforme e dispositivi diversi.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")Gli stessi passaggi funzionano anche con modelli più recenti come Ultralytics YOLO26. Dopo aver convertito il modello nel formato ONNX e verificato che produca gli stessi risultati dell'originale, puoi distribuirlo su diverse piattaforme.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11n.onnx) ed eseguire inferenze con esso. Per inferenza si intende semplicemente l'uso del modello addestrato per fare previsioni su nuovi dati. In questo caso, useremo l'URL di un'immagine di un autobus per testare il modello.
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg", save=True)Quando esegui questo codice, l'immagine risultante verrà salvata nella cartella runs/detect/predict.

Fig. 3. Esecuzione di un'inferenza su un'immagine con il modello Ultralytics YOLO11 esportato.
Quando scegliere l'integrazione di ONNX?#
Il pacchetto Python Ultralytics supporta l'esportazione dei modelli in diversi formati, tra cui TorchScript, CoreML, TensorRT e ONNX. Perché scegliere ONNX?
ONNX si distingue perché è un formato indipendente dai framework. Mentre molti altri formati di esportazione sono legati a strumenti o ambienti specifici, ONNX utilizza un formato standardizzato e un insieme condiviso di operatori. Questo lo rende altamente portabile, compatibile con l'hardware e ideale per la distribuzione multipiattaforma, sia che tu lavori con server cloud, app mobili o dispositivi edge.
Ecco alcuni motivi per cui l'integrazione di ONNX potrebbe essere la scelta ideale per i tuoi progetti con Ultralytics YOLO11:
- Distribuzione portabile: Una volta esportato in ONNX, il tuo modello Ultralytics YOLO11 può essere distribuito su diverse piattaforme senza modificare il codice né riaddestrarlo.
- Supporto diffuso nel settore: ONNX è supportato da importanti aziende di IA e framework, il che lo rende un formato affidabile e ampiamente accettato. Garantisce la compatibilità a lungo termine, proprio come i PDF funzionano su dispositivi diversi.
- Sviluppo a prova di futuro: Usare ONNX aiuta a proteggere gli investimenti nei tuoi modelli. Con l'evolversi degli strumenti, ONNX mantiene i tuoi modelli pertinenti e utilizzabili anche in ambienti nuovi o diversi.
- Nessun vincolo con un fornitore: Alcuni strumenti ti obbligano a usare esclusivamente il loro sistema, limitando ciò che il tuo modello può fare. ONNX evita questo vincolo e ti permette di scegliere la piattaforma più adatta alle tue esigenze, senza legarti a un'unica configurazione.
Applicazioni di Ultralytics YOLO11 e del formato ONNX#
Vediamo ora alcune applicazioni concrete in cui Ultralytics YOLO11 può essere distribuito grazie all'integrazione di ONNX.
Monitoraggio delle scorte nei magazzini con Ultralytics YOLO11#
Nei magazzini molto frequentati, è difficile tenere d'occhio ogni prodotto e pacco in ogni momento. I sistemi di computer vision possono aiutare i lavoratori a trovare i prodotti sugli scaffali e a ottenere informazioni come il numero e il tipo di prodotti. Questi sistemi possono aiutare le aziende a gestire automaticamente le vaste scorte e far risparmiare molto tempo al personale di magazzino.
In particolare, nei magazzini intelligenti, i modelli Ultralytics YOLO11 esportati in ONNX possono essere usati per identificare e contare gli articoli in tempo reale tramite telecamere e dispositivi edge. Il modello esportato può aiutare a scansionare scaffali o pallet per rilevare i livelli delle scorte, gli articoli mancanti o gli spazi vuoti. Poiché i modelli ONNX funzionano in modo efficiente su un'ampia gamma di hardware, il modello può essere eseguito direttamente su piccoli dispositivi edge, come le telecamere intelligenti, eliminando la necessità di server costosi o di un accesso costante al cloud.

Fig. 4. Esempio di rilevamento e conteggio dei pacchi con YOLO11.
Gestione dei rifiuti ospedalieri con Ultralytics YOLO11#
Ogni giorno, gli ospedali di tutto il mondo producono grandi quantità di rifiuti: dai guanti e dalle siringhe usati alle attrezzature impiegate durante gli interventi chirurgici, come forbici e bisturi monouso o contaminati. Le ricerche mostrano infatti che gli ospedali producono oltre 5 milioni di tonnellate di rifiuti all'anno, pari a 29 libbre di rifiuti per letto al giorno.
Smistare correttamente questi rifiuti è essenziale per l'igiene, la sicurezza e il rispetto delle normative. Con i modelli Ultralytics YOLO11 esportati in formato ONNX, gli ospedali possono usare la computer vision in ambito sanitario per automatizzare e monitorare lo smaltimento dei rifiuti in tempo reale.
Ad esempio, le telecamere collocate vicino ai cestini in aree come le sale operatorie o i corridoi possono monitorare gli oggetti mentre vengono gettati. Un modello Ultralytics YOLO11 personalizzato, addestrato per riconoscere diversi tipi di rifiuti sanitari, può analizzare le riprese e identificare ciò che viene gettato. Se un oggetto finisce nel cestino sbagliato, come una siringa usata nei rifiuti indifferenziati, è possibile configurare il sistema per avvisare subito il personale con una luce o un segnale acustico, contribuendo a prevenire la contaminazione e garantire la conformità.

Fig. 5. Rilevamento di strumenti medici con Ultralytics YOLO11.
Monitoraggio delle colture con Ultralytics YOLO11#
Scegliere il momento giusto per raccogliere le colture può incidere notevolmente sia sulla qualità dei prodotti sia sulla produttività complessiva di un'azienda agricola. Tradizionalmente, gli agricoltori si affidano all'esperienza e alle ispezioni manuali, ma i recenti progressi tecnologici stanno cambiando le cose.
Oggi, grazie a innovazioni nella computer vision come YOLO11, esportato in formato ONNX, gli agricoltori possono introdurre automazione e precisione nei campi. Con droni o telecamere montate su trattori o pali, possono acquisire immagini delle colture, come pomodori, mele o grano. YOLO11 può quindi rilevare indicatori importanti, come il colore, le dimensioni e la distribuzione delle colture. In base a queste informazioni, gli agricoltori possono stabilire se le colture sono pronte per la raccolta, stanno ancora maturando o hanno già superato il momento ottimale.

Fig. 6. YOLO11 può essere utilizzato per rilevare le colture nelle riprese aeree di un drone.
Limiti di ONNX da considerare#
ONNX offre numerosi vantaggi, come portabilità, compatibilità multipiattaforma e interoperabilità tra framework, ma è bene tenere presenti alcuni limiti:
- Dimensioni del modello: la conversione dei modelli in formato ONNX può talvolta produrre file più grandi rispetto ai formati originali. Tecniche come la quantizzazione e il pruning possono attenuare il problema riducendo le dimensioni del modello senza comprometterne significativamente le prestazioni.
- Compatibilità del runtime: Anche se ONNX Runtime è progettato per la compatibilità multipiattaforma, le prestazioni e il supporto possono variare a seconda dell'hardware e del sistema operativo.
- Difficoltà di debug: Il debug dei modelli ONNX può essere più complesso rispetto a quello nei framework nativi come PyTorch o TensorFlow. I messaggi di errore potrebbero essere meno esplicativi, rendendo più difficile individuare i problemi. Tuttavia, strumenti come Netron per la visualizzazione dei modelli e le funzionalità di logging di ONNX Runtime possono aiutarti a risolverli.
Punti chiave#
Esportare Ultralytics YOLO11 in ONNX permette di distribuire facilmente un modello di computer vision addestrato praticamente ovunque, che sia un laptop, un dispositivo mobile o persino una piccola telecamera intelligente. Con l'integrazione di ONNX, non sei vincolato a un singolo framework o a una singola piattaforma e puoi eseguire il modello nell'ambiente più adatto alla tua applicazione.
Questo rende il passaggio dall'addestramento alla distribuzione nel mondo reale più rapido ed efficiente. Che tu stia monitorando le scorte in un magazzino o verificando il corretto smaltimento dei rifiuti ospedalieri, questa configurazione aiuta i sistemi a funzionare meglio, riduce gli errori e fa risparmiare tempo prezioso.
Vuoi saperne di più sulla computer vision e sull'IA? Esplora il nostro repository GitHub, entra in contatto con la nostra community e scopri le nostre opzioni di licenza per avviare il tuo progetto di computer vision. Se stai esplorando innovazioni come l'IA nella produzione e la computer vision nel settore automobilistico, visita le nostre pagine dedicate alle soluzioni per saperne di più.
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










