YOLOv10 vs. RT-DETRv2: Un confronto tecnico per il rilevamento di oggetti
La scelta dell'architettura ottimale per il rilevamento degli oggetti è una decisione cruciale che richiede un compromesso tra la velocità di inferenza, l'accuratezza e la richiesta di risorse computazionali. Questa guida completa confronta YOLOv10, un'evoluzione all'avanguardia della famiglia YOLO basata su CNN e nota per la sua efficienza, e RT-DETRv2, un sofisticato modello basato su trasformatori progettato per compiti di alta precisione. Analizziamo le loro innovazioni architettoniche, le metriche delle prestazioni e gli scenari di implementazione ideali per aiutarvi a fare una scelta consapevole per i vostri progetti di computer vision.
YOLOv10: Rilevamento in tempo reale guidato dall'efficienza
YOLOv10 rappresenta un salto significativo nella linea YOLO , concentrandosi sull'eliminazione dei colli di bottiglia dei tradizionali rilevatori in tempo reale. Sviluppato dai ricercatori della Tsinghua University, introduce un paradigma di addestramento NMS che snellisce la pipeline di distribuzione eliminando la necessità di una post-elaborazione di Non-Maximum Suppression.
- Autori: Ao Wang, Hui Chen, Lihao Liu, et al.
- Organizzazione:Università Tsinghua
- Data: 2024-05-23
- Arxiv:2405.14458
- GitHub:THU-MIG/yolov10
- Documenti:Documentazione diYOLOv10
Innovazioni architettoniche
YOLOv10 adotta un design olistico orientato all'efficienza e alla precisione. Utilizza assegnazioni duali coerenti durante l'addestramento per consentire l'inferenza NMS, riducendo in modo significativo la latenza. L'architettura presenta anche una testa di classificazione leggera e un downsampling disaccoppiato per canale spaziale per ridurre al minimo la ridondanza computazionale. Questo design assicura che il modello rimanga estremamente veloce pur mantenendo un'accuratezza competitiva, rendendolo particolarmente adatto all'edge computing dove le risorse sono scarse.
Inferenza NMS
La rimozione della soppressione non massima (NMS) da parte di YOLOv10 riduce la complessità delle fasi di post-elaborazione. Ciò comporta una minore latenza di inferenza e facilita l'implementazione del modello in pipeline end-to-end senza kernel CUDA personalizzati per NMS.
Il modello si adatta efficacemente a varie dimensioni, dalla versione nano (n) per ambienti estremamente vincolati alla versione extra-large (x) per requisiti di precisione più elevati.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg")
RT-DETRv2: Trasformatore di precisione
RT-DETRv2(Real-Time Detection Transformer v2) si basa sul successo dell'originale RT-DETR, perfezionando ulteriormente l'applicazione dei trasformatori di visione per il rilevamento degli oggetti in tempo reale. Sviluppato da Baidu, questo modello sfrutta i meccanismi di autoattenzione per catturare il contesto globale, superando spesso le controparti basate su CNN in scene complesse con occlusioni.
- Autori: Wenyu Lv, Yian Zhao, Qinyao Chang, et al.
- Organizzazione:Baidu
- Data: 2024-07-24
- Arxiv:2407.17140
- GitHub:RepositoryRT-DETRv2
- Documenti:DocumentazioneRT-DETR
Trasformatori visivi nel rilevamento
A differenza delle CNN tradizionali, che elaborano le immagini utilizzando campi recettivi locali, RT-DETRv2 impiega una struttura portante Vision Transformer (ViT). Ciò consente al modello di elaborare patch di immagini con autoattenzione, comprendendo efficacemente le relazioni tra oggetti distanti in una scena. Sebbene questa capacità di contesto globale migliori l'accuratezza del rilevamento, in genere comporta costi computazionali più elevati rispetto all'architettura semplificata di YOLOv10.
RT-DETRv2 è stato progettato per essere adattabile, offrendo diverse scale di modelli per adattarsi alle diverse esigenze di prestazioni, anche se in genere richiede più memoria GPU per l'addestramento e l'inferenza rispetto ai modelli YOLO equivalenti.
Per saperne di più su RT-DETRv2
Analisi delle prestazioni
Il confronto che segue evidenzia i vantaggi distinti di ciascuna architettura. YOLOv10 eccelle in velocità ed efficienza, offrendo una latenza e un numero di parametri straordinariamente bassi. Ad esempio, il modello YOLOv10n funziona a 1,56 ms su una GPU T4, rendendolo ideale per l'elaborazione video ad alta velocità. RT-DETRv2pur essendo più lento, offre una solida precisione, in particolare nei modelli di dimensioni maggiori, ma al costo di FLOP e utilizzo della memoria significativamente più elevati.
| Modello | dimensione (pixel) | mAPval 50-95 | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.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 |
Come si osserva nella tabella, YOLOv10x raggiunge un mAP superiore del 54,4% rispetto al 54,3% di RT-DETRv2, pur utilizzando il 23% di tempo in meno per l'inferenza e possedendo un'impronta del modello significativamente più piccola. Questa efficienza rende YOLOv10 una scelta più equilibrata per la maggior parte delle applicazioni in cui le risorse hardware sono importanti.
Punti di forza e debolezze
YOLOv10
- Punti di forza:
- Bassa latenza: Il design NMS consente un'inferenza estremamente veloce, fondamentale per le applicazioni in tempo reale.
- Efficienza delle risorse: Richiede meno parametri e FLOP, rendendolo adatto all'implementazione su dispositivi AI edge come NVIDIA Jetson o piattaforme mobili.
- Integrazione dell'ecosistema: Completamente integrato nell'ecosistema Ultralytics , facilita l'esportazione in formati come ONNX, TensorRT e CoreML.
- Punti deboli:
- Rilevamento di oggetti piccoli: Le versioni estremamente piccole (come YOLOv10n) possono compromettere una certa accuratezza a grana fine per la velocità grezza rispetto ai modelli di trasformatori più grandi.
RT-DETRv2
- Punti di forza:
- Contesto globale: L'architettura dei trasformatori eccelle nella comprensione di scene complesse e di relazioni tra oggetti.
- NativoNMS: I trasformatori evitano naturalmente l'NMS, semplificando la pipeline di post-elaborazione in modo simile a YOLOv10.
- Punti deboli:
- Costo di calcolo elevato: L'addestramento e l'inferenza richiedono una quantità significativamente maggiore di memoria CUDA e di potenza di calcolo.
- Velocità ridotta: Il meccanismo di auto-attenzione, pur essendo accurato, è computazionalmente costoso e comporta una maggiore latenza.
- Complessità di distribuzione: I modelli di trasformatori possono talvolta essere più difficili da ottimizzare per determinati hardware incorporati rispetto alle CNN.
Casi d'uso ideali
La scelta tra questi modelli dipende in gran parte dai vincoli operativi specifici.
- Scegliete YOLOv10 quando: Avete bisogno di prestazioni in tempo reale su dispositivi edge, come i droni autonomi o le app mobili. Il suo basso ingombro di memoria e l'alta velocità lo rendono perfetto per scenari come il monitoraggio del traffico o l'analisi della vendita al dettaglio.
- Scegliete RT-DETRv2 quando: Si dispone di ampie risorse GPU e si affrontano scene complesse in cui la massima precisione è l'unica priorità, come ad esempio la ricerca accademica di alto livello o l'analisi lato server di immagini difficili.
Il vantaggio di Ultralytics
Sebbene entrambi i modelli offrano caratteristiche interessanti, l'utilizzo di Ultralytics YOLO Ultralytics, tra cui YOLOv10 e il modernissimo modello YOLO11-offre un netto vantaggio nel ciclo di vita dello sviluppo.
- Facilità d'uso: Ultralytics fornisce un'API e una CLI Python unificate che standardizzano la formazione, la convalida e la distribuzione. Ciò consente agli sviluppatori di passare da YOLOv8, YOLOv10, YOLO11 e RT-DETR con una sola riga di codice.
- Efficienza della formazione: I modelli Ultralytics sono ottimizzati per una formazione efficiente, spesso convergono più velocemente e richiedono meno memoria rispetto alle implementazioni standard. Questo riduce i costi di calcolo del cloud e accelera il time-to-market.
- Versatilità: Oltre al rilevamento, il framework Ultralytics supporta la segmentazione, la stima della posa e l'OBB, consentendo di ampliare le capacità del progetto senza cambiare strumento.
- Ecosistema ben curato: Grazie agli aggiornamenti frequenti, alle guide approfondite e a una comunità fiorente, gli utenti beneficiano di miglioramenti e supporto continui.
Esecuzione di diversi modelli
Il passaggio da un'architettura all'altra avviene senza problemi con l'API di Ultralytics :
from ultralytics import RTDETR, YOLO
# Train YOLOv10
model_yolo = YOLO("yolov10n.pt")
model_yolo.train(data="coco8.yaml", epochs=100)
# Train RT-DETR
model_rtdetr = RTDETR("rtdetr-l.pt")
model_rtdetr.train(data="coco8.yaml", epochs=100)
Conclusione
Entrambi YOLOv10 e RT-DETRv2 rappresentano l'avanguardia della tecnologia di rilevamento degli oggetti. RT-DETRv2 è una scelta solida per le attività di ricerca in cui il costo computazionale è secondario rispetto alla precisione. Tuttavia, per la maggior parte delle applicazioni reali, YOLOv10 offre un equilibrio superiore. La sua combinazione di alta velocità, bassa latenza ed efficienza delle risorse lo rende il vincitore pratico per gli ingegneri che costruiscono applicazioni scalabili.
Inoltre, l'esplorazione dell'ultimo YOLO11 consente agli sviluppatori di accedere a miglioramenti ancora maggiori in termini di precisione e velocità, il tutto all'interno dell'ecosistema Ultralytics di facile utilizzo. Sia che si tratti di implementazione nel cloud o nell'edge, la piattaforma Ultralytics garantisce gli strumenti necessari per realizzare in modo efficiente soluzioni di computer vision di livello mondiale.
Esplora altri modelli
Se siete interessati a ulteriori confronti, considerate di dare un'occhiata: