RT-DETR di Baidu: un Vision Transformer-Based Real-Time Object Detector
Panoramica
Il 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 privo di NMS), introducendo nel frattempo backbone basato su convoluzione 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 layer del decoder senza necessità di riaddestramento. RT-DETR eccelle su backend accelerati come CUDA con TensorRT, superando molti altri rilevatori di oggetti in tempo reale.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
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 tra caratteristiche intra-scala (AIFI) e il modulo di fusione delle caratteristiche cross-scale (CCFM). La selezione delle query basata su IoU viene impiegata per selezionare un numero fisso di caratteristiche dell'immagine da utilizzare come query iniziali dell'oggetto per il decoder. Infine, il decoder con teste di predizione ausiliarie ottimizza iterativamente le query dell'oggetto per generare BBox e punteggi di confidenza (sorgente).
Funzionalità chiave
- Efficient Hybrid Encoder: RT-DETR di Baidu utilizza un efficiente encoder ibrido 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 object detection.
- IoU-aware Query Selection: RT-DETR di Baidu migliora l'inizializzazione delle query dell'oggetto utilizzando la selezione delle query basata su IoU. Ciò consente al modello di concentrarsi sugli oggetti più rilevanti nella scena, migliorando la precisione del rilevamento.
- Adaptable Inference Speed: RT-DETR di Baidu supporta regolazioni flessibili della velocità di inferenza utilizzando diversi layer del decoder senza la necessità di riaddestramento. Questa adattabilità facilita l'applicazione pratica in vari scenari di rilevamento oggetti in tempo reale.
- NMS-Free Framework: Basato su DETR, RT-DETR elimina la necessità del non-maximum suppression post-processing, semplificando la pipeline di rilevamento e potenzialmente migliorando l'efficienza.
- Anchor-Free Detection: Come anchor-free detector, RT-DETR semplifica il processo di rilevamento e può migliorare la generalizzazione su diversi dataset.
Modelli Preaddestrati
L'API Python di Ultralytics fornisce modelli PaddlePaddle RT-DETR preaddestrati con diverse scale:
- RT-DETR-L: 53.0% AP su COCO val2017, 114 FPS su T4 GPU
- RT-DETR-X: 54.8% AP su COCO val2017, 74 FPS su T4 GPU
Inoltre, Baidu ha rilasciato RTDETRv2 nel 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 di RT-DETR. Per la documentazione completa su questi e altri modalità vedi le Predire, Train, Val e Esporta pagine di documentazione. I modelli possono anche essere addestrati su GPU cloud tramite Ultralytics Platform.
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")Attività e modalità supportate
Questa tabella presenta i tipi di modello, i pesi preaddestrati specifici, le attività supportate da ciascun modello e le varie modalità (Train , Val, Predire, Esporta) supportate, indicate dalle emoji ✅.
| Tipo di modello | Pesi preaddestrati | Attività supportate | Inferenza | Validazione | Addestramento | Esporta |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Object Detection | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Object Detection | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml e rtdetr-resnet101.yaml vengono forniti solo come architetture YAML. Ultralytics rilascia pesi preaddestrati solo per rtdetr-l e rtdetr-x. Istanzia le varianti ResNet da YAML (per esempio, RTDETR("rtdetr-resnet50.yaml")) e addestrale o effettua il fine-tuning come necessario.
Casi d'uso ideali
RT-DETR è particolarmente adatto per applicazioni che richiedono sia un'elevata precisione che prestazioni in tempo reale:
- Guida autonoma: Per un'affidabile percezione ambientale nei sistemi a guida autonoma dove sia la velocità che la precisione sono fondamentali. Scopri di più sull'IA nelle auto a guida autonoma.
- Robotica avanzata: Per consentire ai robot di eseguire compiti complessi che richiedono un riconoscimento preciso degli oggetti e un'interazione in ambienti dinamici. Esplora il ruolo dell'IA nella robotica.
- Imaging medico: Per applicazioni nell'assistenza sanitaria dove la precisione nel rilevamento degli oggetti può essere cruciale per la diagnostica. Scopri l'IA nella sanità.
- Sistemi di sorveglianza: Per applicazioni di sicurezza che richiedono un monitoraggio in tempo reale con un'elevata precisione di rilevamento. Informati 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 sulla computer vision nelle immagini satellitari.
Citazioni e ringraziamenti
Se utilizzi RT-DETR di Baidu nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare il documento 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, puoi citare il documento 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}
}Vorremmo ringraziare Baidu e il PaddlePaddle team per aver creato e mantenuto questa risorsa preziosa per la computer vision comunità. Il loro contributo al campo 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 costruito 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 delle query basata su IoU, il modello si concentra sugli oggetti più rilevanti, migliorando la precisione di rilevamento. La sua velocità di inferenza adattabile, ottenuta regolando i layer del decoder senza riaddestramento, rende RT-DETR adatto a vari scenari di rilevamento oggetti in tempo reale. Scopri di più sulle funzionalità di RT-DETR nel documento Arxiv su RT-DETR.
Come posso utilizzare i modelli RT-DETR preaddestrati forniti da Ultralytics?
Puoi sfruttare l'API Python di Ultralytics per utilizzare i modelli PaddlePaddle RT-DETR preaddestrati. Ad esempio, per caricare un modello RT-DETR-l preaddestrato su COCO val2017 e ottenere FPS elevati su T4 GPU, puoi utilizzare il seguente 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")Perché dovrei scegliere RT-DETR di Baidu rispetto ad altri rilevatori di oggetti in tempo reale?
RT-DETR di Baidu si distingue grazie al suo efficiente encoder ibrido e alla selezione delle query basata su IoU, che riducono drasticamente i costi computazionali mantenendo un'elevata precisione. La sua capacità unica di regolare la velocità di inferenza utilizzando diversi layer del decoder senza riaddestramento aggiunge una flessibilità significativa. Ciò lo rende particolarmente vantaggioso per 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 tradizionali rilevatori 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 layer del decoder senza richiedere riaddestramento. Questa adattabilità è cruciale per scalare le prestazioni su vari compiti di rilevamento oggetti in tempo reale. Che tu abbia bisogno di un'elaborazione più veloce per esigenze di precisione o rilevamenti più lenti e precisi, RT-DETR può essere personalizzato per soddisfare i tuoi requisiti specifici. Questa funzionalità è particolarmente preziosa quando si distribuiscono modelli su dispositivi con capacità computazionali variabili.
Posso utilizzare i modelli RT-DETR con altre modalità Ultralytics, come training, validation ed export?
Sì, i modelli RT-DETR sono compatibili con varie modalità Ultralytics, inclusi training, validation, prediction ed export. Puoi fare riferimento alla documentazione rispettiva per istruzioni dettagliate su come utilizzare queste modalità: Train, Val, Predire, e Esporta. Questo garantisce un workflow completo per sviluppare e distribuire le tue soluzioni di rilevamento oggetti. Il framework Ultralytics fornisce un'API coerente tra diverse architetture di modelli, rendendo facile lavorare con i modelli RT-DETR.