EfficientDet vs. YOLOv5: equilibrio tra scalabilità e prestazioni in tempo reale
La scelta dell'architettura di rilevamento oggetti più adeguata comporta una valutazione dei compromessi tra accuratezza, velocità di inferenza e complessità di implementazione. Questa guida fornisce un confronto tecnico approfondito tra EfficientDet, un'architettura scalabile di Google , e YOLOv5, il rilevatore in tempo reale ampiamente adottato di Ultralytics.
Mentre EfficientDet ha introdotto concetti innovativi nel campo del compound scaling, YOLOv5 il settore rendendo accessibile la visione artificiale ad alte prestazioni attraverso un'API semplificata e un ecosistema robusto.
Panoramica del modello
Google EfficientDet
EfficientDet si basa sulla struttura EfficientNet, applicando un metodo di ridimensionamento composto che ridimensiona uniformemente risoluzione, profondità e larghezza. Ha introdotto la rete piramidale bidirezionale (BiFPN) per consentire una fusione delle caratteristiche multiscala facile e veloce.
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione:Google
- Data: 2019-11-20
- Arxiv:EfficientDet: Scalable and Efficient Object Detection
- GitHub:Repository EfficientDet
Ultralytics YOLOv5
YOLOv5 si concentra sull'usabilità e sulla velocità nel mondo reale. Utilizza una dorsale CSPDarknet ed è progettato per facilitare l'addestramento e l'implementazione su diversi tipi di hardware. Rimane uno dei modelli più popolari grazie al suo equilibrio tra prestazioni ed efficienza.
- Autore: Glenn Jocher
- Organizzazione:Ultralytics
- Data: 2020-06-26
- Documentazione:Documentazione YOLOv5
- GitHub:Repository YOLOv5
Confronto dell'Architettura Tecnica
Le filosofie architettoniche di questi due modelli divergono in modo significativo, influenzando la loro idoneità a compiti diversi.
EfficientDet: Scaling Composto e BiFPN
L'innovazione principale di EfficientDet è la BiFPN (Weighted Bi-directional Feature Pyramid Network, rete piramidale bidirezionale ponderata delle caratteristiche). A differenza delle FPN standard che sommano le caratteristiche senza distinzioni, la BiFPN introduce pesi apprendibili per comprendere l'importanza delle diverse caratteristiche di input. Ciò consente alla rete di dare priorità alle caratteristiche più informative durante la fusione.
Inoltre, EfficientDet utilizza il Compound Scaling, che aumenta contemporaneamente la risoluzione, la profondità e l'ampiezza della backbone, della rete di caratteristiche e della rete di previsione. Ciò consente agli utenti di scegliere tra una famiglia di modelli (da D0 a D7) a seconda delle loro limitazioni di risorse. Tuttavia, questa complessità può portare a una maggiore latenza sui dispositivi edge che non dispongono di un supporto specializzato per queste operazioni.
YOLOv5: CSPDarknet e PANet
YOLOv5 una dorsale CSPDarknet, che integra reti Cross Stage Partial. Questo design riduce il numero di parametri e FLOPS mantenendo l'accuratezza grazie alla suddivisione della mappa delle caratteristiche nel livello di base.
Per l'aggregazione delle caratteristiche, YOLOv5 una rete di aggregazione dei percorsi (PANet). Questa struttura migliora il flusso di informazioni dai livelli inferiori a quelli superiori, migliorando la localizzazione degli oggetti, fondamentale per ottenere bounding box accurati. La testa è basata su anchor e prevede gli offset da anchor box predefiniti. Questa architettura è altamente ottimizzata per GPU , con tempi di inferenza più rapidi rispetto alle complesse operazioni di ridimensionamento di EfficientDet.
Il vantaggio dell'ecosistema Ultralytics
Scegliendo YOLOv5 l'accesso Ultralytics , che garantisce una perfetta integrazione con strumenti per l'annotazione dei dati, il monitoraggio degli esperimenti e la formazione cloud tramite la Ultralytics . Questa struttura di supporto è spesso assente nei repository incentrati sulla ricerca come EfficientDet.
Metriche di performance
Quando si valuta la performance, è fondamentale considerare sia l'accuratezza (mAP) e la velocità (latenza). Sebbene EfficientDet raggiunga una maggiore accuratezza con le sue varianti più grandi (D7), spesso comporta una significativa penalizzazione in termini di velocità rispetto YOLOv5 di dimensioni comparabili.
La tabella sottostante evidenzia le differenze in termini di prestazioni. Si noti come YOLOv5 CPU significativamente più elevate, rendendolo molto più pratico per l'implementazione senza acceleratori specializzati.
| 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 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Analisi
- Velocità contro precisione: EfficientDet-d0 è molto efficiente in termini di FLOP, ma in pratica YOLOv5n e YOLOv5s spesso funzionano più velocemente su GPU standard grazie a operazioni più compatibili con l'hardware (evitando convoluzioni separabili in profondità che possono essere lente su alcuni CUDA più vecchi).
- Efficienza della memoria: YOLOv5 richiede YOLOv5 meno VRAM durante l'addestramento, consentendo batch di dimensioni maggiori su hardware di livello consumer. Le connessioni complesse di EfficientDet possono aumentare il sovraccarico di memoria.
- Ottimizzazione: EfficientDet si basa in larga misura sulle ricerche AutoML per l'architettura, che può essere difficile da modificare. YOLOv5 una più facile personalizzazione dei multipli di profondità e larghezza direttamente nella configurazione YAML.
Addestramento e usabilità
Efficienza dell'addestramento
Ultralytics YOLOv5 rinomato per la sua capacità di "addestramento immediato". Il repository include l'aumento dei dati Mosaic, il calcolo automatico dell'ancoraggio e l'evoluzione degli iperparametri. Ciò significa che gli utenti possono ottenere risultati eccellenti su set di dati personalizzati senza una messa a punto approfondita. Le implementazioni EfficientDet richiedono spesso una configurazione manuale più complessa dei TensorFlow e un'attenta pianificazione del tasso di apprendimento.
Versatilità di implementazione
Mentre EfficientDet è principalmente un modello di rilevamento oggetti, YOLOv5 i suoi successori nella Ultralytics supportano una gamma più ampia di attività. È possibile passare senza soluzione di continuità alla segmentazione delle istanze o alla classificazione delle immagini utilizzando la stessa struttura API.
Inoltre, l'implementazione YOLOv5 semplificata grazie alla modalità di esportazione, che supporta la conversione con un solo clic in ONNX, TensorRT, CoreML e TFLite.
from ultralytics import YOLO
# Load a pretrained YOLOv5 model
model = YOLO("yolov5s.pt")
# Train the model on a custom dataset
model.train(data="coco128.yaml", epochs=100)
# Export to ONNX format for deployment
model.export(format="onnx")
A prova di futuro: il caso di YOLO26
Sebbene YOLOv5 una scelta affidabile, il settore ha fatto passi da gigante. Per gli sviluppatori alla ricerca della tecnologia più avanzata, YOLO26 si basa sull'eredità di YOLOv5 significativi miglioramenti architetturali.
YOLO26 introduce un design end-to-end NMS, eliminando la necessità della post-elaborazione Non-Maximum Suppression. Ciò riduce la latenza e semplifica la pipeline di implementazione, un vantaggio importante rispetto sia a EfficientDet che a YOLOv5. Inoltre, YOLO26 utilizza l'ottimizzatore MuSGD, ispirato all'addestramento LLM, garantendo una convergenza più rapida e un addestramento stabile anche su set di dati difficili.
Se il tuo progetto prevede l'uso dell'edge AI, YOLO26 è specificamente ottimizzato per CPU , offrendo velocità fino al 43% superiori rispetto alle generazioni precedenti.
Casi d'uso ideali
Quando scegliere EfficientDet
- Limiti della ricerca: quando l'obiettivo principale è studiare le leggi di scala dei composti o riprodurre specifici benchmark accademici.
- Regimi a basso FLOP: in scenari teorici in cui il conteggio FLOP è l'unico parametro rilevante, ignorando i costi di accesso alla memoria o la latenza effettiva sull'hardware.
Quando scegliere Ultralytics YOLOv5 o YOLO26)
- Applicazioni in tempo reale: guida autonoma, analisi video e robotica, dove la bassa latenza è imprescindibile.
- Implementazione edge: funziona su Raspberry Pi, NVIDIA o dispositivi mobili in cui l'efficienza della memoria eTensorRT sono fondamentali.
- Sviluppo rapido: progetti che richiedono cicli di iterazione rapidi, facile gestione dei set di dati e pesi pre-addestrati affidabili.
- Compiti diversi: se il tuo progetto dovesse espandersi fino a includere la stima della posa o il rilevamento di oggetti orientati (OBB), il Ultralytics li supporta in modo nativo.
Riepilogo
Sia EfficientDet che YOLOv5 dato un contributo significativo alla visione artificiale. EfficientDet ha dimostrato la potenza del ridimensionamento sistematico, mentre YOLOv5 il rilevamento ad alte prestazioni. Per la maggior parte delle applicazioni pratiche odierne, Ultralytics , rappresentato da YOLOv5 dall'innovativo YOLO26, offre un equilibrio superiore tra velocità, precisione e facilità d'uso, supportato da un codice continuamente aggiornato e da una comunità fiorente.
Per ulteriori approfondimenti sul confronto tra modelli, scopri come YOLO si posizionano rispetto ad altri come YOLOv8 EfficientDet o il modello basato su trasformatori RT-DETR.