YOLOX vs. EfficientDet: Un confronto tecnico
La scelta della giusta architettura di rilevamento degli oggetti è una decisione cruciale nello sviluppo di applicazioni di computer vision. Due modelli che hanno influenzato in modo significativo il panorama sono YOLOX ed EfficientDet. Entrambi mirano a risolvere il problema della localizzazione e della classificazione degli oggetti all'interno delle immagini, ma affrontano il compito con filosofie di progettazione fondamentalmente diverse.
Questa guida fornisce un confronto tecnico approfondito tra YOLOX, un rilevatore anchor-free ad alte prestazioni, ed EfficientDet, un'architettura scalabile incentrata sull'efficienza. Analizzeremo le loro architetture, i benchmark e le metodologie di addestramento per aiutarvi a decidere quale modello si adatta ai vostri vincoli, introducendo inoltre Ultralytics YOLO11 come alternativa moderna e consigliata per ottenere prestazioni all'avanguardia.
YOLOX: l'evoluzione senza ancoraggio
Rilasciato nel 2021 dai ricercatori di Megvii, YOLOX ha rappresentato un cambiamento nella linea YOLO (You Only Look Once) abbandonando il meccanismo basato sulle ancore che aveva definito le precedenti iterazioni.
- Autori: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li e Jian Sun
- Organizzazione:Megvii
- Data: 2021-07-18
- Arxiv:YOLOX: superare la serie YOLO nel 2021
- GitHub:Megvii-BaseDetection/YOLOX
Architettura e Innovazioni Chiave
YOLOX si distingue per la struttura disaccoppiata della testa. I rilevatori tradizionali utilizzavano spesso una testa accoppiata in cui i compiti di classificazione e localizzazione condividevano i parametri, il che poteva portare a conflitti durante l'addestramento. YOLOX separa questi compiti in rami diversi, migliorando significativamente la velocità di convergenza e la precisione finale.
La caratteristica più rilevante è il suo design privo di ancoraggi. Eliminando la necessità di scatole di ancoraggio predefinite, YOLOX elimina la regolazione euristica associata alla generazione di ancoraggi. Questo è abbinato a SimOTA (Simplified Optimal Transport Assignment), una strategia avanzata di assegnazione delle etichette che assegna dinamicamente i campioni positivi alle verità di base, bilanciando il processo di formazione in modo più efficace rispetto alle soglie IoU statiche.
Vantaggi senza ancoraggio
L'eliminazione delle caselle di ancoraggio riduce il numero di parametri di progettazione che gli sviluppatori devono mettere a punto. Inoltre, si generalizza meglio agli oggetti con rapporti di aspetto insoliti, poiché il modello prevede direttamente i riquadri di delimitazione, anziché regolare una forma predefinita.
EfficientDet: Efficienza scalabile
EfficientDet, sviluppato dal team di Google Brain nel 2019, si concentra sul raggiungimento della massima precisione possibile all'interno di specifici budget computazionali. Si basa sulla struttura portante di EfficientNet e introduce una nuova tecnica di fusione di funzioni.
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione: Google
- Data: 2019-11-20
- Arxiv:EfficientDet: Rilevamento scalabile ed efficiente di oggetti
- GitHub:google
Architettura e Innovazioni Chiave
L'innovazione principale di EfficientDet è la BiFPN (Weighted Bi-directional Feature Pyramid Network). A differenza di una tradizionale Feature Pyramid Network (FPN) che somma in modo uguale caratteristiche provenienti da scale diverse, la BiFPN introduce pesi apprendibili per comprendere l'importanza delle diverse caratteristiche in ingresso. Inoltre, permette alle informazioni di fluire ripetutamente sia dall'alto verso il basso che dal basso verso l'alto.
EfficientDet impiega anche la scalatura composta. Invece di scalare solo la spina dorsale o la risoluzione dell'immagine, scala uniformemente la risoluzione, la profondità e la larghezza della rete. Il risultato è una famiglia di modelli (da D0 a D7) che fornisce una curva coerente di efficienza rispetto alla precisione, rendendola altamente adattabile a compiti che vanno dalle applicazioni mobili all'elaborazione cloud di alto livello.
Analisi delle prestazioni: Velocità ed efficienza
La differenza fondamentale tra questi due modelli risiede nei loro obiettivi di ottimizzazione. EfficientDet è ottimizzato per l'efficienza teorica (FLOP e parametri), che spesso si traduce in prestazioni CPU su dispositivi edge. YOLOX, al contrario, è ottimizzato per l'inferenza ad alto rendimento sulle GPU, sfruttando gli operatori densi che gli acceleratori gestiscono bene.
La tabella seguente illustra questo compromesso. Mentre EfficientDet-d0 è estremamente leggero in termini di parametri, YOLOX-s offre una velocità di inferenza significativamente maggiore su TensorRT nonostante il maggior numero di parametri.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
| 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 |
Osservazioni critiche
- LatenzaGPU : YOLOX dimostra prestazioni superiori sugli acceleratori. YOLOX-l raggiunge la stessa precisione (49,7 mAP) di EfficientDet-d4, ma funziona quasi 3,7 volte più velocemente su una GPU T4 (9,04 ms contro 33,55 ms).
- Efficienza dei parametri: EfficientDet eccelle quando l'archiviazione è il vincolo principale. EfficientDet-d3 fornisce una grande accuratezza (47,5 mAP) con soli 12 milioni di parametri, mentre per ottenere un'accuratezza simile con YOLOX è necessario un modello medio con oltre il doppio dei parametri.
- Complessità di addestramento: YOLOX incorpora in modo nativo forti tecniche di incremento dei dati come Mosaic e MixUp , che aiutano ad addestrare modelli robusti da zero, mentre EfficientDet si basa molto sulle proprietà specifiche della struttura portante di EfficientNet e sulle regole di scalatura composte.
Ultralytics YOLO11: l'alternativa migliore
Se YOLOX ed EfficientDet sono stati all'avanguardia nei rispettivi tempi, il campo della visione artificiale si muove rapidamente. Per applicazioni moderne nel 2024 e oltre, Ultralytics YOLO11 offre una soluzione completa che supera entrambe le architetture tradizionali in termini di velocità, precisione e usabilità.
Perché scegliere Ultralytics YOLO11?
- Equilibrio delle prestazioni: YOLO11 è stato progettato per fornire il miglior compromesso possibile tra velocità e precisione. In genere eguaglia o supera l'accuratezza massima di EfficientDet-d7, pur mantenendo una velocità di inferenza più vicina alle varianti YOLOX più veloci.
- Facilità d'uso: A differenza dei complessi archivi di ricerca di EfficientDet o YOLOX, Ultralytics offre un'APIPython pronta per la produzione. È possibile caricare, addestrare e distribuire un modello con poche righe di codice.
- Ecosistema ben curato: I modelli Ultralytics sono supportati da uno sviluppo attivo, da aggiornamenti frequenti e da una vivace comunità. L'ecosistema integrato comprende Ultralytics HUB per la gestione dei set di dati e la formazione dei modelli.
- Versatilità: Mentre YOLOX ed EfficientDet sono principalmente rilevatori di oggetti, YOLO11 supporta un'ampia gamma di attività all'interno di un unico framework, tra cui la segmentazione delle istanze, la stima della posa, le OBB (Oriented Bounding Boxes) e la classificazione.
- Efficienza di formazione: YOLO11 utilizza blocchi di architettura raffinati che riducono i requisiti di memoria durante l'addestramento rispetto alle vecchie architetture a trasformatori o a dorsali complesse. Ciò rende possibile l'addestramento di modelli all'avanguardia su hardware di livello consumer.
Come iniziare con YOLO11
L'esecuzione di previsioni con YOLO11 è incredibilmente semplice. Il seguente frammento di codice mostra come caricare un modello pre-addestrato ed eseguire l'inferenza su un'immagine.
from ultralytics import YOLO
# Load the YOLO11n model (nano version for speed)
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Casi d'uso ideali
- Scegliete EfficientDet solo se state implementando su dispositivi edge estremamente limitati e dotati di CPU, dove il conteggio dei FLOP è il fattore limitante assoluto e se avete dipendenze legacy.
- Scegliete YOLOX se avete bisogno di una solida base per la ricerca accademica sui rilevatori anchor-free su GPU, ma sappiate che la configurazione è più complessa rispetto ai framework moderni.
- Scegliete Ultralytics YOLO11 per quasi tutti i nuovi progetti commerciali e di ricerca. Che si tratti di veicoli autonomi, di analisi delle città intelligenti o di controllo della qualità della produzione, YOLO11 offre la robustezza, la velocità e gli strumenti necessari per passare dal prototipo alla produzione in modo efficiente.
Conclusione
Sia YOLOX che EfficientDet hanno contribuito in modo significativo al progresso del rilevamento degli oggetti. EfficientDet ha dimostrato che la scalatura dei modelli può essere scientifica e strutturata, mentre YOLOX ha reso popolari pipeline di rilevamento completamente prive di ancoraggi.
Tuttavia, Ultralytics YOLO11 sintetizza i migliori insegnamenti di queste architetture - efficienza, progettazione senza ancoraggi e ottimizzazione GPU - in un pacchetto unificato e di facile utilizzo. Grazie all'ingombro ridotto della memoria durante l'addestramento, al supporto di diverse attività di computer vision e alla perfetta integrazione con formati di distribuzione come ONNX e CoreML, Ultralytics YOLO11 è oggi la scelta consigliata per gli sviluppatori.
Letture aggiuntive
Esplora altri confronti per comprendere il panorama dei modelli di rilevamento degli oggetti: