Utilizzare l’integrazione ONNX per esportare i modelli Ultralytics YOLO
Scopri come esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, utilizzando l’integrazione ONNX per la distribuzione multipiattaforma su diversi hardware.

Quando le soluzioni di IA hanno iniziato a suscitare interesse, la maggior parte dei modelli veniva distribuita su server potenti in ambienti controllati. Tuttavia, con l'avanzare della tecnologia, la distribuzione si è estesa ben oltre il data center.
Oggi i modelli di IA vengono eseguiti 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 è 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 crescita di questi casi d'uso, aumenta anche la necessità di modelli in grado di funzionare agevolmente su hardware e piattaforme diversi.
Tuttavia, distribuire modelli di visione artificiale su un'ampia gamma di destinazioni non è sempre semplice. I dispositivi differiscono per hardware, sistemi operativi e framework supportati, rendendo essenziali flessibilità e compatibilità.
Ecco perché poter esportare modelli di visione artificiale come Ultralytics YOLO11 in formati diversi è 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 dal framework e pronti per la distribuzione su più piattaforme.

Fig. 1. ONNX ti consente di prendere un modello addestrato in un framework ed eseguirlo facilmente in un altro.
In questo articolo analizzeremo più da vicino l'integrazione ONNX supportata da Ultralytics ed esploreremo come esportare il tuo modello YOLO11 per una distribuzione flessibile su più piattaforme.
Che cosa sono ONNX e ONNX Runtime?#
Lo scambio aperto di reti neurali è un progetto open source che definisce un formato standard per i modelli di machine learning. Sviluppato originariamente da Microsoft e Facebook, consente agli sviluppatori di addestrare un modello in un framework, come PyTorch, ed eseguirlo in un altro, come TensorFlow. Questo rende lo sviluppo dell'IA più flessibile, collaborativo e accessibile, soprattutto in ambiti come la visione artificiale.
ONNX fornisce un insieme comune di operatori e un formato di file unificato, semplificando lo spostamento dei modelli tra strumenti, framework, runtime e compilatori diversi. Normalmente, un modello addestrato in un framework non è facilmente compatibile con un altro; con ONNX, invece, puoi esportare il modello una volta e distribuirlo quasi 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 nel formato ONNX. È progettato per far funzionare i modelli ONNX più velocemente e in modo più efficiente su un'ampia gamma di piattaforme, inclusi server, dispositivi mobili e hardware edge. ONNX Runtime è compatibile con framework popolari come PyTorch, TensorFlow, TensorFlow Lite e scikit-learn, rendendo semplice integrarlo in workflow diversi e distribuire i modelli ovunque siano necessari.

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 nel formato ONNX, esaminiamo alcune funzionalità chiave del formato dei modelli ONNX.
Che tu stia passando da uno strumento all'altro, distribuendo il modello su dispositivi diversi o aggiornando i sistemi, ONNX aiuta a mantenere tutto operativo senza problemi. Ecco cosa rende unico il formato dei modelli ONNX:
-
Un formato standard: ONNX utilizza un modo comune per descrivere come sono costruiti i modelli, ad esempio livelli e operazioni (considerali come elementi costitutivi). Quando un modello viene convertito in ONNX, segue questo standard, così qualsiasi sistema che supporti ONNX può comprenderlo ed eseguirlo.
-
Compatibilità con le versioni precedenti: Anche se ONNX continua a migliorare, 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 (come un livello o una funzione matematica) e gli archi indicano il flusso dei dati. Questa progettazione basata su grafi facilita l'integrazione con diversi sistemi che utilizzano strutture di grafi computazionali simili.
-
Strumenti intuitivi per gli sviluppatori: ONNX include un'ampia gamma di strumenti che aiutano a convertire, convalidare e ottimizzare i modelli. Questi strumenti semplificano il trasferimento dei modelli tra framework diversi e possono accelerare la distribuzione, soprattutto per le applicazioni di visione artificiale.
Panoramica dell'integrazione ONNX#
Esportare i modelli YOLO di Ultralytics, come Ultralytics YOLO11, nel formato ONNX è semplice e può essere eseguito in pochi passaggi.
Per iniziare, installa il pacchetto Python di Ultralytics utilizzando un gestore di pacchetti come «pip». Puoi farlo eseguendo il comando “pip install ultralytics” nel prompt dei comandi o nel terminale.
Con il pacchetto Ultralytics puoi addestrare, testare, ottimizzare, esportare e distribuire facilmente modelli per diverse attività di visione artificiale, rendendo l'intero processo più rapido ed efficiente. Se riscontri difficoltà durante l'installazione, consulta la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Dopo aver installato il pacchetto Ultralytics, puoi caricare ed esportare il modello YOLO11 nel formato ONNX utilizzando il codice seguente. Questo esempio carica un modello YOLO11 preaddestrato (yolo11n.pt) ed esporta un file ONNX (yolo11n.onnx), rendendolo pronto per la distribuzione su piattaforme e dispositivi diversi.
Dopo aver convertito il modello nel formato ONNX, puoi distribuirlo su diverse piattaforme.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11n.onnx) ed eseguire un'inferenza con esso. L'inferenza consiste semplicemente nell'utilizzare il modello addestrato per effettuare previsioni su nuovi dati. In questo caso, useremo l'URL di un'immagine di un autobus per testare il modello.
Quando esegui questo codice, l'immagine risultante verrà salvata nella cartella runs/detect/predict.

Fig. 3. Esecuzione di un'inferenza su un'immagine utilizzando il modello Ultralytics YOLO11 esportato.
Quando dovresti scegliere l'integrazione ONNX?#
Il pacchetto Python di Ultralytics supporta l'esportazione dei modelli in diversi formati, tra cui TorchScript, CoreML, TensorRT e ONNX. Quindi, perché scegliere ONNX?
Ciò che distingue ONNX è il fatto di essere un formato indipendente dal 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, adatto a diversi hardware e ideale per la distribuzione su più piattaforme, sia che tu lavori con server cloud, app mobili o dispositivi edge.
Ecco alcuni motivi per cui l'integrazione ONNX potrebbe essere la scelta ideale per i tuoi progetti Ultralytics YOLO11:
-
Distribuzione portabile: Una volta esportato in ONNX, il tuo modello Ultralytics YOLO11 può essere distribuito su diverse piattaforme senza modifiche al codice o nuovo addestramento.
-
Supporto in tutti i settori: ONNX è supportato dalle principali aziende e dai principali framework di IA, rendendolo 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: Utilizzare ONNX aiuta a proteggere i tuoi investimenti nei modelli. Con l'evoluzione degli strumenti, ONNX mantiene i tuoi modelli pertinenti e utilizzabili, anche in ambienti nuovi o diversi.
-
Nessun vincolo al fornitore: Alcuni strumenti ti obbligano a utilizzare esclusivamente il loro sistema, limitando ciò che il tuo modello può fare. ONNX evita questo problema consentendoti di scegliere la piattaforma più adatta alle tue esigenze, senza vincolarti a una singola configurazione.
Applicazioni di Ultralytics YOLO11 e del formato dei modelli ONNX#
Ora esploriamo alcune applicazioni reali in cui Ultralytics YOLO11 può essere distribuito con l'aiuto dell'integrazione ONNX.
Monitoraggio dell'inventario nei magazzini con Ultralytics YOLO11#
Nei magazzini molto operosi è difficile tenere sotto controllo ogni prodotto e pacco in ogni momento. I sistemi di visione artificiale possono aiutare gli operatori a trovare i prodotti sugli scaffali e a ottenere informazioni come il numero e il tipo di prodotti. Questi sistemi possono aiutare automaticamente le aziende a gestire il loro vasto inventario e far risparmiare molto tempo agli operatori di magazzino.
In particolare, nei magazzini intelligenti, i modelli Ultralytics YOLO11 esportati in ONNX possono essere utilizzati per identificare e contare gli articoli in tempo reale tramite telecamere e dispositivi edge. Il modello esportato può aiutare a eseguire la scansione di scaffali o pallet per rilevare i livelli delle scorte, gli articoli mancanti o gli spazi vuoti. Poiché l'esportazione in ONNX rende il modello leggero ed efficiente, può funzionare 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 utilizzo di YOLO11 per rilevare e contare i pacchi.
Gestione dei rifiuti ospedalieri con Ultralytics YOLO11#
Gli ospedali di tutto il mondo producono ogni giorno grandi quantità di rifiuti, dai guanti e dalle siringhe usati alle apparecchiature utilizzate durante gli interventi chirurgici (come strumenti chirurgici monouso o contaminati, quali forbici e bisturi). Le ricerche dimostrano infatti che gli ospedali producono circa 5 milioni di tonnellate di rifiuti ogni 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 nel formato ONNX, gli ospedali possono automatizzare e monitorare lo smaltimento dei rifiuti in tempo reale.
Ad esempio, le telecamere installate vicino ai contenitori dei rifiuti in aree come le sale operatorie o i corridoi possono monitorare gli articoli mentre vengono gettati. Un modello Ultralytics YOLO11 personalizzato, addestrato a riconoscere diversi tipi di rifiuti sanitari, può analizzare le riprese e identificare ciò che viene gettato. Se un articolo finisce nel contenitore sbagliato, come una siringa usata nei rifiuti indifferenziati, il sistema può essere configurato per avvisare immediatamente il personale con una luce o un suono, contribuendo a prevenire la contaminazione e garantire la conformità.

Fig. 5. Utilizzo di Ultralytics YOLO11 per rilevare strumenti medicali.
Monitoraggio delle colture con Ultralytics YOLO11#
Individuare il momento giusto per raccogliere le colture può avere un forte impatto 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 iniziando a cambiare questa situazione.
Oggi, grazie alle innovazioni nella visione artificiale come YOLO11, esportato nel formato ONNX, gli agricoltori possono introdurre automazione e precisione nei campi. Utilizzando droni o telecamere montate su trattori o pali, possono acquisire immagini delle colture, come pomodori, mele o grano. YOLO11 può quindi essere utilizzato per rilevare indicatori chiave come colore, dimensioni e distribuzione delle colture. Sulla base di queste informazioni, gli agricoltori possono determinare se le colture sono pronte per la raccolta, ancora in fase di maturazione o hanno già superato il loro momento migliore.

Fig. 6. YOLO11 può essere utilizzato per rilevare le colture nelle riprese aeree di un drone.
Limiti di ONNX da considerare#
Sebbene ONNX offra numerosi vantaggi, come portabilità, compatibilità tra piattaforme e interoperabilità tra framework, ci sono alcuni limiti da tenere presenti:
-
Dimensioni del modello: La conversione dei modelli nel formato ONNX può talvolta produrre file di dimensioni maggiori rispetto ai formati originali. Tecniche come la quantizzazione e il pruning possono contribuire a ridurre questo problema diminuendo le dimensioni del modello senza incidere significativamente sulle prestazioni.
-
Compatibilità del runtime: Sebbene ONNX Runtime sia progettato per la compatibilità tra piattaforme, 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 ai framework nativi come PyTorch o TensorFlow. I messaggi di errore possono essere meno descrittivi, rendendo più difficile individuare i problemi. Tuttavia, strumenti come Netron per la visualizzazione dei modelli e le funzionalità di logging di ONNX Runtime possono aiutare nella risoluzione dei problemi.
Punti chiave#
Esportare Ultralytics YOLO11 in ONNX semplifica il trasferimento di un modello di visione artificiale addestrato e la sua distribuzione quasi ovunque, su un laptop, un dispositivo mobile o persino una telecamera intelligente compatta. Con l'integrazione 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 la transizione dall'addestramento alla distribuzione nel mondo reale più rapida ed efficiente. Che tu stia monitorando l'inventario in un magazzino o assicurandoti che i rifiuti ospedalieri vengano smaltiti correttamente, questa configurazione aiuta i sistemi a funzionare meglio, riduce gli errori e fa risparmiare tempo prezioso.
Vuoi saperne di più sulla visione artificiale 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 visione artificiale. Se stai esplorando innovazioni come l'IA nel settore manifatturiero e la visione artificiale nel settore automobilistico, visita le nostre pagine dedicate alle soluzioni per saperne di più.









