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
Scoprite come eseguire il benchmark di Ultralytics YOLO11, confrontare le prestazioni tra i vari dispositivi ed esplorare diversi formati di esportazione per ottimizzare velocità, precisione ed efficienza.
Con il crescente numero di modelli di IA disponibili oggi, selezionare quello più adatto alla propria applicazione specifica di IA è essenziale per ottenere risultati accurati e affidabili. Ogni modello varia in termini di velocità, precisione e prestazioni complessive. Quindi, come possiamo determinare quale modello è più adatto a un determinato compito? Questo è particolarmente importante per i sistemi in tempo reale come i veicoli autonomi, le soluzioni di sicurezza e la robotica, dove il processo decisionale rapido e affidabile è fondamentale.
Il benchmarking aiuta a rispondere a questa domanda valutando un modello in diverse condizioni. Fornisce informazioni su come il modello si comporta su diverse configurazioni e setup hardware, consentendo un processo decisionale più informato.
Ad esempio, Ultralytics YOLO11 è un modello di computer vision che supporta diverse attività di analisi dei dati visivi, come il rilevamento degli oggetti e la segmentazione delle istanze. Per comprendere appieno le sue capacità, è possibile eseguire un benchmark delle sue prestazioni su diverse configurazioni per vedere come gestirà gli scenari del mondo reale.
In questo articolo, analizzeremo come effettuare il benchmark dei modelliYOLO diUltralytics come YOLO11, confrontando le loro prestazioni su vari hardware e vedendo come i diversi formati di esportazione influiscono sulla loro velocità ed efficienza. Iniziamo!
Cos'è il benchmarking dei modelli?
Quando si tratta di utilizzare un modello di Vision AI in un'applicazione reale, come si fa a capire se sarà abbastanza veloce, preciso e affidabile? Il benchmarking del modello può fornire informazioni per rispondere a questa domanda. Il benchmarking del modello è il processo di test e confronto di diversi modelli di IA per vedere quale funziona meglio.
Implica la definizione di una baseline per il confronto, la scelta delle giuste misure di performance (come accuratezza o velocità) e il test di tutti i modelli nelle stesse condizioni. I risultati aiutano a identificare i punti di forza e di debolezza di ciascun modello, rendendo più facile decidere quale sia il più adatto per la tua specifica soluzione AI. In particolare, un dataset di riferimento viene spesso utilizzato per fornire confronti equi e valutare le prestazioni di un modello in diversi scenari del mondo reale.
Fig. 1. Perché valutare i modelli di computer vision? Immagine dell'autore.
Un chiaro esempio del motivo per cui il benchmarking è fondamentale si trova nelle applicazioni in tempo reale come la sorveglianza o la robotica, dove anche lievi ritardi possono influire sul processo decisionale. Il benchmarking aiuta a valutare se un modello è in grado di elaborare le immagini rapidamente, fornendo al contempo previsioni affidabili.
Svolge anche un ruolo chiave nell'identificazione dei colli di bottiglia delle prestazioni. Se un modello funziona lentamente o utilizza risorse eccessive, il benchmarking può rivelare se il problema deriva da limitazioni hardware, configurazioni del modello o formati di esportazione. Queste informazioni sono fondamentali per selezionare la configurazione più efficace.
Benchmarking del modello rispetto alla valutazione e al testing del modello
Il benchmarking, la valutazione e il testing del modello sono termini di IA popolari che vengono usati insieme. Pur essendo simili, non sono la stessa cosa e hanno funzioni diverse. Il testing del modello verifica le prestazioni di un singolo modello eseguendolo su un dataset di test e misurando fattori come l'accuratezza e la velocità. Nel frattempo, la valutazione del modello fa un ulteriore passo avanti analizzando i risultati per comprendere i punti di forza, i punti deboli del modello e il suo funzionamento in situazioni reali. Entrambi si concentrano su un solo modello alla volta.
Il benchmarking del modello, tuttavia, confronta più modelli affiancati utilizzando gli stessi test e dataset. Aiuta a scoprire quale modello funziona meglio per un'attività specifica, evidenziando le differenze di accuratezza, velocità ed efficienza tra loro. Mentre il testing e la valutazione si concentrano su un singolo modello, il benchmarking aiuta a scegliere quello giusto (o il migliore) confrontando diverse opzioni in modo equo.
Fig. 2. In cosa il benchmarking dei modelli differisce dalla valutazione e dal testing. Immagine dell'autore.
Una panoramica di Ultralytics YOLO11
Ultralytics YOLO11 è un modello AI di visione affidabile, progettato per eseguire in modo accurato diversi compiti di visione artificiale. Migliora le versioni precedenti del modello YOLO ed è ricco di funzioni che possono aiutare a risolvere i problemi del mondo reale. Ad esempio, può essere utilizzato per detect oggetti, classify immagini, segment regioni, track movimenti e altro ancora. Può essere utilizzato anche in applicazioni di molti settori, dalla sicurezza all'automazione e all'analisi.
Figura 3. Un esempio di utilizzo di YOLO11 per segment persone in un'immagine.
Uno dei vantaggi principali di Ultralytics YOLO11 è la sua facilità d'uso. Con poche righe di codice, chiunque può integrarlo nei propri progetti di intelligenza artificiale senza dover affrontare configurazioni complicate o competenze tecniche avanzate.
Funziona senza problemi anche su hardware diversi, funzionando in modo efficiente su CPU (Central Processing Units), GPU (Graphics Processing Units) e altri acceleratori AI specializzati. Sia che venga implementato su dispositivi edge o server cloud, offre prestazioni elevate.
YOLO11 è disponibile in vari modelli, ciascuno ottimizzato per compiti diversi. Il benchmarking aiuta a determinare la versione più adatta alle vostre esigenze specifiche. Ad esempio, un aspetto fondamentale che il benchmarking può rivelare è che i modelli più piccoli, come il nano o il piccolo, tendono a funzionare più velocemente, ma possono rinunciare a una certa precisione.
Come eseguire il benchmark dei modelli YOLO come YOLO11
Ora che abbiamo capito cos'è il benchmarking e la sua importanza. Vediamo come è possibile effettuare il benchmarking di modelli YOLO come YOLO11 e valutarne l'efficienza per raccogliere informazioni preziose.
Per iniziare, potete installare il pacchettoUltralytics Python eseguendo il seguente comando nel vostro terminale o prompt dei comandi: "pip install ultralytics". Se si verificano problemi durante l'installazione, consultare la nostra Guida ai problemi comuni per i suggerimenti sulla risoluzione dei problemi.
Una volta installato il pacchetto, è possibile eseguire facilmente il benchmark di YOLO11 con poche righe di codice Python :
from ultralytics.utils.benchmarks import benchmark
# Benchmark on GPUbenchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)
Quando si esegue il codice mostrato sopra, si calcola la velocità con cui il modello elabora le immagini, quanti frame è in grado di gestire in un secondo e con quale precisione rileva gli oggetti.
La menzione di "coco8yaml" nel codice si riferisce a un file di configurazione del set di dati basato su COCO8 (Common Objects in Context), una piccola versione campione del set di dati COCO completo, spesso utilizzata per test e sperimentazioni.
Se si sta testando YOLO11 per un'applicazione specifica, come il monitoraggio del traffico o l'imaging medico, l'utilizzo di un set di dati pertinente (ad esempio, un set di dati sul traffico o un set di dati medici) fornirà indicazioni più precise. Il benchmarking con COCO fornisce un'idea generale delle prestazioni, ma per ottenere risultati migliori è possibile scegliere un set di dati che rifletta il caso d'uso effettivo.
Comprendere i risultati del benchmarking YOLO11
Una volta eseguito il benchmark di YOLO11 , il passo successivo è l'interpretazione dei risultati. Dopo aver eseguito il benchmark, si vedranno vari numeri nei risultati. Queste metriche aiutano a valutare le prestazioni di YOLO11 in termini di precisione e velocità.
Ecco alcune metriche di benchmarking degne di nota di YOLO11 :
mAP50: misura l'accuratezza del rilevamento degli oggetti. Un valore più alto significa che il modello è in grado di riconoscere meglio gli oggetti.
accuracy_top5: È comunemente usato per le attività di classificazione. Mostra quanto spesso l'etichetta corretta appare tra le prime cinque previsioni.
Tempo di inferenza: Il tempo necessario per elaborare una singola immagine, misurato in millisecondi. Valori inferiori indicano un'elaborazione più rapida.
Figura 4. Un grafico che mostra le prestazioni del benchmark di YOLO11.
Altri fattori da considerare nel confronto con YOLO11
Osservare solo i risultati dei benchmark racconta solo una parte della storia. Per comprendere meglio le prestazioni, è utile confrontare diverse impostazioni e opzioni hardware. Ecco alcune cose importanti da considerare:
GPU vs. CPU: Le GPU possono elaborare le immagini molto più velocemente delle CPU. I benchmark aiutano a capire se la CPU è sufficientemente veloce per le proprie esigenze o se si può trarre vantaggio dall'uso di una GPU.
Impostazioni di precisione (FP32, FP16, INT8): Queste controllano il modo in cui il modello gestisce i numeri. Una precisione inferiore (come FP16 o INT8) fa sì che il modello funzioni più velocemente e utilizzi meno memoria, ma potrebbe ridurre leggermente l'accuratezza.
Formati di esportazione: La conversione del modello in un formato come TensorRT può renderlo molto più veloce su determinati hardware. Questo è utile se si sta ottimizzando la velocità su dispositivi specifici.
Come eseguire il benchmark di YOLO11 su hardware diversi
Il pacchetto Ultralytics Python consente di convertire i modelli YOLO11 in diversi formati che funzionano in modo più efficiente su hardware specifici, migliorando sia la velocità che l'utilizzo della memoria. Ogni formato di esportazione è ottimizzato per diversi dispositivi.
Da un lato, il formatoONNX può accelerare le prestazioni in vari ambienti. D'altro canto, OpenVINO migliora l'efficienza sull'hardware Intel e formati come CoreML o TF SavedModel sono ideali per i dispositivi Apple e le applicazioni mobili.
Vediamo come eseguire il benchmark di YOLO11 in un formato specifico. Il codice sottostante esegue il benchmark di YOLO11 nel formato ONNX , ampiamente utilizzato per l'esecuzione di modelli di intelligenza artificiale sia su CPU che su GPU.
from ultralytics.utils.benchmarks import benchmark
# Benchmark a specific export format (e.g., ONNX) benchmark(model="yolo11n.pt", data="coco8.yaml", imgsz=640, format="onnx")
Al di là dei risultati dei benchmark, la scelta del formato giusto dipende dalle specifiche del sistema e dalle esigenze di implementazione. Ad esempio, le auto a guida autonoma hanno bisogno di un rilevamento rapido degli oggetti. Se si prevede di utilizzare le GPU NVIDIA per accelerare le prestazioni, il formato TensorRT è la scelta ideale per eseguire YOLO11 su unaGPU NVIDIA .
Figura 5. Utilizzo di YOLO11 per il rilevamento di oggetti nelle auto a guida autonoma.
Punti chiave
Il pacchetto Ultralytics Python semplifica il benchmarking di YOLO11 fornendo semplici comandi che possono gestire i test delle prestazioni per voi. Con pochi passaggi, è possibile vedere come le diverse configurazioni influenzano la velocità e l'accuratezza dei modelli, aiutandovi a fare scelte informate senza bisogno di profonde competenze tecniche.
Anche l'hardware e le impostazioni giuste possono fare una grande differenza. La regolazione di parametri come la dimensione del modello e il set di dati consente di mettere a punto YOLO11 per ottenere le migliori prestazioni, sia che lo si esegua su una GPU di fascia alta o localmente su un dispositivo edge.