Vai al contenuto

RTDETRv2 contro YOLOv8: Un confronto tecnico

La scelta del modello di object detection giusto è una decisione critica che bilancia accuratezza, velocità e costo computazionale. Questa pagina fornisce un confronto tecnico dettagliato tra due potenti architetture: RTDETRv2, un modello basato su transformer di Baidu, e Ultralytics YOLOv8, un modello di rete neurale convoluzionale (CNN) all'avanguardia. Approfondiremo le loro differenze architetturali, le metriche di performance e i casi d'uso ideali per aiutarti a selezionare il modello migliore per il tuo progetto.

RTDETRv2: Transformer v2 per il rilevamento in tempo reale

RTDETRv2 (Real-Time Detection Transformer v2) è un rilevatore di oggetti all'avanguardia che sfrutta la potenza dei Vision Transformer per ottenere un'elevata accuratezza mantenendo prestazioni in tempo reale. Rappresenta un'evoluzione dell'architettura DETR (DEtection TRansformer) originale, ottimizzata per la velocità.

Autori: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang e Yi Liu
Organizzazione: Baidu
Data: 2023-04-17 (RT-DETR iniziale), 2024-07-24 (miglioramenti RT-DETRv2)
Arxiv: https://arxiv.org/abs/2304.08069, https://arxiv.org/abs/2407.17140
GitHub: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
Documentazione: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch#readme

Architettura

RTDETRv2 impiega un'architettura ibrida che combina un backbone CNN convenzionale con un encoder-decoder basato su Transformer. Il backbone CNN estrae le feature map iniziali, che vengono poi inserite nel transformer. Il meccanismo di auto-attenzione del transformer consente al modello di catturare le relazioni globali tra diverse parti di un'immagine. Questa comprensione del contesto globale è un elemento chiave di differenziazione rispetto ai modelli puramente basati su CNN e consente a RTDETRv2 di eccellere nel rilevamento di oggetti in scene complesse e disordinate.

Punti di forza

  • Elevata precisione: L'architettura transformer consente a RTDETRv2 di ottenere eccellenti punteggi mAP, in particolare su dataset con oggetti densi o piccoli dove il contesto globale è vantaggioso.
  • Estrazione di feature robusta: Elaborando l'intero contesto dell'immagine contemporaneamente, è in grado di gestire meglio le occlusioni e le relazioni complesse tra gli oggetti.
  • Tempo reale su GPU: Quando accelerato con strumenti come NVIDIA TensorRT, RTDETRv2 può raggiungere velocità di inferenza in tempo reale su GPU di fascia alta.

Punti deboli

  • Elevati costi computazionali: I modelli basati su Transformer sono notoriamente ad alta intensità di risorse. RTDETRv2 ha un numero di parametri e FLOP più elevato rispetto a YOLOv8, richiedendo hardware più potente.
  • Training lento ed elevato utilizzo di memoria: Il training dei transformer è computazionalmente costoso e lento. Spesso richiedono molta più memoria CUDA rispetto ai modelli basati su CNN come YOLOv8, rendendoli inaccessibili agli utenti con risorse hardware limitate.
  • Inferenza CPU più lenta: Sebbene sia veloce sulle GPU, le sue prestazioni sulle CPU sono significativamente inferiori a quelle delle CNN altamente ottimizzate come YOLOv8.
  • Ecosistema limitato: RTDETRv2 manca dell'ecosistema esteso e unificato fornito da Ultralytics. Ciò include meno integrazioni, documentazione meno completa e una community più piccola per il supporto.

Scopri di più su RT-DETR

Ultralytics YOLOv8: Velocità, versatilità e facilità d'uso

Ultralytics YOLOv8 è l'ultima versione della famiglia YOLO (You Only Look Once), che ha riscosso un grande successo. Sviluppato da Ultralytics, stabilisce un nuovo standard per velocità, accuratezza e facilità d'uso, rendendolo una scelta ideale per un'ampia gamma di attività di computer vision.

Autori: Glenn Jocher, Ayush Chaurasia e Jing Qiu
Organizzazione: Ultralytics
Data: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
Documenti: https://docs.ultralytics.com/models/yolov8/

Architettura

YOLOv8 presenta un'architettura single-stage, anchor-free, all'avanguardia. Utilizza un innovativo backbone CSP (Cross Stage Partial) e un head disaccoppiato, che separa le attività di classificazione e regressione per una maggiore precisione. L'intera architettura è altamente ottimizzata per un eccezionale equilibrio tra prestazioni ed efficienza, consentendole di funzionare su un ampio spettro di hardware, dalle potenti GPU cloud ai dispositivi edge con risorse limitate.

Punti di forza

  • Bilanciamento delle prestazioni: YOLOv8 offre un eccezionale compromesso tra velocità e accuratezza, rendendolo adatto a diverse applicazioni del mondo reale in cui entrambe le metriche sono fondamentali.
  • Versatilità: A differenza di RTDETRv2, che è principalmente un rilevatore di oggetti, YOLOv8 è un framework multi-task che supporta nativamente il rilevamento di oggetti, la segmentazione di istanze, la classificazione delle immagini, la stima della posa e il rilevamento di oggetti orientati (OBB).
  • Facilità d'uso: YOLOv8 è progettato per un'esperienza utente semplificata con una semplice API Python e una potente CLI. La vasta documentazione e la comunità attiva rendono facile per gli sviluppatori iniziare.
  • Efficienza dell'addestramento e bassa memoria: YOLOv8 si addestra significativamente più velocemente e richiede molta meno memoria CUDA rispetto a RTDETRv2. Questo lo rende più accessibile ed economico per l'addestramento personalizzato.
  • Ecosistema ben manutenuto: Ultralytics fornisce un ecosistema robusto con aggiornamenti frequenti, numerose integrazioni e strumenti come Ultralytics HUB per una gestione e un addestramento dei dataset senza interruzioni.

Punti deboli

  • Contesto globale: Sebbene sia altamente efficace, la sua architettura basata su CNN potrebbe non catturare il contesto globale in modo completo come un transformer in determinati scenari di nicchia con relazioni tra oggetti estremamente complesse. Tuttavia, per la maggior parte delle applicazioni, le sue prestazioni sono più che sufficienti.

Scopri di più su YOLOv8

Testa a testa sulle prestazioni: RTDETRv2 contro YOLOv8

Il confronto delle prestazioni evidenzia le diverse filosofie di progettazione dei due modelli. RTDETRv2 punta alla massima accuratezza, mentre YOLOv8 è progettato per un equilibrio superiore tra velocità, accuratezza ed efficienza su una vasta gamma di hardware.

Modello dimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
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
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.2
YOLOv8x 640 53.9 479.1 14.37 68.2 257.8

Dalla tabella possiamo trarre diverse conclusioni:

  • Precisione: Il modello RTDETRv2-x più grande supera leggermente YOLOv8x in mAP. Tuttavia, in generale, i modelli YOLOv8 offrono una precisione altamente competitiva per le loro dimensioni. Ad esempio, YOLOv8l corrisponde quasi a RTDETRv2-l in precisione con meno FLOP.
  • Velocità GPU: YOLOv8 è significativamente più veloce, specialmente le sue varianti più piccole. YOLOv8n è oltre 3 volte più veloce del modello RTDETRv2 più piccolo, rendendolo ideale per applicazioni ad alta frequenza di fotogrammi. Anche il modello YOLOv8x più grande è più veloce della sua controparte RTDETRv2-x.
  • Velocità della CPU: YOLOv8 dimostra un enorme vantaggio nell'inferenza della CPU, un fattore critico per l'implementazione su molti dispositivi edge e server standard senza GPU dedicate.
  • Efficienza: I modelli YOLOv8 sono molto più efficienti in termini di parametri e FLOP. YOLOv8x raggiunge quasi la stessa precisione di RTDETRv2-x con meno parametri e FLOP, dimostrando un'efficienza architetturale superiore.

Formazione e implementazione

Quando si tratta di addestramento, la differenza è netta. L'addestramento di RTDETRv2 è un processo ad alta intensità di risorse che richiede GPU di fascia alta con grandi quantità di VRAM e può richiedere una notevole quantità di tempo.

Al contrario, il framework Ultralytics YOLOv8 è costruito per l'efficienza di addestramento. Consente un rapido addestramento personalizzato con requisiti di memoria inferiori, rendendolo accessibile a una gamma più ampia di sviluppatori. Il flusso di lavoro semplificato, dalla preparazione dei dati all'addestramento e alla convalida del modello, è un vantaggio significativo.

Per il deployment, la versatilità di YOLOv8 è eccezionale. Può essere facilmente esportato in numerosi formati come ONNX, TensorRT, CoreML e OpenVINO, garantendo prestazioni ottimizzate praticamente su qualsiasi piattaforma, dai server cloud ai telefoni cellulari e ai sistemi embedded come Raspberry Pi.

Conclusione: Quale modello dovresti scegliere?

RTDETRv2 è un modello potente per ricercatori e team con significative risorse computazionali che hanno bisogno di spremere fuori l'ultima frazione di percentuale di accuratezza per compiti complessi di object detection, come nella guida autonoma o nell'analisi di immagini satellitari.

Tuttavia, per la stragrande maggioranza degli sviluppatori, dei ricercatori e delle aziende, Ultralytics YOLOv8 è il chiaro vincitore. Offre una soluzione molto più pratica ed efficace fornendo un eccezionale equilibrio tra velocità e precisione. I suoi vantaggi chiave—versatilità in molteplici attività, facilità d'uso, efficienza di addestramento superiore, minori requisiti di risorse e un ecosistema completo e ben supportato—la rendono la scelta ideale per la creazione di applicazioni di computer vision robuste e reali in modo rapido ed efficiente. Sia che tu stia implementando su un server di fascia alta o su un dispositivo edge a bassa potenza, YOLOv8 offre una soluzione scalabile, ad alte prestazioni e facile da usare.

Esplora altri modelli

Se sei interessato a esplorare altri modelli, consulta questi confronti aggiuntivi nella nostra serie di confronti tra modelli:



📅 Creato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti