YOLOv10 vs EfficientDet#
La scelta della rete neurale ottimale per il rilevamento di oggetti è una decisione fondamentale per i moderni sistemi di visione artificiale. Due architetture che hanno influenzato il settore sono YOLOv10 ed EfficientDet. Entrambe mirano a massimizzare la precisione riducendo al minimo il carico computazionale, ma adottano approcci architetturali molto diversi.
Questa guida illustra i design, le metodologie di addestramento e le caratteristiche di distribuzione, aiutando sviluppatori e ingegneri ML a prendere decisioni basate sui dati per le applicazioni di IA visiva. Esamina anche le prestazioni su hardware che va dai dispositivi edge AI integrati alle potenti GPU cloud.
YOLOv10: rilevamento in tempo reale senza NMS#
Sviluppato per ridurre la latenza in tempo reale, YOLOv10 ha affrontato uno dei colli di bottiglia più persistenti della famiglia YOLO: la soppressione non massima (NMS). Eliminando questa fase di post-elaborazione, il modello raggiunge una latenza prevedibile, fondamentale per i veicoli autonomi e la robotica ad alta velocità.
Innovazioni architetturali#
YOLOv10 introduce assegnazioni doppie coerenti per l'addestramento senza NMS. Durante l'addestramento utilizza assegnazioni delle etichette sia uno-a-molti sia uno-a-uno, consentendo alla rete di apprendere rappresentazioni ricche e di produrre una singola box di delimitazione per oggetto durante l'inferenza. L'architettura integra inoltre un design olistico orientato all'efficienza e alla precisione, semplificando la testa di classificazione e riducendo la ridondanza computazionale delle versioni precedenti.
Dettagli del modello#
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione: Università Tsinghua
- Data: 2024-05-23
- Articolo: YOLOv10: rilevamento degli oggetti end-to-end in tempo reale
- GitHub: THU-MIG/yolov10
- Documentazione: Documentazione di YOLOv10
Poiché YOLOv10 elimina il passaggio NMS, è intrinsecamente più facile esportarlo in formati come il formato ONNX e NVIDIA TensorRT, senza dover ricorrere a plug-in runtime personalizzati per filtrare le bounding box.
Punti di forza:
- Inferenza prevedibile: eliminare NMS garantisce tempi di inferenza costanti, indipendentemente dal numero di oggetti nella scena.
- Minore utilizzo di memoria: rispetto ai modelli basati su Transformer come RT-DETR, YOLOv10 richiede meno memoria sia durante l'addestramento sia durante l'inferenza.
- Eccellente compromesso tra velocità e accuratezza: ottimizzato specificamente per gli scenari a bassa latenza senza sacrificare le metriche di prestazione.
Punti deboli:
- Un unico compito: a differenza del più ampio ecosistema Ultralytics, il repository originale di YOLOv10 si concentra sul rilevamento e non supporta nativamente la segmentazione di istanze né la stima della posa.
EfficientDet: scalabile e bilanciato#
Introdotto da Google Brain, EfficientDet affronta il rilevamento di oggetti attraverso un approccio sistematico alla scalabilità delle reti. Si basa sul backbone EfficientNet per la classificazione delle immagini e introduce un nuovo meccanismo di fusione delle caratteristiche.
Innovazioni architetturali#
Il fulcro di EfficientDet è la rete piramidale bidirezionale delle caratteristiche (BiFPN), che consente una fusione semplice e rapida delle caratteristiche su più scale. A differenza delle FPN tradizionali, che sommano le caratteristiche solo dall'alto verso il basso, BiFPN introduce connessioni bidirezionali tra le scale e pesi addestrabili per apprendere l'importanza delle diverse caratteristiche di input. Inoltre, EfficientDet usa un metodo di scaling composto che ridimensiona uniformemente risoluzione, profondità e larghezza di tutte le reti backbone, delle caratteristiche e di predizione di box e classi.
Dettagli del modello#
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione: Google Brain
- Data: 2019-11-20
- Articolo: EfficientDet: rilevamento degli oggetti scalabile ed efficiente
- GitHub: Google AutoML EfficientDet
Punti di forza:
- Elevata efficienza: ottimo rapporto tra numero di parametri e accuratezza, che rende molto leggere le varianti più piccole, da
-d0a-d2. - Scalabilità rigorosa: lo scaling composto permette di scegliere facilmente una dimensione del modello adatta al proprio budget computazionale.
Punti deboli:
- Integrazione con framework legacy: l'implementazione originale si basa su versioni più datate di TensorFlow, che possono complicare le pipeline di distribuzione moderne.
- Addestramento più lento: addestrare EfficientDet da zero è lento e richiede un'attenta regolazione degli iperparametri rispetto alla rapida convergenza delle architetture YOLO.
- Velocità di inferenza: nonostante l’efficienza in termini di parametri, le operazioni BiFPN complesse spesso comportano velocità di inferenza reali più basse sull’hardware standard rispetto ai modelli YOLO altamente ottimizzati.
Prestazioni e benchmark#
La prova concreta di questi modelli è la loro prestazione empirica su benchmark standard come il dataset COCO. La tabella seguente illustra le differenze principali nel numero di parametri, nelle operazioni in virgola mobile (FLOP) e nella latenza di inferenza sulle GPU NVIDIA T4.
| Modello | dimensione (pixel) | mAPval50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| EfficientDet-d0 | 512 | 34.6 | - | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | - | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 768 | 43.0 | - | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 896 | 47.5 | - | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 1024 | 49.7 | - | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 1280 | 51.5 | - | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 1280 | 52.6 | - | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 1536 | 53.7 | - | 128.07 | 51.9 | 325.0 |
YOLOv10 ha un netto vantaggio nella velocità di inferenza su GPU. Per esempio, YOLOv10s raggiunge 46.3 mAP con una latenza TensorRT di 2.49 ms, mentre EfficientDet-d3 raggiunge un risultato simile, 47.5 mAP, ma impiega 19.59 ms. Nella fascia alta, YOLOv10m (51.1 mAP, 4.74 ms) si avvicina a EfficientDet-d5 (51.5 mAP, 67.86 ms). Questo rende YOLOv10 molto più adatto allo streaming video in tempo reale e alle linee di produzione ad alta velocità. EfficientDet-d0 ha il numero più basso di FLOP nella tabella (2.54B).
Casi d'uso e consigli#
La scelta tra YOLOv10 ed EfficientDet dipende dai requisiti specifici del progetto, dai vincoli di distribuzione e dalle preferenze per l’ecosistema.
Quando scegliere YOLOv10#
YOLOv10 è una scelta valida 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 precisione: progetti che richiedono un buon equilibrio tra velocità di inferenza e precisione di rilevamento con modelli di diverse dimensioni.
- Applicazioni con latenza costante: scenari di distribuzione in cui i tempi di inferenza prevedibili sono fondamentali, ad esempio nella robotica o nei sistemi autonomi.
Quando scegliere EfficientDet#
EfficientDet è consigliato per:
- Google Cloud e pipeline TPU: sistemi basati su TensorFlow nell’infrastruttura Google Cloud TPU, dove l’implementazione di riferimento di EfficientDet supporta l’addestramento su TPU.
- Ricerca sullo scaling composto: Benchmark accademici incentrati sugli effetti di uno scaling bilanciato di profondità, larghezza e risoluzione della rete.
- Implementazione mobile con LiteRT: Progetti che richiedono specificamente l'esportazione in LiteRT (in precedenza TensorFlow Lite) per Android o dispositivi Linux embedded.
Quando scegliere Ultralytics (YOLO26)#
Per la maggior parte dei nuovi progetti, Ultralytics YOLO26 offre la combinazione migliore di prestazioni ed esperienza per gli sviluppatori:
- Distribuzione edge senza NMS: applicazioni che richiedono inferenza costante a bassa latenza senza la complessità della post-elaborazione con soppressione non massima.
- Ambienti senza GPU: Dispositivi privi di accelerazione GPU dedicata, sui quali l’inferenza CPU di YOLO26n, fino al 43% più veloce di YOLO11n, offre un vantaggio decisivo.
- Rilevamento di oggetti piccoli: Scenari complessi come le immagini aeree riprese da droni o l’analisi dei sensori IoT, in cui ProgLoss e STAL migliorano la precisione sugli oggetti piccoli.
Il nuovo standard: arriva Ultralytics YOLO26#
YOLOv10 ha introdotto il rilevamento YOLO senza NMS ed EfficientDet ha mostrato il valore di uno scaling rigoroso, ma la visione artificiale ha continuato a evolversi. Per gli sviluppatori che avviano nuovi progetti oggi, il modello consigliato è Ultralytics YOLO26. Rilasciato a gennaio 2026, combina queste idee in un pacchetto pronto per la produzione, supportato dalla Piattaforma Ultralytics.
Perché YOLO26 supera la concorrenza#
- Design end-to-end senza NMS: YOLO26 offre il design end-to-end senza NMS di YOLOv10 come testa one-to-one opzionale (
nms=False), snellendo la distribuzione e accelerando l'inferenza. - Inferenza CPU fino al 43% più veloce: per i dispositivi edge senza acceleratori dedicati, YOLO26n è fino al 43% più veloce di YOLO11n sulle CPU standard.
- Ottimizzatore MuSGD avanzato: ispirato ai metodi di addestramento dei modelli linguistici di grandi dimensioni (LLM), YOLO26 usa un approccio ibrido tra SGD e Muon per un addestramento stabile e una convergenza rapida, migliorando l'efficienza dell'addestramento rispetto a EfficientDet.
- ProgLoss + STAL: Progressive Loss e Small-Target-Aware Label Assignment (STAL) migliorano il riconoscimento degli oggetti piccoli, un ambito in cui i rilevatori precedenti spesso hanno difficoltà.
- Rimozione di DFL: l'eliminazione di Distribution Focal Loss semplifica l'esportazione verso numerosi formati hardware, tra cui OpenVINO e CoreML.
YOLO26 offre anche maggiore versatilità. Mentre EfficientDet e YOLOv10 sono modelli per il rilevamento, YOLO26 gestisce anche la segmentazione di istanze, la segmentazione semantica, la stima della profondità, la classificazione delle immagini, la stima della posa e le box di delimitazione orientate usando lo stesso pacchetto Python Ultralytics.
Facilità d’uso con Ultralytics#
L'ecosistema Ultralytics, ben mantenuto, garantisce un'esperienza di sviluppo fluida. Per addestrare un modello, convalidarlo ed esportarlo in TensorRT bastano poche righe di codice.
from ultralytics import YOLO
# Carica un modello YOLOv10 preaddestrato (oppure passa a YOLO26 in modo nativo)
model = YOLO("yolov10n.pt")
# Addestra il modello in modo efficiente su un dataset personalizzato
model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Esegui l'inferenza e visualizza subito i risultati
results = model("https://ultralytics.com/images/bus.jpg")
results[0].show()
# Esporta per una distribuzione rapida
model.export(format="engine", quantize=16)Conclusione#
Nel confronto tra YOLOv10 ed EfficientDet, la scelta dipende dalle preferenze per i framework e dai vincoli di velocità. EfficientDet offre un approccio strutturato alla scalabilità dei modelli nell'ecosistema TensorFlow. YOLOv10, tuttavia, garantisce prestazioni in tempo reale più rapide, un minore utilizzo di memoria e un percorso di distribuzione più semplice grazie alla sua architettura senza NMS.
Per il miglior equilibrio tra prestazioni, semplicità d'uso e versatilità multi-task, consigliamo YOLO26 sulla Piattaforma Ultralytics. Adotta l'approccio senza NMS di YOLOv10, aggiunge tecniche di addestramento più recenti come l'ottimizzatore MuSGD ed è disponibile in un framework open source supportato da un'ampia comunità globale.