Controllo verde
Link copiato negli appunti

Esportazione di Ultralytics YOLO11 utilizzando l'integrazione PaddlePaddle

Scopri come esportare i modelli Ultralytics YOLO come Ultralytics YOLO11 con PaddlePaddle per una distribuzione efficiente su piattaforme edge, mobile e cloud.

Con il progredire dell'intelligenza artificiale (AI), le macchine stanno migliorando la comprensione del mondo che le circonda. Un'area chiave che guida questi progressi è la computer vision, una branca dell'IA che consente alle macchine di interpretare e prendere decisioni basate su dati visivi.

Dall'aiutare le auto a riconoscere i segnali stradali al controllare gli scaffali dei negozi al dettaglio, la computer vision è ormai parte integrante di molti strumenti di uso quotidiano. Questi compiti si basano su modelli di IA di visione in grado di scansionare rapidamente una foto o un video e di identificare ciò che è importante.

Nel corso del tempo, questi modelli sono diventati più veloci e precisi, rendendoli utili in settori come l'agricoltura, la sanità, la sicurezza e la vendita al dettaglio. Per esempio, Ultralytics YOLO11 è un modello costruito per gestire una serie di compiti di computer vision con velocità e precisione. È in grado di rilevare e classificare gli oggetti, tracciare i movimenti e stimare le pose dei corpi.

Una parte fondamentale del passaggio della computer vision dalla ricerca alle applicazioni reali è la distribuzione. Una volta addestrato un modello, il passo successivo è eseguirlo su dispositivi come telefoni, hardware edge o server cloud. 

Figura 1. L'implementazione del modello è una parte fondamentale di qualsiasi progetto di computer vision.

A tal fine, i modelliYOLO di Ultralytics come YOLO11 possono essere esportati in vari formati a seconda della piattaforma di destinazione. Uno di questi formati è PaddlePaddle, un framework di intelligenza artificiale open-source che consente un'efficiente distribuzione e inferenza dei modelli su un'ampia gamma di dispositivi e sistemi.

In questo articolo esploreremo come Ultralytics YOLO11 possa essere esportato attraverso l'integrazionePaddlePaddle supportata da Ultralytics per consentire una distribuzione efficiente su diverse piattaforme.

Che cos'è PaddlePaddle? 

L'implementazione di modelli di intelligenza artificiale al di fuori di contesti di ricerca, come i dispositivi mobili o l'hardware edge, può essere a volte complicata, soprattutto quando è necessario che vengano eseguiti in modo efficiente e che utilizzino risorse minime. PaddlePaddle è un framework di deep learning progettato per aiutare proprio in questo senso.

Si tratta di una piattaforma open-source cinese, il cui nome sta per Parallel Distributed Deep Learning. Sviluppata da Baidu, un'azienda ben nota per il suo lavoro nel campo dell'intelligenza artificiale e delle infrastrutture software, PaddlePaddle è stata creata appositamente per applicazioni reali, non solo per la ricerca.

Gli sviluppatori possono eseguire i modelli in formato PaddlePaddle su server, dispositivi edge e persino hardware mobile. Inoltre, supporta strumenti che semplificano lo sviluppo dell'intelligenza artificiale, tra cui opzioni low-code e no-code. La piattaforma vanta una solida comunità di sviluppatori con oltre 4,7 milioni di utenti ed è utilizzata in diversi settori, tra cui sanità, agricoltura, produzione e finanza.

Caratteristiche principali di PaddlePaddle

Ecco alcune delle caratteristiche principali che aiutano PaddlePaddle a eseguire i modelli in modo più efficiente sui dispositivi del mondo reale:

  • Conversione del grafico da dinamico a statico: Questa funzione trasforma un modello flessibile in una versione fissa che funziona in modo più fluido e prevedibile. Un modello fisso è più facile da ottimizzare e più veloce nel fare previsioni.
  • Fusione di operatori: PaddlePaddle può combinare più fasi del modello in una sola. In questo modo si riduce la memoria utilizzata dal modello e lo si fa funzionare più velocemente. È come combinare diverse attività in un'unica azione per risparmiare tempo.
  • Quantizzazione: Rende il modello più piccolo utilizzando numeri più semplici (come l'arrotondamento a meno cifre decimali). Aiuta il modello a funzionare su dispositivi con potenza limitata, come i telefoni o le fotocamere intelligenti, senza perdere molta precisione.
Figura 2. Vantaggi dell'utilizzo di PaddlePaddle. Immagine dell'autore.

Una panoramica della distribuzione di YOLO11 con PaddlePaddle

L'integrazione di PaddlePaddle supportata da Ultralytics rende più semplice il passaggio dalla formazione alla distribuzione. Gli sviluppatori che già utilizzano gli strumenti di PaddlePaddle possono inserire YOLO11 nei loro flussi di lavoro con maggiore facilità.

Il pacchetto Ultralytics Python supporta l'esportazione diretta dei modelli YOLO11 nel formato PaddlePaddle , consentendo agli sviluppatori di distribuire modelli addestrati senza strumenti aggiuntivi o fasi di conversione manuale. 

Il processo di esportazione può essere effettuato sia da linea di comando che da codice Python , quindi gli sviluppatori possono scegliere il metodo che meglio si adatta al loro flusso di lavoro. Questo aiuta a mantenere le cose semplici e riduce la possibilità di problemi di configurazione. Una volta esportato, il modello può essere utilizzato per attività di computer vision come il rilevamento di oggetti, la classificazione di immagini, la stima della posa e la segmentazione di istanze.

È un'ottima opzione per gli scenari di implementazione in cui i dispositivi hanno una memoria limitata o richiedono un'elaborazione veloce. I modelli esportati sono ottimizzati per essere eseguiti in modo efficiente, anche su sistemi con risorse limitate. 

Come esportare i modelli YOLO11 nel formato PaddlePaddle

Sono sufficienti pochi passaggi per esportare YOLO11 nel formato del modello PaddlePaddle .

Il primo passo consiste nell'installare 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.

Il pacchetto Ultralytics fornisce strumenti per l'addestramento, la valutazione, la messa a punto, l'esportazione e la distribuzione di modelli per una serie di attività di computer vision. Se dovessi riscontrare dei problemi durante l'installazione, consulta la guida Problemi comuni per trovare suggerimenti per la risoluzione dei problemi.

Una volta configurato l'ambiente, puoi caricare ed esportare un modello YOLO11 pre-addestrato come "yolo11n.pt", come mostrato di seguito. Puoi anche esportare il tuo modello YOLO11 addestrato in modo personalizzato.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

model.export(format="paddle")

Dopo che il tuo modello è stato convertito nel formato PaddlePaddle , può essere utilizzato in vari scenari su diversi tipi di hardware.

Ad esempio, nell'esempio che segue, stiamo caricando un modello YOLO11 esportato in formato PaddlePaddle e lo stiamo utilizzando per fare una previsione. Questo processo, noto come esecuzione di un'inferenza, significa semplicemente utilizzare il modello per analizzare nuovi dati. In questo caso, lo stiamo testando con un'immagine di due cani.

paddle_model = YOLO("./yolo11n_paddle_model")

results = paddle_model("https://www.pexels.com/photo/2-vizsla-dogs-standing-on-brown-wood-plank-33287/")

Dopo aver eseguito il codice, l'immagine di output con le previsioni del modello verrà salvata automaticamente nella cartella "runs/detect/predict".

Figura 3. Utilizzo del modello YOLO11 esportato per rilevare gli oggetti in un'immagine. Immagine dell'autore.

Distribuire YOLO11 utilizzando il framework PaddlePaddle

PaddlePaddle offre diversi strumenti di distribuzione, ognuno adatto a diversi dispositivi e casi d'uso come ambienti cloud, sistemi embedded e applicazioni web. Ecco alcune delle principali opzioni di distribuzione:

  • Paddle Serving: Aiuta a distribuire i modelli come API REST, il che lo rende una buona scelta per ambienti cloud o server che necessitano di funzioni come il controllo delle versioni e i test online.
  • Paddle Inference API: Ti dà un maggiore controllo sull'esecuzione dei modelli, il che è utile quando hai bisogno di regolare le prestazioni o di costruire una logica applicativa personalizzata.
  • Paddle Lite: è progettato per una distribuzione leggera su dispositivi mobili, tablet e sistemi embedded. È ottimizzato per modelli più piccoli e un'inferenza più veloce su hardware con risorse limitate.
  • Paddle.js: consente di eseguire modelli AI nei browser web utilizzando tecnologie come WebGL e WebAssembly, utili per demo interattive e strumenti basati su browser.
Figura 4. Opzioni di distribuzione abilitate da PaddlePaddle. Immagine dell'autore.

Una volta scelto lo strumento giusto per la tua configurazione, puoi caricare il modello esportato. Il motore di PaddlePaddle si occupa delle fasi successive. Carica il modello, elabora l'immagine in ingresso e restituisce i risultati.

Quando dovresti scegliere l'integrazione di PaddlePaddle ?

Il pacchetto Ultralytics Python supporta anche diversi altri formati di esportazione, quindi potresti chiederti: Quando PaddlePaddle è la scelta giusta?

PaddlePaddle è un'opzione affidabile quando vuoi distribuire modelli su dispositivi con risorse limitate, come smartphone, sistemi embedded o hardware edge. È ideale anche per le applicazioni in tempo reale che necessitano di prestazioni rapide ed efficienti, come il rilevamento di oggetti nelle app mobili, il monitoraggio basato sulla visione nelle telecamere intelligenti o la stima della posa eseguita direttamente sul dispositivo senza il supporto del cloud.

Inoltre, se il progetto deve essere eseguito offline o in ambienti a bassa connettività, puoi prendere in considerazione l'integrazione di PaddlePaddle . Applicazioni come gli strumenti di ispezione visiva nella produzione, i dispositivi palmari per i rilievi sul campo o gli scanner per la vendita al dettaglio abilitati all'intelligenza artificiale possono beneficiare del runtime leggero e delle opzioni di distribuzione flessibili di PaddlePaddle. 

Limitazioni di PaddlePaddle da considerare

Sebbene PaddlePaddle offra interessanti possibilità di impiego, ecco alcuni fattori limitanti di cui tenere conto:

  • Comunità globale più piccola: Al di fuori della Cina, la base di utenti e collaboratori è relativamente piccola. Questo può rendere più difficile trovare il supporto della comunità, i problemi risolti su GitHub o le risposte di Stack Overflow.
  • Curva di apprendimento più ripida per gli strumenti non Baidu: PaddlePaddle si integra senza problemi con l'ecosistema di Baidu, ma utilizzarlo al di fuori di questo contesto può comportare ulteriori passaggi di configurazione e impostazione.
  • Poche integrazioni con gli strumenti di ML tradizionali: PaddlePaddle ha una compatibilità limitata con strumenti comuni come Hugging Face Transformers, MLflow o i servizi AI nativi di Kubernetes.

Punti di forza

L'integrazione PaddlePaddle supportata da Ultralytics consente di esportare e distribuire facilmente i modelli YOLO11 su una serie di dispositivi. È particolarmente utile per i progetti che richiedono prestazioni efficienti sul dispositivo, come le applicazioni mobili, le telecamere intelligenti o i sistemi embedded.

Con pochi passaggi, puoi introdurre potenti modelli di visione nelle applicazioni del mondo reale. Con il continuo progresso della computer vision, strumenti come YOLO e PaddlePaddle rendono più facile che mai la creazione di sistemi veloci e intelligenti, dai dispositivi di consumo agli strumenti industriali.

Unisciti alla nostra comunità in crescita! Approfondisci il tema dell'intelligenza artificiale esplorando il nostro repository GitHub. Vuoi creare i tuoi progetti di computer vision? Esplora le nostre opzioni di licenza. Scopri come la computer vision nel settore sanitario sta migliorando l'efficienza ed esplora l'impatto dell'IA nella vendita al dettaglio visitando le nostre pagine dedicate alle soluzioni!

Logo di LinkedInLogo di TwitterLogo di FacebookSimbolo di copia-link

Leggi tutto in questa categoria

Costruiamo insieme il futuro
di AI!

Inizia il tuo viaggio nel futuro dell'apprendimento automatico

OSZAR »