RT-DETR di Baidu: Un rilevatore di oggetti in tempo reale basato su Vision Transformer
Panoramica
Real-Time Detection Transformer (RT-DETR), sviluppato da Baidu, è un rilevatore di oggetti end-to-end all'avanguardia che offre prestazioni in tempo reale mantenendo un'elevata precisione. Si basa sull'idea di DETR (il framework senza NMS), introducendo nel frattempo un backbone basato su conv e un efficiente encoder ibrido per ottenere velocità in tempo reale. RT-DETR elabora in modo efficiente le caratteristiche multiscala disaccoppiando l'interazione intra-scala e la fusione cross-scala. Il modello è altamente adattabile e supporta la regolazione flessibile della velocità di inferenza utilizzando diversi livelli di decoder senza riqualificazione. RT-DETR eccelle su backend accelerati come CUDA con TensorRT, superando molti altri rilevatori di oggetti in tempo reale.
Guarda: Transformer di rilevamento in tempo reale (RT-DETR)
Panoramica di RT-DETR di Baidu. Il diagramma dell'architettura del modello RT-DETR mostra gli ultimi tre stadi del backbone {S3, S4, S5} come input per l'encoder. L'efficiente encoder ibrido trasforma le caratteristiche multiscala in una sequenza di caratteristiche dell'immagine attraverso l'interazione delle caratteristiche intrascala (AIFI) e il modulo di fusione delle caratteristiche interscala (CCFM). La selezione della query IoU-aware viene impiegata per selezionare un numero fisso di caratteristiche dell'immagine da utilizzare come query di oggetti iniziali per il decoder. Infine, il decoder con testine di predizione ausiliarie ottimizza iterativamente le query di oggetti per generare caselle e punteggi di confidenza (source).
Caratteristiche principali
- Encoder Ibrido Efficiente: RT-DETR di Baidu utilizza un encoder ibrido efficiente che elabora le caratteristiche multiscala disaccoppiando l'interazione intra-scala e la fusione cross-scala. Questo design unico basato su Vision Transformers riduce i costi computazionali e consente il rilevamento di oggetti in tempo reale.
- Selezione di Query IoU-aware: RT-DETR di Baidu migliora l'inizializzazione della query degli oggetti utilizzando la selezione di query IoU-aware. Ciò consente al modello di concentrarsi sugli oggetti più rilevanti nella scena, migliorando l'accuratezza del rilevamento.
- Velocità di inferenza adattabile: RT-DETR di Baidu supporta regolazioni flessibili della velocità di inferenza utilizzando diversi livelli di decodifica senza la necessità di un nuovo addestramento. Questa adattabilità facilita l'applicazione pratica in vari scenari di rilevamento di oggetti in tempo reale.
- Framework senza NMS: Basato su DETR, RT-DETR elimina la necessità di post-elaborazione non-maximum suppression, semplificando la pipeline di rilevamento e potenzialmente migliorando l'efficienza.
- Rilevamento senza Anchor: In quanto detector senza anchor, RT-DETR semplifica il processo di rilevamento e può migliorare la generalizzazione tra diversi set di dati.
Modelli pre-addestrati
L'API python di Ultralytics fornisce modelli PaddlePaddle RT-DETR pre-addestrati con diverse scale:
- RT-DETR-L: 53.0% AP su COCO val2017, 114 FPS su GPU T4
- RT-DETR-X: 54.8% AP su COCO val2017, 74 FPS su GPU T4
Inoltre, Baidu ha rilasciato RTDETRv2 a luglio 2024, che migliora ulteriormente l'architettura originale con metriche di performance potenziate.
Esempi di utilizzo
Questo esempio fornisce semplici esempi di training e inferenza RT-DETR. Per la documentazione completa su questi e altri modi, consultare le pagine della documentazione Predict, Train, Val ed Export.
Esempio
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg
Attività e modalità supportate
Questa tabella presenta i tipi di modello, i pesi pre-addestrati specifici, le attività supportate da ciascun modello e le varie modalità (Train, Val, Predict, Export) supportate, indicate da emoji ✅.
Tipo di modello | Pesi pre-addestrati | Task supportati | Inferenza | Validazione | Training | Esportazione |
---|---|---|---|---|---|---|
RT-DETR Large | rtdetr-l.pt | Rilevamento di oggetti | ✅ | ✅ | ✅ | ✅ |
RT-DETR Extra-Large | rtdetr-x.pt | Rilevamento di oggetti | ✅ | ✅ | ✅ | ✅ |
Casi d'uso ideali
RT-DETR è particolarmente adatto per applicazioni che richiedono sia alta precisione che prestazioni in tempo reale:
- Guida autonoma: Per una percezione ambientale affidabile nei sistemi di guida autonoma dove sia la velocità che l'accuratezza sono fondamentali. Scopri di più sull'AI nelle auto a guida autonoma.
- Robotica avanzata: Permette ai robot di eseguire compiti complessi che richiedono un riconoscimento e un'interazione accurati con gli oggetti in ambienti dinamici. Esplora il ruolo dell'IA nella robotica.
- Imaging medico: Per applicazioni nel settore sanitario in cui la precisione nel rilevamento degli oggetti può essere cruciale per la diagnostica. Scopri l'IA nel settore sanitario.
- Sistemi di sorveglianza: Per applicazioni di sicurezza che richiedono il monitoraggio in tempo reale con elevata accuratezza di rilevamento. Scopri di più sui sistemi di allarme di sicurezza.
- Analisi di immagini satellitari: Per un'analisi dettagliata di immagini ad alta risoluzione dove è importante la comprensione del contesto globale. Leggi di più sulla computer vision nelle immagini satellitari.
Citazioni e riconoscimenti
Se utilizzi RT-DETR di Baidu nel tuo lavoro di ricerca o sviluppo, cita l'articolo originale:
@misc{lv2023detrs,
title={DETRs Beat YOLOs on Real-time Object Detection},
author={Wenyu Lv and Shangliang Xu and Yian Zhao and Guanzhong Wang and Jinman Wei and Cheng Cui and Yuning Du and Qingqing Dang and Yi Liu},
year={2023},
eprint={2304.08069},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Per RTDETRv2, è possibile citare il paper del 2024:
@misc{lv2024rtdetrv2,
title={RTDETRv2: All-in-One Detection Transformer Beats YOLO and DINO},
author={Wenyu Lv and Yian Zhao and Qinyao Chang and Kui Huang and Guanzhong Wang and Yi Liu},
year={2024},
eprint={2407.17140},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Desideriamo ringraziare Baidu e il team di PaddlePaddle per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision. Il loro contributo al settore con lo sviluppo del rilevatore di oggetti in tempo reale basato su Vision Transformers, RT-DETR, è molto apprezzato.
FAQ
Cos'è il modello RT-DETR di Baidu e come funziona?
RT-DETR (Real-Time Detection Transformer) di Baidu è un rilevatore di oggetti in tempo reale avanzato, basato sull'architettura Vision Transformer. Elabora in modo efficiente le caratteristiche multiscala disaccoppiando l'interazione intra-scala e la fusione cross-scala attraverso il suo efficiente encoder ibrido. Impiegando la selezione di query IoU-aware, il modello si concentra sugli oggetti più rilevanti, migliorando la precisione del rilevamento. La sua velocità di inferenza adattabile, ottenuta regolando i livelli del decoder senza riaddestramento, rende RT-DETR adatto a vari scenari di rilevamento di oggetti in tempo reale. Scopri di più sulle caratteristiche di RT-DETR nel paper Arxiv di RT-DETR.
Come posso usare i modelli RT-DETR pre-addestrati forniti da Ultralytics?
Puoi sfruttare l'API python di Ultralytics per usare modelli PaddlePaddle RT-DETR pre-addestrati. Ad esempio, per caricare un modello RT-DETR-l pre-addestrato su COCO val2017 e ottenere FPS elevati su GPU T4, puoi utilizzare il seguente esempio:
Esempio
from ultralytics import RTDETR
# Load a COCO-pretrained RT-DETR-l model
model = RTDETR("rtdetr-l.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the RT-DETR-l model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
# Load a COCO-pretrained RT-DETR-l model and train it on the COCO8 example dataset for 100 epochs
yolo train model=rtdetr-l.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained RT-DETR-l model and run inference on the 'bus.jpg' image
yolo predict model=rtdetr-l.pt source=path/to/bus.jpg
Perché dovrei scegliere RT-DETR di Baidu rispetto ad altri rilevatori di oggetti in tempo reale?
RT-DETR di Baidu si distingue per il suo efficiente encoder ibrido e la selezione di query IoU-aware, che riducono drasticamente i costi computazionali pur mantenendo un'elevata precisione. La sua capacità unica di regolare la velocità di inferenza utilizzando diversi livelli di decodifica senza un nuovo addestramento aggiunge una flessibilità significativa. Questo lo rende particolarmente vantaggioso per le applicazioni che richiedono prestazioni in tempo reale su backend accelerati come CUDA con TensorRT, superando molti altri rilevatori di oggetti in tempo reale. L'architettura transformer fornisce anche una migliore comprensione del contesto globale rispetto ai rilevatori tradizionali basati su CNN.
In che modo RT-DETR supporta una velocità di inferenza adattabile per diverse applicazioni in tempo reale?
RT-DETR di Baidu consente regolazioni flessibili della velocità di inferenza utilizzando diversi livelli di decodifica senza richiedere un nuovo addestramento. Questa adattabilità è fondamentale per scalare le prestazioni in varie attività di rilevamento oggetti in tempo reale. Sia che tu abbia bisogno di un'elaborazione più rapida per esigenze di precisione inferiori o di rilevamenti più lenti e accurati, RT-DETR può essere adattato per soddisfare le tue esigenze specifiche. Questa funzionalità è particolarmente utile quando si distribuiscono modelli su dispositivi con diverse capacità computazionali.
Posso utilizzare i modelli RT-DETR con altre modalità Ultralytics, come l'addestramento, la convalida e l'esportazione?
Sì, i modelli RT-DETR sono compatibili con varie modalità Ultralytics, tra cui training, validazione, previsione ed esportazione. Puoi fare riferimento alla rispettiva documentazione per istruzioni dettagliate su come utilizzare queste modalità: Train, Val, Predict ed Export. Ciò garantisce un flusso di lavoro completo per lo sviluppo e l'implementazione delle tue soluzioni di rilevamento oggetti. Il framework Ultralytics fornisce un'API coerente tra diverse architetture di modelli, semplificando il lavoro con i modelli RT-DETR.