YOLOv9 . EfficientDet: un confronto tecnico tra architettura e prestazioni
Nel panorama in continua evoluzione della visione artificiale, la scelta dell'architettura di rilevamento degli oggetti più adeguata è una decisione fondamentale che influisce sulla latenza, l'accuratezza e la complessità di implementazione del sistema. Questa guida fornisce un confronto tecnico dettagliato tra YOLOv9, un modello all'avanguardia introdotto all'inizio del 2024, ed EfficientDet, un'architettura di grande influenza sviluppata da Google per la sua scalabilità efficiente. Analizziamo le loro differenze strutturali, le metriche di prestazione e l'idoneità per le applicazioni nel mondo reale.
Analisi delle metriche di performance
La tabella seguente mette a confronto le prestazioni di vari modelli in scala. YOLOv9 dimostra generalmente rapporti accuratezza-parametro superiori e velocità di inferenza più elevate su hardware moderno rispetto alla precedente architettura EfficientDet.
| 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 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
Panoramiche dei modelli
YOLOv9
Autori: Chien-Yao Wang, Hong-Yuan Mark Liao
Organizzazione: Istituto di Scienze dell'Informazione, Academia Sinica, Taiwan
Data: 21/02/2024
Link:Arxiv | GitHub | Docs
YOLOv9 importanti innovazioni architetturali per affrontare il problema del "colli di bottiglia informativi" nelle reti profonde. Il contributo principale è rappresentato dal Programmable Gradient Information (PGI), che genera gradienti affidabili tramite un ramo di supervisione ausiliario per garantire che gli strati profondi conservino le informazioni critiche sulle caratteristiche. Inoltre, utilizza il Generalized Efficient Layer Aggregation Network (GELAN), un'architettura leggera che massimizza l'efficienza dei parametri.
EfficientDet
Autori: Mingxing Tan, Ruoming Pang, Quoc V. Le
Organizzazione:Google
Data: 20/11/2019
Link:Arxiv | GitHub
EfficientDet è stato un lavoro pionieristico nell'ambito dell'AutoML che ha introdotto la rete piramidale bidirezionale delle caratteristiche (BiFPN). A differenza delle tradizionali FPN, la BiFPN consente una facile fusione delle caratteristiche su più scale grazie all'introduzione di pesi apprendibili. Il modello impiega anche il Compound Scaling, un metodo che scala uniformemente la risoluzione, la profondità e la larghezza, consentendo di ottenere prestazioni eccellenti in un ampio spettro di vincoli di risorse (da D0 a D7).
Analisi Approfondita dell'Architettura
Fusione delle caratteristiche: GELAN vs. BiFPN
Il principale elemento di differenziazione risiede nel modo in cui questi modelli aggregano le caratteristiche. EfficientDet si basa sulla complessa struttura BiFPN che, sebbene teoricamente efficiente in termini di FLOP, può essere dispendiosa in termini di memoria e più difficile da ottimizzare per acceleratori hardware specifici come TensorRT.
Al contrario, l'architettura GELAN YOLOv9 combina gli aspetti migliori di CSPNet ed ELAN. Dà priorità alla pianificazione del percorso del gradiente rispetto alle complesse connessioni di fusione. Il risultato è una rete non solo più leggera in termini di parametri, ma anche più "hardware-friendly", che porta a GPU maggiore GPU durante l'addestramento e l'inferenza.
Flusso gradiente e perdita di informazioni
EfficientDet si basa sulla retropropagazione standard attraverso un backbone EfficientNet molto profondo. YOLOv9 il problema per cui le reti profonde "dimenticano" i dettagli dei dati di input. Attraverso PGI, YOLOv9 un ramo ausiliario reversibile che guida il processo di apprendimento, assicurando che il ramo principale catturi caratteristiche semantiche robuste senza il costo computazionale di mantenere quei rami ausiliari durante l'inferenza.
Avvertenza: Vantaggi PGI
Le informazioni sul gradiente programmabile (PGI) consentono a YOLOv9 ottenere una migliore convergenza con meno dati, rendendolo particolarmente efficace per i set di dati personalizzati in cui gli esempi annotati potrebbero essere scarsi.
Ecosistema e facilità d'uso
Una delle differenze più significative per gli sviluppatori è l'ecosistema che circonda questi modelli.
EfficientDet è principalmente radicato TensorFlow . Sebbene potente, il suo utilizzo richiede spesso la navigazione in complesse catene di dipendenze o repository meno recenti che potrebbero non essere aggiornati frequentemente.
YOLOv9, integrato Ultralytics , offre un'esperienza semplificata. Gli sviluppatori possono accedere al modello tramite una semplice Python , che consente l'addestramento, la convalida e l'implementazione in pochi minuti. Il Ultralytics gestisce l'aumento dei dati, la registrazione (ad esempio su MLflow o Comet) e l'esportazione in modo automatico.
from ultralytics import YOLO
# Load a pretrained YOLOv9c model
model = YOLO("yolov9c.pt")
# Train the model on a custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Export to ONNX for deployment
model.export(format="onnx")
Questo frammento dimostra la facilità d'uso intrinseca dei Ultralytics . Il framework supporta anche la precisione mista automatica (AMP) eGPU pronto all'uso, garantendo l'efficienza dell'addestramento.
Versatilità e implementazione
Supporto Task
EfficientDet è progettato fondamentalmente per il rilevamento di oggetti. Adattarlo per attività come la segmentazione o la stima della posa richiede modifiche architetturali significative e codice personalizzato.
Ultralytics , tra cui YOLOv9 i suoi successori, sono basati su un codice versatile che supporta in modo nativo:
- Rilevamento di oggetti
- Segmentazione delle istanze
- Stima della posa
- Oriented Bounding Box (OBB)
- Classificazione
Compatibilità dei bordi e memoria
Sebbene EfficientDet-D0 sia piccolo, il passaggio a D7 comporta costi di memoria enormi a causa del ridimensionamento della risoluzione (fino a 1536x1536). YOLOv9 un input standard di 640x640 per la maggior parte dei benchmark, ottenendo al contempo una precisione superiore. Questa risoluzione di input inferiore riduce significativamente i requisiti di memoria per la VRAM, consentendo batch di dimensioni maggiori e sperimentazioni più veloci su GPU consumer.
Inoltre, Ultralytics supportano l'esportazione con un solo clic in formati come TFLite per dispositivi mobili, OpenVINO per Intel e CoreML dispositivi Apple, garantendo un'ampia compatibilità Edge.
Casi d'uso reali
La scelta del modello spesso determina il successo di una specifica applicazione:
- Analisi dei dati di vendita al dettaglio: per il conteggio dei prodotti sugli scaffali, YOLOv9 è superiore grazie alla sua elevata precisione (mAP) su oggetti di piccole dimensioni, grazie alla capacità di PGI di conservare dettagli molto precisi.
- Droni autonomi: in scenari che richiedono inferenze in tempo reale su hardware integrato (ad esempio Jetson Orin), l'efficiente architettura GELAN YOLOv9 fornisce gli FPS necessari che i complessi livelli BiFPN di EfficientDet spesso faticano a eguagliare.
- Sistemi legacy:EfficientDet rimane rilevante nei confronti di ricerca o TPU legacy Google TPU , dove l'architettura specifica del modello è hardcoded nella pipeline hardware.
Il Futuro: YOLO26
Sebbene YOLOv9 prestazioni eccezionali, il campo dell'IA è in rapida evoluzione. Ultralytics a innovare con YOLO26, la scelta consigliata per i nuovi progetti.
YOLO26 si basa sui punti di forza YOLO precedenti YOLO , ma introduce un design nativo end-to-end NMS, eliminando la latenza e la complessità della post-elaborazione Non-Maximum Suppression. È dotato dell'ottimizzatore MuSGD, un ibrido tra SGD Muon, e rimuove la Distribution Focal Loss (DFL) per semplificare l'esportazione. Queste modifiche consentono CPU fino al 43% più veloce e una maggiore stabilità dell'addestramento.
Inoltre, YOLO26 incorpora ProgLoss + STAL (Soft-Target Anchor Loss), offrendo notevoli miglioramenti nel riconoscimento di oggetti di piccole dimensioni, fondamentale per la robotica e le immagini aeree. Per gli sviluppatori che cercano il massimo equilibrio tra velocità, precisione e facilità di implementazione, YOLO26 rappresenta il nuovo standard.
Conclusione
Entrambe le architetture si sono guadagnate un posto nella storia della visione artificiale. EfficientDet ha dimostrato la potenza del ridimensionamento composto, mentre YOLOv9 ha mostrato come i gradienti programmabili possano recuperare informazioni nelle reti profonde. Tuttavia, per i moderni ambienti di produzione, Ultralytics , che supporta sia YOLOv9 il più recente YOLO26, offre un netto vantaggio in termini di manutenibilità, velocità di addestramento e flessibilità di implementazione.
Vedi anche
- YOLOv10 EfficientDet: confronto con il primo YOLO NMS.
- YOLO26 vs YOLOv9: un'analisi approfondita degli aggiornamenti di ultima generazione.
- Ultralytics : il modo più semplice per addestrare e implementare i tuoi modelli.