Vai al contenuto

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.

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.

Scopri di più su EfficientDet

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.

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.

Scopri di più su YOLOv5

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).

Modellodimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.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:

Per ulteriori informazioni su come i modelli Ultralytics si confrontano con altre architetture, esplorate i nostri confronti con YOLOv8 e RT-DETR.


Commenti