YOLOv5 contro RTDETRv2: Un confronto dettagliato dei modelli
La scelta del modello di object detection ottimale è una decisione fondamentale per qualsiasi progetto di computer vision. Questa pagina fornisce un confronto tecnico dettagliato tra due potenti modelli: Ultralytics YOLOv5, uno standard industriale consolidato noto per il suo equilibrio tra velocità ed efficienza, e RTDETRv2, un modello basato su transformer progettato per un'elevata accuratezza. Approfondiremo le loro differenze architetturali, i benchmark di performance e i casi d'uso ideali per aiutarti a selezionare il modello migliore per le tue esigenze.
Ultralytics YOLOv5: Lo standard industriale consolidato
Autore: Glenn Jocher
Organizzazione: Ultralytics
Data: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Documentazione: https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 ha stabilito un nuovo punto di riferimento per il rilevamento di oggetti in tempo reale al momento del suo rilascio, diventando rapidamente uno dei preferiti tra sviluppatori e ricercatori per la sua eccezionale combinazione di velocità, precisione e facilità d'uso. Costruito interamente in PyTorch, è altamente ottimizzato e facile da addestrare, convalidare e distribuire.
Architettura
YOLOv5 impiega una classica architettura basata su CNN che è sia efficiente che efficace.
- Backbone: Utilizza un backbone CSPDarknet53, una variante di Darknet ottimizzata con connessioni Cross Stage Partial (CSP) per migliorare il flusso del gradiente e ridurre il costo computazionale.
- Neck: Una Path Aggregation Network (PANet) viene utilizzata per l'aggregazione delle caratteristiche, combinando efficacemente le caratteristiche da diverse scale per migliorare il rilevamento di oggetti di varie dimensioni.
- Head: Il modello utilizza un head di rilevamento basato su anchor per prevedere bounding box, probabilità di classe e punteggi di objectness.
Punti di forza
- Velocità ed efficienza eccezionali: YOLOv5 è altamente ottimizzato per la rapida velocità di inferenza, il che lo rende una scelta ideale per applicazioni in tempo reale su una vasta gamma di hardware, dalle CPU ai dispositivi edge.
- Facilità d'uso: Rinomato per la sua esperienza utente semplificata, YOLOv5 offre una semplice API Python e CLI, supportate da una documentazione completa.
- Ecosistema ben mantenuto: Come modello Ultralytics, beneficia di un ecosistema solido e attivamente sviluppato. Ciò include un'ampia comunità, aggiornamenti frequenti e integrazione perfetta con strumenti come Ultralytics HUB per l'addestramento e l'implementazione senza codice.
- Bilanciamento delle prestazioni: YOLOv5 raggiunge un eccellente compromesso tra velocità e precisione, rendendolo altamente pratico per diversi scenari reali.
- Efficienza della memoria: Rispetto ai modelli basati su transformer, i modelli YOLOv5 generalmente richiedono una quantità significativamente inferiore di memoria CUDA durante l'addestramento e sono più efficienti in termini di memoria durante l'inferenza.
- Versatilità: Supporta molteplici attività, tra cui object detection, segmentazione di istanza e classificazione delle immagini, il tutto all'interno di un framework unificato.
- Efficienza di addestramento: Il processo di addestramento è rapido ed efficiente, con pesi pre-addestrati facilmente disponibili su dataset come COCO per accelerare lo sviluppo.
Punti deboli
- Precisione su scene complesse: Pur essendo altamente preciso, potrebbe essere superato da architetture più nuove e complesse come RTDETRv2 su dataset con molti oggetti piccoli o occlusi.
- Design basato su anchor: La sua dipendenza da anchor box predefiniti a volte può richiedere una messa a punto manuale per ottenere prestazioni ottimali su dataset con proporzioni degli oggetti non convenzionali.
Casi d'uso ideali
YOLOv5 eccelle in applicazioni in cui velocità, efficienza delle risorse e sviluppo rapido sono fondamentali.
- Videosorveglianza in tempo reale: Ideale per sistemi di allarme di sicurezza e per il monitoraggio di feed video in diretta.
- Edge Computing: I suoi modelli leggeri sono perfetti per l'implementazione su dispositivi con risorse limitate come Raspberry Pi e NVIDIA Jetson.
- Applicazioni Mobile: Adatto per l'inferenza on-device nelle app mobili.
- Automazione industriale: Potenzia il controllo qualità e l'IA nella gestione del traffico.
RTDETRv2: Transformer di rilevamento in tempo reale ad alta accuratezza
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
RTDETRv2 (Real-Time Detection Transformer v2) è un rilevatore di oggetti all'avanguardia che sfrutta la potenza dei Vision Transformer (ViT) per ottenere un'elevata accuratezza mantenendo prestazioni in tempo reale su hardware adeguato.
Architettura
RTDETRv2 utilizza un approccio ibrido che combina i punti di forza delle CNN e dei Transformer.
- Backbone: Utilizza tipicamente una CNN (come le varianti di ResNet) per un'efficiente estrazione iniziale delle caratteristiche.
- Encoder-Decoder: Una struttura encoder-decoder basata su Transformer elabora le caratteristiche dell'immagine. Utilizza meccanismi di auto-attenzione per catturare il contesto globale, consentendo al modello di comprendere meglio le relazioni tra oggetti distanti e scene complesse.
Punti di forza
- Elevata precisione: L'architettura transformer consente a RTDETRv2 di ottenere eccellenti punteggi mAP, in particolare su dataset complessi con oggetti densi o piccoli, come quelli nell'analisi di immagini satellitari.
- Capacità in tempo reale: È ottimizzato per fornire velocità di inferenza competitive, specialmente quando accelerato su potenti GPU utilizzando strumenti come NVIDIA TensorRT.
- Estrazione di feature robusta: Acquisendo il contesto globale, offre buone prestazioni in scenari complessi come l'occlusione, il che è vantaggioso per applicazioni come la guida autonoma.
Punti deboli
- Elevati costi computazionali: RTDETRv2 ha generalmente un numero di parametri e FLOP più elevato rispetto a YOLOv5, richiedendo risorse computazionali più significative come memoria GPU e potenza di elaborazione.
- Complessità dell'addestramento: L'addestramento di modelli basati su transformer è spesso più dispendioso in termini di risorse e più lento rispetto all'addestramento di CNN. In genere richiedono molta più memoria CUDA, rendendoli meno accessibili per gli utenti con hardware limitato.
- Velocità di inferenza su CPU/Edge: Pur operando in tempo reale su GPU potenti, le sue prestazioni possono essere significativamente inferiori rispetto a YOLOv5 su CPU o dispositivi edge meno potenti.
- Ecosistema e Usabilità: Manca dell'ecosistema esteso e unificato, degli strumenti e dell'ampio supporto della community che Ultralytics fornisce per i suoi modelli YOLO.
Analisi delle prestazioni: Velocità contro precisione
La differenza fondamentale tra YOLOv5 e RTDETRv2 risiede nella loro filosofia di progettazione. YOLOv5 è progettato per un equilibrio ottimale tra velocità e accuratezza su una vasta gamma di hardware, rendendolo incredibilmente versatile. Al contrario, RTDETRv2 dà la priorità al raggiungimento della massima accuratezza, sfruttando un'architettura transformer più intensiva dal punto di vista computazionale che funziona meglio su GPU di fascia alta.
La tabella seguente evidenzia queste differenze. Mentre i modelli RTDETRv2 raggiungono punteggi mAP più elevati, i modelli YOLOv5, in particolare le varianti più piccole, offrono tempi di inferenza significativamente più rapidi, specialmente sulla CPU. Questo rende YOLOv5 una scelta più pratica per le applicazioni in cui sono essenziali la bassa latenza e l'implementazione su hardware diversificato.
Modello | dimensione (pixel) |
mAPval 50-95 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
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 |
Conclusione e raccomandazioni
Sia YOLOv5 che RTDETRv2 sono modelli formidabili per il rilevamento di oggetti, ma servono esigenze diverse.
RTDETRv2 è una scelta eccellente per le applicazioni in cui raggiungere la massima accuratezza possibile è l'obiettivo primario e sono prontamente disponibili risorse computazionali consistenti (ovvero GPU di fascia alta) sia per l'addestramento che per la distribuzione. La sua architettura basata su transformer gli conferisce un vantaggio in scene complesse.
Tuttavia, per la stragrande maggioranza delle applicazioni del mondo reale, Ultralytics YOLOv5 presenta una soluzione più interessante e pratica. Il suo eccezionale equilibrio tra velocità e precisione, combinato con i suoi bassi requisiti di risorse, la rende adatta a una gamma più ampia di scenari di implementazione. I vantaggi chiave dell'ecosistema Ultralytics ben mantenuto—inclusi la facilità d'uso, la documentazione completa, il supporto attivo della comunità e strumenti come Ultralytics HUB—riducono significativamente la barriera d'ingresso e accelerano i tempi di sviluppo.
Per gli sviluppatori alla ricerca di un framework moderno, versatile e altamente efficiente, i modelli Ultralytics più recenti come YOLOv8 e YOLO11 si basano sui punti di forza di YOLOv5, offrendo prestazioni ancora migliori e più funzionalità. Questi modelli rappresentano lo stato dell'arte nella computer vision ad alte prestazioni e di facile utilizzo.
Altri confronti tra modelli
Se sei interessato a esplorare altri modelli, consulta questi confronti:
- YOLOv5 contro YOLOv7
- YOLOv5 contro YOLOv8
- YOLOv5 contro YOLOv9
- RT-DETR vs YOLOv8
- RT-DETR vs YOLO11
- EfficientDet vs YOLOv5