YOLOv7 vs EfficientDet: Un confronto tecnico tra le architetture di rilevamento degli oggetti in tempo reale
Il rilevamento degli oggetti rimane una pietra miliare della visione computerizzata, che porta innovazioni in campi che vanno dalla guida autonoma all'imaging medico. La scelta della giusta architettura è fondamentale per bilanciare precisione, velocità e risorse computazionali. Questa analisi fornisce un'analisi approfondita di YOLOv7 e EfficientDet, due modelli influenti che hanno plasmato il panorama del rilevamento in tempo reale.
Progettazione architettonica e filosofia
La differenza fondamentale tra queste due architetture risiede nei loro obiettivi di ottimizzazione. EfficientDet, sviluppato dal team di Google Brain, dà priorità all'efficienza dei parametri e alle operazioni in virgola mobile (FLOP). Sfrutta un'architettura scalabile che consente agli utenti di scambiare le risorse con la precisione in modo lineare. Al contrario, YOLOv7creato dagli autori di YOLOv4 (Chien-Yao Wang et al.), si concentra sulla massimizzazione della velocità di inferenza sull'hardware GPU , mantenendo lo stato dell'arte della precisione.
EfficientDet: Scala dei composti e BiFPN
EfficientDet si basa sulla struttura portante EfficientNet, che utilizza un metodo di scalatura composto per scalare uniformemente la risoluzione, la profondità e la larghezza della rete. Un'innovazione chiave di EfficientDet è la Bi-directional Feature Pyramid Network (BiFPN). A differenza delle FPN tradizionali, la BiFPN consente una fusione semplice e veloce delle caratteristiche su più scale, introducendo pesi apprendibili per imparare l'importanza delle diverse caratteristiche in ingresso. Questo design rende EfficientDet molto efficace per le applicazioni di edge computing in cui la memoria e i FLOP sono strettamente limitati.
YOLOv7: E-ELAN e riparametrizzazione del modello
YOLOv7 introduce la Extended Efficient Layer Aggregation Network (E-ELAN). Questa architettura controlla i percorsi di gradiente più brevi e più lunghi per migliorare la capacità di apprendimento della rete senza distruggere il percorso di gradiente originale. Inoltre, YOLOv7 impiega la ri-parametrizzazione del modello, una tecnica in cui una complessa struttura di addestramento viene semplificata in una struttura di inferenza snella. Il risultato è un modello robusto durante l'addestramento ma estremamente veloce durante l'implementazione su GPU.
Analisi delle prestazioni: Metriche e benchmark
Quando si confrontano le prestazioni, la scelta dipende spesso dall'hardware di distribuzione. EfficientDet brilla in ambienti a basso consumo (CPU), mentre YOLOv7 è stato progettato per l'inferenza GPU ad alto rendimento.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.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 |
Punti chiave
- Latenza ed efficienza: Mentre EfficientDet-d0 utilizza un numero significativamente inferiore di parametri (3,9M), YOLOv7l offre un mAP molto più elevato (51,4%) con una latenza estremamente bassa sulle GPU (6,84ms). Questo dimostra l'utilizzo superiore di YOLOv7 della potenza di elaborazione parallela.
- Scalabilità: EfficientDet offre un percorso di scalatura granulare da d0 a d7, consentendo agli sviluppatori di regolare con precisione le dimensioni del modello in base ai vincoli specifici CPU .
- Precisione di fascia alta: Nella fascia alta, EfficientDet-d7 raggiunge un'eccellente accuratezza (53,7% mAP), ma al costo di un'elevata latenza (~128ms). YOLOv7x raggiunge un'accuratezza comparabile (53,1% mAP) a meno di un decimo del tempo di inferenza (11,57 ms) su una GPU T4.
Considerazioni sull'hardware
Se l'obiettivo di implementazione è una CPU generica o un processore mobile, i FLOP inferiori dei modelli EfficientDet (in particolare d0-d2) spesso si traducono in una migliore durata della batteria e gestione termica. Per le GPU edge (come NVIDIA Jetson) o i server di inferenza cloud, YOLOv7 offre frame rate significativamente più elevati per l'analisi video in tempo reale.
Metodologie di formazione e ottimizzazione
Le strategie di addestramento di questi modelli riflettono i loro obiettivi architettonici.
YOLOv7 utilizza un approccio di tipo "Bag-of-Freebies", incorporando metodi che aumentano il costo dell'addestramento ma migliorano l'accuratezza senza incidere sulla velocità di inferenza. Le tecniche principali includono:
- Supervisione profonda da grossolana a fine: Una testa ausiliaria viene utilizzata per supervisionare gli strati intermedi della rete, con strategie di assegnazione delle etichette che guidano la testa ausiliaria in modo diverso dalla testa principale.
- Assegnazione dinamica delle etichette: Il modello adatta l'assegnazione degli oggetti della verità a terra alle ancore durante l'addestramento, migliorando la convergenza.
EfficientDet si basa molto su AutoML per trovare l'architettura ottimale della rete dorsale e delle caratteristiche. Il suo addestramento prevede tipicamente:
- Profondità stocastica: Eliminazione casuale degli strati durante l'addestramento per migliorare la generalizzazione.
- Attivazione Swish: Una funzione liscia e non monotonica che supera costantemente ReLU nelle reti più profonde.
Il vantaggio di Ultralytics
Sebbene YOLOv7 ed EfficientDet siano entrambi potenti, il panorama della computer vision si evolve rapidamente. L'ecosistemaUltralytics offre alternative moderne come YOLO11 che sintetizzano le caratteristiche migliori delle architetture precedenti, migliorando al contempo l'esperienza degli sviluppatori.
Facilità d'uso ed ecosistema
Una delle sfide principali degli archivi orientati alla ricerca (come il codice originale di EfficientDet) è la complessità dell'integrazione. Ultralytics risolve questo problema con un pacchetto Python unificato. Gli sviluppatori possono addestrare, validare e distribuire i modelli con poche righe di codice, supportati da una documentazione completa e dal sostegno attivo della comunità.
Equilibrio tra versatilità e prestazioni
I modelli Ultralytics non si limitano alle bounding box. Supportano in modo nativo la segmentazione delle istanze, la stima della posa, la classificazione e il rilevamento di oggetti orientati (OBB). In termini di prestazioni, le versioni moderne di YOLO (come YOLOv8 e YOLO11) raggiungono spesso una maggiore precisione per parametro rispetto a EfficientDet e un'inferenza più veloce rispetto a YOLOv7, raggiungendo un equilibrio ideale per l'implementazione nel mondo reale.
Memoria ed efficienza dell'allenamento
I modelliYOLO Ultralytics sono rinomati per la loro efficienza di memoria. In genere richiedono meno memoria CUDA durante l'addestramento rispetto ai rilevatori basati su Transformer o alle vecchie architetture scalabili. Ciò consente ai ricercatori di addestrare modelli all'avanguardia su hardware di livello consumer. Inoltre, l'apprendimento per trasferimento è semplificato grazie ai pesi pre-addestrati di alta qualità disponibili per il download immediato.
from ultralytics import YOLO
# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with high speed
predictions = model("https://ultralytics.com/images/bus.jpg")
Specifiche del modello
YOLOv7
- Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
- Organizzazione: Institute of Information Science, Academia Sinica, Taiwan
- Data di uscita: 6 luglio 2022
- Documento:YOLOv7: il bag-of-freebies addestrabile stabilisce un nuovo stato dell'arte per i rilevatori di oggetti in tempo reale
- Fonte:Repository GitHub
EfficientDet
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione: Google Research, Team Brain
- Data di uscita: 20 novembre 2019
- Carta:EfficientDet: Rilevamento scalabile ed efficiente degli oggetti
- Fonte:Repository GitHub
Casi d'uso reali
Quando scegliere EfficientDet
EfficientDet rimane un candidato forte per i sistemi embedded in cui l'accelerazione GPU non è disponibile.
- Applicazioni mobili: Applicazioni iOS che eseguono il rilevamento degli oggetti sulla CPU.
- Sensori IoT remoti: Dispositivi alimentati a batteria che monitorano i cambiamenti ambientali dove ogni milliwatt di calcolo conta.
Quando scegliere YOLOv7
YOLOv7 eccelle in ambienti industriali ad alte prestazioni.
- Guida autonoma: Rilevamento di pedoni e veicoli ad alta velocità per garantire la sicurezza.
- Città intelligenti: Analisi di più flussi video simultanei per la gestione del traffico su server edge.
Conclusione
Entrambe le architetture rappresentano pietre miliari della computer vision. EfficientDet ha dimostrato la potenza del compound scaling per l'efficienza dei parametri, mentre YOLOv7 ha spinto i confini di ciò che è possibile fare con l'ottimizzazione della latenza GPU .
Tuttavia, per gli sviluppatori che cercano la soluzione più moderna, manutenibile e versatile, l'opzione Ultralytics YOLO11 è la famiglia di modelli Ulralytics YOLO11. Offre un'accuratezza superiore e un compromesso tra velocità e accuratezza, un flusso di lavoro più semplice e un robusto ecosistema che semplifica il percorso dalla raccolta dei dati alla loro distribuzione.
Esplora altri modelli
Se siete interessati a confrontare altre architetture di rilevamento degli oggetti, considerate queste risorse: