EfficientDet vs. YOLOv5: un confronto tecnico dettagliato
Il panorama del rilevamento degli oggetti si è evoluto rapidamente, spinto dalla costante necessità di bilanciare l'accuratezza con l'efficienza computazionale. Due architetture che hanno influenzato in modo significativo questo campo sono EfficientDet, sviluppata dal team di Google Brain, e YOLOv5creato da Ultralytics. Entrambi i modelli mirano a detect in modo efficiente gli oggetti all'interno delle immagini, ma affrontano il problema con filosofie di progettazione e strategie architetturali fondamentalmente diverse.
Questa guida fornisce un confronto tecnico approfondito per aiutare sviluppatori, ricercatori e ingegneri a scegliere lo strumento giusto per le loro specifiche applicazioni di computer vision.
EfficientDet: Scalabile ed efficiente
Rilasciato alla fine del 2019, EfficientDet è nato dall'obiettivo di ottimizzare contemporaneamente precisione ed efficienza. Ha introdotto il concetto di "Compound Scaling" nel rilevamento degli oggetti, un metodo che scala uniformemente la risoluzione, la profondità e la larghezza della rete dorsale.
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione:Google Brain
- Data: 20 novembre 2019
- Arxiv:EfficientDet: Rilevamento scalabile ed efficiente di oggetti
Punti salienti dell'architettura
EfficientDet si basa sulla struttura portante di EfficientNet e introduce una nuova rete di fusione di funzioni chiamata BiFPN (Bidirectional Feature Pyramid Network). A differenza delle tradizionali reti a piramide di caratteristiche (FPN), che limitano il flusso di informazioni all'alto verso il basso, la BiFPN consente un flusso di informazioni complesso e bidirezionale tra diversi livelli di risoluzione.
Il modello utilizza anche il Compound Scaling, che consente agli utenti di scegliere tra una famiglia di modelli (da D0 a D7) in base ai vincoli di risorse. In questo modo, se si dispone di una maggiore quantità di calcolo, è possibile aumentare linearmente le dimensioni del modello per ottenere una migliore precisione.
Punti di forza e debolezze
Il punto di forza principale di EfficientDet è la sua efficienza teorica. Raggiunge un'elevata mAP con FLOP (Floating Point Operations) notevolmente bassi. Questo lo rende un candidato interessante per la ricerca accademica, dove l'efficienza dei parametri è una metrica chiave.
Tuttavia, EfficientDet soffre di un inconveniente pratico: la latenza di inferenza. Le complesse connessioni della BiFPN e l'uso massiccio di convoluzioni separabili in profondità, pur essendo matematicamente efficienti, spesso non sono completamente ottimizzate sull'hardware GPU rispetto alle convoluzioni standard. Di conseguenza, nonostante i FLOP inferiori, EfficientDet può funzionare più lentamente sulle GPU rispetto ai modelli con costi di calcolo teorici più elevati.
Ultralytics YOLOv5: prestazioni e usabilità nel mondo reale
Ultralytics YOLOv5 ha rappresentato un cambiamento di paradigma quando è stato rilasciato nel 2020. A differenza dei suoi predecessori, è stato il primo modello YOLO implementato nativamente in PyTorchrendendolo accessibile a un vasto ecosistema di sviluppatori. Ha dato la priorità alla "facilità di implementazione" oltre che alle prestazioni grezze.
- Autore: Glenn Jocher
- Organizzazione:Ultralytics
- Data: 26 giugno 2020
- GitHub:yolov5
Punti salienti dell'architettura
YOLOv5 utilizza un backbone CSPDarknet, che ottimizza il flusso di gradienti e riduce i calcoli. È stato un pioniere nell'uso del Mosaic Augmentation durante l'addestramento - una tecnica che unisce quattro immagini - migliorando la capacità del modello di detect oggetti piccoli e riducendo la necessità di mini-batch di grandi dimensioni.
L'architettura è progettata per la velocità. Utilizzando convoluzioni standard e una struttura semplificata della testa, YOLOv5 massimizza le capacità di elaborazione parallela delle moderne GPU, ottenendo una latenza di inferenza eccezionalmente bassa.
Il vantaggio dell'ecosistema Ultralytics
Uno dei vantaggi più significativi di YOLOv5 è l'ecosistema circostante. Ultralytics offre un flusso di lavoro continuo che include la generazione automatica di ancore, l'evoluzione degli iperparametri e il supporto nativo per l'esportazione in ONNX, TensorRTCoreML e TFLite. Questo approccio "a batterie incluse" riduce drasticamente il tempo che intercorre tra l'ideazione e la produzione.
Punti di forza e debolezze
YOLOv5 eccelle nell'inferenza in tempo reale e nella facilità d'uso. La sua semplice API e la robusta documentazione consentono agli sviluppatori di addestrare modelli personalizzati sui propri dati in pochi minuti. Bilancia velocità e accuratezza in modo ottimale per le implementazioni edge AI e cloud. Mentre i modelli più recenti come YOLO11 lo hanno superato in termini di precisione, YOLOv5 rimane un cavallo di battaglia affidabile e standard del settore.
Metriche delle prestazioni: Velocità e precisione
La tabella seguente confronta le prestazioni di EfficientDet e YOLOv5 sul datasetCOCO val2017. L'aspetto fondamentale è la distinzione tra costo teorico (FLOP) e velocità effettiva (latenza).
| 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 |
Come illustrato, YOLOv5 domina nella latenza GPU. Ad esempio, YOLOv5s (37,4 mAP) corre a 1,92 ms su una GPU T4, mentre EfficientDet-d0 (34,6 mAP) prende 3,92 ms-facendo YOLOv5 in modo approssimativo 2 volte più veloce pur garantendo una maggiore precisione. Questa disparità aumenta con i modelli più grandi; YOLOv5l (49,0 mAP) è quasi 5 volte più veloce rispetto all'analogo EfficientDet-d4 (49,7 mAP).
Al contrario, EfficientDet brilla negli ambienti CPU, dove i FLOP bassi spesso si traducono meglio in prestazioni, come si vede nelle velocitàCPU ONNX per le varianti D0 più piccole.
Casi d'uso ideali
La scelta tra questi modelli dipende dai vostri vincoli specifici:
Quando scegliere EfficientDet
- Benchmarking accademico: Quando l'obiettivo principale è dimostrare l'efficienza dei parametri o le leggi di scalabilità dell'architettura.
- Vincoli rigorosi CPU : Se l'implementazione è strettamente limitata alle vecchie CPU , dove i FLOP sono il collo di bottiglia assoluto, le varianti EfficientDet più piccole (D0-D1) offrono prestazioni competitive.
- Ricerca: Per studiare le varianti della rete piramidale di caratteristiche come BiFPN.
Quando scegliere Ultralytics YOLOv5
- Applicazioni in tempo reale: Essenziale per i veicoli autonomi, la robotica e la videosorveglianza, dove la bassa latenza non è negoziabile.
- Distribuzione in produzione: L'ecosistema ben curato e la facilità di esportazione verso motori come TensorRT e OpenVINO rendono YOLOv5 superiore per i prodotti commerciali.
- Efficienza della formazione: I modelli YOLOv5 si addestrano in genere più velocemente e richiedono meno memoria rispetto ad architetture complesse come EfficientDet o i modelli basati su Transformer, riducendo i costi di calcolo nel cloud.
- Versatilità: Oltre ai semplici riquadri di delimitazione, il framework Ultralytics consente di passare senza problemi alle attività di segmentazione e classificazione.
Esempio di codice: La semplicità di Ultralytics
Una delle caratteristiche principali dei modelli Ultralytics è la facilità d'uso. Mentre l'implementazione di EfficientDet spesso richiede complesse configurazioni di TensorFlow o cloni di repository specifici, YOLOv5 può essere caricato ed eseguito con poche righe di codice Python tramite PyTorch Hub.
import torch
# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img)
# Display results
results.print() # Print predictions to console
results.show() # Show image with bounding boxes
Conclusioni e prospettive future
Mentre EfficientDet ha segnato una pietra miliare significativa nella computer vision, dimostrando il valore della scalatura composta e della fusione efficiente delle caratteristiche, YOLOv5 ha rivoluzionato il settore rendendo il rilevamento degli oggetti ad alte prestazioni accessibile, veloce e distribuibile.
Per gli sviluppatori che iniziano oggi un nuovo progetto, consigliamo di dare un'occhiata agli ultimi progressi della linea Ultralytics . YOLO11 si basa sulle solide fondamenta di YOLOv5, offrendo:
- Precisione e velocità ancora più elevate.
- Supporto nativo per Stima della posa, Segmentazione delle istanzee OBB.
- Un pacchetto python unificato
ultralyticsche semplifica l'intero ciclo di vita degli MLOps.
Per ulteriori informazioni su come i modelli Ultralytics si confrontano con altre architetture, esplorate i nostri confronti con YOLOv8 e RT-DETR.