Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Come esportareYOLO Ultralytics utilizzando Ultralytics

Esporta facilmente i modelli di IA per la visione utilizzando la Ultralytics . Scopri come preparare i modelli in pochi clic per l'implementazione su dispositivi edge, mobili e nel cloud.

Vuoi realizzare un progetto di visione artificiale?

Scopri le licenze

Il mese scorso abbiamo lanciato Ultralytics , uno spazio di lavoro unificato progettato per semplificare l'intero flusso di lavoro della visione artificiale. Questo strumento riunisce le principali funzionalità di IA per la visione, tra cui la gestione dei set di dati, l'annotazione, l'addestramento dei modelli, il collaudo, l'implementazione e il monitoraggio, in un'unica interfaccia ottimizzata.

Fig. 1. Una panoramica della Ultralytics (Fonte)

Nell'ambito di questo flusso di lavoro end-to-end, l'implementazione svolge un ruolo cruciale nel trasferimento dei modelli dalla fase sperimentale all'utilizzo pratico. In precedenza, abbiamo esaminato le diverse opzioni di implementazione disponibili sulla piattaforma, tra cui l'inferenza condivisa tramite API, gli endpoint dedicati per implementazioni di produzione scalabili e l'esportazione dei modelli per l'esecuzione su dispositivi edge o infrastrutture esterne.

Ora diamo un'occhiata più da vicino all'esportazione dei modelli e al modo in cui questa funzionalità supporta l'implementazione in diversi ambienti. A differenza dell'inferenza condivisa e degli endpoint dedicati, che eseguono i modelli all'interno dell'infrastruttura Ultralytics , l'esportazione dei modelli consente di implementare ed eseguire i modelli in ambienti esterni, quali dispositivi edge, applicazioni mobili e infrastrutture personalizzate.

Prima che i modelli possano essere eseguiti in questi ambienti, devono essere convertiti in formati supportati dall'ambiente di esecuzione di destinazione. Ogni configurazione di distribuzione ha i propri requisiti, dai formati leggeri per dispositivi mobili e periferici a quelli ad alte prestazioni per sistemi GPU cloud e GPU.

Tradizionalmente, questo processo può richiedere molto tempo e comportare l'uso di script, dipendenze e diversi strumenti. Con Ultralytics , l'esportazione è molto più semplice. I modelli possono essere convertiti e ottimizzati con pochi clic, senza necessità di configurazioni aggiuntive.

In questo articolo vedremo cosa significa esportare un modello, quali sono i formati supportati dalla Ultralytics e come scegliere quello più adatto alle vostre esigenze. Cominciamo!

Panoramica sull'esportazione di un modello

L'esportazione di un modello consiste nel convertire un modello pre-addestrato o addestrato su misura in un formato utilizzabile al di fuori del framework originale. YOLO Ultralytics sono realizzati con PyTorch salvati nel loro formato nativo, che si presta bene all'addestramento, alla valutazione e alla sperimentazione all'interno PyTorch .

Tuttavia, gli ambienti di distribuzione presentano spesso requisiti hardware e di runtime diversi. Per questo motivo, il formato utilizzato durante l'addestramento non è sempre adatto alla distribuzione.

Ad esempio, un'applicazione mobile potrebbe richiedere un formato leggero ottimizzato per un basso consumo energetico, mentre un'applicazione basata su browser necessita di un formato che funzioni in modo efficiente in ambienti web. 

I dispositivi edge, come le telecamere e i sistemi integrati, traggono vantaggio da modelli compatti e veloci, mentre i sistemi cloud sono progettati per un'inferenza ad alte prestazioni. Per supportare questi diversi scenari, i modelli devono essere esportati in formati compatibili. 

Perché la possibilità di esportare i modelli è più importante che mai

Oggi i modelli di visione artificiale vengono implementati più vicino al luogo in cui vengono generati i dati, in particolare sui dispositivi periferici. Gli smartphone eseguono applicazioni di visione in tempo reale, le telecamere a circuito chiuso effettuano il monitoraggio direttamente sul dispositivo e i sistemi autonomi si basano su processi decisionali istantanei.

Tuttavia, l'implementazione in questi ambienti comporta una serie di sfide specifiche. I dispositivi periferici presentano una potenza di calcolo limitata, requisiti di latenza rigorosi e vincoli in termini di memoria e consumo energetico. Un modello che funziona bene durante l'addestramento con risorse sufficienti potrebbe non funzionare in modo efficiente in queste condizioni limitate.

L'esportazione di un modello nel formato corretto può aiutare ad affrontare queste sfide. Convertendo il modello in modo adeguato, è possibile ottimizzarne la velocità, ridurne le dimensioni e renderlo compatibile con hardware specifico. 

Allo stesso tempo, l'esportazione offre una maggiore flessibilità. Lo stesso modello può essere adattato a diversi ambienti di implementazione convertendolo in diversi formati in base alle esigenze specifiche.

Fig. 2. Alcuni dei formati di esportazione disponibili nella Ultralytics (Fonte)

Ad esempio, il formatoNCNN è ottimizzato per dispositivi mobili e periferici con un basso consumo di risorse. Il OpenVINO , invece, è pensato appositamente per Intel e offre prestazioni migliori su unità di elaborazione centrale (CPU), unità di elaborazione grafica (GPU) e unità di elaborazione neurale (NPU). 

Nella maggior parte dei casi, raggiungere questo livello di flessibilità comportava dover gestire conversioni manuali, dipendenze e strumenti diversi, rendendo il processo lungo e complesso. Ultralytics semplifica questo flusso di lavoro rendendo l'esportazione dei modelli più accessibile e facile da gestire.

In che modo Ultralytics semplifica l'esportazione dei modelli

In genere, l'esportazione di un modello è considerata una fase distinta e complessa nei flussi di lavoro della visione artificiale. La Ultralytics rivoluziona questo approccio integrando la possibilità di esportare un modello direttamente in un unico ambiente di lavoro che copre tutte le fasi, dall'addestramento alla distribuzione.

Uno dei suoi principali vantaggi è la possibilità di esportare i modelli senza bisogno di scrivere codice. Non è necessario scrivere script, gestire ambienti o utilizzare comandi specifici dei framework. I modelli possono essere esportati con pochi clic tramite un'interfaccia intuitiva.

Fig. 3. Esempio di esportazione di un modello dalla Ultralytics (Fonte)

Dietro le quinte, è la piattaforma a occuparsi del lavoro più impegnativo. Le operazioni che normalmente richiederebbero l'uso di più strumenti e una configurazione manuale vengono semplificate in un unico processo. Non è necessario installare dipendenze aggiuntive né affrontare problemi di compatibilità, rendendo molto più semplice il passaggio da un modello addestrato a una soluzione pronta per la produzione.

Formati di esportazione dei modelli supportati dalla Ultralytics

Ultralytics supporta 17 formati di esportazione, semplificando la preparazione dei modelli per un'ampia gamma di ambienti di implementazione senza aggiungere complessità.

Ecco una panoramica di alcuni dei formati di esportazione più comuni:

  • Multipiattaforma e interoperabilità: ONNX TorchScript ampiamente utilizzati per l'esecuzione di modelli su diversi framework e ambienti. ONNX da ponte tra gli ecosistemi, facilitando il trasferimento dei modelli tra gli strumenti, mentre TorchScript eseguire PyTorch in produzione senza richiedere un Python .
  • Inferenza ad alte prestazioni su GPU: TensorRT progettato per NVIDIA e punta a ottimizzare i modelli per garantire bassa latenza ed elevata produttività. Supporta tecniche quali la riduzione della precisione e la fusione dei livelli per accelerare l'inferenza, rendendolo una scelta ottimale per applicazioni in tempo reale e su scala industriale.
  • Implementazione su dispositivi mobili e edge: CoreML, LiteRT (TensorFlow ) e NCNN ottimizzati per dispositivi con risorse di calcolo e memoria limitate. Questi formati riducono le dimensioni dei modelli e migliorano l'efficienza, garantendo prestazioni fluide su smartphone, sistemi embedded e hardware edge. CoreML tipicamente utilizzato negli ecosistemi Apple, mentre LiteRT è comune per Android.
  • Esecuzione ottimizzata per l'hardware: OpenVINO progettato su misura per Intel , comprese CPU, GPU e VPU, e contribuisce a migliorare la velocità e l'efficienza dell'inferenza su tali dispositivi. Formati specifici per l'hardware come questo sono utili quando è necessario ottenere le massime prestazioni da un determinato sistema.
  • Runtime specifici per framework e specializzati: formati come PaddlePaddle ExecuTorch supportano ecosistemi specifici ed esigenze di implementazione particolari, tra cui l'esecuzione efficiente dei modelli su dispositivi edge o l'integrazione con determinati stack di deep learning.

Come esportare un modello utilizzando Ultralytics

L'esportazione di un modello sulla Ultralytics è una procedura semplice basata sull'interfaccia utente. L'intero flusso di lavoro viene gestito tramite l'interfaccia, senza bisogno di script o strumenti da riga di comando.

Ecco come esportare un modello utilizzando la piattaforma:

  • Accedi e seleziona il tuo modello: vai al tuo progetto e apri il modello addestrato che desideri esportare.
  • Vai alla scheda "Esporta": nella dashboard del modello, clicca sulla scheda "Esporta" per visualizzare le opzioni di esportazione disponibili.
  • Seleziona un formato di esportazione: scegli un formato come ONNX, TensorRT o CoreML alle tue esigenze di distribuzione.
  • ‍Configura le impostazioni di esportazione (facoltativo): modifica parametri quali le dimensioni dell'immagine, la precisione o la dimensione del batch per ottimizzare le prestazioni.
  • Avvia la procedura di esportazione: clicca su «Avvia esportazione» per avviare la procedura. La piattaforma gestisce automaticamente la conversione.
  • Scarica il modello esportato: una volta completata l'esportazione, puoi scaricare il modello e utilizzarlo nella tua pipeline di distribuzione.
Fig. 4. Una panoramica sulla configurazione delle impostazioni di esportazione nella Ultralytics

Scegliere il formato di esportazione corretto

Mentre esplori i diversi formati di esportazione supportati dalla Ultralytics , potresti chiederti quale scegliere. La risposta dipende in realtà da dove e come intendi utilizzare il tuo modello.

Ecco alcuni fattori da tenere in considerazione:

  • Requisiti di latenza: per le applicazioni in tempo reale, come l'analisi video o i sistemi autonomi, una bassa latenza è fondamentale. Formati ottimizzati per l'inferenza ad alte prestazioni, come TensorRT, sono spesso più adatti.
  • Limiti hardware: i dispositivi con memoria e potenza di elaborazione limitate, come i telefoni cellulari o i sistemi integrati, richiedono formati leggeri come LiteRT o NCNN. 
  • Dimensioni del modello e consumo energetico: quando si lavora con dispositivi edge, le dimensioni del modello e il consumo energetico assumono un ruolo fondamentale. Modelli più piccoli e ottimizzati contribuiscono a garantire prestazioni costanti senza esaurire le risorse.
  • Ambiente di distribuzione: se il modello deve essere eseguito su piattaforme diverse, formati come ONNX maggiore flessibilità. Per casi d'uso specifici di una piattaforma, come iOS , CoreML spesso la scelta migliore.

Non esiste un formato valido per tutti i casi. Si tratta in realtà di trovare il giusto equilibrio tra prestazioni, compatibilità e i limiti dell'ambiente di destinazione. Ultralytics semplifica questo processo, consentendoti di provare e confrontare diversi formati senza alcuno sforzo aggiuntivo.

Punti chiave

L'esportazione è un passaggio fondamentale per preparare il modello all'uso pratico in diversi contesti. Con Ultralytics , questo processo diventa molto più semplice, consentendoti di convertire e ottimizzare i modelli senza ulteriori configurazioni o complicazioni. Scegliendo il formato più adatto al tuo caso d'uso, potrai garantire che il modello funzioni in modo efficiente ovunque lo implementi.

Unisciti alla nostra comunità in continua crescita e dai un'occhiata al nostro repository GitHub per saperne di più sulla visione artificiale. Esplora le nostre pagine dedicate alle soluzioni per scoprire di più su applicazioni come l'intelligenza artificiale nella robotica e la visione artificiale nella logistica. Scopri le nostre opzioni di licenza e inizia a sviluppare con l'intelligenza artificiale applicata alla visione! 

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning