Cliccando su “Accetta tutti i cookie”, l'utente accetta di memorizzare i cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere le nostre attività di marketing. Maggiori informazioni
Impostazioni dei cookie
Cliccando su “Accetta tutti i cookie”, l'utente accetta di memorizzare i cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere le nostre attività di marketing. Maggiori informazioni
Scopri come esportare i modelli Ultralytics YOLO, come Ultralytics YOLO11, utilizzando l'integrazione ONNX per l'implementazione multipiattaforma su vari hardware.
Quando le soluzioni di IA hanno iniziato a guadagnare attenzione, la maggior parte dei modelli veniva implementata su server potenti in ambienti controllati. Tuttavia, con il progresso della tecnologia, l'implementazione si è estesa ben oltre il data center.
Oggi, i modelli di IA vengono eseguiti su qualsiasi cosa, 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 a dove 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 guidare 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 in grado di funzionare senza problemi su hardware e piattaforme diversi.
Ma implementare modelli di computer vision su una vasta gamma di target di implementazione non è sempre semplice. I dispositivi differiscono in termini di hardware, sistemi operativi e framework supportati, rendendo essenziali la flessibilità e la compatibilità.
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 fornisce un modo pratico per colmare il divario tra training e implementazione. ONNX è un formato aperto che rende i modelli indipendenti dal framework e pronti per l'implementazione su tutte le piattaforme.
Fig. 1. ONNX ti aiuta a prendere un modello addestrato in un framework ed 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 un'implementazione flessibile e multipiattaforma.
Cos'è ONNX e ONNX Runtime?
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, 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, specialmente in campi come la computer vision.
ONNX fornisce un set comune di operatori e un formato di file unificato, rendendo più facile lo spostamento di 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 implementarlo 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 in formato ONNX. È progettato per far funzionare i modelli ONNX più velocemente e in modo più efficiente su una vasta 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 facile l'integrazione in diversi flussi di lavoro e l'implementazione di modelli ovunque siano necessari.
Fig. 2. ONNX e ONNX Runtime consentono un'implementazione flessibile di modelli multipiattaforma.
Caratteristiche principali di ONNX
Prima di spiegare come esportare YOLO11 in formato ONNX, esaminiamo alcune caratteristiche chiave del formato del modello ONNX.
Che si tratti di passare da uno strumento all'altro, di implementare su dispositivi diversi o di aggiornare i sistemi, ONNX aiuta a mantenere tutto in funzione senza problemi. Ecco cosa rende unico il formato del modello ONNX:
Un formato standard: ONNX utilizza un modo comune per descrivere come sono costruiti i modelli, come livelli e operazioni (immaginate questi come elementi costitutivi). Quando un modello viene convertito in ONNX, segue questo standard in modo che qualsiasi sistema che supporti ONNX possa comprenderlo ed eseguirlo.
Compatibilità con le versioni precedenti: Anche se ONNX continua a migliorare, garantisce che i modelli precedenti funzionino ancora con le versioni più recenti. Ciò significa che non è necessario riaddestrare o ricostruire i modelli ogni volta che ONNX riceve un aggiornamento.
Progettazione del modello basata su grafi: I modelli ONNX sono strutturati come grafi computazionali, in cui ogni nodo rappresenta un'operazione (come un livello o una funzione matematica) e gli archi indicano il flusso di dati. Questa progettazione basata su grafi facilita l'integrazione con vari sistemi che utilizzano strutture di grafi computazionali simili.
Strumenti di facile utilizzo per gli sviluppatori: È dotato di un'ampia gamma di strumenti che aiutano a convertire, convalidare e ottimizzare i modelli. Questi strumenti semplificano il processo di spostamento dei modelli tra diversi framework e possono accelerare l'implementazione, soprattutto per le applicazioni di computer vision.
Una panoramica dell'integrazione di ONNX
L'esportazione di modelli Ultralytics YOLO come Ultralytics YOLO11 in formato ONNX è semplice e può essere eseguita in pochi passaggi.
Per iniziare, installa il pacchetto Python Ultralytics utilizzando un gestore di pacchetti come 'pip'. Questo può essere fatto eseguendo il comando “pip install ultralytics” nel prompt dei comandi o nel terminale per iniziare.
Con il pacchetto Ultralytics, puoi facilmente addestrare, testare, mettere a punto, esportare e implementare modelli per varie attività di computer vision, rendendo l'intero processo più veloce ed efficiente. Durante l'installazione, se riscontri difficoltà, puoi consultare la guida ai problemi comuni per 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 (yolo11n.onnx), rendendolo pronto per l'implementazione su diverse piattaforme e dispositivi.
Dopo aver convertito il tuo modello in formato ONNX, puoi implementarlo 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 usare il modello addestrato per fare 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 di output seguente verrà salvata nella cartella runs/detect/predict.
Fig. 3. Esecuzione di un'inferenza utilizzando il modello YOLO11 esportato su un'immagine.
Quando dovresti scegliere l'integrazione ONNX?
Il pacchetto Python Ultralytics supporta l'esportazione di modelli in diversi formati, tra cui TorchScript, CoreML, TensorRT e ONNX. Quindi, 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 l'implementazione 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:
Implementazione portatile: Una volta esportato in ONNX, il tuo modello YOLO11 può essere implementato su varie piattaforme senza modifiche al codice o riaddestramento.
Supporto a livello di settore: ONNX è supportato dalle principali aziende e framework di intelligenza artificiale, il che lo rende un formato affidabile e ampiamente accettato. Garantisce la compatibilità a lungo termine, proprio come i PDF funzionano su tutti i dispositivi.
Sviluppo a prova di futuro: L'utilizzo di ONNX aiuta a proteggere i tuoi investimenti nel modello. Man mano che gli strumenti si evolvono, ONNX mantiene i tuoi modelli pertinenti e utilizzabili, anche in ambienti nuovi o diversi.
Nessun vincolo del fornitore: Alcuni strumenti ti legano all'utilizzo esclusivo del loro sistema, il che può limitare ciò che il tuo modello può fare. ONNX evita questo problema permettendoti di scegliere la piattaforma che funziona meglio per le tue esigenze, senza essere bloccato con una singola configurazione.
Applicazioni di YOLO11 e del formato del modello ONNX
Successivamente, esploriamo alcune applicazioni reali in cui YOLO11 può essere implementato con l'aiuto dell'integrazione ONNX.
Tracciamento dell'inventario nei magazzini tramite YOLO11
Nei magazzini affollati, è difficile tenere d'occhio ogni prodotto e pacco in ogni momento. I sistemi di visione artificiale possono aiutare i lavoratori a trovare i 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 lavoratori del magazzino.
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 i livelli di stock, gli articoli mancanti o gli spazi 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 i pacchi.
Gestione dei rifiuti ospedalieri con YOLO11
Gli ospedali di tutto il mondo producono ogni giorno grandi quantità di rifiuti, dai guanti e siringhe usati alle attrezzature utilizzate durante gli interventi chirurgici (come strumenti chirurgici monouso o contaminati come forbici e bisturi). Infatti, la ricerca dimostra che gli ospedali producono circa 5 milioni di tonnellate di rifiuti ogni anno, ovvero 29 libbre di rifiuti per letto al giorno.
Smistare correttamente tali 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 contenitori dei rifiuti in aree come le sale operatorie o i corridoi possono monitorare gli oggetti mentre vengono smaltiti. Un modello YOLO11 personalizzato, addestrato per riconoscere diversi tipi di rifiuti medici, può analizzare il filmato 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, contribuendo a prevenire la contaminazione e garantire la conformità.
Fig. 5. Utilizzo di YOLO11 per rilevare strumenti medici.
Monitoraggio delle colture abilitato da YOLO11
Sapere qual è il momento giusto per raccogliere i raccolti 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, questo sta iniziando a cambiare.
Ora, con le innovazioni della visione artificiale come YOLO11, esportato in 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 dei loro raccolti (come pomodori, mele o grano). YOLO11 può quindi essere utilizzato per rilevare indicatori chiave come il colore, le dimensioni e la distribuzione dei raccolti. Sulla base di queste informazioni, gli agricoltori possono determinare se i raccolti sono pronti per essere raccolti, ancora in fase di maturazione o già oltre il loro picco.
Fig. 6. YOLO11 può essere utilizzato per rilevare i raccolti nelle riprese aeree dei droni.
Limitazioni di ONNX da considerare
Sebbene ONNX offra numerosi vantaggi, come la portabilità, la compatibilità multipiattaforma e l'interoperabilità del framework, ci sono alcune limitazioni da tenere a mente:
Dimensione del modello: la conversione di modelli in formato ONNX a volte può comportare dimensioni di file maggiori rispetto ai formati originali. Tecniche come la quantizzazione e la potatura possono aiutare a mitigare questo problema riducendo le dimensioni del modello senza influire in modo significativo sulle prestazioni.
Compatibilità 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 possono essere meno descrittivi, rendendo più difficile individuare i problemi. Tuttavia, strumenti come Netron per la visualizzazione del modello e le funzionalità di registrazione di ONNX Runtime possono aiutare nella risoluzione dei problemi.
Punti chiave
L'esportazione di Ultralytics YOLO11 in ONNX semplifica l'acquisizione di un modello di visione artificiale addestrato e la sua implementazione praticamente ovunque, che si tratti di un laptop, un dispositivo mobile o persino una smart camera compatta. Con l'integrazione ONNX, non sei vincolato a un singolo framework o piattaforma, il che ti offre la flessibilità di eseguire il tuo modello nell'ambiente più adatto alla tua applicazione.
Ciò rende la transizione dall'addestramento all'implementazione 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 in modo più fluido, riduce gli errori e fa risparmiare tempo prezioso.