EfficientDet vs. YOLOv9: confronto tra architettura e prestazioni
Nel panorama in rapida evoluzione della visione artificiale, la scelta dell'architettura giusta per il rilevamento degli oggetti è una decisione fondamentale che influisce su tutto, dai costi di formazione alla latenza di implementazione. Questa analisi tecnica fornisce un confronto completo tra EfficientDet, un'architettura pionieristica di Google sul ridimensionamento efficiente, e YOLOv9, una moderna iterazione della YOLO che introduce informazioni di gradiente programmabili per un apprendimento delle caratteristiche superiore.
Riepilogo
Sebbene EfficientDet abbia introdotto concetti rivoluzionari nel ridimensionamento dei modelli e nella fusione delle caratteristiche, oggi è considerata un'architettura obsoleta. La sua dipendenza da complessi livelli BiFPN spesso comporta velocità di inferenza più lente sull'hardware moderno rispetto ai design semplificati della YOLO .
YOLOv9 rappresenta un significativo passo avanti, offrendo una maggiore precisione con velocità di inferenza notevolmente superiori. Inoltre, come parte Ultralytics , YOLOv9 di un'API unificata, di una distribuzione semplificata e di un solido supporto da parte della comunità, che lo rendono la scelta consigliata per gli ambienti di produzione.
EfficientDet: Rilevamento di oggetti scalabile ed efficiente
EfficientDet è stato progettato per risolvere il problema del ridimensionamento efficiente dei rilevatori di oggetti. I modelli precedenti spesso venivano ridimensionati semplicemente aumentando le dimensioni della struttura portante, ignorando l'equilibrio tra risoluzione, profondità e larghezza.
Caratteristiche architettoniche chiave
- Ridimensionamento composto: EfficientDet propone un metodo di ridimensionamento composto che ridimensiona uniformemente la risoluzione, la profondità e la larghezza per tutte le reti backbone, le reti di caratteristiche e le reti di previsione box/classe.
- BiFPN (Bidirectional Feature Pyramid Network): un'innovazione chiave che consente una facile fusione di caratteristiche multiscala. A differenza delle tradizionali FPN, BiFPN aggiunge percorsi bottom-up e rimuove i nodi con un solo input, incorporando pesi apprendibili per comprendere l'importanza delle diverse caratteristiche di input.
- EfficientNet Backbone: utilizza EfficientNet come backbone, ottimizzato per l'efficienza dei parametri.
Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
Organizzazione:Google
Data: 20/11/2019
Link:Arxiv | GitHub
YOLOv9: Informazioni di gradiente programmabili
YOLOv9 affronta una questione fondamentale nel deep learning: i colli di bottiglia delle informazioni. Quando i dati passano attraverso i livelli di una rete neurale profonda, inevitabilmente si verifica una perdita di informazioni. YOLOv9 questo problema attraverso le informazioni di gradiente programmabili (PGI) e una nuova architettura chiamata GELAN.
Caratteristiche architettoniche chiave
- GELAN (Generalized Efficient Layer Aggregation Network): questa architettura combina gli aspetti migliori di CSPNet ed ELAN. Ottimizza i percorsi di discesa gradiente, garantendo che il modello apprenda caratteristiche leggere ma ricche di informazioni.
- PGI (Programmable Gradient Information): PGI fornisce un ramo di supervisione ausiliario che guida il processo di apprendimento, assicurando che il ramo principale conservi le informazioni critiche necessarie per un rilevamento accurato. Ciò è particolarmente utile per rilevare bersagli difficili in ambienti complessi.
- Semplicità: nonostante queste complessità interne, la struttura di inferenza rimane snella, evitando i costi computazionali elevati associati al BiFPN utilizzato in EfficientDet.
Autori: Chien-Yao Wang e Hong-Yuan Mark Liao
Organizzazione: Istituto di Scienze dell'Informazione, Academia Sinica, Taiwan
Data: 21/02/2024
Link:Arxiv | GitHub
Confronto tecnico delle prestazioni
Confrontando questi modelli, emerge chiaramente il compromesso tra efficienza dei parametri e latenza effettiva durante l'esecuzione. Sebbene EfficientDet sia efficiente in termini di parametri, la sua complessa struttura grafica (BiFPN) è meno adatta al GPU rispetto alle convoluzioni standard utilizzate in YOLOv9.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Analisi delle prestazioni
YOLOv9 supera YOLOv9 EfficientDet in termini di rapporto velocità-precisione. Ad esempio, YOLOv9c raggiunge un mAP 53,0%) paragonabile a quello di EfficientDet-d6 (52,6%), ma funziona oltre 12 volte più velocemente su una GPU T4 GPU 7,16 ms contro 89,29 ms). Questo rende YOLOv9 scelta migliore per le applicazioni in tempo reale.
Formazione ed esperienza nell'ecosistema
Una delle principali differenze tra queste architetture è la facilità d'uso e il supporto dell'ecosistema fornito da Ultralytics.
Sfide EfficientDet
L'addestramento di EfficientDet comporta in genere la navigazione nell'APITensorFlow Detection o nei repository legacy. Questi possono essere difficili da configurare a causa di conflitti di dipendenza e spesso non supportano funzionalità moderne come l'addestramento automatico a precisione mista o la facile integrazione della registrazione su cloud.
Il vantaggio di Ultralytics
L'utilizzo YOLOv9 del Ultralytics offre un'esperienza senza soluzione di continuità. L'ecosistema gestisce automaticamente l'aumento dei dati, l'evoluzione degli iperparametri e l'esportazione.
- Facilità d'uso: puoi iniziare l'addestramento con poche righe di codice.
- Efficienza della memoria: Ultralytics sono ottimizzati per utilizzare meno VRAM durante l'addestramento, consentendo batch di dimensioni maggiori su GPU consumer rispetto alle reti multi-ramificate complesse.
- Versatilità: oltre al rilevamento, Ultralytics supporta la segmentazione delle istanze e la stima della posa, funzionalità che non sono disponibili in modo nativo nelle implementazioni standard di EfficientDet.
from ultralytics import YOLO
# Load a pretrained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
Applicazioni nel mondo reale
La scelta del modello influisce in modo significativo sulla fattibilità delle diverse applicazioni.
Casi d'uso ideali per EfficientDet
- Ricerca accademica: utile per lo studio delle tecniche di fusione delle caratteristiche e delle teorie di scalabilità composita.
- Scenari a bassa potenza/bassa velocità: in casi limite molto specifici in cui l'hardware legacy è hardcoded per backbone EfficientNet (ad esempio, alcune TPU Coral meno recenti), le varianti EfficientDet-Lite potrebbero comunque essere rilevanti.
Casi d'uso ideali per YOLOv9
- Navigazione autonoma: l'elevata velocità di inferenza è fondamentale per le auto a guida autonoma che devono elaborare gli input in millisecondi per garantire la sicurezza.
- Analisi dei dati di vendita al dettaglio: per applicazioni come la gestione dell'inventario, YOLOv9 la precisione necessaria per distinguere tra prodotti simili senza rallentare i sistemi di checkout.
- Assistenza sanitaria: nell'analisi delle immagini mediche, l'architettura PGI aiuta a conservare i dettagli più minuti necessari per rilevare piccole anomalie nelle radiografie o nelle risonanze magnetiche.
Il futuro: aggiornamento a YOLO26
Sebbene YOLOv9 uno strumento potente, Ultralytics a spingersi oltre i confini dell'intelligenza artificiale visiva. Per gli sviluppatori alla ricerca della tecnologia più all'avanguardia, YOLO26 offre progressi significativi rispetto sia a EfficientDet che a YOLOv9.
YOLO26 introduce un design end-to-end NMS, eliminando completamente la necessità della post-elaborazione Non-Maximum Suppression. Ciò si traduce in pipeline di implementazione più semplici e inferenze più veloci. Inoltre, con il nuovo MuSGD Optimizer, un ibrido tra SGD Muon, YOLO26 offre un addestramento più stabile e una convergenza più rapida.
Per l'implementazione edge, YOLO26 è ottimizzato per CPU fino al 43% più veloce e include la rimozione DFL per una migliore compatibilità con i dispositivi a basso consumo energetico. Che tu stia lavorando alla robotica o all'analisi video ad alta produttività, YOLO26 rappresenta il nuovo standard.
Per gli utenti interessati ad altre architetture all'avanguardia, consigliamo anche di esplorare YOLO11 e RT-DETR all'interno della Ultralytics .