YOLOv5 vs YOLOv9#
Negli ultimi anni, il panorama della visione artificiale e del rilevamento di oggetti in tempo reale ha registrato notevoli progressi. Scegliere tra modelli consolidati e collaudati e nuove architetture di ricerca è una sfida comune per chi si occupa di ingegneria del machine learning. Questa guida offre un confronto tecnico completo tra due modelli molto influenti della famiglia YOLO: YOLOv5 e YOLOv9.
Che tu stia distribuendo modelli su dispositivi edge con risorse limitate, studiando l'estrazione di caratteristiche ad alta fedeltà o creando pipeline complesse per il rilevamento di oggetti, è fondamentale comprendere le differenze architetturali, le metriche delle prestazioni e le caratteristiche dei rispettivi ecosistemi.
Panoramica dei modelli#
Prima di approfondire il confronto tra le architetture, è utile conoscere le origini e gli obiettivi principali di ciascun modello.
Ultralytics YOLOv5#
Sviluppato da Glenn Jocher e rilasciato da Ultralytics il 26 giugno 2020, YOLOv5 ha segnato una svolta nel modo in cui gli sviluppatori interagivano con i modelli di visione artificiale. Adottando pienamente il framework PyTorch, YOLOv5 ha sostituito i complessi passaggi di compilazione dei precedenti modelli basati su Darknet con un'esperienza intuitiva, incentrata su Python.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: Repository YOLOv5
- Documentazione: Documentazione di YOLOv5
YOLOv5 è noto per la sua semplicità d'uso e per le prestazioni stabili su diversi ambienti hardware. Supporta non solo il rilevamento, ma anche la classificazione di immagini e la segmentazione di istanze.
YOLOv9#
Presentato da Chien-Yao Wang e Hong-Yuan Mark Liao dell'Institute of Information Science dell'Academia Sinica, Taiwan, YOLOv9 si concentra soprattutto sulla teoria architetturale per affrontare i problemi di collo di bottiglia informativo nelle reti neurali profonde.
- Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data: 2024-02-21
- Arxiv: 2402.13616
- GitHub: Repository di YOLOv9
- Documentazione: Documentazione di YOLOv9
YOLOv9 si basa su due importanti innovazioni teoriche: Programmable Gradient Information (PGI) e Generalized Efficient Layer Aggregation Network (GELAN). Questi concetti aiutano il modello a conservare caratteristiche spaziali essenziali attraverso gli strati profondi della rete.
Sebbene YOLOv5 e YOLOv9 siano potenti, il nuovo YOLO26 offre il miglior equilibrio tra velocità e precisione. Grazie all'inferenza end-to-end opzionale senza NMS e a un'inferenza su CPU fino al 43% più veloce, YOLO26 è altamente consigliato per l'edge computing moderno e le implementazioni in produzione.
Differenze architetturali e tecniche#
Per ottimizzare le strategie di implementazione dei modelli, è fondamentale comprendere i meccanismi alla base di questi modelli di visione.
Estrazione delle caratteristiche e conservazione delle informazioni#
YOLOv5 utilizza un backbone Cross Stage Partial Network (CSPNet), che riduce efficacemente il carico computazionale mantenendo un flusso accurato dei gradienti durante la retropropagazione. Questo design è altamente ottimizzato per le tradizionali operazioni GPU e richiede meno memoria durante l'addestramento rispetto alle alternative basate su Transformer più pesanti.
YOLOv9 introduce GELAN, un'architettura generica che estende i principi di CSPNet. Insieme a PGI, un ramo ausiliario reversibile, YOLOv9 garantisce che gli strati profondi non perdano i dati semantici necessari per funzioni obiettivo precise. Questo permette a YOLOv9 di raggiungere un'elevata accuratezza, soprattutto sugli oggetti più piccoli, anche se i complessi rami ausiliari possono talvolta complicare le pipeline di esportazione verso dispositivi edge con risorse molto limitate.
Requisiti di memoria ed efficienza di addestramento#
Per quanto riguarda l'efficienza di addestramento, YOLOv5 rimane estremamente robusto. L'ecosistema Ultralytics, mantenuto con cura, consente ai modelli YOLOv5 di consumare molta meno memoria CUDA e ai ricercatori di aumentare le dimensioni dei batch sulle GPU di fascia consumer. YOLOv9 raggiunge un'eccellente efficienza dei parametri, con un'elevata accuratezza rispetto alle sue dimensioni, ma l'addestramento può richiedere più risorse se non si utilizzano framework ottimizzati. Fortunatamente, integrando YOLOv9 nell'API Ultralytics, la gestione delle risorse si avvicina a quella semplificata di YOLOv5.
Prestazioni e metriche#
Per valutare obiettivamente queste architetture, ne confrontiamo le prestazioni su dataset standard come COCO. Di seguito trovi un'analisi dettagliata di metriche quali mAP (precisione media), velocità di inferenza e numero di parametri.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Come mostra la tabella, YOLOv9 raggiunge una maggiore accuratezza pura a parità di fascia, a conferma della sua architettura più recente. YOLOv5n mantiene però una latenza TensorRT estremamente bassa, pari a 1,12 ms, confermando la sua efficacia nelle applicazioni di edge computing locali ad alta velocità.
Metodologie di addestramento e semplicità d'uso#
Oggi, il vero vantaggio della visione artificiale risiede nell'accessibilità della toolchain.
I vantaggi di Ultralytics#
I repository di ricerca originali per modelli come YOLOv9 sono fondamentali, ma spesso includono matrici di dipendenze complesse e script standard ripetitivi. L'API Python di Ultralytics astrae completamente questa complessità. Grazie all'ecosistema Ultralytics, puoi addestrare, valutare ed esportare YOLOv5 e YOLOv9 usando la stessa sintassi unificata.
from ultralytics import YOLO
# Carica un modello YOLOv5 preaddestrato per una rapida implementazione
model_v5 = YOLO("yolov5su.pt") # YOLOv5u: pesi YOLOv5 anchor-free per il pacchetto ultralytics
# Oppure utilizza un modello YOLOv9 per un'accuratezza ad alta fedeltà
model_v9 = YOLO("yolov9c.pt")
# Addestra facilmente i modelli sui tuoi dati
results = model_v9.train(data="coco8.yaml", epochs=50, imgsz=640)
# Esporta il modello addestrato in ONNX
model_v9.export(format="onnx")Questo approccio basato su un'unica API offre grande versatilità: a seconda del modello scelto, supporta non solo il rilevamento, ma anche la stima della posa e i riquadri di delimitazione orientati (OBB). Inoltre, integrazioni affidabili con strumenti come Comet ML e Weights & Biases sono incluse direttamente nel ciclo di addestramento.
Casi d'uso ideali e applicazioni nel mondo reale#
La scelta tra queste architetture dipende soprattutto dai vincoli dell'hardware e dalla precisione richiesta dal tuo ambito applicativo.
Quando scegliere YOLOv5#
YOLOv5 è un modello collaudato sul campo, ideale per le implementazioni che privilegiano stabilità, ingombro ridotto in memoria e massima compatibilità con i formati di esportazione.
- Implementazioni su dispositivi mobili: esportare YOLOv5 in LiteRT o CoreML per l'inferenza direttamente sui vecchi smartphone è estremamente semplice.
- Hardware edge di generazione precedente: su dispositivi come Raspberry Pi o i primi NVIDIA Jetson Nano, le convoluzioni semplici di YOLOv5 garantiscono frame rate costanti per applicazioni come la gestione intelligente dei parcheggi.
- Prototipazione rapida: l'ampia disponibilità di tutorial della community, pesi preaddestrati personalizzati e compatibilità con numerosi dataset ne fanno il modo più rapido per convalidare una prova di fattibilità.
Quando scegliere YOLOv9#
YOLOv9 è ideale negli scenari in cui è fondamentale acquisire dettagli complessi e ridurre al minimo i falsi negativi, anche a costo di un consumo computazionale leggermente superiore.
- Immagini aeree e satellitari: il framework PGI è particolarmente efficace nel preservare la fedeltà degli oggetti piccoli e rende YOLOv9 ideale per il monitoraggio agricolo basato su droni.
- Diagnostica tramite immagini mediche: per rilevare anomalie o lesioni minuscole in scansioni ad alta risoluzione, il flusso accurato dei gradienti di GELAN offre un vantaggio essenziale nel richiamo.
- Analisi del retail di fascia alta: il tracciamento di prodotti sovrapposti su scaffali affollati trae notevole beneficio dalla maggiore capacità di YOLOv9 di conservare le caratteristiche.
Amplia i tuoi orizzonti#
Il confronto tra YOLOv5 e YOLOv9 mostra chiaramente l'evoluzione delle architetture dal 2020 al 2024, ma il campo dell'IA avanza più rapidamente che mai. Gli sviluppatori che vogliono raggiungere il massimo delle prestazioni dovrebbero valutare gli ultimi modelli YOLO26. Grazie al design end-to-end senza NMS (nms=False), disponibile nativamente come alternativa alla tradizionale soppressione dei non massimi, e all'avanzato ottimizzatore MuSGD, YOLO26 colma il divario tra l'accuratezza dei modelli di ricerca e la velocità richiesta in produzione. Con la rimozione della DFL (Distribution Focal Loss), che semplifica l'esportazione e migliora la compatibilità con dispositivi edge e a basso consumo, YOLO26 raggiunge un'inferenza su CPU fino al 43% più veloce, risultando ideale per l'edge computing. Inoltre, ProgLoss + STAL introduce funzioni di loss migliorate, con notevoli progressi nel riconoscimento degli oggetti piccoli, essenziale per IoT, robotica e immagini aeree.
Potrebbe interessarti anche confrontare queste architetture con altri modelli all'avanguardia, come RT-DETR o il molto efficace YOLO11. Utilizzando il framework unificato Ultralytics, la tua pipeline di sviluppo rimane ordinata, efficiente e pronta a scalare, indipendentemente dal modello scelto.