YOLOv9 vs YOLOv5: Un Confronto Dettagliato
Questa pagina fornisce un confronto tecnico tra due importanti modelli di object detection: YOLOv9 e Ultralytics YOLOv5. 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.
YOLOv9: Avanzamento dell'accuratezza con una nuova architettura
YOLOv9 è stato introdotto a febbraio 2024, portando significative innovazioni architetturali all'avanguardia nel rilevamento di oggetti. Mira a risolvere il problema della perdita di informazioni nelle reti neurali profonde, una sfida critica per l'addestramento di modelli altamente efficaci.
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/
Architettura e Innovazioni
YOLOv9 introduce due concetti rivoluzionari descritti nel suo paper, "YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information":
- Informazioni sul Gradiente Programmabile (PGI): Questo nuovo approccio è progettato per affrontare il problema del collo di bottiglia delle informazioni che si verifica quando i dati fluiscono attraverso i livelli di una rete profonda. PGI assicura che le informazioni di input complete siano disponibili per il calcolo della funzione di perdita, preservando così i dati cruciali per aggiornamenti del gradiente più accurati e un addestramento del modello più efficace.
- Generalized Efficient Layer Aggregation Network (GELAN): YOLOv9 presenta anche GELAN, una nuova architettura di rete ottimizzata per un utilizzo dei parametri e un'efficienza computazionale superiori. Si basa sui principi di CSPNet e ELAN per creare una struttura che raggiunge una maggiore precisione con meno parametri e costi computazionali (FLOP).
Punti di forza
- Accuratezza Migliorata: YOLOv9 stabilisce un nuovo stato dell'arte sul dataset COCO, superando molti precedenti rilevatori di oggetti in tempo reale nella precisione media (mAP).
- Maggiore efficienza: La combinazione di PGI e GELAN si traduce in modelli che non sono solo altamente accurati, ma anche computazionalmente efficienti, rendendoli potenti per attività in cui le prestazioni sono fondamentali.
- Preservazione delle informazioni: Affrontando direttamente il collo di bottiglia delle informazioni, PGI consente l'addestramento di reti più profonde e complesse senza il tipico degrado delle prestazioni, portando a modelli più robusti.
Punti deboli
- Risorse di addestramento: Come indicato nella documentazione di YOLOv9, l'addestramento dei modelli YOLOv9 può richiedere più risorse e tempo rispetto a modelli più consolidati come YOLOv5.
- Ecosistema 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 di quelli del consolidato Ultralytics YOLOv5.
- Versatilità delle attività: YOLOv9 originale si concentra principalmente sul rilevamento di oggetti. Manca del supporto integrato per altre attività di visione come la segmentazione di istanze, la classificazione di immagini e la stima della posa, che sono supportate nativamente nei modelli Ultralytics.
Casi d'uso
- Applicazioni che richiedono la massima accuratezza possibile nel rilevamento degli oggetti, come l'analisi video avanzata e l'ispezione industriale ad alta precisione.
- Scenari in cui l'efficienza computazionale deve essere bilanciata con prestazioni di alto livello, come nell'IA per la gestione del traffico.
- Ricerca e sviluppo nella computer vision avanzata, dove l'esplorazione di architetture innovative è una priorità.
Ultralytics YOLOv5: Lo standard consolidato e versatile
Rilasciato nel 2020, Ultralytics YOLOv5 è diventato rapidamente uno standard del settore grazie al suo eccezionale equilibrio tra velocità, precisione e facilità d'uso. Sviluppato interamente in PyTorch, è stato continuamente perfezionato ed è supportato da un ecosistema robusto.
Autore: Glenn Jocher
Organizzazione: Ultralytics
Data: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Documentazione: https://docs.ultralytics.com/models/yolov5/
Architettura e Funzionalità
YOLOv5 utilizza un'architettura collaudata con un backbone CSPDarknet53 e un neck PANet per un'efficace aggregazione delle caratteristiche. Il suo detection head basato su anchor è altamente efficiente. Il modello è disponibile in varie dimensioni (n, s, m, l, x), consentendo agli sviluppatori di scegliere il perfetto compromesso tra prestazioni e vincoli di risorse.
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 una vasta gamma di hardware, dalle potenti GPU ai dispositivi edge con risorse limitate.
- Facilità d'uso: Rinomato per la sua esperienza utente semplificata, YOLOv5 offre semplici interfacce Python e CLI, insieme a una documentazione estesa e chiara.
- Ecosistema ben manutenuto: YOLOv5 beneficia del completo ecosistema Ultralytics, che include sviluppo attivo, una community ampia e collaborativa su Discord, aggiornamenti frequenti e strumenti potenti come Ultralytics HUB per l'addestramento e il deployment senza codice.
- Bilanciamento delle prestazioni: Ottiene un forte compromesso tra velocità di inferenza e precisione di rilevamento, rendendolo adatto a una vasta gamma di scenari di implementazione nel mondo reale.
- Versatilità: A differenza di molti modelli specializzati, YOLOv5 supporta nativamente diverse attività, tra cui il rilevamento di oggetti, la segmentazione di istanze e la classificazione delle immagini.
- Efficienza di addestramento: YOLOv5 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
- Accuratezza di picco: Pur essendo molto accurati per il periodo in cui sono stati sviluppati, i modelli più recenti come YOLOv9 possono raggiungere punteggi mAP più elevati in benchmark come COCO.
- Design basato su anchor: Si basa su anchor box predefiniti, il che può richiedere una maggiore messa a punto per dataset con oggetti di forma insolita rispetto ai moderni 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 all'ampio supporto.
Prestazioni e benchmark: YOLOv9 vs. YOLOv5
Il confronto delle prestazioni tra YOLOv9 e YOLOv5 evidenzia i progressi nell'architettura del modello nel corso degli anni. I modelli YOLOv9 raggiungono costantemente punteggi mAP più alti rispetto alle loro controparti YOLOv5, spesso con un uso più efficiente dei parametri e dei FLOP nella fascia più alta. Ad esempio, YOLOv9-C raggiunge il 53,0% di mAP con 25,3 milioni di parametri, superando il 50,7% di mAP di YOLOv5x con 86,7 milioni di parametri.
Tuttavia, YOLOv5 eccelle in velocità, specialmente nelle sue varianti più piccole come YOLOv5n e YOLOv5s, che offrono tempi di inferenza estremamente rapidi sia su CPU che su GPU, rendendole imbattibili per molte applicazioni edge in tempo reale.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
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 |
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 |
Conclusione: Quale modello dovresti scegliere?
La scelta tra YOLOv9 e YOLOv5 dipende molto dalle esigenze specifiche del tuo progetto.
-
YOLOv9 è la scelta migliore per le applicazioni in cui l'accuratezza massima è l'obiettivo primario e si dispone di risorse computazionali sufficienti per l'addestramento. La sua architettura innovativa lo rende ideale per superare i limiti delle prestazioni di object detection in settori specializzati.
-
Ultralytics YOLOv5 rimane l'opzione più pratica e versatile per una gamma più ampia di applicazioni. I suoi vantaggi principali—facilità d'uso, velocità, supporto multi-task e un ecosistema maturo e ben supportato—lo rendono il modello di riferimento per gli sviluppatori che devono costruire soluzioni robuste e reali in modo rapido ed efficiente. Per i progetti che richiedono l'implementazione su dispositivi edge o un equilibrio tra velocità e precisione, YOLOv5 è spesso la scelta ottimale.
Per chi è alla ricerca di una via di mezzo o di funzionalità ancora più avanzate, Ultralytics offre una suite completa di modelli. Si consiglia di esplorare YOLOv8, che combina molti dei vantaggi di usabilità di YOLOv5 con un'architettura senza ancore e una versatilità ancora maggiore, oppure l'ultimo YOLO11 per prestazioni all'avanguardia all'interno dell'ecosistema Ultralytics. Ulteriori confronti sono disponibili nella nostra pagina di confronto dei modelli.