Link to this sectionBaidus RT-DETR: Ein auf Vision Transformer basierender Echtzeit-Objektdetektor#
Link to this sectionÜbersicht#
Der von Baidu entwickelte Real-Time Detection Transformer (RT-DETR) ist ein hochmoderner End-to-End-Objektdetektor, der Echtzeit-Leistung bei gleichzeitig hoher Genauigkeit bietet. Er basiert auf der Idee von DETR (dem NMS-freien Framework) und führt gleichzeitig ein auf Convolution basierendes Backbone sowie einen effizienten Hybrid-Encoder ein, um Echtzeitgeschwindigkeit zu erreichen. RT-DETR verarbeitet multiskalige Merkmale effizient durch die Entkopplung von intra-skalaren Interaktionen und der klassenübergreifenden Fusion. Das Modell ist hochgradig anpassungsfähig und unterstützt eine flexible Einstellung der Inferenzgeschwindigkeit durch die Nutzung verschiedener Decoder-Layer ohne erneutes Training. RT-DETR zeichnet sich auf beschleunigten Backends wie CUDA mit TensorRT aus und übertrifft viele andere Echtzeit-Objektdetektoren.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
Übersicht über Baidus RT-DETR. Das Architekturdiagramm des RT-DETR-Modells zeigt die letzten drei Phasen des Backbones {S3, S4, S5} als Eingabe für den Encoder. Der effiziente Hybrid-Encoder wandelt multiskalige Merkmale durch Intrascale Feature Interaction (AIFI) und das Cross-Scale Feature-Fusion Module (CCFM) in eine Sequenz von Bildmerkmalen um. Die IoU-bewusste Query-Selektion wird eingesetzt, um eine feste Anzahl von Bildmerkmalen als anfängliche Objekt-Queries für den Decoder auszuwählen. Schließlich optimiert der Decoder mit zusätzlichen Vorhersage-Heads die Objekt-Queries iterativ, um Boxen und Konfidenzwerte zu generieren (Quelle).
Link to this sectionHauptmerkmale#
- Effizienter Hybrid-Encoder: Baidus RT-DETR verwendet einen effizienten Hybrid-Encoder, der multiskalige Merkmale durch die Entkopplung von intra-skalaren Interaktionen und klassenübergreifender Fusion verarbeitet. Dieses einzigartige, auf Vision Transformer basierende Design reduziert die Rechenkosten und ermöglicht eine Objekterkennung in Echtzeit.
- IoU-bewusste Query-Selektion: Baidus RT-DETR verbessert die Initialisierung von Objekt-Queries durch die Nutzung der IoU-bewussten Query-Selektion. Dies ermöglicht es dem Modell, sich auf die relevantesten Objekte in der Szene zu konzentrieren, was die Erkennungsgenauigkeit verbessert.
- Anpassbare Inferenzgeschwindigkeit: Baidus RT-DETR unterstützt flexible Anpassungen der Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoder-Layer ohne die Notwendigkeit eines erneuten Trainings. Diese Anpassungsfähigkeit erleichtert den praktischen Einsatz in verschiedenen Echtzeit-Objekterkennungsszenarien.
- NMS-freies Framework: Basierend auf DETR eliminiert RT-DETR die Notwendigkeit einer Non-Maximum Suppression Nachbearbeitung, was die Erkennungspipeline vereinfacht und potenziell die Effizienz verbessert.
- Anchor-freie Erkennung: Als Anchor-freier Detektor vereinfacht RT-DETR den Erkennungsprozess und kann die Generalisierung über verschiedene Datensätze hinweg verbessern.
Link to this sectionVortrainierte Modelle#
Die Ultralytics Python API bietet vortrainierte PaddlePaddle RT-DETR Modelle in verschiedenen Größen an:
- 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
Zusätzlich hat Baidu im Juli 2024 RTDETRv2 veröffentlicht, das die ursprüngliche Architektur weiter verbessert und verbesserte Leistungsmetriken bietet.
Link to this sectionAnwendungsbeispiele#
Dieses Beispiel bietet einfache Beispiele für das Training und die Inferenz mit RT-DETR. Für die vollständige Dokumentation zu diesen und anderen Modi, siehe die Dokumentationsseiten zu Predict, Train, Val und Export. Modelle können auch auf Cloud-GPUs über die Ultralytics Platform trainiert werden.
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")Vortrainierte RT-DETR-Gewichte unterstützen zwei Inferenz-Zeit-Einstellungen, um die Latenz ohne erneutes Training zu reduzieren:
eval_idx: Beende die Dekodierung früher. Verwende für den standardmäßigen 6-Schicht-Decoder einen nullbasierten Index (0–5).eval_idx=5verwendet alle Schichten;eval_idx=3verwendet 4 Schichten. Auf einer T4 GPU mit TensorRT v10.11 verbessert sich RT-DETR-L von 8,0 ms / 52,7 mAP auf 7,4 ms / 52,5 mAP mit 4 Schichten.num_queries: Reduziere die Objekt-Queries (Standard: 300). Eine Verringerung auf 100 kann im selben Setup 7,4 ms / 51,7 mAP auf COCO erreichen. Bei Datensätzen mit weniger Objekten pro Bild ist der mAP-Abfall in der Regel geringer, aber halte den Wert über der maximal erwarteten Anzahl an Objekten pro Bild.
Beide Einstellungen können den mAP verringern – validiere den Kompromiss auf deinem Datensatz vor der Bereitstellung.
from ultralytics import RTDETR
rtdetr = RTDETR("rtdetr-l.pt")
head = rtdetr.model.model[-1]
# Choose one or both settings after validating the speed/accuracy trade-off.
head.decoder.eval_idx = 3 # Use 4 of 6 decoder layers.
head.num_queries = 100 # Use fewer object queries.
results = rtdetr("path/to/image.jpg")
# Export uses the same decoder and query settings, including TensorRT exports.
rtdetr.export(format="engine", device=0, half=True)Link to this sectionUnterstützte Aufgaben und Modi#
Diese Tabelle präsentiert die Modelltypen, die spezifischen vortrainierten Gewichte, die von jedem Modell unterstützten Aufgaben sowie die verschiedenen Modi (Train, Val, Predict, Export), die durch ✅ Emojis gekennzeichnet sind.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Inferenz | Validierung | Training | Exportieren |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml und rtdetr-resnet101.yaml werden nur als YAML-Architekturen ausgeliefert. Ultralytics veröffentlicht vortrainierte Gewichte nur für rtdetr-l und rtdetr-x. Instanziiere die ResNet-Varianten aus der YAML (zum Beispiel RTDETR("rtdetr-resnet50.yaml")) und trainiere oder optimiere sie bei Bedarf.
Link to this sectionIdeale Anwendungsfälle#
RT-DETR eignet sich besonders gut für Anwendungen, die sowohl hohe Genauigkeit als auch Echtzeit-Leistung erfordern:
- Autonomes Fahren: Für eine zuverlässige Umgebungswahrnehmung in selbstfahrenden Systemen, bei denen sowohl Geschwindigkeit als auch Genauigkeit entscheidend sind. Erfahre mehr über KI beim autonomen Fahren.
- Fortgeschrittene Robotik: Ermöglicht Robotern die Durchführung komplexer Aufgaben, die eine genaue Objekterkennung und Interaktion in dynamischen Umgebungen erfordern. Erkunde die Rolle von KI in der Robotik.
- Medizinische Bildgebung: Für Anwendungen im Gesundheitswesen, bei denen die Präzision bei der Objekterkennung für Diagnosen entscheidend sein kann. Entdecke KI im Gesundheitswesen.
- Überwachungssysteme: Für Sicherheitsanwendungen, die eine Echtzeitüberwachung mit hoher Erkennungsgenauigkeit erfordern. Erfahre mehr über Sicherheitsalarmsysteme.
- Satellitenbildanalyse: Für die detaillierte Analyse hochauflösender Bilder, bei denen ein Verständnis des globalen Kontextes wichtig ist. Lies über Computer Vision in der Satellitenbildanalyse.
Link to this sectionZitate und Danksagungen#
Wenn du Baidus RT-DETR in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das Original-Paper:
@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}
}Für RTDETRv2 kannst du das Paper von 2024 zitieren:
@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}
}Wir möchten Baidu und dem PaddlePaddle-Team für die Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision-Community danken. Ihr Beitrag zur Fachwelt durch die Entwicklung des auf Vision Transformer basierenden Echtzeit-Objektdetektors, RT-DETR, wird sehr geschätzt.
Link to this sectionFAQ#
Link to this sectionWas ist das RT-DETR-Modell von Baidu und wie funktioniert es?#
Baidus RT-DETR (Real-Time Detection Transformer) ist ein fortschrittlicher Echtzeit-Objektdetektor, der auf der Vision-Transformer-Architektur aufbaut. Er verarbeitet multiskalige Merkmale effizient durch die Entkopplung von intra-skalaren Interaktionen und klassenübergreifender Fusion mittels seines effizienten Hybrid-Encoders. Durch die Verwendung der IoU-bewussten Query-Selektion konzentriert sich das Modell auf die relevantesten Objekte, was die Erkennungsgenauigkeit verbessert. Seine anpassungsfähige Inferenzgeschwindigkeit, die durch die Anpassung der Decoder-Layer ohne erneutes Training erreicht wird, macht RT-DETR für verschiedene Echtzeit-Objekterkennungsszenarien geeignet. Erfahre mehr über die Funktionen von RT-DETR im RT-DETR Arxiv-Paper.
Link to this sectionWie kann ich die von Ultralytics bereitgestellten vortrainierten RT-DETR-Modelle verwenden?#
Du kannst die Ultralytics Python API nutzen, um vortrainierte PaddlePaddle RT-DETR-Modelle zu verwenden. Um beispielsweise ein auf COCO val2017 vortrainiertes RT-DETR-l Modell zu laden und hohe FPS auf einer T4 GPU zu erzielen, kannst du folgendes Beispiel verwenden:
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")Link to this sectionWarum sollte ich Baidus RT-DETR gegenüber anderen Echtzeit-Objektdetektoren bevorzugen?#
Baidus RT-DETR zeichnet sich durch seinen effizienten Hybrid-Encoder und die IoU-bewusste Query-Selektion aus, die die Rechenkosten drastisch senken und gleichzeitig eine hohe Genauigkeit beibehalten. Seine einzigartige Fähigkeit, die Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoder-Layer ohne erneutes Training anzupassen, bietet eine erhebliche Flexibilität. Dies macht es besonders vorteilhaft für Anwendungen, die eine Echtzeit-Leistung auf beschleunigten Backends wie CUDA mit TensorRT erfordern, und übertrifft viele andere Echtzeit-Objektdetektoren. Die Transformer-Architektur bietet zudem ein besseres Verständnis des globalen Kontextes im Vergleich zu herkömmlichen CNN-basierten Detektoren.
Link to this sectionWie unterstützt RT-DETR eine anpassbare Inferenzgeschwindigkeit für verschiedene Echtzeit-Anwendungen?#
Baidus RT-DETR ermöglicht flexible Anpassungen der Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoder-Layer, ohne dass ein erneutes Training erforderlich ist. Diese Anpassungsfähigkeit ist entscheidend für die Skalierung der Leistung über verschiedene Echtzeit-Objekterkennungsaufgaben hinweg. Ob du eine schnellere Verarbeitung für geringere Präzisionsanforderungen oder langsamere, präzisere Erkennungen benötigst, RT-DETR kann an deine spezifischen Anforderungen angepasst werden. Diese Funktion ist besonders wertvoll bei der Bereitstellung von Modellen auf Geräten mit unterschiedlichen Rechenkapazitäten.
Link to this sectionKann ich RT-DETR-Modelle mit anderen Ultralytics-Modi verwenden, wie z. B. Training, Validierung und Export?#
Ja, RT-DETR-Modelle sind mit verschiedenen Ultralytics-Modi kompatibel, einschließlich Training, Validierung, Vorhersage und Export. Du kannst dich auf die jeweilige Dokumentation beziehen, um detaillierte Anweisungen zur Verwendung dieser Modi zu erhalten: Train, Val, Predict und Export. Dies gewährleistet einen umfassenden Workflow für die Entwicklung und Bereitstellung deiner Objekterkennungslösungen. Das Ultralytics-Framework bietet eine konsistente API über verschiedene Modellarchitekturen hinweg, was die Arbeit mit RT-DETR-Modellen einfach macht.