Vai al contenuto

YOLOv9 vs YOLOv5: Un'Analisi Tecnica Approfondita sul Rilevamento di Oggetti Moderno

Il campo della visione artificiale ha assistito a un'enorme crescita, con il rilevamento di oggetti che funge da spina dorsale per innumerevoli applicazioni industriali e di ricerca. La scelta dell'architettura giusta richiede spesso un'attenta valutazione della mean Average Precision (mAP), della velocità di inferenza e dell'overhead di memoria. In questo confronto, esploriamo due modelli altamente influenti: YOLOv9, celebrato per le sue innovazioni architettoniche nella ritenzione delle informazioni sui gradienti, e Ultralytics YOLOv5, lo standard industriale collaudato, noto per la sua incredibile facilità d'uso e la sua impareggiabile versatilità di implementazione.

Innovazioni Architettoniche e Origini Tecniche

Comprendere i meccanismi sottostanti di questi due modelli fornisce un contesto critico per i loro rispettivi profili di performance.

YOLOv9: Informazioni di gradiente programmabili

Sviluppato dai ricercatori Chien-Yao Wang e Hong-Yuan Mark Liao presso l'Institute of Information Science, Academia Sinica a Taiwan, YOLOv9 è stato rilasciato il 21 febbraio 2024. Il modello introduce due concetti innovativi per affrontare il collo di bottiglia informativo comune nelle reti neurali profonde: Programmable Gradient Information (PGI) e Generalized Efficient Layer Aggregation Network (GELAN).

Utilizzando PGI, YOLOv9 assicura che le informazioni vitali siano mantenute durante l'intero processo feed-forward, portando a aggiornamenti del gradiente altamente accurati. Nel frattempo, l'architettura GELAN massimizza l'efficienza dei parametri, consentendo al modello di raggiungere un'accuratezza all'avanguardia con un overhead computazionale sorprendentemente basso. È possibile esplorare i dettagli tecnici nel paper ufficiale di YOLOv9 su Arxiv o visualizzare il repository GitHub di YOLOv9.

Scopri di più su YOLOv9

Ultralytics YOLOv5: lo standard di produzione

Sviluppato da Glenn Jocher e rilasciato da Ultralytics il 26 giugno 2020, YOLOv5 ha rivoluzionato l'accessibilità della visione artificiale. Essendo uno dei primi modelli di rilevamento oggetti costruito nativamente sul framework PyTorch, ha aggirato le complessità del più datato framework C Darknet. YOLOv5 sfrutta un backbone CSPNet altamente ottimizzato e un neck PANet, privilegiando un equilibrio perfetto tra velocità e precisione.

Il suo fiore all'occhiello, tuttavia, è la sua integrazione nell'ecosistema più ampio di Ultralytics. YOLOv5 è fortemente ottimizzato per un'elevata efficienza di addestramento e ambienti a bassa memoria, rendendolo incredibilmente stabile per le implementazioni edge.

Scopri di più su YOLOv5

Efficienza della Memoria

Quando si valutano i modelli per dispositivi edge, ricordate che i modelli Ultralytics YOLO richiedono tipicamente una memoria GPU significativamente inferiore sia durante l'addestramento che durante l'inferenza rispetto alle architetture pesanti basate su transformer.

Analisi delle prestazioni: Velocità contro precisione

Nel progettare una pipeline di visione artificiale, gli sviluppatori devono bilanciare i compromessi tra precisione e latenza. La tabella seguente illustra le differenze di prestazioni sul dataset COCO standard.

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

Analisi dei compromessi

YOLOv9 stabilisce un dominio assoluto nella precisione pura. Il YOLOv9e spinge i limiti del mAP al 55.6%, utilizzando i suoi strati GELAN per preservare i dettagli fini. Ciò lo rende una scelta eccezionale per l'imaging medico o scenari che richiedono una precisione rigorosa su oggetti di piccole dimensioni.

Al contrario, YOLOv5 eccelle nella sua velocità di deployment grezza e nella flessibilità hardware. Il YOLOv5n (Nano) è notoriamente leggero, eseguendo inferenze in soli 1.12ms su una GPU T4 tramite TensorRT. Se stai effettuando il deployment su dispositivi IoT con risorse limitate, telefoni cellulari o Raspberry Pi, l'ingombro di memoria di YOLOv5 lo rende straordinariamente affidabile.

Il vantaggio dell'ecosistema Ultralytics

Una considerazione importante nella selezione di un modello è l'ecosistema software circostante. Sebbene YOLOv9 fornisca benchmark di ricerca di alto livello, l'utilizzo di entrambi i modelli tramite la moderna API Python di Ultralytics colma il divario, offrendo agli sviluppatori un'esperienza unificata e semplificata.

Facilità d'uso ed Esportazione

Ultralytics astrae complesse sfide ingegneristiche. Funzionalità come l'aumento automatico dei dati e l'ottimizzazione degli iperparametri sono gestite in modo predefinito. Spostare i modelli in produzione è altrettanto banale, con comandi di esportazione integrati per convertire i modelli in formati ONNX, OpenVINO o TFLite.

Versatilità delle attività

Sebbene entrambi i modelli eccellano nel rilevamento di oggetti, i moderni modelli Ultralytics sono costruiti per affrontare una varietà di sfide di visione artificiale. Il framework più ampio fornisce supporto nativo per la classificazione di immagini, la segmentazione di istanze, la stima della posa e le bounding box orientate (OBB), consentendo agli sviluppatori di risolvere molteplici problemi di visione senza cambiare codebase.

Casi d'Uso e Raccomandazioni

La scelta tra YOLOv9 e YOLOv5 dipende dai requisiti specifici del progetto, dai vincoli di implementazione e dalle preferenze dell'ecosistema.

Quando scegliere YOLOv9

YOLOv9 è una scelta valida per:

  • Ricerca sul Collo di Bottiglia dell'Informazione: Progetti accademici che studiano le architetture Programmable Gradient Information (PGI) e Generalized Efficient Layer Aggregation Network (GELAN).
  • Studi di Ottimizzazione del Flusso di Gradiente: Ricerca incentrata sulla comprensione e la mitigazione della perdita di informazioni negli strati profondi delle reti neurali durante l'addestramento.
  • Benchmarking di Detect ad Alta Precisione: Scenari in cui le elevate prestazioni di benchmarking COCO di YOLOv9 sono necessarie come punto di riferimento per confronti architetturali.

Quando scegliere YOLOv5

YOLOv5 è raccomandato per:

  • Sistemi di Produzione Collaudati: Implementazioni esistenti in cui sono apprezzati il lungo track record di stabilità di YOLOv5, la documentazione estesa e il massiccio supporto della community.
  • Addestramento con risorse limitate: Ambienti con risorse GPU limitate dove la pipeline di addestramento efficiente di YOLOv5 e i requisiti di memoria inferiori sono vantaggiosi.
  • Supporto Esteso per Formati di Esportazione: Progetti che richiedono il deployment su molti formati, inclusi ONNX, TensorRT, CoreML e TFLite.

Quando scegliere Ultralytics (YOLO26)

Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza per gli sviluppatori:

  • Deployment Edge NMS-Free: Applicazioni che richiedono inferenza consistente e a bassa latenza senza la complessità della post-elaborazione Non-Maximum Suppression.
  • Ambienti solo CPU: Dispositivi senza accelerazione GPU dedicata, dove l'inferenza CPU fino al 43% più veloce di YOLO26 offre un vantaggio decisivo.
  • Rilevamento di Oggetti Piccoli: Scenari impegnativi come immagini aeree da drone o analisi di sensori IoT dove ProgLoss e STAL aumentano significativamente la precisione su oggetti minuscoli.

Esempio di implementazione

La bellezza dell'ecosistema Ultralytics è che puoi passare da un modello YOLOv5 a un modello YOLOv9 semplicemente modificando la stringa dei pesi.

from ultralytics import YOLO

# Load a pretrained YOLOv9 model (swap to "yolov5s.pt" to use YOLOv5)
model = YOLO("yolov9c.pt")

# Train the model efficiently on a custom dataset
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on new images
predictions = model.predict("https://ultralytics.com/images/zidane.jpg")

# Export to ONNX for seamless deployment
model.export(format="onnx")

Esplorazione di Architetture Più Recenti

Mentre YOLOv5 e YOLOv9 sono modelli eccellenti con vantaggi distinti, il campo continua ad avanzare. Gli utenti che esplorano nuovi progetti potrebbero anche voler valutare le ultime iterazioni di Ultralytics.

  • YOLO11: Una potente e raffinata evoluzione della stirpe YOLOv8 che offre un eccellente equilibrio tra velocità e precisione in tutti i compiti di visione.
  • YOLO26: Rilasciato nel 2026, YOLO26 è la raccomandazione definitiva per le pipeline moderne. Introduce un design End-to-End NMS-Free, eliminando completamente i colli di bottiglia del post-processing. Con la rimozione di DFL (Distribution Focal Loss rimosso per un'esportazione semplificata e una migliore compatibilità con dispositivi edge/a bassa potenza), raggiunge fino al 43% di inferenza CPU più veloce. La stabilità dell'addestramento è potenziata dal nuovo ottimizzatore MuSGD, e ProgLoss + STAL offre funzioni di perdita migliorate con notevoli miglioramenti nel riconoscimento di oggetti piccoli, critico per IoT, robotica e immagini aeree, rendendola l'architettura più robusta per implementazioni sia edge che cloud.

Per i team che gestiscono grandi dataset e pipeline di deployment complesse, l'utilizzo della Piattaforma Ultralytics offre una soluzione no-code per addestrare, track e deploy questi modelli all'avanguardia senza sforzo.


Commenti