Zum Inhalt springen

Baidu's RT-DETR: Ein Vision-Transformer-basierter Echtzeit-Objektdetektor

Übersicht

Der von Baidu entwickelte Real-Time Detection Transformer (RT-DETR) ist ein hochmoderner End-to-End-Objektdetektor, der Echtzeitleistung bei hoher Genauigkeit bietet. Er basiert auf der DETR-Idee (dem NMS-freien Framework) und führt ein Conv-basiertes Backbone und einen effizienten hybriden Encoder ein, um die Echtzeitgeschwindigkeit zu erhöhen. RT-DETR verarbeitet multiskalige Merkmale effizient, indem es die skaleninterne Interaktion und die skalenübergreifende Fusion entkoppelt. Das Modell ist hochgradig anpassungsfähig und unterstützt die flexible Anpassung der Inferenzgeschwindigkeit mit verschiedenen Decoderschichten ohne erneutes Training. RT-DETR ist auf beschleunigten Backends wie CUDA mit TensorRT besonders leistungsfähig und übertrifft viele andere Echtzeit-Objektdetektoren.



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

  • Effizienter Hybrid-Encoder: Baidus RT-DETR verwendet einen effizienten Hybrid-Encoder, der multiskalige Merkmale durch Entkopplung von skaleninterner Interaktion und skalenübergreifender Fusion verarbeitet. Dieses einzigartige, auf Vision Transformers basierende Design reduziert die Rechenkosten und ermöglicht die Objekterkennung in Echtzeit.
  • 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 Typ Vortrainierte Gewichte Unterstützte Aufgaben Inferenz Validierung Ausbildung exportieren
RT-DETR Groß rtdetr-l.pt Objekt-Erkennung
RT-DETR Extra-Large rtdetr-x.pt Objekt-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}
}

Wir möchten uns bei Baidu und dem PaddlePaddle Team für die Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision Community. Ihr Beitrag zur Entwicklung des auf Vision Transformers basierenden Echtzeit-Objektdetektors RT-DETR ist sehr zu schätzen.

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?

Baidus RT-DETR ermöglicht eine flexible Anpassung der Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoderschichten, ohne dass ein erneutes Training erforderlich ist. Diese Anpassungsfähigkeit ist entscheidend für die Skalierung der Leistung bei verschiedenen Echtzeit-Objekterkennungsaufgaben. Egal, ob du eine schnellere Verarbeitung für geringere Genauigkeitsanforderungen oder eine langsamere, genauere Erkennung brauchst, RT-DETR kann auf deine spezifischen Anforderungen zugeschnitten werden.

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.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (15), RizwanMunawar (1)

Kommentare