YOLOv5 contro YOLOv8: Un confronto dettagliato
Il confronto tra Ultralytics YOLOv5 e Ultralytics YOLOv8 per il rilevamento di oggetti rivela progressi significativi e punti di forza distinti in ciascun modello. Entrambi i modelli, sviluppati da Ultralytics, sono rinomati per la loro velocità e precisione, ma soddisfano diverse esigenze e priorità degli utenti nel campo della computer vision. Questa pagina fornisce un confronto tecnico per aiutare gli utenti a prendere decisioni informate in base ai requisiti del loro progetto, evidenziando i vantaggi dell'ecosistema Ultralytics.
YOLOv5: Lo standard affermato e versatile
Autore: Glenn Jocher
Organizzazione: Ultralytics
Data: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Documentazione: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 è diventato rapidamente uno standard industriale dopo la sua uscita, celebrato per il suo eccezionale equilibrio tra velocità, precisione e facilità d'uso. Costruito interamente in PyTorch, YOLOv5 presenta un'architettura robusta con un backbone CSPDarknet53 e un neck PANet per un'efficiente aggregazione delle feature. La sua detection head anchor-based è altamente efficace e il modello è disponibile in varie dimensioni (n, s, m, l, x), consentendo agli sviluppatori di selezionare il compromesso ottimale per le loro specifiche esigenze di prestazioni e computazionali.
Punti di forza
- Velocità ed efficienza eccezionali: YOLOv5 è altamente ottimizzato per l'inferenza rapida, rendendolo una scelta eccellente per applicazioni in tempo reale su diversi hardware, dai potenti server ai dispositivi edge con risorse limitate.
- Facilità d'uso: Rinomato per la sua esperienza utente semplificata, YOLOv5 offre semplici interfacce Python e CLI, supportate da una documentazione completa.
- Ecosistema Maturo e Ben Manutenuto: Essendo un modello consolidato, beneficia di una comunità ampia e attiva, aggiornamenti frequenti e integrazione perfetta con l'ecosistema Ultralytics, inclusi strumenti come Ultralytics HUB per l'addestramento senza codice.
- Efficienza di addestramento: YOLOv5 offre un processo di addestramento efficiente con pesi pre-addestrati facilmente disponibili, consentendo rapidi cicli di sviluppo. In genere richiede meno memoria per l'addestramento e l'inferenza rispetto ad architetture più complesse come i transformer.
Punti deboli
- Rilevamento basato su anchor: La sua dipendenza da anchor box predefiniti a volte può richiedere una messa a punto manuale per ottenere prestazioni ottimali su dataset con oggetti di forma insolita, a differenza dei moderni rilevatori anchor-free.
- Precisione: Pur essendo stato molto preciso, i modelli più recenti come YOLOv8 hanno superato le sue prestazioni su benchmark standard come il dataset COCO.
Casi d'uso ideali
La velocità e l'efficienza di YOLOv5 lo rendono perfetto per:
- Videosorveglianza in tempo reale e sistemi di sicurezza.
- Distribuzione su dispositivi edge come NVIDIA Jetson e Raspberry Pi.
- Automazione industriale e controllo qualità nella produzione.
- Prototipazione rapida per progetti di computer vision grazie alla sua semplicità e ai tempi di training veloci.
YOLOv8: Il framework di ultima generazione, all'avanguardia
Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione: Ultralytics
Data: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
Documenti: https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8 rappresenta la prossima evoluzione della serie YOLO, progettata come framework unificato che supporta uno spettro completo di attività di visione artificiale. Oltre al rilevamento di oggetti, eccelle nella segmentazione di istanze, nella classificazione delle immagini, nella stima della posa e nel rilevamento di oggetti orientati. YOLOv8 introduce importanti miglioramenti architetturali, come un head di rilevamento senza ancore e un nuovo modulo C2f, per offrire prestazioni all'avanguardia.
Punti di forza
- Maggiore accuratezza e velocità: YOLOv8 offre un equilibrio superiore tra velocità e accuratezza, ottenendo punteggi mAP più alti rispetto a YOLOv5 in tutte le dimensioni del modello, pur mantenendo velocità di inferenza competitive.
- Versatilità: Il suo supporto per molteplici attività di visione all'interno di un singolo framework coeso lo rende uno strumento incredibilmente potente e flessibile per lo sviluppo di sistemi di IA complessi.
- Architettura moderna: L'head di rilevamento anchor-free semplifica il livello di output e migliora le prestazioni eliminando la necessità di ottimizzare le anchor box.
- Ecosistema ben mantenuto: Come modello di punta, YOLOv8 beneficia di sviluppo attivo, aggiornamenti frequenti e forte supporto della comunità. È completamente integrato nell'ecosistema Ultralytics, inclusa la piattaforma Ultralytics HUB per un MLOps semplificato.
- Efficienza della memoria: Nonostante la sua architettura avanzata, YOLOv8 è ottimizzato per un basso utilizzo della memoria, rendendolo accessibile su una vasta gamma di hardware.
Punti deboli
- Richiesta computazionale: I modelli YOLOv8 più grandi (ad esempio, YOLOv8x) richiedono notevoli risorse computazionali, il che potrebbe essere un fattore da considerare per l'implementazione in ambienti altamente vincolati.
Casi d'uso ideali
YOLOv8 è la scelta consigliata per le applicazioni che richiedono la massima precisione e flessibilità:
- Robotica avanzata che richiede una comprensione complessa della scena e l'interazione con più oggetti.
- Analisi di immagini ad alta risoluzione per imaging medicale o satellitare dove il dettaglio preciso è fondamentale.
- Sistemi di visione multi-task che devono eseguire detection, segmentation e stima della posa simultaneamente.
- Nuovi progetti in cui la priorità è iniziare con il modello più recente e all'avanguardia.
Benchmark delle prestazioni: YOLOv5 vs. YOLOv8
La differenza di prestazioni tra YOLOv5 e YOLOv8 è evidente quando si confrontano le loro metriche sul dataset COCO. In generale, i modelli YOLOv8 dimostrano una maggiore accuratezza (mAP) per un numero comparabile di parametri e costi computazionali (FLOPs). Ad esempio, YOLOv8n raggiunge un mAP di 37.3, quasi corrispondente a YOLOv5s (37.4 mAP) ma con il 68% in meno di parametri e un'inferenza su CPU significativamente più veloce.
Tuttavia, YOLOv5 rimane un contendente formidabile, soprattutto in scenari in cui la velocità pura della GPU è la massima priorità. Il modello YOLOv5n, ad esempio, vanta il tempo di inferenza più veloce su una GPU T4. Questo lo rende una scelta eccellente per le applicazioni in tempo reale in esecuzione su hardware ottimizzato.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Principali differenze architetturali
L'evoluzione da YOLOv5 a YOLOv8 ha introdotto diverse modifiche architettoniche significative che contribuiscono alle sue prestazioni e flessibilità superiori.
Backbone e Neck
YOLOv5 utilizza il modulo C3 nel suo backbone e neck. Al contrario, YOLOv8 lo sostituisce con il modulo C2f. Il modulo C2f (Cross Stage Partial BottleNeck con 2 convoluzioni) fornisce una fusione delle caratteristiche più efficiente e un flusso di gradiente più ricco, il che migliora l'accuratezza complessiva del modello.
Detection Head
Una distinzione importante risiede nell'head di rilevamento. YOLOv5 impiega un head accoppiato, basato su anchor, il che significa che lo stesso set di feature viene utilizzato sia per la classificazione degli oggetti che per la regressione dei bounding box. YOLOv8 utilizza un head senza anchor, disaccoppiato. Questa separazione dei task (un head per la classificazione, un altro per la regressione) consente a ciascuno di specializzarsi, migliorando l'accuratezza. L'approccio senza anchor semplifica anche il processo di addestramento ed elimina la necessità di ottimizzare i prior dei bounding box anchor, rendendo il modello più adattabile a diversi dataset.
Metodologie di training ed ecosistema
Sia YOLOv5 che YOLOv8 sono costruiti su PyTorch e sfruttano le pipeline di addestramento semplificate di Ultralytics, offrendo un'esperienza coerente e facile da usare.
- Facilità d'uso: Entrambi i modelli possono essere facilmente addestrati utilizzando le interfacce CLI o Python fornite con una configurazione minima. La documentazione completa (Documentazione YOLOv5, Documentazione YOLOv8) e le semplici API rendono l'addestramento personalizzato semplice.
- Efficient Training: Script di training ottimizzati e pesi pre-addestrati facilmente disponibili riducono significativamente i tempi di training e i costi computazionali.
- Aumento dei dati: Entrambi i modelli incorporano un solido set di tecniche di aumento dei dati integrate per migliorare la generalizzazione del modello e ridurre l'overfitting.
- Ecosistema Ultralytics: L'integrazione con strumenti come Ultralytics HUB e piattaforme di logging come TensorBoard e Comet semplifica il tracciamento degli esperimenti, la gestione dei modelli e il deployment.
Conclusione: Quale modello dovresti scegliere?
Sia YOLOv5 che YOLOv8 sono modelli potenti per il rilevamento di oggetti sviluppati da Ultralytics, che offrono prestazioni eccellenti e facilità d'uso. La scelta tra i due dipende in gran parte dai requisiti specifici del tuo progetto.
-
YOLOv5 rimane un contendente forte e affidabile, in particolare per le applicazioni in cui massimizzare la velocità di inferenza su hardware specifico è fondamentale. La sua maturità significa che ha un vasto ecosistema ed è stato testato innumerevoli volte in deployment nel mondo reale. È una scelta eccellente per i progetti con un budget di risorse limitato o per quelli che richiedono un deployment rapido su dispositivi edge.
-
YOLOv8 rappresenta l'avanguardia della serie YOLO, offrendo accuratezza superiore, maggiore versatilità in diverse attività di visione e un'architettura più moderna. Il suo design anchor-free e le funzionalità avanzate lo rendono la scelta ideale per nuovi progetti che cercano prestazioni all'avanguardia e la flessibilità per gestire sfide di IA complesse e sfaccettate.
Ultralytics continua a innovare, garantendo che entrambi i modelli siano ben supportati, facili da usare e forniscano un ottimo equilibrio tra velocità e precisione, adatti a diversi scenari del mondo reale.
Esplora altri modelli Ultralytics
Per gli utenti che esplorano altre opzioni all'avanguardia, Ultralytics offre anche modelli come YOLOv9, YOLOv10 e l'ultimo YOLO11, ognuno dei quali offre vantaggi unici in termini di prestazioni ed efficienza. Ulteriori confronti sono disponibili nella documentazione Ultralytics.