EfficientDet vs. YOLOv8: Un confronto tecnico
La scelta del modello di object detection giusto è una decisione critica che bilancia accuratezza, velocità e costo computazionale. Questa pagina fornisce un confronto tecnico dettagliato tra due architetture influenti: EfficientDet, sviluppato da Google, e Ultralytics YOLOv8, un modello all'avanguardia di Ultralytics. Mentre EfficientDet è rinomato per la sua efficienza di parametri e computazionale, YOLOv8 eccelle nell'offrire una combinazione superiore di velocità in tempo reale, alta accuratezza e versatilità senza pari all'interno di un ecosistema completo e facile da usare.
EfficientDet: Architettura scalabile ed efficiente
Autori: Mingxing Tan, Ruoming Pang, Quoc V. Le
Organizzazione: Google
Data: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https://github.com/google/automl/tree/master/efficientdet
Documenti: https://github.com/google/automl/tree/master/efficientdet#readme
EfficientDet è stato introdotto dal team Google Brain con l'obiettivo primario di creare una famiglia di rilevatori di oggetti altamente efficiente e scalabile. Le sue innovazioni principali risiedono nella sua architettura e nella metodologia di scaling.
Architettura e caratteristiche principali
Il design di EfficientDet è incentrato su due componenti principali:
- BiFPN (Bi-directional Feature Pyramid Network): A differenza delle FPN tradizionali top-down, BiFPN consente una fusione di caratteristiche multiscala facile e veloce introducendo pesi apprendibili per comprendere l'importanza delle diverse caratteristiche di input e applicando sia connessioni top-down che bottom-up.
- Ridimensionamento Composto: EfficientDet utilizza un singolo coefficiente composto per scalare uniformemente la profondità, la larghezza e la risoluzione del backbone, della rete di feature e delle reti di predizione di box/classe. Ciò garantisce un'allocazione bilanciata delle risorse attraverso l'intero modello.
L'architettura utilizza EfficientNet come suo backbone, che è già ottimizzato per l'accuratezza e l'efficienza FLOP. Questa combinazione si traduce in una famiglia di modelli (da D0 a D7) che possono essere adattati a vari budget computazionali.
Punti di forza
- Elevata efficienza: I modelli EfficientDet sono progettati per ridurre al minimo il numero di parametri e i FLOPs, rendendoli altamente efficienti in termini di risorse computazionali per un determinato livello di accuratezza.
- Scalabilità: Il metodo di scaling composto fornisce un percorso chiaro per scalare il modello verso l'alto o verso il basso, consentendo agli sviluppatori di scegliere una variante adatta ai loro specifici vincoli hardware.
- Elevata accuratezza: Raggiunge punteggi mAP competitivi, in particolare se valutato rispetto a modelli con un numero di parametri simile.
Punti deboli
- Velocità di inferenza: Pur essendo efficiente in termini di FLOP, EfficientDet ha spesso una latenza di inferenza maggiore rispetto a modelli come YOLOv8, specialmente sull'hardware GPU. Questo può renderlo meno adatto per applicazioni che richiedono una vera inferenza in tempo reale.
- Versatilità limitata: EfficientDet è principalmente progettato per il rilevamento di oggetti. Manca del supporto integrato per altri task di visione come la segmentazione o la stima della posa che è nativo del framework YOLOv8.
- Ecosistema e Usabilità: L'implementazione originale è in TensorFlow e, sebbene esistano porting PyTorch, non ha lo stesso livello di strumenti integrati, documentazione e supporto attivo della community dell'ecosistema Ultralytics.
Ultralytics YOLOv8: Lo stato dell'arte in termini di velocità e versatilità
Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione: Ultralytics
Data: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
Documenti: https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8 è l'ultima iterazione della serie YOLO di grande successo, che si basa su anni di ricerca e sviluppo per fornire un modello veloce, preciso e incredibilmente facile da usare. Rappresenta un significativo passo avanti sia nelle prestazioni che nella progettazione del framework.
Architettura e caratteristiche principali
YOLOv8 introduce diversi miglioramenti architetturali, tra cui un nuovo detection head anchor-free e un nuovo backbone basato su CSP noto come C2f. Queste modifiche riducono il numero di parametri pur mantenendo un'elevata precisione e consentendo un'inferenza più rapida. Il modello è progettato da zero per essere una piattaforma completa per varie attività di computer vision.
Punti di forza
- Eccezionale bilanciamento delle prestazioni: YOLOv8 raggiunge un compromesso eccezionale tra velocità e accuratezza, rendendolo una scelta eccellente per le applicazioni in tempo reale che non possono scendere a compromessi sulle prestazioni. Come mostrato nella tabella seguente, i modelli YOLOv8 offrono costantemente una latenza inferiore sulle GPU.
- Versatilità senza pari: A differenza dei modelli a compito singolo, YOLOv8 è un framework multi-task che supporta nativamente il rilevamento di oggetti, la segmentazione di istanze, la classificazione delle immagini, la stima della posa e il tracciamento di oggetti all'interno di un'unica architettura unificata.
- Facilità d'uso: YOLOv8 è supportato dal robusto ecosistema Ultralytics, che include una API Python e CLI semplificate, una vasta documentazione e un'esperienza utente semplice.
- Ecosistema ben manutenuto: Gli utenti beneficiano di sviluppo attivo, una solida comunità open source, aggiornamenti frequenti e un'integrazione perfetta con strumenti come Ultralytics HUB per l'addestramento e il deployment no-code.
- Efficienza di addestramento: YOLOv8 offre processi di addestramento efficienti, pesi pre-addestrati facilmente disponibili su set di dati come COCO e in genere richiede meno memoria CUDA rispetto ad architetture più complesse.
- Deployment Flexibility: Il framework è altamente ottimizzato per l'esportazione in vari formati come ONNX e TensorRT, semplificando la distribuzione su diversi hardware, dai dispositivi edge ai server cloud.
Punti deboli
- FLOPs vs. Latenza: Sebbene sia incredibilmente veloce nella pratica, YOLOv8 potrebbe avere FLOPs più elevati rispetto a un modello EfficientDet a un livello mAP simile. Tuttavia, la sua architettura è meglio ottimizzata per l'hardware GPU moderno, con conseguente latenza inferiore nel mondo reale.
Analisi delle prestazioni: Precisione vs. Velocità
La differenza fondamentale tra EfficientDet e YOLOv8 diventa chiara quando si analizzano le loro metriche di performance. EfficientDet è stato progettato per ottimizzare l'accuratezza per FLOP, mentre YOLOv8 è ottimizzato per un'elevata produttività e una bassa latenza su hardware pratico.
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 |
YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Dalla tabella possiamo trarre diverse conclusioni:
- Precisione: YOLOv8x raggiunge il mAP più alto di 53.9, superando leggermente il modello EfficientDet-d7 più grande.
- Velocità: I modelli YOLOv8 sono significativamente più veloci su GPU (T4 TensorRT10), con YOLOv8n che è oltre 2,5 volte più veloce di EfficientDet-d0. Questo vantaggio di velocità vale per tutte le dimensioni dei modelli, rendendo YOLOv8 il chiaro vincitore per le applicazioni in tempo reale.
- Efficienza: EfficientDet eccelle in termini di FLOP e velocità della CPU per i suoi modelli più piccoli. Ad esempio, EfficientDet-d0 ha il minor numero di FLOP e il tempo di inferenza della CPU più veloce. Tuttavia, YOLOv8n ha meno parametri, il che lo rende molto leggero.
Conclusione: Quale modello dovresti scegliere?
EfficientDet rimane un'architettura potente e rilevante, specialmente per le applicazioni in cui le risorse computazionali (FLOP) e le dimensioni del modello sono i vincoli più critici. Il suo design scalabile offre un ottimo modo per bilanciare accuratezza ed efficienza su dispositivi con potenza di elaborazione limitata.
Tuttavia, per la stragrande maggioranza delle moderne applicazioni di computer vision, Ultralytics YOLOv8 è la scelta superiore. Offre un pacchetto complessivo migliore: precisione all'avanguardia, velocità di inferenza incredibilmente elevate e versatilità senza pari. La capacità di gestire rilevamento, segmentazione, posa e altro ancora all'interno di un unico framework facile da usare semplifica notevolmente lo sviluppo e l'implementazione. L'ecosistema ben mantenuto, l'ampia documentazione e la comunità attiva forniscono un livello di supporto che accelera qualsiasi progetto dal concetto alla produzione.
Per gli sviluppatori alla ricerca di una soluzione robusta, ad alte prestazioni e a prova di futuro, YOLOv8 è la chiara raccomandazione. Per coloro che cercano le ultime novità in termini di prestazioni, i modelli Ultralytics più recenti come YOLO11 spingono i limiti ancora più in là.
Esplora altri modelli
Per continuare la tua ricerca, considera di esplorare altri confronti di modelli che coinvolgono EfficientDet, YOLOv8 e altre architetture leader:
- EfficientDet vs. YOLOv7
- YOLOv8 contro YOLOv7
- RT-DETR vs. YOLOv8
- EfficientDet vs. YOLOv5
- YOLOv8 contro YOLOv9
- Esplora gli ultimi modelli come YOLOv10 e YOLO11.