EfficientDet vs.YOLO: un'analisi approfondita dell'evoluzione del rilevamento degli oggetti
Nel dinamico mondo della visione artificiale, la ricerca dell'equilibrio ottimale tra accuratezza e latenza stimola una costante innovazione. Due architetture che hanno definito le rispettive epoche sono EfficientDet Google e YOLO di Alibaba. Mentre EfficientDet ha introdotto un approccio basato su principi per il ridimensionamento dei modelli,YOLO i confini delle prestazioni in tempo reale utilizzando la ricerca di architetture neurali (NAS).
Questa guida fornisce un confronto tecnico completo tra questi due modelli, analizzandone le caratteristiche architetturali distintive, i parametri prestazionali e l'idoneità per le implementazioni moderne. Per gli sviluppatori alla ricerca di soluzioni all'avanguardia, esploriamo anche come i framework più recenti, come Ultralytics , si basino su queste fondamenta per offrire una facilità d'uso e prestazioni superiori.
Panoramica di EfficientDet
Rilasciato alla fine del 2019, EfficientDet ha segnato un cambiamento paradigmatico nel modo in cui venivano scalati i modelli di rilevamento degli oggetti. Prima del suo rilascio, la scalabilità veniva spesso effettuata in modo arbitrario. Il team di Google ha introdotto un metodo di scalabilità composto che scala in modo uniforme la risoluzione, la profondità e la larghezza, dando vita a una famiglia di modelli (D0-D7) in grado di soddisfare varie limitazioni di risorse.
Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
Organizzazione:Google
Data: 20 novembre 2019
Arxiv:EfficientDet Documento
GitHub:google
Caratteristiche architettoniche chiave
- BiFPN (Weighted Bi-directional Feature Pyramid Network): a differenza dei tradizionali FPN, BiFPN consente la fusione di caratteristiche multiscala top-down e bottom-up. Introduce pesi apprendibili a diverse caratteristiche di input, riconoscendo che non tutte le caratteristiche contribuiscono in modo uguale all'output.
- Scalabilità composta: un coefficiente unificato $\phi$ controlla la larghezza, la profondità e la risoluzione della rete, garantendo che la dorsale, la rete di caratteristiche e le teste di previsione siano scalabili in modo armonioso.
- EfficientNet Backbone: l'utilizzo di EfficientNet come backbone consente un'elevata efficienza dei parametri, sfruttando i livelli di convoluzione mobile inverted bottleneck (MBConv).
Panoramica su DAMO-YOLO
YOLO, sviluppato dal Gruppo Alibaba nel 2022, è stato progettato con un'attenzione particolare alle applicazioni industriali in cui la latenza è fondamentale. Si allontana dalla progettazione architettonica manuale, utilizzando NAS per individuare strutture efficienti su misura per un'inferenza ad alte prestazioni.
Autori: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang e Xiuyu Sun
Organizzazione:Alibaba Group
Data: 23 novembre 2022
Arxiv:YOLO
GitHub:YOLO
Innovazioni Architetturali Chiave
- Backbone MAE-NAS: utilizzando un metodo denominato Method-Aware Efficiency Neural Architecture Search,YOLO backbone specificamente ottimizzati per la velocità di inferenza, che differiscono in modo significativo dal CSPNet progettato manualmente utilizzato in YOLOv5 o YOLOv8.
- RepGFPN: un FPN generalizzato efficiente che utilizza la riparametrizzazione (stile RepVGG) per unire le caratteristiche, riducendo la latenza durante l'inferenza e mantenendo al contempo un'elevata espressività delle caratteristiche durante l'addestramento.
- ZeroHead: una testa di rilevamento leggera che riduce significativamente il carico computazionale rispetto alle teste disaccoppiate presenti nei modelli precedenti.
- AlignedOTA: Una strategia di assegnazione delle etichette migliorata che risolve il disallineamento tra i task di classificazione e regressione durante il training.
Confronto delle prestazioni
La tabella seguente mette a confronto le prestazioni di EfficientDet eYOLO vari modelli di diverse dimensioni. Mentre EfficientDet offre un'ampia gamma di dimensioni (fino a D7 per attività ad alta risoluzione),YOLO sul "punto ottimale" della latenza in tempo reale (T/S/M/L).
| 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 |
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
Analisi
- Latenza contro precisione: YOLO un'efficienza superiore GPU . Ad esempio,
DAMO-YOLOsraggiunge 46,0 mAP con solo 3,45 ms latenza su una GPU T4. Al contrario,EfficientDet-d3raggiunge un livello leggermente superiore 47,5 mAP ma a un costo di 19,59 ms—quasi 5,5 volte più lento. - Invecchiamento dell'architettura: EfficientDet si basa in larga misura su convoluzioni separabili in profondità. Sebbene efficienti dal punto di vista dei parametri, queste operazioni sono spesso limitate dalla memoria delle moderne GPU, il che porta a un utilizzo inferiore rispetto alle convoluzioni dense ottimizzate nella struttura NASYOLO.
- Requisiti di calcolo: EfficientDet-d7 richiede enormi risorse di calcolo (325 GFLOP) per ottenere guadagni marginali in termini di precisione (53,7 mAP), rendendo difficile la sua implementazione su dispositivi edge.
Formazione ed ecosistema
L'esperienza utente varia notevolmente tra queste due generazioni di modelli.
Ecosistema EfficientDet
EfficientDet è profondamente radicato nell'ecosistema Google e TensorFlow. Sebbene sia potente, gli utenti spesso si trovano ad affrontare:
- Complessità delle dipendenze: passare dalla versione TensorFlow .x alla versione 2.x TensorFlow può essere difficile.
- Limiti dei grafici statici: l'esportazione dei modelli in ONNX TensorRT richiede TensorRT script di conversione complessi che potrebbero non supportare nativamente tutte le operazioni BiFPN.
YOLO
YOLO PyTorch, che è generalmente più flessibile per la ricerca. Tuttavia:
- Focus specialistico: si tratta principalmente di un archivio di ricerca. Sebbene eccellente per compiti di rilevamento specifici, manca dell'ampia utilità "pronta all'uso" per altre attività come la segmentazione o la stima della posa.
- Affidabilità della distillazione: per ottenere prestazioni ottimali,YOLO utilizzaYOLO la distillazione da modelli più grandi, aggiungendo complessità alla pipeline di addestramento.
L'importanza dell'ecosistema
Quando scegli un modello per la produzione, considera non solo il mAP la facilità di addestramento sui dati personalizzati. Un modello che richiede settimane per essere integrato spesso costa più in termini di tempo di progettazione rispetto al guadagno marginale in termini di accuratezza.
Il Vantaggio Ultralytics: Entra in YOLO26
Sebbene EfficientDet eYOLO delle pietre miliari nel campo della visione artificiale, il settore ha continuato a evolversi. Ultralytics rappresenta la nuova generazione dell'intelligenza artificiale applicata alla visione, combinando l'efficienza architettonica dei modelli basati su NAS con l'usabilità Ultralytics .
Perché passare a YOLO26?
YOLO26 risolve i punti deboli delle architetture precedenti con diverse caratteristiche innovative:
- Progettazione end-to-end NMS: a differenza di EfficientDet eYOLO, che richiedono una post-elaborazione con soppressione non massima (NMS), YOLO26 è nativamente end-to-end. Ciò elimina un importante collo di bottiglia nelle pipeline di implementazione, riducendo la variabilità della latenza e semplificando l'esportazione in formati come CoreML TensorRT.
- Ottimizzatore MuSGD: ispirato alla stabilità dell'addestramento LLM, il nuovo ottimizzatore MuSGD (un ibrido di SGD Muon) garantisce una convergenza più rapida e un addestramento più stabile, anche su set di dati più piccoli.
- ProgLoss + STAL: le nuove funzioni di perdita (ProgLoss e Soft-Target Assignment Loss) apportano miglioramenti significativi nel rilevamento di oggetti di piccole dimensioni, un punto debole tradizionale dei modelli senza ancoraggio.
- OttimizzazioneCPU edge: grazie alla rimozione del DFL (Distribution Focal Loss) e alle ottimizzazioni architetturali, YOLO26 raggiunge CPU fino al 43% più veloce, rendendolo la scelta ideale per Raspberry Pi e implementazioni mobili.
Riepilogo del confronto
| Funzionalità | EfficientDet | DAMO-YOLO | Ultralytics YOLO26 |
|---|---|---|---|
| Architettura | BiFPN + Ridimensionamento composto | NAS + RepGFPN | End-to-End NMS |
| Post-elaborazione | NMS | NMS | Nessuno (End-to-End) |
| Supporto Task | Rilevamento | Rilevamento | detect, segment, Pose, obb, classify |
| Piattaforma | TensorFlow | PyTorch | Ultralytics Platform |
| Distribuzione | Complesso | Moderata | One-Click (oltre 10 formati) |
Facilità d'uso e formazione
Una delle caratteristiche distintive dei Ultralytics è l'API unificata. Che si tratti di addestrare un rilevatore di oggetti, un modello Oriented Bounding Box (OBB) o un modello di stima della posa, il codice rimane coerente e semplice.
Ecco quanto è facile addestrare un modello YOLO26 all'avanguardia sui tuoi dati personalizzati:
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Train on the COCO8 dataset
# The MuSGD optimizer and ProgLoss are handled automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model
metrics = model.val()
print(f"mAP50-95: {metrics.box.map}")
Casi d'uso reali
Quando utilizzare EfficientDet?
EfficientDet rimane rilevante in scenari che coinvolgono:
- Pipeline Google legacy: sistemi profondamente integrati con le API Google Vision precedenti o l'infrastruttura TPU .
- Benchmarking accademico: come base di riferimento standard per la ricerca sul ridimensionamento composto.
Quando utilizzareYOLO?
YOLO in:
- Rigidi vincoli GPU : linee di produzione industriale in cui ogni millisecondo è importante e l'hardware è fissato alle NVIDIA .
- Analisi video: elaborazione di flussi video ad alto FPS in cui la metrica principale è il throughput (dimensione batch 1).
Quando utilizzare YOLO26?
YOLO26 è la soluzione consigliata per:
- Edge AI: implementazione su telefoni cellulari, droni o dispositivi IoT in cui l'inferenza NMS semplifica la logica dell'app e CPU è fondamentale.
- Applicazioni multitasking: progetti che richiedono la segmentazione delle istanze o la stima della posa insieme al rilevamento all'interno di un unico codice base.
- Sviluppo rapido: team che devono passare dalla raccolta dei dati sulla Ultralytics alla distribuzione in poche ore, anziché in settimane.
Conclusione
Mentre EfficientDet ci ha insegnato l'importanza del ridimensionamento eYOLO la potenza del NAS, Ultralytics sintetizza queste lezioni in un potente strumento pronto per la produzione. Con il suo designNMS, la versatilità in tutte le attività e un ecosistema ben mantenuto, YOLO26 offre agli sviluppatori moderni il percorso più solido verso il successo nella visione artificiale.
Per approfondire ulteriormente le architetture dei modelli, si consiglia di consultare i confronti con YOLOv10 o RT-DETR, che esplorano anch'essi innovazioni basate sui trasformatori.