EfficientDet vs. YOLOv7: un confronto tecnico completo
Nel panorama in rapida evoluzione della computer vision, la scelta della giusta architettura di rilevamento degli oggetti è fondamentale per il successo del progetto. Questa analisi mette a confronto EfficientDet, un'architettura scalabile incentrata sull'efficienza, e YOLOv7, un rilevatore in tempo reale progettato per velocità e precisione su hardware GPU . Sebbene entrambi i modelli rappresentassero lo stato dell'arte delle prestazioni nelle rispettive versioni, la comprensione delle loro sfumature tecniche aiuta gli sviluppatori a prendere decisioni informate per le moderne implementazioni.
Metriche e analisi delle prestazioni
La tabella seguente presenta un confronto dettagliato delle principali metriche di prestazione, tra cui la precisione mediamAP), la velocità di inferenza su hardware diversi e la complessità computazionale (parametri e FLOP).
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Punti chiave
- Efficienza vs. Latenza: EfficientDet raggiunge una notevole efficienza dei parametri (bassa dimensione del modello) grazie alla sua scalatura composta. Tuttavia, su hardware GPU (T4 TensorRT), YOLOv7 dimostra una latenza superiore. Ad esempio, YOLOv7l raggiunge il 51,4% mAP con soli 6,84 ms di latenza, mentre EfficientDet-d5 richiede 67,86 ms per un mAP simile del 51,5%.
- Impatto dell'architettura: Le convoluzioni separabili in profondità utilizzate in EfficientDet riducono al minimo i FLOP, ma possono essere meno ottimizzate sulle GPU rispetto alle convoluzioni dense di YOLOv7, il che porta alle discrepanze di velocità osservate.
Panoramica di EfficientDet
EfficientDet ha introdotto un cambiamento di paradigma nel 2019 proponendo un'architettura scalabile che ottimizza contemporaneamente precisione ed efficienza. Si basa sulla struttura portante di EfficientNet e introduce la BiFPN (Bidirectional Feature Pyramid Network).
Dettagli EfficientDet:
Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
Organizzazione: Google
Data: 2019-11-20
Arxiv: https://arxiv.org/abs/1911.09070
GitHub: https:google
Punti salienti dell'architettura
L'innovazione principale di EfficientDet è la BiFPN, che consente una fusione semplice e veloce delle caratteristiche su più scale. A differenza delle FPN tradizionali, BiFPN utilizza la fusione ponderata delle caratteristiche per apprendere l'importanza delle diverse caratteristiche in ingresso. In combinazione con il Compound Scaling, che scala uniformemente la risoluzione, la profondità e la larghezza, EfficientDet offre una famiglia di modelli (da D0 a D7) in grado di soddisfare diversi vincoli di risorse.
Panoramica di YOLOv7
YOLOv7, rilasciato nel 2022, ha spinto i confini del rilevamento di oggetti in tempo reale concentrandosi sull'ottimizzazione del processo di addestramento e dell'architettura per la velocità di inferenza. Introduce diversi "Bag-of-Freebies" che migliorano l'accuratezza senza aumentare il costo dell'inferenza.
DettagliYOLOv7 :
Autori: Chien-Yao Wang, Alexey Bochkovskiy e Hong-Yuan Mark Liao
Organizzazione: Istituto di Scienze dell'Informazione, Academia Sinica, Taiwan
Data: 2022-07-06
Arxiv: https://arxiv.org/abs/2207.02696
GitHub: https://github.com/WongKinYiu/yolov7
Punti salienti dell'architettura
YOLOv7 utilizza E-ELAN (Extended Efficient Layer Aggregation Network), che controlla i percorsi di gradiente più brevi e più lunghi per consentire alla rete di apprendere caratteristiche più diverse. Inoltre, impiega il model scaling per i modelli basati sulla concatenazione, consentendo di mantenere la struttura ottimale su dimensioni diverse. L'architettura è stata messa a punto specificamente per l'efficienza GPU , evitando le operazioni che hanno costi elevati di accesso alla memoria nonostante il basso numero di FLOP.
Casi d'uso ideali
La scelta tra queste architetture dipende in larga misura dall'hardware di distribuzione e dai requisiti specifici dell'applicazione.
Quando scegliere EfficientDet
EfficientDet è ideale per ambientiCPU o dispositivi edge in cui la larghezza di banda e la memoria sono strettamente limitate. Il basso numero di parametri lo rende adatto a:
- Applicazioni mobili: Applicazioni iOS in cui la dimensione dell'applicazione (APK) è un vincolo critico.
- Sistemi embedded: Dispositivi come Raspberry Pi (vecchie generazioni) che funzionano su CPU.
- Ricerca accademica: Studio degli effetti delle tecniche di scalatura composta e di fusione delle caratteristiche.
Quando scegliere YOLOv7
YOLOv7 eccelle negli ambienti GPU ad alte prestazioni dove la bassa latenza non è negoziabile. È la scelta preferita per:
- Sorveglianza in tempo reale: Elaborazione di più flussi video contemporaneamente sui server edge.
- Guida autonoma: Dove la latenza di un millisecondo può avere un impatto sulla sicurezza.
- Robotica: Per il rilevamento rapido degli oggetti e l'interazione in ambienti dinamici.
Alternative moderne
Sebbene EfficientDet e YOLOv7 siano potenti, il campo è avanzato. Per i nuovi progetti, YOLO11 è generalmente consigliato. Combina i concetti di efficienza delle moderne dorsali con la velocità in tempo reale della famiglia YOLO , superando spesso entrambi i predecessori in termini di precisione e facilità di implementazione.
Perché scegliere i modelli Ultralytics YOLO?
Mentre EfficientDet e YOLOv7 rimangono contributi significativi alla computer vision, l'ecosistema Ultralytics , caratterizzato da modelli come YOLOv8 e il modello all'avanguardia YOLO11-offre vantaggi distinti a sviluppatori e ricercatori.
Facilità d'uso ed ecosistema
I modelli tradizionali spesso richiedono complesse fasi di installazione, versioni CUDA specifiche o codebase frammentati. Ultralytics , invece, si concentra su un'esperienza utente unificata e semplificata. Con un semplice pip install ultralyticsgli utenti hanno accesso ad una robusta API Python e a Comandi CLI che standardizzano la formazione, la convalida e l'impiego. Il Ecosistema ben curato garantisce aggiornamenti frequenti, un ampio supporto hardware e l'integrazione con strumenti come Ultralytics HUB per i MLO senza soluzione di continuità.
Bilanciamento delle prestazioni ed efficienza della memoria
I modelli Ultralytics sono progettati per raggiungere un equilibrio ottimale delle prestazioni. Offrono un'accuratezza all'avanguardia pur mantenendo un'eccezionale velocità di inferenza, rendendoli adatti a diversi scenari, dalla distribuzione edge alle API cloud. Inoltre, i requisiti di memoria per l'addestramento dei modelli Ultralytics YOLO sono spesso inferiori a quelli delle architetture basate su trasformatori o delle vecchie Convnet, consentendo un addestramento efficiente su GPU di livello consumer.
Versatilità ed efficienza dell'allenamento
A differenza di molti rilevatori specifici, i modelli Ultralytics sono altamente versatili. Un unico framework supporta:
- Rilevamento di oggetti
- Segmentazione delle istanze
- Classificazione delle immagini
- Stima della posa
- Rilevamento di oggetti orientati (OBB)
Questa versatilità, unita all'efficienza dell'addestramento, grazieai caricatori di dati ottimizzati e ai pesi pre-addestrati prontamente disponibili su COCO-riduce significativamente il time-to-market delle soluzioni di intelligenza artificiale.
Esempio: Esecuzione di un modello YOLO moderno
Di seguito è riportato un esempio della facilità con cui un moderno modello Ultralytics può essere utilizzato per l'inferenza, in netto contrasto con il boilerplate spesso richiesto dalle vecchie architetture.
from ultralytics import YOLO
# Load the latest YOLO11 model (pre-trained on COCO)
model = YOLO("yolo11n.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Process results
for result in results:
result.save() # Save the annotated image to disk
print(f"Detected {len(result.boxes)} objects.")
Conclusione
EfficientDet e YOLOv7 rappresentano due filosofie diverse nella storia della computer vision: una ottimizza per l'efficienza teorica (FLOPs/Params) e l'altra per la latenza pratica dell'hardware. EfficientDet rimane un riferimento importante per le applicazioni CPU con vincoli di parametri, mentre YOLOv7 serve bene i carichi di lavoro GPU ad alta velocità.
Tuttavia, per gli sviluppatori che cercano il meglio di entrambi i mondi, velocità, precisione e un'esperienza di sviluppo senza attriti, i modelli Ultralytics come YOLO11 sono la scelta migliore. Semplificano la complessa pipeline di addestramento e distribuzione, offrendo al contempo prestazioni che soddisfano le rigorose esigenze delle moderne applicazioni di computer vision.
Altri confronti tra modelli
Esplora altri confronti tecnici per trovare il modello migliore per le tue esigenze specifiche:
- EfficientDet vs YOLOv8
- YOLOv7 vs YOLOv8
- EfficientDet vs YOLOv5
- YOLOv6 vs YOLOv7
- RT-DETR vs YOLOv7
- YOLOX contro EfficientDet