YOLOv5 vs YOLOv9: un confronto dettagliato
Questa pagina fornisce un confronto tecnico tra due importanti modelli di object detection: Ultralytics YOLOv5 e YOLOv9. Entrambi i modelli fanno parte dell'influente serie YOLO (You Only Look Once), nota per bilanciare velocità e precisione nell'object detection in tempo reale. Questo confronto esplora le loro differenze architetturali, le metriche di performance e i casi d'uso ideali per aiutarti a selezionare il modello più adatto per i tuoi progetti di computer vision.
Ultralytics YOLOv5: Lo standard industriale consolidato
Autore: Glenn Jocher
Organizzazione: Ultralytics
Data: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Documentazione: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 ha rapidamente guadagnato popolarità dopo la sua uscita grazie al suo notevole equilibrio tra velocità, precisione e facilità d'uso. Sviluppato interamente in PyTorch, YOLOv5 presenta un'architettura che utilizza CSPDarknet53 come backbone e PANet per l'aggregazione delle feature, insieme a un'efficiente detection head anchor-based. Offre varie dimensioni di modello (n, s, m, l, x), consentendo agli utenti di scegliere in base alle proprie risorse computazionali ed esigenze di prestazioni.
Punti di forza
- Velocità ed efficienza eccezionali: YOLOv5 è altamente ottimizzato per l'inferenza rapida, il che lo rende ideale per applicazioni in tempo reale su vari hardware, inclusi i dispositivi edge.
- Facilità d'uso: Ultralytics YOLOv5 è rinomato per la sua esperienza utente semplificata, le semplici interfacce Python e CLI e la vasta documentazione.
- Ecosistema ben mantenuto: Beneficia dell'integrazione con l'ecosistema Ultralytics, caratterizzato da sviluppo attivo, una comunità ampia e collaborativa, aggiornamenti frequenti e risorse complete come Ultralytics HUB per l'addestramento senza codice.
- Bilanciamento delle prestazioni: Raggiunge un forte compromesso tra velocità di inferenza e accuratezza del rilevamento, adatto a diversi scenari di implementazione nel mondo reale.
- Versatilità: Supporta molteplici attività, tra cui il rilevamento di oggetti, la segmentazione di istanza e la classificazione delle immagini.
- Efficienza di addestramento: Offre processi di addestramento efficienti, pesi pre-addestrati facilmente disponibili e requisiti di memoria generalmente inferiori rispetto a molte altre architetture, specialmente i modelli basati su transformer.
Punti deboli
- Precisione: Pur essendo stato molto preciso per il suo tempo, i modelli più recenti come YOLOv9 possono raggiungere punteggi mAP più alti su benchmark come COCO.
- Basato su Anchor: Si basa su anchor box predefinite, il che potrebbe richiedere una maggiore messa a punto per dataset specifici rispetto agli approcci anchor-free.
Casi d'uso
- Videosorveglianza in tempo reale e sistemi di sicurezza.
- Distribuzione su dispositivi edge con risorse limitate come Raspberry Pi e NVIDIA Jetson.
- Automazione industriale e controllo qualità, come ad esempio il miglioramento della produzione con la computer vision.
- Prototipazione e sviluppo rapidi grazie alla sua facilità d'uso e al solido ecosistema.
YOLOv9: Avanzamento dell'accuratezza con nuove tecniche
Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
Data: 2024-02-21
Arxiv: https://arxiv.org/abs/2402.13616
GitHub: https://github.com/WongKinYiu/yolov9
Documentazione: https://docs.ultralytics.com/models/yolov9/
YOLOv9 introduce significative innovazioni architetturali, vale a dire il Programmable Gradient Information (PGI) e la Generalized Efficient Layer Aggregation Network (GELAN). PGI mira a mitigare la perdita di informazioni quando i dati fluiscono attraverso reti profonde fornendo informazioni complete sull'input per il calcolo della funzione di perdita. GELAN è una nuova architettura progettata per un utilizzo superiore dei parametri e un'efficienza computazionale. Questi progressi consentono a YOLOv9 di ottenere una maggiore precisione pur mantenendo l'efficienza.
Punti di forza
- Accuratezza Migliorata: Stabilisce nuovi risultati all'avanguardia sul dataset COCO per i rilevatori di oggetti in tempo reale, superando YOLOv5 e altri modelli in mAP.
- Maggiore efficienza: GELAN e PGI contribuiscono a modelli che richiedono meno parametri e risorse computazionali (FLOP) per prestazioni comparabili o migliori rispetto ai modelli precedenti.
- Preservazione delle informazioni: PGI affronta efficacemente il problema del collo di bottiglia delle informazioni, fondamentale per addestrare accuratamente reti più profonde e complesse.
Punti deboli
- Risorse di addestramento: L'addestramento dei modelli YOLOv9 può richiedere più risorse e tempo rispetto a Ultralytics YOLOv5, come indicato nella documentazione di YOLOv9.
- Architettura più recente: Essendo un modello più recente di un diverso gruppo di ricerca, il suo ecosistema, il supporto della community e le integrazioni di terze parti sono meno maturi rispetto al consolidato Ultralytics YOLOv5.
- Versatilità delle attività: Focalizzato principalmente sul rilevamento di oggetti, manca del supporto integrato per la segmentazione, la classificazione e la stima della posa presenti nei modelli Ultralytics come YOLOv5 e YOLOv8.
Casi d'uso
- Applicazioni che richiedono la massima accuratezza possibile nel rilevamento degli oggetti.
- Scenari in cui l'efficienza computazionale è fondamentale insieme alle alte prestazioni.
- Analisi video avanzata e ispezione industriale ad alta precisione.
- AI nella gestione del traffico e applicazioni di smart city che richiedono un rilevamento di alto livello.
Prestazioni e benchmark: YOLOv5 vs. YOLOv9
Nel confrontare le prestazioni, i modelli YOLOv9 generalmente raggiungono punteggi mAP più alti rispetto alle loro controparti YOLOv5, dimostrando l'efficacia delle sue innovazioni architettoniche. Tuttavia, Ultralytics YOLOv5 mantiene una posizione forte grazie alla sua eccezionale velocità di inferenza e all'implementazione altamente ottimizzata, rendendolo una scelta formidabile per le applicazioni in tempo reale in cui i frame al secondo (FPS) sono una metrica critica.
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 |
YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Analisi Approfondita dell'Architettura
Architettura YOLOv5
L'architettura di Ultralytics YOLOv5 è un'implementazione raffinata dei principi della famiglia YOLO. Consiste in tre parti principali:
- Backbone: Una rete CSPDarknet53, che è una versione modificata di Darknet-53 che incorpora moduli Cross Stage Partial (CSP) per ridurre il calcolo mantenendo la precisione.
- Neck: Una Path Aggregation Network (PANet) viene utilizzata per aggregare le caratteristiche da diversi livelli del backbone, migliorando il rilevamento di oggetti a varie scale.
- Head: L'head di rilevamento è basato su anchor, prevedendo bounding box da forme di anchor box predefinite, il che contribuisce alla sua elevata velocità.
Architettura YOLOv9
YOLOv9 introduce nuovi concetti per superare i limiti di accuratezza ed efficienza:
- Informazioni sul Gradiente Programmabile (PGI): Questo meccanismo è progettato per combattere il problema del collo di bottiglia delle informazioni nelle reti profonde. Assicura che le informazioni di input complete siano disponibili per il calcolo della funzione di perdita, portando a aggiornamenti del gradiente più affidabili e una migliore convergenza del modello.
- Generalized Efficient Layer Aggregation Network (GELAN): Questa è una nuova architettura di rete che si basa sui principi di CSPNet e ELAN. GELAN è progettata per ottimizzare l'utilizzo dei parametri e l'efficienza computazionale, consentendo al modello di ottenere una maggiore precisione con meno risorse.
Formazione ed ecosistema
L'esperienza di addestramento e il supporto dell'ecosistema sono i punti di forza di Ultralytics YOLOv5.
- Facilità d'uso: YOLOv5 offre un'esperienza incredibilmente intuitiva con semplici API da riga di comando e Python, numerosi tutorial e una documentazione completa.
- Ecosistema ben mantenuto: Come modello ufficiale Ultralytics, YOLOv5 fa parte di un ecosistema solido che include sviluppo attivo, un'ampia comunità su GitHub e Discord, aggiornamenti frequenti e integrazione perfetta con strumenti MLOps come Ultralytics HUB.
- Efficienza di addestramento: YOLOv5 è altamente efficiente da addestrare, con pesi pre-addestrati facilmente disponibili e requisiti di memoria inferiori rispetto ad architetture più complesse. Questo lo rende accessibile a utenti con una gamma più ampia di hardware.
Sebbene YOLOv9 sia un modello potente, il suo processo di addestramento può essere più impegnativo e il suo ecosistema non è così maturo o integrato come quello dei modelli Ultralytics. Per gli sviluppatori che cercano un percorso fluido e ben supportato dall'addestramento all'implementazione, YOLOv5 offre un chiaro vantaggio.
Conclusione: Quale modello dovresti scegliere?
Sia YOLOv5 che YOLOv9 sono modelli eccellenti, ma soddisfano priorità diverse.
-
Ultralytics YOLOv5 è la scelta ideale per gli sviluppatori che danno priorità alla velocità, alla facilità d'uso e a un ecosistema maturo e ben supportato. Il suo eccezionale equilibrio delle prestazioni lo rende perfetto per applicazioni in tempo reale, prototipazione rapida e implementazione su dispositivi edge AI con risorse limitate. La sua versatilità in diverse attività di visione aumenta il suo valore come framework di AI per la visione di uso generale.
-
YOLOv9 è più adatto per applicazioni in cui l'obiettivo primario è ottenere la massima accuratezza possibile nel rilevamento degli oggetti e le risorse computazionali per l'addestramento sono meno rilevanti. La sua architettura innovativa offre risultati all'avanguardia su benchmark impegnativi.
Per la maggior parte degli utenti, specialmente quelli che cercano un modello affidabile, veloce e facile da usare con un forte supporto dalla comunità e commerciale, Ultralytics YOLOv5 rimane una delle principali raccomandazioni. Per coloro che sono interessati agli ultimi progressi di Ultralytics, modelli come YOLOv8 e il più recente YOLO11 offrono prestazioni e versatilità ancora maggiori, pur mantenendo l'esperienza user-friendly che definisce l'ecosistema Ultralytics.