EfficientDet vs RTDETRv2#
Scegliere l'architettura ottimale per i progetti di visione artificiale richiede di orientarsi in un panorama variegato di reti neurali. Questa guida presenta un confronto tecnico dettagliato tra due approcci distinti: EfficientDet, una famiglia di reti neurali convoluzionali (CNN) altamente scalabile, e RTDETRv2, un modello Transformer real-time all'avanguardia. Valutiamo le differenze strutturali, le metodologie di addestramento e l'idoneità al deployment in diversi ambienti hardware.
Comprendendo i compromessi tra l'efficienza delle architetture legacy e le capacità moderne dei Transformer, gli sviluppatori possono prendere decisioni informate. Inoltre, esploreremo come alternative moderne come il nuovo Ultralytics YOLO26 colmino il divario, offrendo velocità, accuratezza e facilità d'uso senza pari.
Conoscere EfficientDet#
EfficientDet ha rivoluzionato il rilevamento degli oggetti introducendo un approccio sistematico allo scaling dei modelli.
- Autori: Mingxing Tan, Ruoming Pang e Quoc V. Le
- Organizzazione: Google
- Data: 20 novembre 2019
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: Repository Google AutoML
- Documentazione: Documentazione di EfficientDet
Architettura e concetti fondamentali#
EfficientDet utilizza EfficientNet come backbone e introduce la rete piramidale delle caratteristiche bidirezionale (BiFPN). BiFPN consente di fondere facilmente e rapidamente caratteristiche a più scale, applicando pesi apprendibili per determinare l'importanza delle diverse caratteristiche di input. A questo si abbina un metodo di scaling composto che scala uniformemente e simultaneamente risoluzione, profondità e larghezza di tutti i backbone, della rete delle caratteristiche e delle reti di predizione di box e classi.
Punti di forza e limiti#
Il principale punto di forza di EfficientDet è l'efficienza dei parametri. Al momento del rilascio, modelli come EfficientDet-D0 raggiungevano un'accuratezza superiore con meno parametri e FLOP rispetto alle precedenti versioni di YOLO. Questo li rendeva molto interessanti negli ambienti con limiti rigorosi alle risorse di calcolo.
Tuttavia, EfficientDet si affida alla soppressione standard dei non massimi (NMS) durante la post-elaborazione per filtrare i bounding box sovrapposti, operazione che può creare colli di bottiglia nella latenza delle pipeline real-time. Inoltre, sebbene il processo di addestramento sia ben documentato, ottimizzare EfficientDet può essere complicato rispetto alle esperienze per sviluppatori altamente ottimizzate offerte dagli strumenti moderni.
Sebbene EfficientDet abbia aperto la strada alle reti scalabili, il deployment di questi modelli sulle NPU moderne richiede spesso un'ampia ottimizzazione manuale. Per deployment semplificati, i nuovi modelli Ultralytics offrono l'esportazione con un solo clic.
Alla scoperta di RTDETRv2#
RTDETRv2 rappresenta l'evoluzione delle architetture basate su Transformer e segna un allontanamento dai tradizionali modelli CNN basati su anchor.
- Autori: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang e Yi Liu
- Organizzazione: Baidu
- Data: 2024-07-24
- Arxiv: https://arxiv.org/abs/2407.17140
- GitHub: Repository RT-DETR
- Documentazione: Documentazione di RTDETRv2
Progressi nei Transformer#
RTDETRv2 si basa sul modello di riferimento Real-Time Detection Transformer (RT-DETR). Sfrutta meccanismi di attenzione globale, consentendo al modello di comprendere contesti di scena complessi senza i vincoli localizzati delle convoluzioni standard. Il vantaggio architetturale più significativo è il design nativamente senza NMS. Prevedendo gli oggetti direttamente dall'immagine di input, semplifica la pipeline di inferenza ed evita la regolazione euristica richiesta dalla post-elaborazione con NMS.
Punti di forza e debolezze#
RTDETRv2 eccelle negli ambienti ad alta densità, dove gli oggetti sovrapposti confondono le CNN tradizionali. È molto accurato su benchmark complessi, come i dataset COCO.
Nonostante la loro accuratezza, i modelli Transformer richiedono naturalmente molta memoria. L'efficienza dell'addestramento è sensibilmente inferiore: rispetto alle CNN, servono molte più epoche e una maggiore quantità di memoria CUDA per arrivare alla convergenza. Questo rende RTDETRv2 meno adatto agli sviluppatori con budget cloud limitati o che hanno bisogno di prototipare rapidamente.
L'addestramento di modelli Transformer come RTDETRv2 richiede in genere GPU di fascia alta. Se incontri errori di memoria insufficiente (OOM), valuta l'uso in fase di addestramento di modelli che richiedono meno memoria, come la serie Ultralytics YOLO.
Confronto dei benchmark di prestazione#
Comprendere le metriche di prestazione grezze è fondamentale per scegliere un modello. La tabella seguente mostra un confronto tra EfficientDet e RTDETRv2 in diverse dimensioni.
| 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 |
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
Casi d'uso e consigli#
La scelta tra EfficientDet e RT-DETR dipende dai requisiti specifici del progetto, dai vincoli di deployment e dalle preferenze in fatto di ecosistemi.
Quando scegliere EfficientDet#
EfficientDet è una scelta valida per:
- Pipeline Google Cloud e TPU: Sistemi strettamente integrati con le API Google Cloud Vision o con infrastrutture TPU, per le quali EfficientDet dispone di un'ottimizzazione nativa.
- 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 RT-DETR#
RT-DETR è consigliato per:
- Ricerca sul rilevamento basato sui Transformer: progetti che esplorano meccanismi di attenzione e architetture Transformer per il rilevamento di oggetti end-to-end senza NMS.
- Scenari ad alta accuratezza e latenza flessibile: applicazioni in cui l'accuratezza del rilevamento è la priorità assoluta e si può accettare una latenza di inferenza leggermente più alta.
- Rilevamento di oggetti grandi: scene in cui sono presenti principalmente oggetti medio-grandi e il meccanismo di attenzione globale dei Transformer offre un vantaggio naturale.
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 con sola CPU: dispositivi senza accelerazione GPU dedicata, sui quali l'inferenza su CPU di YOLO26, fino al 43% più veloce, offre un vantaggio decisivo.
- Rilevamento di oggetti di piccole dimensioni: scenari complessi come le immagini aeree acquisite da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano notevolmente la precisione sugli oggetti molto piccoli.
Il vantaggio di Ultralytics: ecco YOLO26#
Sebbene EfficientDet e RTDETRv2 abbiano consolidato il proprio posto nella storia della visione artificiale, gli ambienti di produzione moderni richiedono un equilibrio perfetto tra velocità, accuratezza e un'esperienza eccezionale per gli sviluppatori. Il nuovo Ultralytics YOLO26, rilasciato di recente, sintetizza i punti di forza di queste architetture diverse.
YOLO26 si distingue perché combina l'ecosistema semplificato per cui è nota Ultralytics con meccanismi interni rivoluzionari.
Perché scegliere YOLO26 rispetto alla concorrenza?#
- Design end-to-end senza NMS: Ispirandosi a Transformer come RTDETRv2, YOLO26 offre una head end-to-end opzionale (
nms=False) che elimina la post-elaborazione con NMS, garantendo pipeline di deployment più rapide e semplici, senza l'enorme numero di parametri dei Transformer puri. - Ottimizzatore MuSGD: Ispirato alle innovazioni nell'addestramento dei modelli linguistici di grandi dimensioni (come Kimi K2 di Moonshot AI), YOLO26 utilizza una combinazione di SGD e Muon. Questo offre una stabilità di addestramento senza precedenti e tassi di convergenza significativamente più rapidi rispetto ai lunghi cicli richiesti da RTDETRv2.
- Ottimizzato per l'edge: con un'inferenza su CPU fino al 43% più veloce, YOLO26 è progettato per l'IA edge. Supera facilmente i pesanti modelli Transformer su hardware con risorse limitate, come telefoni cellulari e telecamere intelligenti.
- Rimozione di DFL: eliminare la Distribution Focal Loss semplifica il grafo del modello e facilita le esportazioni senza problemi in TensorRT e ONNX.
- ProgLoss + STAL: queste funzioni di perdita avanzate migliorano notevolmente il riconoscimento degli oggetti di piccole dimensioni, risolvendo un collo di bottiglia comune nelle immagini aeree e nella robotica.
- Versatilità: a differenza di RTDETRv2, che si concentra principalmente sul rilevamento, YOLO26 supporta nativamente la segmentazione di istanze, la classificazione delle immagini, la stima della posa e le bounding box orientate (OBB), con miglioramenti specifici per ciascun compito, come RLE per la posa e una funzione di perdita angolare specializzata per le OBB.
Sfruttando la Ultralytics Platform, puoi gestire i tuoi dataset, addestrare nel cloud modelli come YOLO26 o YOLO11 e distribuirli senza problemi tramite API flessibili.
Semplicità del codice con Ultralytics#
La API Python di Ultralytics, mantenuta con cura, rende semplicissimi l'addestramento e l'inferenza dei modelli. Gli sviluppatori possono confrontare facilmente i modelli o avviare script di addestramento con pochissimo codice boilerplate.
from ultralytics import YOLO
# Carica il modello YOLO26 all'avanguardia
model = YOLO("yolo26n.pt")
# Addestra il modello sul tuo dataset personalizzato
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Esegui l'inferenza su un'immagine di test
predictions = model.predict("image.jpg")Per chi gestisce infrastrutture legacy, l'apprezzato Ultralytics YOLOv8 resta una scelta stabile e potente, a dimostrazione dell'affidabilità a lungo termine dell'ecosistema Ultralytics. Che tu esegua complessi algoritmi di tracciamento in tempo reale o semplici procedure di rilevamento dei difetti, passare a YOLO26 garantisce un sistema pronto per il futuro, molto preciso ed efficiente in termini di memoria.