Utilizzo dell'integrazione ONNX per esportare i modelli Ultralytics YOLO

2 maggio 2025
Imparate a esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, utilizzando l'integrazione ONNX per la distribuzione multipiattaforma su vari hardware.

2 maggio 2025
Imparate a esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, utilizzando l'integrazione ONNX per la distribuzione multipiattaforma su vari hardware.
Quando le soluzioni di intelligenza artificiale hanno iniziato a farsi notare, la maggior parte dei modelli era distribuita su potenti server in ambienti controllati. Tuttavia, con l'avanzare della tecnologia, l'implementazione si è estesa ben oltre il data center.
Oggi i modelli di intelligenza artificiale vengono eseguiti su qualsiasi dispositivo, dai server cloud ai desktop, fino agli smartphone e ai dispositivi edge. Questo cambiamento supporta un'elaborazione più rapida, funzionalità offline e sistemi più intelligenti che operano più vicino al luogo in cui vengono generati i dati.
Un'area in cui ciò è particolarmente evidente è la computer vision, una branca 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, cresce anche la necessità di modelli che possano funzionare senza problemi su hardware e piattaforme diverse.
Ma distribuire i modelli di computer vision su una serie di obiettivi di distribuzione non è sempre semplice. I dispositivi differiscono in termini di hardware, sistemi operativi e framework supportati, rendendo essenziali flessibilità e compatibilità.
Ecco perché la possibilità di esportare modelli di computer vision come Ultralytics YOLO11 in diversi formati è fondamentale. Ad esempio, l'integrazione ONNX (Open Neural Network Exchange) supportata da Ultralytics offre un modo pratico per colmare il divario tra la formazione e la distribuzione. ONNX è un formato aperto che rende i modelli indipendenti dal framework e pronti per la distribuzione su tutte le piattaforme.
In questo articolo daremo un'occhiata più da vicino all'integrazione ONNX supportata da Ultralytics ed esploreremo come esportare il vostro modello YOLO11 per una distribuzione flessibile e multipiattaforma.
L'Open Neural Network Exchange è un progetto open-source che definisce un formato standard per i modelli di apprendimento automatico. Originariamente sviluppato 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'intelligenza artificiale più flessibile, collaborativo e accessibile, soprattutto in campi come la computer vision.
ONNX fornisce un insieme comune di operatori e un formato di file unificato, rendendo più semplice lo spostamento dei modelli tra diversi strumenti, framework, runtime e compilatori. Normalmente, un modello addestrato in un framework non è facilmente compatibile con un altro, ma con ONNX è possibile esportare il modello una sola volta e distribuirlo praticamente ovunque: su CPU (Central Processing Unit), GPU (Graphics Processing Unit), dispositivi mobili o hardware edge.
Inoltre, ONNX Runtime è un motore di inferenza ad alte prestazioni sviluppato appositamente per l'esecuzione di modelli in formato ONNX. È stato progettato per far funzionare i modelli ONNX in modo più rapido ed efficiente su un'ampia gamma di piattaforme, tra cui server, dispositivi mobili e hardware edge. ONNX Runtime è compatibile con i framework più diffusi, come PyTorch, TensorFlow, TensorFlow Lite e scikit-learn, facilitando l'integrazione in diversi flussi di lavoro e la distribuzione dei modelli ovunque siano necessari.
Prima di parlare di come esportare YOLO11 in formato ONNX, vediamo alcune caratteristiche principali del formato ONNX.
Che si tratti di passare da uno strumento all'altro, di distribuire su dispositivi diversi o di aggiornare i sistemi, ONNX aiuta a far funzionare tutto senza intoppi. Ecco cosa rende unico il formato del modello ONNX:
L'esportazione di modelli Ultralytics YOLO come Ultralytics YOLO11 in formato ONNX è semplice e può essere eseguita in pochi passaggi.
Per iniziare, installare il pacchetto Ultralytics Python utilizzando un gestore di pacchetti come "pip". Per iniziare, si può eseguire il comando "pip install ultralytics" nel prompt dei comandi o nel terminale.
Con il pacchetto Ultralytics è possibile addestrare, testare, mettere a punto, esportare e distribuire facilmente modelli per varie attività di computer vision, rendendo l'intero processo più rapido ed efficiente. In caso di difficoltà durante l'installazione, è possibile consultare la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Una volta installato il pacchetto Ultralytics, è possibile caricare ed esportare il modello YOLO11 in formato ONNX utilizzando il codice seguente. Questo esempio carica un modello YOLO11 pre-addestrato (yolo11n.pt) e lo esporta come file ONNX (yolo11n.onnx), rendendolo pronto per la distribuzione su diverse piattaforme e dispositivi.
Dopo aver convertito il modello in formato ONNX, è possibile distribuirlo su diverse piattaforme.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11n.onnx) ed eseguire un'inferenza con esso. Fare inferenza significa semplicemente usare il modello addestrato per fare previsioni su nuovi dati. In questo caso, utilizzeremo l'URL di un'immagine di un autobus per testare il modello.
Quando si esegue questo codice, nella cartella runs/detect/predict viene salvata la seguente immagine di output.
Il pacchetto Ultralytics Python supporta l 'esportazione dei modelli in diversi formati, tra cui TorchScript, CoreML, TensorRT e ONNX. Perché scegliere ONNX?
Ciò che distingue ONNX è che si tratta di 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. Ciò lo rende altamente portabile, compatibile con l'hardware e ideale per la distribuzione multipiattaforma, sia che si lavori con server cloud, app mobili o dispositivi edge.
Ecco alcuni motivi per cui l'integrazione ONNX potrebbe essere la scelta ideale per i vostri progetti YOLO11:
Esploriamo quindi alcune applicazioni reali in cui YOLO11 può essere implementato con l'aiuto dell'integrazione ONNX.
Nei magazzini affollati è difficile tenere sempre d'occhio tutti i prodotti e le confezioni. I sistemi di visione computerizzata possono aiutare gli addetti a trovare i prodotti sugli scaffali e a ottenere informazioni quali il numero di prodotti, il tipo, ecc. Questi sistemi possono aiutare le aziende a gestire automaticamente il loro vasto inventario e a far risparmiare molto tempo agli addetti al magazzino.
In particolare, nei magazzini intelligenti, i modelli YOLO11 esportati in ONNX possono essere utilizzati per identificare e contare gli articoli in tempo reale utilizzando telecamere e dispositivi edge. Il modello esportato può aiutare a scansionare scaffali o pallet per rilevare i livelli delle scorte, gli articoli mancanti o i punti vuoti. Poiché l'esportazione in ONNX rende il modello leggero ed efficiente, 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.
Gli ospedali di tutto il mondo producono ogni giorno grandi quantità di rifiuti, dai guanti e dalle siringhe usate alle attrezzature utilizzate durante gli interventi chirurgici (come gli strumenti chirurgici monouso o contaminati, come forbici e bisturi). Le ricerche dimostrano che gli ospedali producono ogni anno circa 5 milioni di tonnellate di rifiuti, pari a 29 libbre di rifiuti per letto al giorno.
La corretta differenziazione dei rifiuti è essenziale per l'igiene, la sicurezza e il rispetto delle normative. Con i modelli YOLO11 esportati in formato ONNX, gli ospedali possono automatizzare e monitorare lo smaltimento dei rifiuti in tempo reale.
Ad esempio, le telecamere posizionate vicino ai cestini dei rifiuti in aree come le sale operatorie o i corridoi possono monitorare gli oggetti mentre vengono gettati. Un modello YOLO11 personalizzato, addestrato a riconoscere i diversi tipi di rifiuti medici, può analizzare i filmati e identificare ciò che viene gettato via. Se un oggetto finisce nel contenitore sbagliato, come una siringa usata nella spazzatura normale, il sistema può essere impostato per avvisare immediatamente il personale con una luce o un suono, aiutando a prevenire la contaminazione e a garantire la conformità.
Sapere qual è il momento giusto per raccogliere le colture può avere un grande impatto sia sulla qualità dei prodotti che sulla produttività complessiva di un'azienda agricola. Tradizionalmente, gli agricoltori si affidano all'esperienza e alle ispezioni manuali, ma con i recenti progressi della tecnologia la situazione sta cambiando.
Ora, grazie alle innovazioni di computer vision come YOLO11, esportate in formato ONNX, gli agricoltori possono portare l'automazione e la precisione nei campi. Utilizzando droni o telecamere montate su trattori o pali, gli agricoltori possono acquisire immagini delle loro colture (come pomodori, mele o grano). YOLO11 può quindi essere utilizzato per rilevare indicatori chiave come il colore, le dimensioni e la distribuzione delle colture. Sulla base di queste informazioni, gli agricoltori possono determinare se le colture sono pronte per il raccolto, se stanno ancora maturando o se hanno già superato il loro picco.
Sebbene ONNX offra numerosi vantaggi, come la portabilità, la compatibilità multipiattaforma e l'interoperabilità dei framework, ci sono alcune limitazioni da tenere presenti.
L'esportazione di Ultralytics YOLO11 in ONNX semplifica l'utilizzo di un modello di visione computerizzata addestrato e la sua distribuzione ovunque, su un computer portatile, un dispositivo mobile o persino una fotocamera compatta. Grazie all'integrazione con ONNX, non si è vincolati a un singolo framework o piattaforma e si ha la flessibilità di eseguire il modello nell'ambiente più adatto alla propria applicazione.
In questo modo, il passaggio dalla formazione all'utilizzo nel mondo reale è più rapido ed efficiente. Sia che si tratti di tracciare l'inventario in un magazzino o di assicurare che i rifiuti ospedalieri siano smaltiti correttamente, questa configurazione aiuta i sistemi a funzionare in modo più fluido, riduce gli errori e fa risparmiare tempo prezioso.
Volete saperne di più sulla computer vision e sull'IA? Esplorate il nostro repository GitHub, entrate in contatto con la nostra comunità e controllate le nostre opzioni di licenza per avviare il vostro progetto di computer vision. Se state esplorando innovazioni come l'IA nella produzione e la computer vision nell' industria automobilistica, visitate le nostre pagine dedicate alle soluzioni per saperne di più.