Vai al contenuto

RT-DETR di Baidu: un rilevatore di oggetti in tempo reale basato su un trasformatore di visione

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 privo di NMS), introducendo però una struttura portante basata su conv e un efficiente codificatore ibrido per ottenere velocità in tempo reale. RT-DETR elabora in modo efficiente le caratteristiche multiscala disaccoppiando l'interazione intra-scala e la fusione interscala. Il modello è altamente adattabile e supporta una regolazione flessibile della velocità di inferenza utilizzando diversi livelli di decodifica senza riqualificazione. RT-DETR eccelle su backend accelerati come CUDA con TensorRT, superando molti altri rilevatori di oggetti in tempo reale.



Guarda: Trasformatore di rilevamento in tempo reale (RT-DETR)

Modello immagine di esempio Panoramica di Baidu RT-DETR. Il diagramma dell'architettura del modello RT-DETR mostra gli ultimi tre stadi del backbone {S3, S4, S5} come ingresso al codificatore. L'efficiente codificatore 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 delle query IoU-aware viene impiegata per selezionare un numero fisso di caratteristiche dell'immagine da utilizzare come query iniziali dell'oggetto per il decodificatore. Infine, il decodificatore con teste di predizione ausiliarie ottimizza iterativamente le query degli oggetti per generare box e punteggi di confidenza (fonte).

Caratteristiche principali

  • Encoder ibrido efficiente: Il sito RT-DETR di Baidu utilizza un efficiente codificatore ibrido che elabora caratteristiche multiscala disaccoppiando l'interazione intra-scala e la fusione interscala. Questo esclusivo design basato su Vision Transformers riduce i costi computazionali e consente di rilevare gli oggetti in tempo reale.
  • Selezione delle query consapevole dell'IoU: Il sito RT-DETR di Baidu migliora l'inizializzazione delle query sugli oggetti utilizzando la selezione delle query IoU-aware. Questo permette al modello di concentrarsi sugli oggetti più rilevanti della scena, migliorando l'accuratezza del rilevamento.
  • Velocità di inferenza adattabile: RT-DETR di Baidu supporta la regolazione flessibile della velocità di inferenza utilizzando diversi livelli di decodifica senza necessità di riqualificazione. Questa adattabilità facilita l'applicazione pratica in vari scenari di rilevamento di oggetti in tempo reale.

Modelli pre-addestrati

L'API Ultralytics Python fornisce modelli preaddestrati PaddlePaddle RT-DETR 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

Esempi di utilizzo

Questo esempio fornisce dei semplici esempi di addestramento e inferenza su RT-DETR . Per una documentazione completa su queste e altre modalità, consulta le pagine dei documenti 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 specifici pre-addestrati, i compiti supportati da ogni modello e le varie modalità(Train, Val, Predict, Export) supportate, indicate da ✅ emoji.

Tipo di modello Pesi pre-addestrati Attività supportate Inferenza Convalida Formazione Esportazione
RT-DETR Grande rtdetr-l.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅
RT-DETR Extra-Large rtdetr-x.pt Rilevamento degli oggetti ✅ ✅ ✅ ✅

Citazioni e ringraziamenti

Se utilizzi il sito 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}
}

Desideriamo ringraziare Baidu e il suo team per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision. PaddlePaddle per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision. Il loro contributo al campo con lo sviluppo del rilevatore di oggetti in tempo reale basato su Vision Transformers, RT-DETR, è molto apprezzato.

DOMANDE FREQUENTI

Cos'è e come funziona il modello RT-DETR di Baidu?

RT-DETR (Real-Time Detection Transformer) di Baidu è un avanzato rilevatore di oggetti in tempo reale basato sull'architettura Vision Transformer. Elabora in modo efficiente le caratteristiche multiscala disaccoppiando l'interazione intrascala e la fusione interscala grazie al suo efficiente codificatore ibrido. Utilizzando la selezione delle query IoU-aware, il modello si concentra sugli oggetti più rilevanti, migliorando l'accuratezza del rilevamento. La velocità di inferenza adattabile, ottenuta regolando gli strati del decodificatore senza riqualificarlo, rende RT-DETR adatto a diversi scenari di rilevamento di oggetti in tempo reale. Scopri di più sulle caratteristiche di RT-DETR qui.

Come posso utilizzare i modelli preaddestrati di RT-DETR forniti da Ultralytics?

Puoi sfruttare l'API Ultralytics Python per utilizzare i modelli preaddestrati PaddlePaddle RT-DETR . Ad esempio, per caricare un modello RT-DETR-l pre-addestrato su COCO val2017 e ottenere alti FPS su T4 GPU, 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 l'efficiente encoder ibrido e la selezione delle query consapevole dell'IoU, che riducono drasticamente i costi computazionali mantenendo un'elevata precisione. La sua capacità unica di regolare la velocità di inferenza utilizzando diversi livelli di decodifica senza riqualificarsi aggiunge una notevole flessibilità. Questo lo rende particolarmente vantaggioso per le applicazioni che richiedono prestazioni in tempo reale su backend accelerati come CUDA con TensorRT, surclassando molti altri rilevatori di oggetti in tempo reale.

In che modo RT-DETR supporta la velocità di inferenza adattabile a diverse applicazioni in tempo reale?

Il sito RT-DETR di Baidu consente di regolare in modo flessibile la velocità di inferenza utilizzando diversi livelli di decodifica senza richiedere una riqualificazione. Questa adattabilità è fondamentale per scalare le prestazioni tra le varie attività di rilevamento di oggetti in tempo reale. Sia che tu abbia bisogno di un'elaborazione più veloce per esigenze di minore precisione, sia che tu abbia bisogno di rilevamenti più lenti e accurati, RT-DETR può essere adattato per soddisfare le tue esigenze specifiche.

Posso utilizzare i modelli di RT-DETR con altre modalità di Ultralytics , come la formazione, la convalida e l'esportazione?

Sì, i modelli di RT-DETR sono compatibili con diverse modalità di Ultralytics , tra cui formazione, convalida, previsione ed esportazione. Per istruzioni dettagliate su come utilizzare queste modalità, puoi consultare la rispettiva documentazione: Train, Val, Predict ed Export. Questo garantisce un flusso di lavoro completo per lo sviluppo e la distribuzione delle tue soluzioni di rilevamento degli oggetti.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (15), RizwanMunawar (1)

Commenti