Utilizzo dell'integrazione ONNX per esportare i modelli Ultralytics YOLO
Scopri come esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, utilizzando l'integrazione ONNX per il deployment multipiattaforma su vari hardware.
Quando le soluzioni AI hanno iniziato a guadagnare attenzione, la maggior parte dei modelli veniva distribuita su potenti server in ambienti controllati. Tuttavia, con l'avanzamento tecnologico, la distribuzione si è estesa ben oltre il data center.
Oggi, i modelli AI vengono eseguiti su tutto, dai server cloud e desktop 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 questo è particolarmente evidente è la computer vision - una branca dell'AI che consente alle macchine di interpretare i dati visivi. Viene utilizzata per guidare 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 senza problemi su hardware e piattaforme diversi.
Ma distribuire modelli di computer vision su una serie di target di implementazione non è sempre semplice. I dispositivi differiscono in termini di hardware, sistemi operativi e framework supportati, il che rende essenziali la flessibilità e la compatibilità.
Ecco perché avere l'opzione di esportare modelli di computer vision come Ultralytics YOLO11 in formati diversi è fondamentale. Ad esempio, l'integrazione ONNX (Open Neural Network Exchange) supportata da Ultralytics fornisce un modo pratico per colmare il divario tra addestramento e distribuzione. ONNX è un formato aperto che rende i modelli agnostici rispetto al framework e pronti per la distribuzione su diverse piattaforme.

Fig 1. ONNX ti aiuta a prendere un modello addestrato in un framework e a eseguirlo facilmente in un altro.
In questo articolo, esamineremo più da vicino l'integrazione ONNX supportata da Ultralytics ed esploreremo come puoi esportare il tuo modello YOLO11 per una distribuzione flessibile e multipiattaforma.
Link to this sectionCosa sono ONNX e ONNX Runtime?#
L'Open Neural Network Exchange è un progetto open source che definisce un formato standard per i modelli di machine learning. Originariamente sviluppato da Microsoft e Facebook, permette agli sviluppatori di addestrare un modello in un framework, come PyTorch, ed eseguirlo in un altro, come TensorFlow. Ciò rende lo sviluppo di AI più flessibile, collaborativo e accessibile, specialmente in campi come la computer vision.
ONNX fornisce un insieme comune di operatori e un formato di file unificato, rendendo più semplice spostare i modelli tra diversi strumenti, framework, runtime e compilatori. Normalmente, un modello addestrato in un framework non è facilmente compatibile con un altro, ma con ONNX puoi esportare il tuo modello una volta e distribuirlo quasi ovunque: su CPU (Central Processing Units), GPU (Graphics Processing Units), dispositivi mobili o hardware edge.
Inoltre, ONNX Runtime è un motore di inferenza ad alte prestazioni sviluppato specificamente per eseguire modelli nel formato ONNX. È progettato per far eseguire i modelli ONNX in modo più rapido ed 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, rendendolo facile da integrare in diversi flussi di lavoro e da distribuire ovunque sia necessario.

Fig 2. ONNX e ONNX Runtime consentono una distribuzione flessibile dei modelli multipiattaforma.
Link to this sectionCaratteristiche principali di ONNX#
Prima di discutere su come esportare YOLO11 nel formato ONNX, diamo un'occhiata ad alcune caratteristiche chiave del formato modello ONNX.
Che tu stia passando da uno strumento all'altro, effettuando la distribuzione su diversi dispositivi o aggiornando i sistemi, ONNX aiuta a mantenere tutto in funzione senza problemi. Ecco cosa rende unico il formato modello ONNX:
-
Un formato standard: ONNX utilizza un modo comune per descrivere come vengono costruiti i modelli, come i layer e le operazioni (pensa a essi come blocchi di costruzione). Quando un modello viene convertito in ONNX, segue questo standard in modo che qualsiasi sistema che supporta ONNX possa comprenderlo ed eseguirlo.
-
Retrocompatibilità: Anche mentre ONNX continua a migliorare, assicura che i modelli precedenti funzionino ancora con le versioni più recenti. Ciò significa che non devi riaddestrare o ricostruire i tuoi modelli ogni volta che ONNX riceve un aggiornamento.
-
Progettazione del modello basata su grafi: I modelli ONNX sono strutturati come grafi di computazione, in cui ogni nodo rappresenta un'operazione (come un layer o una funzione matematica) e i bordi indicano il flusso di dati. Questa progettazione basata su grafi facilita l'integrazione con vari sistemi che utilizzano strutture di grafi di computazione simili.
-
Strumenti a misura di sviluppatore: Viene fornito con un'ampia gamma di strumenti che ti aiutano a convertire, convalidare e ottimizzare i tuoi modelli. Questi strumenti semplificano il processo di spostamento dei modelli tra diversi framework e possono accelerare la distribuzione, specialmente per le applicazioni di computer vision.
Link to this sectionUna panoramica dell'integrazione ONNX#
Esportare modelli Ultralytics YOLO come Ultralytics YOLO11 nel formato ONNX è semplice e può essere fatto in pochi passaggi.
Per iniziare, installa il pacchetto Python Ultralytics utilizzando un gestore di pacchetti come 'pip'. Puoi farlo eseguendo il comando “pip install ultralytics” nel tuo prompt dei comandi o terminale.
Con il pacchetto Ultralytics, puoi facilmente addestrare, testare, perfezionare, esportare e distribuire modelli per vari task di computer vision, rendendo l'intero processo più rapido ed efficiente. Durante l'installazione, se riscontri difficoltà, puoi fare riferimento alla guida ai problemi comuni per soluzioni e suggerimenti.
Una volta installato il pacchetto Ultralytics, puoi caricare ed esportare il modello YOLO11 nel 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 tuo modello nel formato ONNX, puoi distribuirlo su una varietà di piattaforme.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11n.onnx) ed eseguire un'inferenza con esso. L'inferenza significa semplicemente utilizzare 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 esegui questo codice, l'immagine di output risultante verrà salvata nella cartella runs/detect/predict.

Fig 3. Esecuzione di un'inferenza utilizzando il modello YOLO11 esportato su un'immagine.
Link to this sectionQuando dovresti scegliere l'integrazione ONNX?#
Il pacchetto Python Ultralytics supporta l'esportazione di modelli in diversi formati, inclusi TorchScript, CoreML, TensorRT e ONNX. Quindi, perché scegliere ONNX?
Ciò che distingue ONNX è il fatto di essere un formato agnostico rispetto al framework. Mentre molti altri formati di esportazione sono legati a strumenti o ambienti specifici, ONNX utilizza un formato standardizzato e un set condiviso di operatori. Questo lo rende altamente portabile, adatto all'hardware e ideale per la distribuzione multipiattaforma, indipendentemente dal fatto che tu stia lavorando con server cloud, app mobili o dispositivi edge.
Ecco alcune ragioni per cui l'integrazione ONNX potrebbe essere la scelta ideale per i tuoi progetti YOLO11:
-
Distribuzione portabile: Una volta esportato in ONNX, il tuo modello YOLO11 può essere distribuito su varie piattaforme senza modifiche al codice o riaddestramento.
-
Supporto a livello industriale: ONNX è supportato dalle principali aziende e framework di AI, rendendolo un formato affidabile e ampiamente accettato. Assicura una compatibilità a lungo termine, proprio come funzionano i PDF su diversi dispositivi.
-
Sviluppo a prova di futuro: Utilizzare ONNX aiuta a proteggere i tuoi investimenti nei modelli. Man mano che gli strumenti si evolvono, ONNX mantiene i tuoi modelli pertinenti e utilizzabili, anche in ambienti nuovi o diversi.
-
Nessun vendor lock-in: Alcuni strumenti ti vincolano all'utilizzo esclusivo del loro sistema, il che può limitare ciò che il tuo modello può fare. ONNX evita questo problema lasciandoti scegliere la piattaforma che meglio si adatta alle tue esigenze, senza rimanere bloccato con una singola configurazione.
Link to this sectionApplicazioni di YOLO11 e del formato modello ONNX#
Successivamente, esploriamo alcune applicazioni del mondo reale in cui YOLO11 può essere distribuito con l'aiuto dell'integrazione ONNX.
Link to this sectionMonitoraggio dell'inventario nei magazzini utilizzando 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 prodotti sugli scaffali e ottenere informazioni come il numero di prodotti, il tipo, ecc. Tali sistemi possono aiutare le aziende a gestire automaticamente il loro vasto inventario e far risparmiare molto tempo ai magazzinieri.
Nello specifico, 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 livelli di stock, articoli mancanti o 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.

Fig 4. Un esempio di utilizzo di YOLO11 per rilevare e contare pacchi.
Link to this sectionGestione dei rifiuti ospedalieri con YOLO11#
Gli ospedali di tutto il mondo creano grandi quantità di rifiuti ogni giorno, da guanti e siringhe usate ad attrezzature utilizzate durante la chirurgia (come strumenti chirurgici monouso o contaminati come forbici e bisturi). Infatti, la ricerca mostra che gli ospedali producono circa 5 milioni di tonnellate di rifiuti ogni anno, che equivalgono a 29 libbre di rifiuti per posto letto al giorno.
Smistare correttamente tali rifiuti è essenziale per l'igiene, la sicurezza e il rispetto delle normative. Con i modelli YOLO11 esportati nel formato ONNX, gli ospedali possono automatizzare e monitorare lo smaltimento dei rifiuti in tempo reale.
Ad esempio, le telecamere posizionate vicino ai contenitori dei rifiuti in aree come sale operatorie o corridoi possono monitorare gli oggetti man mano che vengono scartati. Un modello YOLO11 personalizzato, addestrato a riconoscere diversi tipi di rifiuti medici, può analizzare il filmato e identificare cosa viene gettato via. Se un oggetto finisce nel cestino sbagliato, come una siringa usata nel cestino normale, 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 YOLO11 per rilevare strumenti medici.
Link to this sectionMonitoraggio delle colture abilitato da YOLO11#
Conoscere 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 tecnologici, la situazione sta iniziando a cambiare.
Ora, con innovazioni di computer vision come YOLO11, esportato nel formato ONNX, gli agricoltori possono portare automazione e precisione sul campo. 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, la dimensione e la distribuzione delle colture. In base a queste informazioni, gli agricoltori possono determinare se le colture sono pronte per la raccolta, se sono ancora in fase di maturazione o se hanno già superato il picco.

Fig 6. YOLO11 può essere utilizzato per rilevare le colture in filmati aerei da droni.
Link to this sectionLimitazioni di ONNX da considerare#
Sebbene ONNX offra numerosi vantaggi, come la portabilità, la compatibilità multipiattaforma e l'interoperabilità tra framework, ci sono alcune limitazioni da tenere a mente:
-
Dimensione del modello: La conversione dei modelli nel formato ONNX può talvolta comportare dimensioni di file maggiori rispetto ai loro formati originali. Tecniche come la quantizzazione e il pruning possono aiutare a mitigare questo problema riducendo le dimensioni del modello senza influire significativamente sulle prestazioni.
-
Compatibilità del runtime: Sebbene ONNX Runtime sia progettato per la compatibilità multipiattaforma, le prestazioni e il supporto possono variare a seconda dell'hardware e dei sistemi operativi.
-
Sfide di debug: Il debug dei modelli ONNX può essere più complesso rispetto ai framework nativi come PyTorch o TensorFlow. I messaggi di errore potrebbero essere meno descrittivi, rendendo più difficile individuare i problemi. Tuttavia, strumenti come Netron per la visualizzazione dei modelli e le capacità di logging di ONNX Runtime possono essere d'aiuto nella risoluzione dei problemi.
Link to this sectionPunti chiave#
Esportare Ultralytics YOLO11 in ONNX rende facile prendere un modello di computer vision addestrato e distribuirlo quasi ovunque, che sia su un portatile, un dispositivo mobile o persino una fotocamera intelligente compatta. Con l'integrazione ONNX, non sei legato a un singolo framework o piattaforma, il che ti dà la flessibilità di eseguire il tuo modello nell'ambiente che meglio si adatta alla tua applicazione.
Ciò rende la transizione dall'addestramento alla distribuzione nel mondo reale più rapida ed efficiente. Che tu stia monitorando l'inventario in un magazzino o garantendo che i rifiuti ospedalieri vengano smaltiti correttamente, questa configurazione aiuta i sistemi a funzionare in modo più fluido, riduce gli errori e fa risparmiare tempo prezioso.
Vuoi saperne di più sulla computer vision e sull'AI? Esplora il nostro repository GitHub, connettiti con la nostra community e dai un'occhiata alle nostre opzioni di licenza per dare il via al tuo progetto di computer vision. Se stai esplorando innovazioni come l'AI nella produzione e la computer vision nell'industria automobilistica, visita le nostre pagine delle soluzioni per scoprirne di più.






