YOLOv5 vs YOLOv9#
Il panorama della computer vision e del rilevamento oggetti in tempo reale ha visto notevoli progressi negli ultimi anni. Destreggiarsi nella scelta tra modelli consolidati e collaudati e nuove architetture di ricerca è una sfida comune per gli ingegneri di machine learning. Questa guida fornisce un confronto tecnico completo tra due modelli altamente influenti della famiglia YOLO: YOLOv5 e YOLOv9.
Che tu stia eseguendo il deployment su dispositivi edge vincolati, facendo ricerca sull'estrazione di feature ad alta fedeltà o costruendo complessi pipeline di object detection, è fondamentale comprendere le sfumature architetturali, le metriche di performance e le differenze di ecosistema di questi modelli.
Panoramica dei modelli#
Prima di immergerci nei confronti architettonici, è utile comprendere le origini e gli obiettivi primari di ciascun modello.
Ultralytics YOLOv5#
Sviluppato da Glenn Jocher e rilasciato da Ultralytics il 26 giugno 2020, YOLOv5 ha segnato un cambiamento di paradigma nel modo in cui gli sviluppatori interagiscono con i modelli di visione. Abbracciando appieno il framework PyTorch, YOLOv5 ha sostituito i complessi passaggi di compilazione dei precedenti modelli basati su Darknet con un'esperienza utente intuitiva e incentrata su Python.
- Autore: Glenn Jocher
- Organizzazione: Ultralytics
- Data: 2020-06-26
- GitHub: YOLOv5 Repository
- Documentazione: YOLOv5 Documentation
YOLOv5 è rinomato per la sua Ease of Use e le performance stabili in diversi ambienti hardware. Supporta non solo il rilevamento, ma anche la image classification e la instance segmentation.
YOLOv9#
Introdotto da Chien-Yao Wang e Hong-Yuan Mark Liao dell'Institute of Information Science presso l'Academia Sinica, Taiwan, YOLOv9 si concentra pesantemente sulla teoria architettonica per mitigare 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: YOLOv9 Repository
- Documentazione: YOLOv9 Documentation
Il cuore di 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 mantenere caratteristiche spaziali critiche attraverso i profondi layer della rete.
Sebbene YOLOv5 e YOLOv9 siano potenti, il nuovo YOLO26 rappresenta il perfetto equilibrio tra velocità e precisione. Caratterizzato da un design end-to-end NMS-free e da un'inferenza CPU fino al 43% più veloce, YOLO26 è altamente consigliato per l'edge computing moderno e i deployment in produzione.
Differenze architettoniche e tecniche#
Comprendere cosa alimenta questi modelli di visione "sotto il cofano" è vitale per ottimizzare le strategie di model deployment.
Estrazione di feature e ritenzione delle informazioni#
YOLOv5 utilizza un backbone Cross Stage Partial Network (CSPNet), che riduce efficacemente il sovraccarico di calcolo mantenendo un flusso di gradiente accurato durante la retropropagazione. Questo design è altamente ottimizzato per le tradizionali GPU operations e garantisce minori requisiti di memoria durante il training rispetto alle pesanti alternative Transformer.
YOLOv9 introduce GELAN, un'architettura generica che estende i principi di CSPNet. Abbinato a PGI, un ramo ausiliario reversibile, YOLOv9 assicura che i layer profondi non perdano i dati semantici necessari per funzioni obiettivo precise. Ciò consente a YOLOv9 di raggiungere un'alta accuracy, in particolare sugli oggetti più piccoli, sebbene la complessa ramificazione ausiliaria possa talvolta complicare i pipeline di esportazione verso hardware edge profondamente vincolati.
Requisiti di memoria ed efficienza di addestramento#
In termini di efficienza di training, YOLOv5 rimane incredibilmente robusto. Il ben mantenuto Ultralytics ecosystem assicura che i modelli YOLOv5 consumino molta meno memoria CUDA, consentendo ai ricercatori di massimizzare i batch sizes su GPU di fascia consumer. Sebbene YOLOv9 raggiunga un'eccellente efficienza dei parametri (alta accuratezza rispetto alle sue dimensioni), il suo processo di training può essere più intensivo in termini di risorse se non si utilizzano framework ottimizzati. Fortunatamente, integrare YOLOv9 nell'API Ultralytics lo avvicina alla parità con la gestione semplificata delle risorse di YOLOv5.
Prestazioni e metriche#
Per valutare oggettivamente queste architetture, confrontiamo le loro prestazioni su set di dati standard come COCO. Di seguito è riportata una ripartizione dettagliata di metriche come mAP (Mean Average Precision), velocità di inferenza e conteggio dei parametri.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | params (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 |
Come mostra la tabella, YOLOv9 raggiunge un'accuratezza grezza superiore a livelli equivalenti, riflettendo la sua architettura più recente. Tuttavia, YOLOv5n mantiene una latenza TensorRT incredibilmente bassa di 1.12ms, evidenziando la sua forza duratura per applicazioni di edge computing localizzate ad alta velocità.
Metodologie di addestramento e facilità d'uso#
Il vero vantaggio di sfruttare la computer vision oggi risiede nell'accessibilità della toolchain.
Il vantaggio di Ultralytics#
Sebbene i repository di ricerca originali per modelli come YOLOv9 siano fondamentali, spesso presentano matrici di dipendenze complesse e script di boilerplate. La Ultralytics Python API astrae completamente questa complessità. Con l'ecosistema Ultralytics, puoi addestrare, valutare ed esportare sia YOLOv5 che YOLOv9 con una sintassi identica e unificata.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model for fast deployment
model_v5 = YOLO("yolov5s.pt")
# Or leverage a YOLOv9 model for high-fidelity accuracy
model_v9 = YOLO("yolov9c.pt")
# Train seamlessly on custom data with automatic MLflow logging
results = model_v9.train(data="coco8.yaml", epochs=50, imgsz=640)
# Export the trained model to ONNX
model_v9.export(format="onnx")Questo approccio basato su una singola API offre un'immensa Versatility, supportando non solo il rilevamento, ma anche la pose estimation e le oriented bounding boxes (OBB) a seconda del modello scelto. Inoltre, robuste integrazioni con strumenti come Comet ML e Weights & Biases sono integrate direttamente nel ciclo di training.
Casi d'uso ideali e applicazioni nel mondo reale#
Scegliere tra queste architetture dipende in gran parte dai vincoli del tuo hardware e dalla precisione richiesta dal tuo dominio applicativo.
Quando scegliere YOLOv5#
YOLOv5 è un veterano collaudato che brilla nei deployment che privilegiano stabilità, footprint di memoria ridotto ed estrema compatibilità di esportazione.
- Mobile Deployments: Esportare YOLOv5 su TFLite o CoreML per l'inferenza on-device su smartphone meno recenti è incredibilmente fluido.
- Legacy Edge Hardware: Per dispositivi come il Raspberry Pi o le prime generazioni di NVIDIA Jetson Nano, le semplici convoluzioni di YOLOv5 garantiscono frame rate coerenti per applicazioni come lo smart parking management.
- Rapid Prototyping: L'ampia disponibilità di tutorial della community, pre-trained weights personalizzati e la massiccia compatibilità dei dataset lo rendono il modo più veloce per validare un proof-of-concept.
Quando scegliere YOLOv9#
YOLOv9 è ideale per scenari in cui catturare dettagli complessi e ridurre al minimo i falsi negativi è assolutamente critico, anche se richiede un po' più di overhead di calcolo.
- Aerial and Satellite Imagery: Il framework PGI è altamente abile nel mantenere la fedeltà di piccoli oggetti, rendendo YOLOv9 eccellente per l'agricultural monitoring basato su droni.
- Medical Imaging Diagnostics: Quando si rilevano anomalie o lesioni minime in scansioni ad alta risoluzione, l'accurato flusso di gradiente di GELAN fornisce un vantaggio necessario nel richiamo.
- High-End Retail Analytics: Il tracciamento di prodotti sovrapposti su scaffali densi beneficia significativamente delle capacità di ritenzione delle feature superiori di YOLOv9.
Espandi i tuoi orizzonti#
Sebbene il confronto tra YOLOv5 e YOLOv9 offra una chiara visione di come le architetture si siano evolute dal 2020 al 2024, il campo dell'IA si sta muovendo più velocemente che mai. Per gli sviluppatori che cercano l'assoluta frontiera delle performance, esplorare gli ultimi YOLO26 models è altamente incoraggiato. Sostituendo la tradizionale Non-Maximum Suppression con un design nativo End-to-End NMS-Free Design e utilizzando l'avanzato MuSGD Optimizer, YOLO26 colma il divario tra accuratezza a livello di ricerca e velocità a livello di produzione. Con la DFL Removal (Distribution Focal Loss rimossa per un'esportazione semplificata e una migliore compatibilità con dispositivi edge/a basso consumo), YOLO26 raggiunge un'inferenza CPU fino al 43% più veloce, rendendolo ideale per l'edge computing. Inoltre, ProgLoss + STAL fornisce funzioni di loss migliorate con notevoli miglioramenti nel riconoscimento di piccoli oggetti, critico per IoT, robotica e immagini aeree.
Potresti anche essere interessato a confrontare queste architetture con altri modelli allo stato dell'arte come RT-DETR o il versatile YOLO11. L'utilizzo del framework unificato Ultralytics assicura che, indipendentemente dal modello scelto, il tuo pipeline di sviluppo rimanga pulito, efficiente e pronto a scalare.