YOLOv8 vs RTDETRv2#
Il panorama della visione artificiale è in continua evoluzione e le nuove architetture ampliano le possibilità del rilevamento di 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 tra i due 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), combinando velocità, accuratezza e facilità d'uso in 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 previsione e riduce il numero di regolazioni degli iperparametri necessarie durante l'addestramento. Questo offre a YOLOv8 un buon equilibrio tra velocità di inferenza e precisione media (mAP), rendendolo adatto alla distribuzione nel mondo reale sia su dispositivi edge sia su server cloud.
YOLOv8 ha anche requisiti di memoria inferiori durante l'addestramento rispetto alle architetture basate su Transformer, così gli sviluppatori possono addestrare modelli su GPU consumer standard senza esaurire la memoria.
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 RT-DETR originale e mira a portare i meccanismi di attenzione dei Vision Transformer nelle applicazioni di rilevamento di 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 usa un'architettura ibrida che combina un backbone basato su una rete neurale convoluzionale (CNN) con una struttura encoder-decoder Transformer. Questo consente al modello di cogliere relazioni spaziali complesse e il contesto globale tramite meccanismi di self-attention. Grazie all'uso di una serie di strategie di addestramento "bag-of-freebies", RTDETRv2 ottiene punteggi mAP competitivi sui dataset di benchmark standard, come il dataset COCO.
Punti deboli#
Nonostante l'elevata accuratezza, la natura di RTDETRv2 basata su Transformer comporta un consumo di memoria maggiore e tempi di addestramento più lunghi rispetto alle architetture basate esclusivamente su CNN. I Transformer richiedono in genere più VRAM, rendendo difficile addestrarli su hardware con risorse limitate. Inoltre, pur eccellendo nel rilevamento, RTDETRv2 non offre il supporto multi-task (come la segmentazione e la stima della posa) integrato nell'ecosistema Ultralytics.
Confronto delle prestazioni#
Nel valutare i modelli per la produzione, è fondamentale trovare un compromesso tra dimensioni del modello, velocità di inferenza e accuratezza. La tabella seguente confronta direttamente le varianti di YOLOv8 e RTDETRv2.
| Modello | dimensione (pixel) | mAPval50-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:
- Distribuzione versatile multi-task: 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 su Transformer: progetti che esplorano i meccanismi di attenzione e le architetture Transformer per il rilevamento end-to-end di oggetti 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 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 impegnativi come le immagini aeree da droni o l'analisi dei sensori IoT, in cui ProgLoss e STAL migliorano la precisione sugli oggetti minuscoli.
I vantaggi di Ultralytics#
La scelta di un modello non dipende solo dalle metriche grezze: l'ecosistema software circostante è cruciale per la produttività degli sviluppatori. L'ecosistema Ultralytics è progettato per essere facile da usare e offre un'API Python unificata che semplifica l'intero ciclo di vita del machine learning.
Dalla gestione dei dataset all'addestramento distribuito, Ultralytics si occupa del codice boilerplate complesso. Gli sviluppatori possono usufruire di pesi preaddestrati facilmente reperibili e di integrazioni con piattaforme come Hugging Face e strumenti di monitoraggio degli esperimenti. L'ecosistema è in costante sviluppo, aggiornato frequentemente e supportato da una community numerosa.
I modelli Ultralytics YOLO sono inoltre ottimizzati per convergere rapidamente e usare meno memoria durante il processo di addestramento, accelerando la sperimentazione rispetto ai rilevatori basati su Transformer come RTDETRv2.
Uno sguardo al futuro: la potenza di YOLO26#
YOLOv8 resta un modello valido, ma per i nuovi progetti Ultralytics consiglia YOLO26, rilasciato a gennaio 2026, che introduce diversi miglioramenti:
- Progettazione end-to-end senza NMS: la testa opzionale uno-a-uno di YOLO26 (
nms=False) elimina la post-elaborazione Non-Maximum Suppression (NMS), rendendo i workflow di distribuzione più veloci e deterministici. - Rimozione di DFL: eliminare Distribution Focal Loss semplifica il modello, migliorandone la compatibilità con dispositivi edge e a basso consumo.
- Ottimizzatore MuSGD: ispirato all'addestramento degli LLM, MuSGD (un ibrido di SGD e Muon) offre sessioni di addestramento più stabili e una convergenza più rapida.
- Inferenza su CPU fino al 43% più veloce: YOLO26n raggiunge un'inferenza ONNX su CPU fino al 43% più veloce di YOLO11n, risultando adatto agli 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.
Tra le altre moderne alternative della suite Ultralytics che vale la pena esplorare c'è YOLO11, che rimane una valida opzione per i progetti esistenti, anche se YOLO26 è consigliato per 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 per la distribuzione edge
export_path = model.export(format="onnx")Ultralytics supporta l'esportazione con un solo comando in numerosi formati, tra cui ONNX, TensorRT e CoreML, semplificando le opzioni di distribuzione dei modelli su architetture hardware diverse.
Conclusione#
Sia YOLOv8 sia RTDETRv2 offrono funzionalità interessanti per il rilevamento di oggetti in tempo reale. RTDETRv2 dimostra come i Transformer possano cogliere il contesto globale, rendendolo adatto ad attività complesse di ragionamento spaziale in cui velocità di inferenza e consumo di memoria non sono i vincoli principali.
Per gli sviluppatori che danno priorità all'equilibrio tra velocità, accuratezza ed efficienza delle risorse, tuttavia, i modelli Ultralytics YOLO sono la scelta più pratica. Il design leggero di YOLOv8, la facilità d'uso, il supporto multi-task e l'ecosistema open source attivo lo rendono adatto ad ambienti di produzione scalabili. Per prestazioni edge ottimali, YOLO26 offre inferenza senza NMS e velocità CPU superiori.