EfficientDet vs YOLOv10#
Nel campo in rapida evoluzione della visione artificiale, scegliere l'architettura giusta per il rilevamento degli oggetti è fondamentale per bilanciare accuratezza, latenza ed efficienza computazionale. Questa guida tecnica completa confronta due modelli altamente influenti: EfficientDet di Google e YOLOv10 della Tsinghua University. Sebbene entrambi i modelli rappresentino importanti progressi nel rilevamento degli oggetti, affrontano la progettazione dell'architettura e l'ottimizzazione dei modelli da prospettive completamente diverse.
Esamineremo le loro architetture fondamentali, analizzeremo i benchmark delle prestazioni su dataset standard come COCO e discuteremo come si integrano nelle moderne pipeline di machine learning, evidenziando in particolare i vantaggi del completo ecosistema Ultralytics.
EfficientDet: il pioniere dello scaling composto#
Introdotto alla fine del 2019, EfficientDet ha stabilito un nuovo punto di riferimento per il rilevamento degli oggetti scalabile e altamente accurato, introducendo un approccio rigoroso allo scaling delle dimensioni della rete.
Innovazioni e architettura principali#
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione: Google Brain
- Data: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Repository di EfficientDet
EfficientDet è costruito sul backbone EfficientNet e sfrutta una nuova Bi-directional Feature Pyramid Network (BiFPN). A differenza delle tradizionali reti piramidali delle feature (FPN), che sommano le feature senza distinguerne l'importanza, BiFPN utilizza pesi apprendibili per fondere feature a più scale. Questo consente alla rete di apprendere efficacemente quali feature a diverse risoluzioni contribuiscono maggiormente alla predizione finale. Inoltre, EfficientDet utilizza un metodo di scaling composto che scala uniformemente risoluzione, profondità e larghezza del backbone, della rete delle feature e delle reti di predizione di classe e bounding box.
Sebbene EfficientDet resti una scelta solida per i sistemi legacy profondamente integrati con pipeline TensorFlow meno recenti, durante l'addestramento richiede una quantità considerevole di memoria e si basa su un ecosistema più datato, che può risultare macchinoso rispetto ai framework moderni e dinamici.
YOLOv10: l'innovatore senza NMS#
Rilasciato a metà del 2024, YOLOv10 ha cambiato radicalmente il paradigma del rilevamento degli oggetti in tempo reale eliminando la necessità della Non-Maximum Suppression (NMS) durante il post-processing e riducendo significativamente la latenza dell'inferenza.
Innovazioni e architettura principali#
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Tsinghua University
- Data: 2024-05-23
- Arxiv: https://arxiv.org/abs/2405.14458
- GitHub: Repository di YOLOv10
YOLOv10 introduce una strategia coerente di assegnazione doppia per l'addestramento senza NMS. Utilizzando assegnazioni delle label one-to-many e one-to-one durante l'addestramento, la rete impara a produrre bounding box con corrispondenze univoche senza affidarsi a NMS per filtrare i duplicati. Questa progettazione olistica del modello, orientata all'efficienza e all'accuratezza, riduce la ridondanza computazionale, rendendolo un candidato eccellente per l'edge computing e le applicazioni di streaming video a bassa latenza. Si integra perfettamente nell'ecosistema Ultralytics, offrendo agli sviluppatori accesso a una Python API estremamente semplice.
Rimuovendo il passaggio NMS, YOLOv10 garantisce velocità di inferenza costanti indipendentemente dal numero di oggetti rilevati in una scena, eliminando i picchi di latenza spesso osservati nelle applicazioni di visione artificiale affollate.
Confronto delle prestazioni: accuratezza, velocità ed efficienza#
Quando implementano modelli in scenari reali, gli sviluppatori devono valutare la mean Average Precision (mAP) rispetto al numero di parametri e alle operazioni computazionali (FLOPs). La tabella seguente illustra queste metriche nelle varianti di scaling di entrambi i modelli.
| 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Nota: la variante YOLOv10n richiede un numero di parametri significativamente inferiore (2.3M) e raggiunge velocità TensorRT nettamente superiori (1.56ms) rispetto alle prime iterazioni di EfficientDet, risultando molto più adatta all'inferenza in tempo reale in produzione.
Perché scegliere Ultralytics per l'implementazione dei modelli?#
Sebbene entrambi i modelli abbiano un'importanza storica e strutturale, integrarli nelle pipeline moderne può essere una sfida. È qui che la piattaforma Ultralytics dà il meglio di sé. Fornendo un ecosistema unificato, Ultralytics semplifica l'intero ciclo di vita, dall'annotazione dei dati all'implementazione.
- Semplicità d'uso: il pacchetto Python di Ultralytics offre un'unica interfaccia per l'addestramento dei modelli, la validazione e l'esportazione, sostituendo centinaia di righe di codice boilerplate con comandi concisi.
- Ecosistema e versatilità: mentre EfficientDet è fortemente specializzato nel rilevamento, i modelli YOLO di Ultralytics si estendono naturalmente alla segmentazione delle istanze, alla stima della posa, ai bounding box orientati (OBB) e alla classificazione.
- Efficienza dell'addestramento: sfruttando tecniche all'avanguardia come l'auto-batching e l'addestramento distribuito, i modelli Ultralytics si addestrano più rapidamente e consumano molta meno memoria CUDA rispetto alle architetture Transformer pesanti o alle architetture TF multi-ramo più datate.
Esempio di codice: addestramento di YOLOv10#
Implementare YOLOv10 con Ultralytics è incredibilmente semplice. Il seguente frammento di codice mostra come inizializzare, addestrare e valutare una rete YOLOv10 interamente all'interno della Python API.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (nano variant for edge speed)
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, batch=16)
# Evaluate the model on the validation set
metrics = model.val()
# Export the model to ONNX for production deployment
model.export(format="onnx")Casi d'uso e raccomandazioni#
La scelta tra EfficientDet e YOLOv10 dipende dai requisiti specifici del tuo progetto, dai vincoli di implementazione e dalle tue preferenze riguardo all'ecosistema.
Quando scegliere EfficientDet#
EfficientDet è una scelta valida per:
- Pipeline Google Cloud e TPU: sistemi profondamente integrati con le API Google Cloud Vision o con infrastrutture TPU, dove EfficientDet dispone di ottimizzazioni native.
- Ricerca sullo scaling composto: benchmark accademici incentrati sullo studio degli effetti dello scaling bilanciato di profondità, larghezza e risoluzione della rete.
- Deployment mobile tramite TFLite: progetti che richiedono specificamente l'esportazione in TensorFlow Lite per Android o dispositivi Linux embedded.
Quando scegliere YOLOv10#
YOLOv10 è consigliato per:
- Rilevamento in tempo reale senza NMS: applicazioni che traggono vantaggio dal rilevamento end-to-end senza soppressione non massima, riducendo la complessità della distribuzione.
- Compromesso equilibrato tra velocità e accuratezza: progetti che richiedono un equilibrio efficace tra velocità di inferenza e accuratezza del rilevamento su diverse dimensioni del modello.
- Applicazioni a latenza coerente: scenari di distribuzione in cui sono fondamentali tempi di inferenza prevedibili, come la robotica o i sistemi autonomi.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la migliore combinazione di prestazioni ed esperienza per gli sviluppatori:
- Deployment edge senza NMS: applicazioni che richiedono un'inferenza coerente e a bassa latenza senza la complessità della post-elaborazione con Soppressione non massima.
- Ambienti esclusivamente CPU: dispositivi privi di accelerazione GPU dedicata, dove l'inferenza su CPU fino al 43% più veloce di YOLO26 offre un vantaggio decisivo.
- Rilevamento di oggetti piccoli: scenari complessi come le immagini aeree riprese da droni o l'analisi di sensori IoT, in cui ProgLoss e STAL migliorano significativamente l'accuratezza sugli oggetti di piccole dimensioni.
Il futuro è qui: entra in scena Ultralytics YOLO26#
Sebbene YOLOv10 abbia introdotto il rivoluzionario design senza NMS, la tecnologia si è evoluta. Rilasciato a gennaio 2026, Ultralytics YOLO26 rappresenta lo stato dell'arte definitivo per l'AI applicata alla visione. Riunisce i migliori aspetti delle architetture precedenti, come le capacità multi-task di YOLO11 e la stabilità di RT-DETR, in un'unica soluzione estremamente ottimizzata e potente.
Se stai iniziando un nuovo progetto, ti consigliamo vivamente di passare a YOLO26. Offre flessibilità e semplicità d'uso senza pari tramite la piattaforma Ultralytics.
Principali innovazioni di YOLO26:
- Design end-to-end senza NMS: basandosi sulle fondamenta poste da YOLOv10, YOLO26 è nativamente end-to-end e semplifica la logica di implementazione riducendola all'essenziale.
- Inferenza su CPU fino al 43% più veloce: eliminando la Distribution Focal Loss (DFL), YOLO26 riduce drasticamente l'overhead computazionale, diventando il riferimento assoluto per i dispositivi edge AI.
- Ottimizzatore MuSGD: YOLO26 riprende innovazioni dall'addestramento dei Large Language Model (LLM). Fondendo la stabilità di SGD con la velocità di Muon, converge più rapidamente e in modo più affidabile rispetto a qualsiasi predecessore.
- ProgLoss + STAL: formulazioni della loss superiori risolvono efficacemente problemi di lunga data nel rilevamento degli oggetti di piccole dimensioni, un ambito in cui EfficientDet ha tradizionalmente incontrato difficoltà.
Conclusione: abbinare i modelli ai casi d'uso#
La scelta tra queste reti dipende in definitiva dai tuoi vincoli di implementazione:
- EfficientDet resta di interesse accademico per quanto riguarda lo scaling composto ed è adatto ai ricercatori che mantengono sistemi TensorFlow esistenti, nei quali le dimensioni dei pesi del modello (su disco) sono più importanti della velocità di runtime.
- YOLOv10 è fenomenale per le applicazioni che richiedono una latenza estremamente bassa, come il tracking multi-oggetto ad alta velocità e il monitoraggio del traffico, grazie alla sua architettura pionieristica senza NMS.
- YOLO26, tuttavia, è la raccomandazione definitiva per i moderni progetti di visione artificiale, offrendo il massimo equilibrio delle prestazioni tra accuratezza, ingombro minimo in memoria e versatilità multi-task, con il supporto del solido ecosistema Ultralytics.