Zum Inhalt springen

Baidu's RT-DETR: A Vision Transformer-Based Real-Time Object Detector

Übersicht

Real-Time Detection Transformer (RT-DETR), developed by Baidu, is a cutting-edge end-to-end object detector that provides real-time performance while maintaining high accuracy. It is based on the idea of DETR (the NMS-free framework), meanwhile introducing conv-based backbone and an efficient hybrid encoder to gain real-time speed. RT-DETR efficiently processes multiscale features by decoupling intra-scale interaction and cross-scale fusion. The model is highly adaptable, supporting flexible adjustment of inference speed using different decoder layers without retraining. RT-DETR excels on accelerated backends like CUDA with TensorRT, outperforming many other real-time object detectors.



Pass auf: Real-Time Detection Transformer (RT-DETR)

Modell Beispielbild Überblick über Baidu's RT-DETR. Das Architekturdiagramm des RT-DETR Modells zeigt die letzten drei Stufen des Backbones {S3, S4, S5} als Eingabe für den Encoder. Der effiziente hybride Encoder wandelt die Multiskalenmerkmale durch die Interaktion zwischen den Skalen (AIFI) und das Cross-Scale-Feature-Fusion-Modul (CCFM) in eine Folge von Bildmerkmalen um. Die IoU-bewusste Abfrageauswahl wird eingesetzt, um eine feste Anzahl von Bildmerkmalen auszuwählen, die als anfängliche Objektabfrage für den Decoder dienen. Schließlich optimiert der Decoder mit Hilfsvorhersageköpfen iterativ die Objektabfragen, um Boxen und Konfidenzwerte zu erzeugen (Quelle).

Hauptmerkmale

  • Efficient Hybrid Encoder: Baidu's RT-DETR uses an efficient hybrid encoder that processes multiscale features by decoupling intra-scale interaction and cross-scale fusion. This unique Vision Transformers-based design reduces computational costs and allows for real-time object detection.
  • IoU-bewusste Abfrageauswahl: Baidu's RT-DETR verbessert die Initialisierung der Objektabfrage durch eine IoU-bewusste Abfrageauswahl. Dadurch kann sich das Modell auf die relevantesten Objekte in der Szene konzentrieren, was die Erkennungsgenauigkeit erhöht.
  • Anpassbare Inferenzgeschwindigkeit: Baidu's RT-DETR unterstützt die flexible Anpassung der Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoderschichten, ohne dass ein erneutes Training erforderlich ist. Diese Anpassungsfähigkeit erleichtert die praktische Anwendung in verschiedenen Echtzeit-Objekterkennungsszenarien.

Vorgefertigte Modelle

Die Ultralytics Python API bietet vortrainierte PaddlePaddle RT-DETR Modelle mit verschiedenen Skalen:

  • RT-DETR-L: 53,0% AP auf COCO val2017, 114 FPS auf T4 GPU
  • RT-DETR-X: 54,8% AP auf COCO val2017, 74 FPS auf T4 GPU

Verwendungsbeispiele

Dieses Beispiel zeigt einfache RT-DETR Trainings- und Schlussfolgerungsbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi findest du auf den Seiten Predict, Train, Val und Export docs.

Beispiel

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

Unterstützte Aufgaben und Modi

Diese Tabelle enthält die Modelltypen, die spezifischen vortrainierten Gewichte, die von jedem Modell unterstützten Aufgaben und die verschiedenen unterstützten Modi(Train, Val, Predict, Export), die durch ✅ Emojis gekennzeichnet sind.

Modell TypVortrainierte GewichteUnterstützte AufgabenInferenzValidierungAusbildungexportieren
RT-DETR Großrtdetr-l.ptObjekt-Erkennung
RT-DETR Extra-Largertdetr-x.ptObjekt-Erkennung

Zitate und Danksagungen

Wenn du Baidu's RT-DETR in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die Originalarbeit:

@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}
}

We would like to acknowledge Baidu and the PaddlePaddle team for creating and maintaining this valuable resource for the computer vision community. Their contribution to the field with the development of the Vision Transformers-based real-time object detector, RT-DETR, is greatly appreciated.

FAQ

Was ist das RT-DETR Modell von Baidu und wie funktioniert es?

Der RT-DETR (Real-Time Detection Transformer) von Baidu ist ein fortschrittlicher Echtzeit-Objektdetektor, der auf der Vision Transformer-Architektur aufbaut. Er verarbeitet multiskalige Merkmale effizient, indem er die skaleninterne Interaktion und die skalenübergreifende Fusion durch seinen effizienten Hybrid-Encoder entkoppelt. Durch die IoU-bewusste Abfrageauswahl konzentriert sich das Modell auf die relevantesten Objekte und verbessert so die Erkennungsgenauigkeit. Dank der anpassbaren Inferenzgeschwindigkeit, die durch die Anpassung der Decoderschichten ohne erneutes Training erreicht wird, eignet sich RT-DETR für verschiedene Szenarien der Objekterkennung in Echtzeit. Mehr über die Funktionen von RT-DETR erfährst du hier.

Wie kann ich die vortrainierten RT-DETR Modelle verwenden, die von Ultralytics bereitgestellt werden?

Du kannst die Ultralytics Python API nutzen, um bereits trainierte PaddlePaddle RT-DETR Modelle zu verwenden. Um zum Beispiel ein RT-DETR-l Modell zu laden, das mit COCO val2017 trainiert wurde, und hohe FPS auf T4 GPU zu erreichen, kannst du das folgende Beispiel verwenden:

Beispiel

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

Warum sollte ich RT-DETR von Baidu anderen Echtzeit-Objektdetektoren vorziehen?

Baidus RT-DETR zeichnet sich durch einen effizienten hybriden Encoder und eine IoU-bewusste Abfrageauswahl aus, die die Rechenkosten drastisch senken und gleichzeitig eine hohe Genauigkeit gewährleisten. Seine einzigartige Fähigkeit, die Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoderschichten ohne erneutes Training anzupassen, verleiht ihm große Flexibilität. Das macht ihn besonders vorteilhaft für Anwendungen, die eine Echtzeitleistung auf beschleunigten Backends wie CUDA mit TensorRT erfordern, und übertrifft damit viele andere Echtzeit-Objektdetektoren.

Wie unterstützt RT-DETR die Anpassung der Inferenzgeschwindigkeit für verschiedene Echtzeitanwendungen?

Baidu's RT-DETR allows flexible adjustments of inference speed by using different decoder layers without requiring retraining. This adaptability is crucial for scaling performance across various real-time object detection tasks. Whether you need faster processing for lower precision needs or slower, more accurate detections, RT-DETR can be tailored to meet your specific requirements.

Kann ich RT-DETR Modelle mit anderen Ultralytics Modi verwenden, z. B. Training, Validierung und Export?

Ja, RT-DETR Modelle sind mit verschiedenen Ultralytics Modi kompatibel, darunter Training, Validierung, Vorhersage und Export. Detaillierte Anweisungen zur Verwendung dieser Modi findest du in der jeweiligen Dokumentation: Trainieren, Validieren, Vorhersagen und Exportieren. So wird ein umfassender Arbeitsablauf für die Entwicklung und den Einsatz deiner Objekterkennungslösungen gewährleistet.

📅 Created 11 months ago ✏️ Updated 28 days ago

Kommentare