Baidus RT-DETR: Ein Vision Transformer-basierter Echtzeit-Objektdetektor
Überblick
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) und führt gleichzeitig einen konv-basierten Backbone und einen effizienten Hybrid-Encoder ein, um Echtzeitgeschwindigkeit zu erzielen. RT-DETR verarbeitet Multiscale-Features effizient, indem es die Intra-Scale-Interaktion und die Cross-Scale-Fusion entkoppelt. Das Modell ist hochgradig anpassbar und unterstützt die flexible Anpassung der Inferenzgeschwindigkeit mithilfe verschiedener Decoder-Schichten, ohne dass ein erneutes Training erforderlich ist. RT-DETR zeichnet sich auf beschleunigten Backends wie CUDA mit TensorRT aus und übertrifft viele andere Echtzeit-Objektdetektoren.
Ansehen: Real-Time Detection Transformer (RT-DETR)
Ü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 wandelt multiskalige Features durch Intrascale Feature Interaction (AIFI) und Cross-Scale Feature-Fusion Module (CCFM) in eine Sequenz von Bild-Features um. Die IoU-basierte Query-Auswahl wird verwendet, um eine feste Anzahl von Bild-Features auszuwählen, die als anfängliche Objekt-Queries für den Decoder dienen. Schließlich optimiert der Decoder mit zusätzlichen Vorhersageköpfen iterativ Objekt-Queries, um Boxen 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-gesteuerte Abfrageauswahl: RT-DETR von Baidu verbessert die Initialisierung von Objekt-Queries durch die Verwendung von IoU-gesteuerter Abfrageauswahl. Dies ermöglicht es dem Modell, sich auf die relevantesten Objekte in der Szene zu konzentrieren, wodurch die Erkennungsgenauigkeit verbessert wird.
- 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-freies Framework: Basierend auf DETR macht RT-DETR die Non-Maximum Suppression-Nachbearbeitung überflüssig, was die Detektionspipeline 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 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
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, angegeben 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 Multiscale-Features effizient, indem er die Intra-Scale-Interaktion und die Cross-Scale-Fusion durch seinen effizienten Hybrid-Encoder entkoppelt. Durch den Einsatz von IoU-Aware Query Selection konzentriert sich das Modell auf die relevantesten Objekte, was die Erkennungsgenauigkeit erhöht. Seine anpassbare Inferenzgeschwindigkeit, die durch die Anpassung der Decoder-Schichten ohne Retraining 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 RT-DETR-l-Modell zu laden, das auf COCO val2017 vortrainiert wurde und hohe FPS auf einer T4-GPU erzielt, 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?
RT-DETR von Baidu zeichnet sich durch seinen effizienten Hybrid-Encoder und die IoU-basierte Abfrageauswahl aus, die die Rechenkosten drastisch reduzieren und gleichzeitig eine hohe Genauigkeit gewährleisten. Seine einzigartige Fähigkeit, die Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoder-Schichten ohne erneutes Training anzupassen, bietet eine erhebliche Flexibilität. Dies macht es besonders vorteilhaft für Anwendungen, die eine Echtzeit-Performance auf beschleunigten Backends wie CUDA mit TensorRT erfordern und viele andere Echtzeit-Objektdetektoren übertreffen. Die Transformer-Architektur bietet zudem ein besseres globales Kontextverständnis im Vergleich zu herkömmlichen 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.