Scopri come esportare i modelli Ultralytics YOLO , come Ultralytics YOLO11, utilizzando l'integrazione ONNX per una distribuzione multipiattaforma su diversi hardware.
Quando le soluzioni di intelligenza artificiale hanno iniziato a farsi notare, la maggior parte dei modelli veniva 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 favorisce 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'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 l'esigenza 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 implementazione non è sempre semplice. I dispositivi differiscono in termini di hardware, sistemi operativi e framework supportati, rendendo la flessibilità e la compatibilità essenziali.
Ecco perché avere 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 l'implementazione su tutte le piattaforme.
In questo articolo daremo un'occhiata più da vicino all'integrazioneONNX supportata da Ultralytics ed esploreremo come esportare il tuo 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 puoi esportare il tuo 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 eseguire modelli in formato ONNX . È stato progettato per far funzionare i modelli ONNX in modo più veloce ed efficiente su un'ampia gamma di piattaforme, tra cui server, dispositivi mobili e hardware edge. ONNX Runtime è compatibile con framework popolari come PyTorch, TensorFlow, TensorFlow Lite e scikit-learn, il che rende facile 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 .
Se stai passando da uno strumento all'altro, se stai distribuendo su dispositivi diversi o se stai aggiornando i sistemi, ONNX ti aiuta a far funzionare tutto senza problemi. Ecco cosa rende unico il formato del modello ONNX :
L'esportazione di modelliUltralytics YOLO come Ultralytics YOLO11 in formato ONNX è semplice e può essere effettuata in pochi passaggi.
Per iniziare, installa il pacchettoUltralytics Python utilizzando un gestore di pacchetti come "pip". Per iniziare, puoi eseguire il comando "pip install ultralytics" nel prompt dei comandi o nel terminale.
Con il pacchetto Ultralytics puoi facilmente addestrare, testare, mettere a punto, esportare e distribuire modelli per diverse attività di computer vision, rendendo l'intero processo più veloce ed efficiente. Durante l'installazione, se dovessi incontrare qualche difficoltà, puoi consultare la guida ai problemi comuni per trovare soluzioni e suggerimenti.
Una volta installato il pacchetto Ultralytics , puoi 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 (yolo11nonnx), rendendolo pronto per la distribuzione su diverse piattaforme e dispositivi.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx")
Dopo aver convertito il tuo modello in formato ONNX , puoi distribuirlo su diverse piattaforme.
L'esempio seguente mostra come caricare il modello YOLO11 esportato (yolo11nonnx) ed eseguire un'inferenza con esso. Fare 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.
onnx_model = YOLO("yolo11n.onnx")
results = onnx_model("https://ultralytics.com/images/bus.jpg",save=True)
Quando esegui questo codice, nella cartella runs/detect/predict verrà 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. Allora, 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. Questo lo rende altamente portatile, compatibile con l'hardware e ideale per la distribuzione multipiattaforma, sia che tu stia lavorando 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 YOLO11 :
Esploriamo quindi alcune applicazioni reali in cui YOLO11 può essere utilizzato 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 i lavoratori a trovare i prodotti sugli scaffali e a ottenere informazioni come 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 ai magazzinieri.
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 di 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 le siringhe usate alle attrezzature utilizzate durante gli interventi chirurgici (come gli strumenti chirurgici monouso o contaminati come forbici e bisturi). In effetti, le ricerche dimostrano 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 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 le cose stanno 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 catturare immagini delle loro colture (come pomodori, mele o grano). YOLO11 può essere utilizzato per rilevare indicatori chiave come il colore, le dimensioni e la distribuzione delle colture. Sulla base di queste informazioni, gli agricoltori possono stabilire 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 a mente.
Esportando Ultralytics YOLO11 in ONNX è facile prendere un modello di visione computerizzata addestrato e distribuirlo praticamente ovunque, su un computer portatile, un dispositivo mobile o persino una fotocamera compatta. Grazie all'integrazione con ONNX , non sei vincolato a un singolo framework o piattaforma, e hai la flessibilità di eseguire il tuo modello nell'ambiente più adatto alla tua applicazione.
In questo modo il passaggio dalla formazione all'utilizzo reale è più rapido ed efficiente. Che si tratti di tracciare l'inventario in un magazzino o di assicurarsi 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 computer vision e sull'IA? Esplora il nostro repository GitHub, entra in contatto con la nostra comunità 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 nell' industria automobilistica, visita le nostre pagine dedicate alle soluzioni per saperne di più.
Inizia il tuo viaggio nel futuro dell'apprendimento automatico