EfficientDet vs. YOLOv8: un confronto tecnico tra i giganti del rilevamento di oggetti
Nel panorama in rapida evoluzione della computer vision, la scelta della giusta architettura è fondamentale per il successo del progetto. Questa analisi mette a confronto due modelli influenti: EfficientDet, una pietra miliare della ricerca di Google incentrata sull'efficienza dei parametri, e YOLOv8, un modello all'avanguardia di Ultralytics progettato per applicazioni in tempo reale e facilità d'uso.
Mentre EfficientDet ha introdotto concetti innovativi nella scalatura dei modelli, le nuove architetture come YOLOv8 e l'avanguardia YOLO11 hanno ridefinito gli standard di velocità, precisione e versatilità di implementazione.
Metriche delle prestazioni: Velocità, precisione ed efficienza
Quando si sceglie un modello per la produzione, gli sviluppatori devono soppesare i compromessi tra latenza di inferenza e precisione di rilevamento. La tabella seguente fornisce un confronto diretto delle metriche delle prestazioni sul set di datiCOCO .
| 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Analisi dei dati
Le metriche evidenziano una netta divergenza nella filosofia di progettazione. EfficientDet riduce al minimo le FLOP (Floating Point Operations), storicamente correlate all'efficienza teorica. Tuttavia, in scenari pratici di inferenza in tempo reale, in particolare su GPU, YOLOv8 dimostra un vantaggio significativo.
- LatenzaGPU : YOLOv8n è circa 2,6 volte più veloce di EfficientDet-d0 su una GPU T4 con TensorRTnonostante abbia FLOP leggermente superiori. Ciò è dovuto al fatto che l'architettura di YOLOv8 è ottimizzata per il parallelismo hardware, mentre le convoluzioni separabili in profondità di EfficientDet possono essere vincolate alla memoria sugli acceleratori.
- Precisione in scala: All'estremità superiore, YOLOv8x raggiunge un livello superiore di mAP di 53,9 con una velocità di inferenza di 14,37 ms, superando drasticamente EfficientDet-d7, che si ferma a 128,07 ms per una precisione simile.
- Dimensione del modello: YOLOv8n richiede meno parametri (3,2M) rispetto al più piccolo EfficientDet (3,9M), il che lo rende altamente efficiente dal punto di vista dello storage per le applicazioni mobili.
Efficienza e latenza
Un basso numero di FLOP non sempre equivale a un'esecuzione veloce. EfficientDet è altamente ottimizzato per i costi di calcolo teorici, ma YOLOv8 sfrutta le capacità di elaborazione in parallelo delle moderne GPU (come NVIDIA T4/A100) in modo più efficace, con conseguente riduzione della latenza nel mondo reale.
Filosofia dell'architettura e del design
La comprensione delle sfumature architettoniche spiega le differenze di prestazioni osservate sopra.
Dettagli EfficientDet
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione:Google
- Data: Novembre 2019
- Carta:EfficientDet: Rilevamento scalabile ed efficiente degli oggetti
- Repository:Google AutoML
EfficientDet è stato costruito sul principio del Compound Scaling, che scala uniformemente la risoluzione, la profondità e la larghezza della rete. Utilizza una struttura portante EfficientNet e introduce la BiFPN (Bidirectional Feature Pyramid Network). La BiFPN consente la fusione ponderata delle caratteristiche, imparando quali sono le più importanti. Se da un lato si ottiene un'elevata efficienza dei parametri, dall'altro le complesse connessioni irregolari della BiFPN possono essere computazionalmente costose da eseguire su hardware che privilegiano modelli di accesso alla memoria regolari.
Dettagli YOLOv8
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione:Ultralytics
- Data: Gennaio 2023
- Repository:Ultralytics GitHub
YOLOv8 rappresenta il passaggio a un meccanismo di rilevamento privo di ancoraggi, semplificando il processo di formazione ed eliminando la necessità di calcolare manualmente le caselle di ancoraggio. È dotato di una struttura portante CSPDarknet modificata con moduli C2f, che migliorano il flusso di gradienti e la ricchezza di funzioni rispetto alle versioni precedenti. La testa utilizza una struttura disaccoppiata, elaborando compiti di classificazione e regressione in modo indipendente, e impiega Task Aligned Assign per l'assegnazione dinamica delle etichette. Questa architettura è stata progettata specificamente per massimizzare il throughput sull'hardware GPU .
Il vantaggio di Ultralytics
Se EfficientDet è un risultato accademico notevole, l'ecosistema Ultralytics che circonda YOLOv8 e YOLO11 è un'altra cosa. YOLO11 offre vantaggi tangibili agli sviluppatori che si concentrano sulla consegna dei prodotti e sugli MLOP.
1. Facilità d'uso e di implementazione
L'implementazione di EfficientDet richiede spesso la navigazione in complessi file di configurazione e dipendenze all'interno dell'ecosistema TensorFlow . Al contrario, i modelli di Ultralytics privilegiano l'esperienza degli sviluppatori. Un modello può essere caricato, addestrato e distribuito con poche righe di Python.
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
detection = model("https://ultralytics.com/images/bus.jpg")
2. Versatilità tra i compiti
EfficientDet è principalmente un'architettura per il rilevamento degli oggetti. Ultralytics YOLOv8 va ben oltre le semplici bounding box. All'interno dello stesso framework, gli utenti possono eseguire:
- Segmentazione delle istanze: Mascheramento degli oggetti a livello di pixel.
- Stima della posa: Rilevamento dei punti chiave per il tracciamento dello scheletro.
- Classificazione delle immagini: Categorizzazione dell'intera immagine.
- Riquadri di delimitazione orientati (OBB): Rilevamento di oggetti ruotati (ad esempio, immagini aeree).
3. Formazione ed efficienza della memoria
L'addestramento dei moderni trasformatori o di complesse architetture multiscala può richiedere un notevole dispendio di risorse. I modelli Ultralytics YOLO sono rinomati per la loro efficienza di memoria.
- Utilizzo ridotto della VRAM: Gli efficienti moduli C2f e le funzioni di perdita ottimizzate consentono a YOLOv8 di addestrarsi su GPU di fascia consumer dove altri modelli potrebbero incorrere in errori di Out-Of-Memory (OOM).
- Convergenza rapida: Tecniche avanzate di incremento come Mosaic accelerano l'apprendimento, riducendo il numero di epoche necessarie per raggiungere un'elevata precisione.
Ecosistema integrato
I modelli Ultralytics si integrano perfettamente con strumenti quali Weights & Biases, Comete ClearML per il tracciamento degli esperimenti, nonché Roboflow per la gestione dei set di dati.
Applicazioni nel mondo reale
La scelta tra questi modelli spesso determina la fattibilità dell'implementazione in ambienti specifici.
- Casi d'uso di EfficientDet: L'elevata efficienza dei parametri lo rende interessante per la ricerca accademica sulle leggi di scalabilità o per i sistemi legacy strettamente CPU, dove i FLOP sono il vincolo più stringente, anche se la latenza potrebbe comunque essere superiore a YOLOv8n.
- Casi d'uso di YOLOv8 :
- Sistemi autonomi: Gli elevati FPS (Frames Per Second) dei dispositivi Edge AI come NVIDIA Jetson rendono YOLOv8 ideale per droni e robotica.
- Produzione: Utilizzato per il rilevamento dei difetti in tempo reale sulle linee di assemblaggio dove i millisecondi contano.
- Vendita al dettaglio intelligente: Funzionalità come il conteggio e il tracciamento degli oggetti consentono di effettuare analisi avanzate per il layout dei negozi e la gestione delle code.
Conclusione
EfficientDet rimane un contributo significativo al campo del Deep Learning, dimostrando che una scalatura intelligente può produrre modelli compatti. Tuttavia, per la stragrande maggioranza delle applicazioni pratiche di oggi, Ultralytics YOLOv8 (e il più recente YOLO11) offrono una soluzione superiore.
La combinazione di un'incredibile velocità di inferenza su hardware moderno, di un SDK Python completo e della capacità di gestire molteplici attività di visione rende i modelli Ultralytics la scelta consigliata per gli sviluppatori. Che si tratti di costruire un sistema di allarme di sicurezza o di analizzare immagini satellitari, l'ecosistema Ultralytics fornisce gli strumenti per portare il progetto dall'ideazione alla produzione in modo efficiente.
Esplora altri modelli
Per una prospettiva più ampia sulle scelte di rilevamento degli oggetti, considerate questi confronti:
- YOLOv8 vs. YOLOv7
- YOLO11 vs. EfficientDet
- RT-DETR vs. EfficientDet
- YOLOv5 vs. EfficientDet
- YOLOv10 vs. YOLOv8