YOLOv8 vs RTDETRv2#
Il panorama della visione artificiale è in continua evoluzione, con nuove architetture che ampliano i limiti di ciò che è possibile nel rilevamento degli oggetti in tempo reale. Due modelli di spicco che hanno attirato notevole attenzione sono Ultralytics YOLOv8 e RTDETRv2 di Baidu. Questa guida offre un confronto tecnico completo tra questi due potenti modelli, analizzandone le architetture, le metriche di prestazione e gli scenari di distribuzione ideali.
Panoramica di YOLOv8#
Ultralytics YOLOv8 rappresenta una tappa fondamentale nella famiglia di modelli YOLO (You Only Look Once). Si basa su anni di ricerca fondamentale per offrire velocità, accuratezza e facilità d'uso eccezionali per un'ampia varietà di attività.
Caratteristiche principali:
- Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
- Organizzazione: Ultralytics
- Data: 10 gennaio 2023
- GitHub: Repository Ultralytics
- Documentazione: Documentazione di YOLOv8
Architettura e punti di forza#
YOLOv8 introduce un'architettura semplificata che ottimizza sia l'estrazione delle caratteristiche sia la regressione delle bounding box. È un rilevatore senza anchor, che semplifica la testa di predizione e riduce il numero di modifiche agli iperparametri necessarie durante il training. Questa architettura garantisce un eccellente equilibrio prestazionale tra velocità di inferenza e precisione media (mAP), rendendolo particolarmente adatto alla distribuzione nel mondo reale, sia su dispositivi edge che su server cloud.
Inoltre, durante il training YOLOv8 richiede meno memoria rispetto alle architetture basate su Transformer. Questo permette agli sviluppatori di addestrare modelli su GPU consumer standard senza incorrere in errori di memoria esaurita.
Versatilità#
Uno dei punti di forza distintivi di YOLOv8 è la sua versatilità nativa. Mentre molti modelli si concentrano esclusivamente sulle bounding box, YOLOv8 offre supporto immediato per il rilevamento degli oggetti, la segmentazione di istanze, la classificazione di immagini, la stima della posa e il rilevamento delle bounding box orientate (OBB).
Panoramica di RTDETRv2#
RTDETRv2 (Transformer per il rilevamento in tempo reale versione 2) si basa sul modello RT-DETR originale e mira a portare i potenti meccanismi di attenzione dei Vision Transformer nelle applicazioni di rilevamento degli oggetti in tempo reale.
Caratteristiche principali:
- Autori: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang e Yi Liu
- Organizzazione: Baidu
- Data: 2024-07-24
- Arxiv: 2407.17140
- GitHub: Repository RT-DETR
- Documentazione: README di RTDETRv2
Architettura e punti di forza#
RTDETRv2 sfrutta un'architettura ibrida che combina un backbone di rete neurale convoluzionale (CNN) con una struttura Transformer encoder-decoder. Questo consente al modello di acquisire relazioni spaziali complesse e contesto globale tramite meccanismi di self-attention. Utilizzando una serie di strategie di training "bag-of-freebies", RTDETRv2 ottiene punteggi mAP competitivi su dataset benchmark standard come il dataset COCO.
Punti deboli#
Nonostante l'elevata accuratezza, la natura basata su Transformer di RTDETRv2 comporta un maggiore consumo di memoria e tempi di training più lunghi rispetto alle architetture puramente CNN. I Transformer richiedono intrinsecamente più VRAM, rendendo difficile addestrarli su hardware con risorse limitate. Inoltre, sebbene RTDETRv2 sia efficace nel rilevamento, non offre la versatilità multitasking (ad esempio, per posa e segmentazione) caratteristica dell'ecosistema Ultralytics.
Confronto delle prestazioni#
Nella valutazione dei modelli per la produzione, è fondamentale considerare il compromesso tra dimensioni del modello, velocità di inferenza e accuratezza. La tabella seguente confronta direttamente le varianti di YOLOv8 e RTDETRv2.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 YOLOv8 e RT-DETR dipende dai requisiti specifici del tuo progetto, dai vincoli di distribuzione e dalle preferenze relative all'ecosistema.
Quando scegliere YOLOv8#
YOLOv8 è un'ottima scelta per:
- Distribuzioni versatili e multi-attività: progetti che richiedono un modello collaudato per rilevamento, segmentazione, classificazione e stima della posa nell’ecosistema Ultralytics.
- Sistemi di produzione consolidati: ambienti di produzione esistenti già basati sull’architettura YOLOv8, con pipeline di distribuzione stabili e ben testate.
- Ampio supporto della community e dell’ecosistema: applicazioni che traggono vantaggio dagli estesi tutorial di YOLOv8, dalle integrazioni di terze parti e dalle risorse della community attiva.
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.
I vantaggi di Ultralytics#
La scelta di un modello non si limita alle metriche grezze: l'ecosistema software circostante è fondamentale per la produttività degli sviluppatori. L'ecosistema Ultralytics è rinomato per la sua facilità d'uso e offre un'API Python unificata che semplifica l'intero ciclo di vita del machine learning.
Dalla gestione dei dataset all'addestramento distribuito, Ultralytics astrae il codice ripetitivo complesso. Gli sviluppatori possono contare su pesi preaddestrati facilmente disponibili e sull'integrazione perfetta con piattaforme come Hugging Face e strumenti di monitoraggio. Questo ecosistema ben mantenuto garantisce uno sviluppo attivo, aggiornamenti frequenti e un solido supporto della community.
Inoltre, l'efficienza dell'addestramento è una caratteristica distintiva dei modelli Ultralytics YOLO. Sono altamente ottimizzati per convergere rapidamente e occupare meno memoria durante il processo di addestramento, accelerando notevolmente i cicli di sperimentazione rispetto ai rilevatori basati su Transformer come RTDETRv2.
Uno sguardo al futuro: la potenza di YOLO26#
YOLOv8 rimane un modello eccezionale, ma gli sviluppatori che cercano la tecnologia più all'avanguardia dovrebbero valutare il passaggio a YOLO26, rilasciato a gennaio 2026. YOLO26 ridefinisce lo stato dell'arte con diverse innovazioni rivoluzionarie:
- Architettura end-to-end senza NMS: la testa opzionale one-to-one di YOLO26 (
nms=False) elimina la post-elaborazione con la soppressione non massima (NMS), rendendo i flussi di lavoro di distribuzione più rapidi e deterministici. - Rimozione di DFL: la rimozione della Distribution Focal Loss semplifica il modello e ne migliora la compatibilità con dispositivi edge e a basso consumo.
- Ottimizzatore MuSGD: integrando le innovazioni dell'addestramento degli LLM, l'ottimizzatore MuSGD assicura sessioni di addestramento più stabili e una convergenza più rapida.
- Inferenza su CPU fino al 43% più veloce: ottimizzato in modo approfondito per gli ambienti privi di GPU dedicate.
- ProgLoss + STAL: la Progressive Loss e l'assegnazione delle etichette consapevole dei target piccoli (Small-Target-Aware Label Assignment) migliorano sensibilmente il riconoscimento degli oggetti piccoli, aspetto fondamentale per le immagini aeree e la robotica.
Altre alternative moderne da valutare nella gamma Ultralytics includono YOLO11, che offre prestazioni solide per i progetti legacy, anche se YOLO26 è consigliato per tutte le nuove distribuzioni.
Esempio di codice: addestramento e inferenza#
La semplicità dell'API Ultralytics ti permette di caricare, addestrare e distribuire modelli con poche righe di codice Python. Prima di eseguire l'esempio seguente, assicurati di aver installato PyTorch.
from ultralytics import YOLO
# Carica un modello YOLOv8 small preaddestrato
model = YOLO("yolov8s.pt")
# Addestra il modello sul tuo dataset personalizzato
# Un addestramento efficiente in termini di memoria consente di usare batch di dimensioni maggiori
train_results = model.train(data="coco8.yaml", epochs=50, imgsz=640, batch=16)
# Esegui l'inferenza su un'immagine di test
results = model("https://ultralytics.com/images/bus.jpg")
# Visualizza i risultati
results[0].show()
# Esporta senza problemi per la distribuzione su dispositivi edge
export_path = model.export(format="onnx")Ultralytics supporta l'esportazione con un clic in numerosi formati, tra cui ONNX, TensorRT e CoreML, semplificando le opzioni di distribuzione del modello su architetture hardware diverse.
Conclusione#
Sia YOLOv8 che RTDETRv2 offrono funzionalità interessanti per il rilevamento di oggetti in tempo reale. RTDETRv2 dimostra la potenza dei Transformer nel catturare il contesto globale, risultando adatto a compiti complessi di ragionamento spaziale in cui la velocità di inferenza e l'overhead di memoria non sono i vincoli principali.
Tuttavia, per gli sviluppatori che danno priorità a un equilibrio eccellente tra velocità, precisione ed efficienza delle risorse, i modelli Ultralytics YOLO restano la scelta migliore. La leggerezza di YOLOv8, unita alla sua facilità d'uso senza pari, alla versatilità nelle diverse attività di visione e a un fiorente ecosistema open source, lo rende la soluzione ideale per gli ambienti di produzione scalabili. Per chi cerca prestazioni edge ai massimi livelli, il nuovo YOLO26 offre un'efficienza senza pari senza NMS e continua a essere un riferimento nel settore.