YOLOv8 vs EfficientDet: Un'immersione profonda nelle architetture di rilevamento degli oggetti
Nel panorama in rapida evoluzione della computer vision, la scelta del giusto modello di rilevamento degli oggetti è fondamentale per la realizzazione di applicazioni AI di successo. Due importanti architetture che hanno definito lo stato dell'arte nei rispettivi periodi sono YOLOv8 di Ultralytics e EfficientDet di Google Research. Questo confronto esplora le sfumature tecniche, le metriche delle prestazioni e i casi d'uso ideali di entrambi i modelli, aiutando sviluppatori e ricercatori a prendere decisioni informate per i loro progetti.
EfficientDet ha introdotto concetti innovativi in termini di scalabilità ed efficienza dei modelli al momento del suo rilascio, Ultralytics YOLOv8 rappresenta un'evoluzione più moderna, che privilegia la velocità di inferenza in tempo reale, la facilità d'uso e le capacità pratiche di implementazione.
Testa a testa sulle prestazioni: Velocità, precisione ed efficienza
Il confronto tra YOLOv8 ed EfficientDet evidenzia un cambiamento fondamentale nella filosofia di progettazione. EfficientDet si concentra fortemente sulla minimizzazione delle FLOP (Floating Point Operations) e del numero di parametri, rendendolo teoricamente molto efficiente. Al contrario, YOLOv8 è stato progettato per massimizzare il throughput sull'hardware moderno, sfruttando il parallelismo GPU per offrire velocità di inferenza superiori senza compromettere la precisione.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Principali risultati dei benchmark
- Dominio della latenzaGPU : I modelli YOLOv8 sono significativamente più veloci su hardware GPU . Ad esempio, YOLOv8x raggiunge un mAP più alto (53,9) rispetto a EfficientDet-d7 (53,7), mentre viene eseguito circa 9 volte più velocemente su una GPU T4 (14,37 ms contro 128,07 ms). Ciò rende YOLOv8 la scelta preferita per le applicazioni di inferenza in tempo reale.
- Accuratezza vs. Parametri: Mentre EfficientDet è famoso per l'efficienza dei parametri, YOLOv8 offre un'accuratezza competitiva con modelli più facili da ottimizzare. YOLOv8m supera EfficientDet-d4 in termini di precisione (50,2 contro 49,7 mAP) con una velocità di inferenza nettamente superiore, nonostante le differenze in termini di FLOP.
- Efficienza architettonica: Il minor numero di FLOP di EfficientDet non sempre si traduce in una minore latenza, soprattutto sulle GPU dove i costi di accesso alla memoria e il parallelismo contano più del numero di operazioni grezze. L'architettura di YOLOv8 è stata progettata per massimizzare l'utilizzo dell'hardware.
Ottimizzazione dell'hardware
Eseguire sempre il benchmark dei modelli sull'hardware di destinazione. I FLOP teorici sono un utile indicatore della complessità, ma spesso non riescono a prevedere la latenza effettiva su GPU o NPU, dove la larghezza di banda della memoria e le capacità di parallelizzazione giocano un ruolo maggiore. Utilizzate la modalità di benchmarkYOLO per verificare le prestazioni sulla vostra configurazione specifica.
Panoramica Ultralytics YOLOv8
YOLOv8 è l'ultima importante iterazione della serie YOLO (You Only Look Once) rilasciata da Ultralytics, progettata per essere un framework unificato per il rilevamento degli oggetti, la segmentazione delle istanze e la classificazione delle immagini.
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione:Ultralytics
- Data: 10 gennaio 2023
- GitHub:ultralytics
YOLOv8 introduce miglioramenti architettonici fondamentali, tra cui una testa di rilevamento priva di ancore, che semplifica il processo di addestramento e migliora la generalizzazione tra diverse forme di oggetti. Utilizza inoltre una nuova rete dorsale e una rete di aggregazione dei percorsi (PAN-FPN) progettate per una più ricca integrazione delle caratteristiche.
Punti di forza di YOLOv8
- Prestazioni all'avanguardia: Offre un equilibrio eccezionale tra velocità e precisione, stabilendo parametri di riferimento per il set di datiCOCO .
- Un ecosistema a misura di sviluppatore: Il
ultralyticsIl pacchetto python offre un'API semplificata che unifica formazione, convalida e distribuzione. - Versatilità: Supporta più attività (rilevamento, segmentazione, posa, OBB, classificazione) all'interno di un unico repo.
- Efficienza della formazione: Sfruttando tecniche come l'aumento del mosaico, i modelli YOLOv8 convergono più rapidamente e spesso richiedono meno dati di addestramento per raggiungere un'elevata precisione.
Panoramica di Google EfficientDet
EfficientDet, sviluppato dal team di Google Brain, è una famiglia di modelli di rilevamento degli oggetti che ha introdotto il concetto di scala composta nel rilevamento degli oggetti. Il modello scala simultaneamente la risoluzione, la profondità e l'ampiezza della rete per ottenere prestazioni ottimali.
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione:Google Research
- Data: 20 novembre 2019
- ArXiv:EfficientDet: Rilevamento scalabile ed efficiente di oggetti
EfficientDet si basa sulla struttura portante di EfficientNet e introduce la BiFPN (Bidirectional Feature Pyramid Network), che consente una fusione semplice e veloce di funzioni multiscala.
Punti di forza di EfficientDet
- Efficienza dei parametri: Raggiunge un'elevata precisione con un numero relativamente basso di parametri e FLOP.
- Scalabilità: Il
d0ad7Il metodo di scalatura fornisce un modo sistematico per scambiare le risorse con l'accuratezza. - BiFPN: L'innovativa rete piramidale di caratteristiche fonde efficacemente caratteristiche a diverse risoluzioni.
Confronto architettonico
Le differenze architettoniche tra YOLOv8 ed EfficientDet ne determinano le caratteristiche prestazionali e l'idoneità a compiti diversi.
Backbone e Feature Fusion
- YOLOv8 utilizza una dorsale CSPDarknet modificata con un modulo C2f, che sostituisce il modulo C3 di YOLOv5. Questo design migliora il flusso di gradienti ed è altamente ottimizzato per il parallelismo GPU .
- EfficientDet impiega una struttura portante EfficientNet combinata con BiFPN. BiFPN utilizza pesi apprendibili per fondere le caratteristiche di diversi livelli, un metodo teoricamente efficiente ma che comporta modelli di accesso alla memoria complessi e irregolari che possono rallentare l'inferenza sulle GPU.
Detection Head
- YOLOv8 utilizza un'architettura a testa disaccoppiata, separando i compiti di objectness, classificazione e regressione. Inoltre, è privo di ancore e predice direttamente i centri degli oggetti. Ciò elimina la necessità di regolare manualmente le caselle di ancoraggio e riduce il numero di iperparametri.
- EfficientDet utilizza un approccio basato sulle ancore. Pur essendo efficaci, i metodi basati sulle ancore richiedono spesso un'attenta calibrazione delle dimensioni e dei rapporti di aspetto delle ancore per set di dati specifici, aggiungendo complessità alla pipeline di addestramento.
Facilità d'uso ed ecosistema
Uno dei fattori di differenziazione più significativi è l'ecosistema che circonda i modelli. Ultralytics ha puntato molto sulla democratizzazione dell'IA, garantendo che YOLOv8 sia accessibile sia ai principianti che agli esperti.
L'esperienza di Ultralytics
L'APIPython di Ultralytics consente agli utenti di caricare, addestrare e distribuire modelli con poche righe di codice. L'ecosistema comprende integrazioni perfette con strumenti quali Weights & Biases per il monitoraggio degli esperimenti e Roboflow per la gestione dei set di dati.
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Al contrario, EfficientDet si trova tipicamente in archivi orientati alla ricerca (come l'implementazione originale di TensorFlow ). Pur essendo potenti, queste implementazioni spesso richiedono più codice boilerplate, file di configurazione complessi e una conoscenza più approfondita del framework sottostanteTensorFlow) per allenarsi su set di dati personalizzati.
Capacità di esportazione
I modelli Ultralytics supportano l'esportazione con un solo clic in numerosi formati, tra cui ONNX, TensorRTCoreML e TFLite. Questa flessibilità è fondamentale per distribuire i modelli in ambienti diversi, dai server cloud ai dispositivi edge Raspberry Pi.
Casi d'uso ideali
Quando scegliere YOLOv8
YOLOv8 è oggi la scelta consigliata per la maggior parte delle applicazioni di computer vision grazie al suo equilibrio tra velocità e precisione.
- Applicazioni in tempo reale: Guida autonoma, videosorveglianza e robotica, dove la latenza è fondamentale.
- Implementazione su dispositivi edge: Esecuzione su NVIDIA Jetson, dispositivi mobili o unità di calcolo edge dove efficienza e velocità sono fondamentali.
- Prototipazione rapida: Quando è necessario passare rapidamente da un set di dati a un modello distribuito, utilizzando un framework affidabile e ben documentato.
- Requisiti multi-task: Se il progetto prevede la segmentazione o la stima della posa, YOLOv8 li gestisce in modo nativo.
Quando scegliere EfficientDet
EfficientDet rimane rilevante in scenari di nicchia, in particolare nell'ambito della ricerca accademica o in ambienti con CPU altamente vincolate.
- Ricerca teorica: Studio di architetture di rete efficienti e leggi di scalabilità.
- CPU specifiche a basso consumo: In alcuni casi, il basso numero di FLOP può tradursi in una migliore durata della batteria su CPU con risorse estremamente limitate, anche se è consigliabile eseguire dei benchmark.
Conclusione
EfficientDet è stato un punto di riferimento per la progettazione di reti neurali efficienti, YOLOv8 e il più recente YOLO11 offrono un pacchetto superiore per lo sviluppo dell'intelligenza artificiale moderna. L'architettura anchor-free di YOLOv8, il design GPU e il solido ecosistemaUltralytics offrono un vantaggio significativo in termini di velocità di sviluppo, latenza di inferenza e flessibilità di distribuzione.
Per gli sviluppatori che desiderano realizzare soluzioni di computer vision all'avanguardia, veloci e precise, i modelliYOLO Ultralytics sono la scelta definitiva.
Esplora altri modelli
Se siete interessati a confrontare queste architetture con altri modelli, consultate queste pagine:
- YOLOv8 vs. YOLOv7
- EfficientDet vs. YOLOv7
- YOLOv8 contro YOLOv5
- RT-DETR vs. YOLOv8
- YOLO11 vs. EfficientDet