Baidus RT-DETR: Ein Vision Transformer-basierter Echtzeit-Objektdetektor
Überblick
Der Real-Time Detection Transformer (RT-DETR), entwickelt von Baidu, ist ein hochmoderner End-to-End-Objektdetektor, der Echtzeitleistung bei gleichzeitig hoher Genauigkeit bietet. Er basiert auf der Idee von DETR (dem NMS-freien Framework), wobei ein konvolutionsbasiertes Backbone und ein effizienter hybrider Encoder eingeführt werden, um Echtzeitgeschwindigkeit zu erreichen. RT-DETR verarbeitet multiskalare Merkmale effizient durch Entkopplung der Intra-Skalen-Interaktion und Cross-Skalen-Fusion. Das Modell ist hochgradig anpassungsfähig und unterstützt die flexible Anpassung der Inference-Geschwindigkeit durch die Verwendung verschiedener Decoder-Schichten ohne erneutes Training. RT-DETR brilliert auf beschleunigten Backends wie CUDA mit TensorRT und übertrifft viele andere Echtzeit-Objektdetektoren.
Ansehen: Wie man Baidus RT-DETR für die Objekterkennung verwendet | Inferenz und Benchmarking mit Ultralytics 🚀
Überblick über Baidus 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 Hybrid-Encoder transformiert multiskalare Merkmale durch intrascale Feature Interaction (AIFI) und das Cross-Scale Feature-Fusion Module (CCFM) in eine Sequenz von Bildmerkmalen. Die IoU-aware Query Selection wird eingesetzt, um eine feste Anzahl von Bildmerkmalen auszuwählen, die als initiale Objekt-Queries für den Decoder dienen. Schließlich optimiert der Decoder mit zusätzlichen Vorhersage-Heads iterativ Objekt-Queries, um Bounding-Boxes und Konfidenzwerte zu generieren (Quelle), oder Auto-Modus mit angegebener Auslastungsfraktion (
Hauptmerkmale
- Effizienter Hybrid-Encoder: RT-DETR von Baidu verwendet einen effizienten Hybrid-Encoder, der Multiskalen-Features durch Entkopplung von Intra-Scale-Interaktion und Cross-Scale-Fusion verarbeitet. Dieses einzigartige, auf Vision Transformers basierende Design reduziert die Rechenkosten und ermöglicht die Objekterkennung in Echtzeit.
- IoU-bewusste Abfrageauswahl: Baidus RT-DETR verbessert die Initialisierung von Objekt-Queries durch die Nutzung einer IoU-bewussten Abfrageauswahl. Dies ermöglicht es dem Modell, sich auf die relevantesten Objekte in der Szene zu konzentrieren und die detect-Genauigkeit zu erhöhen.
- Anpassbare Inferenzgeschwindigkeit: RT-DETR von Baidu unterstützt flexible Anpassungen 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.
- NMS-Free Framework: Basierend auf DETR eliminiert RT-DETR die Notwendigkeit der Non-Maximum Suppression-Nachbearbeitung, was die detect-Pipeline vereinfacht und potenziell die Effizienz verbessert.
- Anchor-Free Detection: Als ein Anchor-Free Detektor vereinfacht RT-DETR den Erkennungsprozess und kann die Generalisierung über verschiedene Datensätze hinweg verbessern.
Vorab trainierte Modelle
Die Ultralytics Python-API bietet vortrainierte PaddlePaddle RT-DETR-Modelle in verschiedenen Skalierungen:
- 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, welches die ursprüngliche Architektur mit verbesserten Leistungskennzahlen weiter optimiert.
Anwendungsbeispiele
Dieses Beispiel bietet einfache RT-DETR-Trainings- und Inferenzbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi finden Sie auf den Dokumentationsseiten Vorhersagen, Trainieren, Validieren und Exportieren.
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 zeigt die Modelltypen, die spezifischen vortrainierten Gewichte, die von jedem Modell unterstützten Aufgaben und die verschiedenen Modi (Trainieren, Validieren, Vorhersagen, Exportieren), die unterstützt werden, gekennzeichnet durch ✅ Emojis.
| Modelltyp | Vortrainierte Gewichte | Unterstützte Aufgaben | Inferenz | Validierung | Training | Export |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Objekterkennung | ✅ | ✅ | ✅ | ✅ |
Ideale Anwendungsfälle
RT-DETR eignet sich besonders gut für Anwendungen, die sowohl hohe Genauigkeit als auch Echtzeitleistung erfordern:
- Autonomes Fahren: Für eine zuverlässige Umgebungswahrnehmung in selbstfahrenden Systemen, bei denen sowohl Geschwindigkeit als auch Genauigkeit entscheidend sind. Erfahren Sie mehr über KI in selbstfahrenden Autos.
- Fortschrittliche Robotik: Ermöglicht Robotern die Ausführung komplexer Aufgaben, die eine genaue Objekterkennung und Interaktion in dynamischen Umgebungen erfordern. Entdecken Sie die Rolle der KI in der Robotik.
- Medizinische Bildgebung: Für Anwendungen im Gesundheitswesen, bei denen die Präzision der Objekterkennung für die Diagnose entscheidend sein kann. Entdecken Sie KI im Gesundheitswesen.
- Überwachungssysteme: Für Sicherheitsanwendungen, die eine Echtzeitüberwachung mit hoher Erkennungsgenauigkeit erfordern. Learn about security alarm systems.
- Satellitenbildanalyse: Für die detaillierte Analyse von hochauflösendem Bildmaterial, bei dem das Verständnis des globalen Kontexts wichtig ist. Lesen Sie mehr über Computer Vision in der Satellitenbildanalyse.
Zitate und Danksagungen
Wenn Sie Baidus RT-DETR in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das Originalpapier:
@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 können Sie 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 das PaddlePaddle-Team für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community anerkennen. Ihr Beitrag zu diesem Bereich mit der Entwicklung des auf Vision Transformers basierenden Echtzeit-Objektdetektors RT-DETR wird sehr geschätzt.
FAQ
Was ist Baidus RT-DETR-Modell und wie funktioniert es?
Baidus RT-DETR (Real-Time Detection Transformer) ist ein fortschrittlicher Echtzeit-Objektdetektor, der auf der Vision Transformer-Architektur basiert. Er verarbeitet multiskalare Merkmale effizient, indem er die Interaktion innerhalb der Skalen und die skalenübergreifende Fusion durch seinen effizienten Hybrid-Encoder entkoppelt. Durch den Einsatz von IoU-bewusster Abfrageauswahl konzentriert sich das Modell auf die relevantesten Objekte und verbessert so die Erkennungsgenauigkeit. Seine anpassungsfähige Inferenzgeschwindigkeit, die durch die Anpassung der Decoder-Schichten ohne erneutes Training erreicht wird, macht RT-DETR für verschiedene Echtzeit-Objekterkennungsszenarien geeignet. Erfahren Sie mehr über die RT-DETR-Funktionen im RT-DETR Arxiv-Paper.
Wie kann ich die von Ultralytics bereitgestellten vortrainierten RT-DETR-Modelle verwenden?
Sie können 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 erreichen, können Sie 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 Baidus RT-DETR gegenüber anderen Echtzeit-Objektdetektoren wählen?
Baidus RT-DETR zeichnet sich durch seinen effizienten Hybrid-Encoder und die IoU-bewusste Abfrageauswahl aus, die die Rechenkosten drastisch senken und gleichzeitig eine hohe Genauigkeit beibehalten. Seine einzigartige Fähigkeit, die Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoder-Schichten ohne erneutes Training anzupassen, bietet erhebliche Flexibilität. Dies macht es besonders vorteilhaft für Anwendungen, die Echtzeitleistung auf beschleunigten Backends wie CUDA mit TensorRT erfordern, und übertrifft damit viele andere Echtzeit-Objektdetektoren. Die Transformer-Architektur bietet zudem ein besseres globales Kontextverständnis im Vergleich zu traditionellen CNN-basierten Detektoren.
Wie unterstützt RT-DETR eine anpassbare Inferenzgeschwindigkeit für verschiedene Echtzeitanwendungen?
RT-DETR von Baidu ermöglicht flexible Anpassungen der Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoder-Schichten, ohne dass ein erneutes Training erforderlich ist. Diese Anpassungsfähigkeit ist entscheidend für die Skalierung der Leistung bei verschiedenen Echtzeit-Objekterkennungsaufgaben. Ob Sie eine schnellere Verarbeitung für geringere Präzision benötigen oder langsamere, genauere Erkennungen, RT-DETR kann an Ihre spezifischen Anforderungen angepasst werden. Diese Funktion ist besonders wertvoll, wenn Modelle auf Geräten mit unterschiedlichen Rechenkapazitäten eingesetzt 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, einschließlich Training, Validierung, Vorhersage und Export. Detaillierte Anweisungen zur Verwendung dieser Modi finden Sie in der entsprechenden Dokumentation: Train, Val, Predict und Export. Dies gewährleistet einen umfassenden Workflow für die Entwicklung und Bereitstellung Ihrer Objekterkennungslösungen. Das Ultralytics-Framework bietet eine konsistente API für verschiedene Modellarchitekturen, wodurch die Arbeit mit RT-DETR-Modellen vereinfacht wird.