EfficientDet vs. YOLOX: un confronto tecnico completo
La scelta della giusta architettura di rilevamento degli oggetti è una decisione cruciale nello sviluppo della computer vision. Due modelli di spicco che hanno caratterizzato il panorama sono EfficientDet, sviluppato da Google per ottenere una scalabilità ottimale, e YOLOX, un rilevatore anchor-free ad alte prestazioni di Megvii. Mentre EfficientDet si concentra sulla massimizzazione dell'accuratezza all'interno di un budget computazionale rigoroso utilizzando la scalabilità composta, YOLOX dà la priorità alla velocità di inferenza e alla semplificazione delle pipeline di addestramento.
Questa guida fornisce un'analisi dettagliata delle loro architetture, delle metriche delle prestazioni e degli scenari di implementazione ideali per aiutarvi a scegliere la soluzione più adatta al vostro progetto. Inoltre, esploriamo il modo in cui alternative moderne come Ultralytics YOLO11 integrano i punti di forza di questi predecessori in un framework unificato e di facile utilizzo.
EfficientDet: Efficienza scalabile
EfficientDet è stato introdotto per affrontare la sfida di scalare in modo efficiente i modelli di rilevamento degli oggetti. A differenza delle architetture precedenti che scalavano le dimensioni in modo arbitrario, EfficientDet impiega un metodo di scalatura composto che scala uniformemente risoluzione, profondità e larghezza.
Architettura e caratteristiche principali
L'innovazione principale di EfficientDet risiede nella sua rete di piramidi di caratteristiche bidirezionali (BiFPN). Le FPN tradizionali sommano indistintamente caratteristiche provenienti da scale diverse, ma BiFPN introduce pesi apprendibili per enfatizzare le caratteristiche più importanti durante la fusione. In combinazione con una struttura portante EfficientNet, questo permette al modello di raggiungere un'accuratezza all'avanguardia con un numero significativamente inferiore di parametri e FLOP (Floating Point Operations per Second).
- Scala composta: Scala simultaneamente la larghezza della rete, la profondità e la risoluzione dell'immagine utilizzando un semplice coefficiente composto.
- BiFPN: Consente una fusione semplice e veloce di caratteristiche multiscala.
- Efficienza: ottimizzata per minimizzare l'uso delle risorse e massimizzare la mAP (mean Average Precision).
Metadati del modello
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione:Google
- Data: 2019-11-20
- Arxiv:EfficientDet: Rilevamento scalabile ed efficiente di oggetti
YOLOX: l'evoluzione senza ancoraggio
YOLOX rappresenta un cambiamento nella serie YOLO verso un design privo di ancoraggi. Eliminando la necessità di scatole di ancoraggio predefinite, YOLOX semplifica il processo di formazione e migliora la generalizzazione su diversi set di dati.
Architettura e caratteristiche principali
YOLOX disaccoppia la testa di rilevamento, separando i compiti di classificazione e regressione in rami diversi. Questo design "a testa disaccoppiata" porta in genere a una convergenza più rapida e a prestazioni migliori. Inoltre, incorpora SimOTA, una strategia avanzata di assegnazione delle etichette che assegna dinamicamente i campioni positivi, riducendo i tempi di formazione e migliorando l'accuratezza.
- Anchor-Free: elimina la necessità di regolare manualmente le scatole di ancoraggio, riducendo la complessità del progetto.
- Testa disaccoppiata: migliora le prestazioni separando i compiti di classificazione e localizzazione.
- Aumento avanzato: Utilizza gli aumenti Mosaic e MixUp per un allenamento robusto.
Metadati del modello
- 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
Confronto tra prestazioni e benchmark
I compromessi tra questi due modelli sono diversi. EfficientDet è progettato per l'efficienza dei parametri, il che lo rende un forte concorrente per le applicazioniCPU o per gli scenari in cui la dimensione del modello (archiviazione) è il vincolo principale. Al contrario, YOLOX è ottimizzato per la latenzaGPU , sfruttando operazioni compatibili con l'hardware per offrire una rapida velocità di inferenza su dispositivi come NVIDIA T4 o V100.
La tabella seguente evidenzia queste differenze sul dataset COCO . Si noti come i modelli YOLOX offrano generalmente una maggiore velocità di inferenza su hardware GPU rispetto alle varianti EfficientDet di analoga precisione.
| 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 |
| 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 |
Punti chiave
- Latenza e throughput: YOLOX-s raggiunge uno straordinario tempo di 2,56 ms su T4 TensorRT, significativamente più veloce di EfficientDet-d0 (3,92 ms), pur avendo più parametri. Questo dimostra la superiorità dell'ottimizzazione di YOLOX per l'inferenza in tempo reale sulle GPU.
- Dimensioni del modello: EfficientDet-d0 rimane altamente competitivo per i dispositivi edge con memoria estremamente limitata, vantando un numero di parametri compatto di 3,9M.
- Scalabilità: EfficientDet-d7 raggiunge un elevato mAP di 53,7 ma al costo di un'elevata latenza (128 ms), che lo rende meno adatto ai flussi video in diretta rispetto ai modelli più leggeri.
Il vantaggio di Ultralytics
Mentre EfficientDet e YOLOX sono stati pionieri di tecniche importanti, il campo della computer vision si muove rapidamente. Ultralytics YOLO11 rappresenta l'avanguardia, integrando i migliori insegnamenti architetturali delle generazioni precedenti in un pacchetto unificato ad alte prestazioni.
Per gli sviluppatori e i ricercatori, Ultralytics offre vantaggi interessanti rispetto ai modelli tradizionali:
- Facilità d'uso: l'APIPython Ultralytics è progettata per essere semplice. È possibile caricare un modello, fare previsioni su un'immagine e visualizzare i risultati in poche righe di codice, abbassando la barriera d'ingresso per le soluzioni di intelligenza artificiale.
- Ecosistema completo: A differenza dei repository indipendenti, i modelli Ultralytics sono supportati da un solido ecosistema. Questo include integrazioni perfette con strumenti MLOps come Weights & Biases e ClearMLnonché il supporto attivo della comunità.
- Equilibrio delle prestazioni: I modelliYOLO Ultralytics sono progettati per offrire un compromesso ottimale tra velocità e precisione. Spesso superano YOLOX per quanto riguarda la latenza, pur essendo all'altezza dell'efficienza dei parametri di EfficientDet.
- Requisiti di memoria: I modelli Ultralytics sono ottimizzati per ridurre l'utilizzo della memoria CUDA durante l'addestramento rispetto a molte architetture CNN basate su trasformatori o meno recenti, consentendo di addestrare lotti più grandi su hardware standard.
- Versatilità: Un unico framework Ultralytics supporta il rilevamento di oggetti, la segmentazione di istanze, la stima della posa, la classificazione e le OBB (Oriented Bounding Boxes). Questa versatilità elimina la necessità di imparare diverse basi di codice per i diversi compiti.
Esempio di inferenza semplice
Scoprite quanto sia facile eseguire l'inferenza con Ultralytics YOLO11 rispetto alle complesse pipeline legacy:
from ultralytics import YOLO
# Load a pre-trained YOLO11n model
model = YOLO("yolo11n.pt")
# Run inference on a local image
results = model("bus.jpg")
# Display the results
results[0].show()
Conclusione: Casi d'uso ideali
La scelta tra EfficientDet, YOLOX e Ultralytics YOLO dipende dai vostri vincoli specifici.
- Scegliete EfficientDet se la vostra applicazione è distribuita su hardware in cui lo spazio di memorizzazione e i FLOP sono il collo di bottiglia assoluto, come ad esempio i microcontrollori embedded molto piccoli. Il suo principio di scalabilità consente un controllo a grana fine sulle dimensioni del modello.
- Scegliete YOLOX se state implementando su GPU e avete bisogno di velocità pura. La sua architettura evita alcuni degli overhead operativi dei metodi basati sull'ancoraggio, rendendolo molto efficace per l'analisi video in tempo reale sull'hardware supportato.
- Scegliete Ultralytics YOLO11 per ottenere le migliori prestazioni a tutto tondo. Combina la velocità di YOLOX con l'efficienza dei moderni progetti architetturali. Inoltre, il suo ecosistema, la documentazione e il supporto multi-task riducono drasticamente i tempi di sviluppo, rendendolo la scelta migliore sia per la prototipazione rapida che per le implementazioni di produzione scalabili.
Altri confronti tra modelli
Approfondite le differenze tecniche tra i principali modelli di computer vision: