Baidu's RT-DETR: Ein Vision-Transformer-basierter Echtzeit-Objektdetektor
Übersicht
Real-Time Detection Transformer (RT-DETR), entwickelt von Baidu, ist ein hochmoderner End-to-End-Objektdetektor, der Echtzeitleistung bei hoher Genauigkeit bietet. Er basiert auf der Idee von DETR (dem NMS-freien Framework), wobei ein konv-basiertes Backbone und ein effizienter hybrider Kodierer eingeführt wurden, um die Echtzeitgeschwindigkeit zu erhöhen. RT-DETR verarbeitet effizient multiskalige Merkmale durch Entkopplung von skaleninterner Interaktion und skalenübergreifender Fusion. Das Modell ist hochgradig anpassungsfähig und unterstützt eine flexible Anpassung der Inferenzgeschwindigkeit unter Verwendung verschiedener Decoderschichten ohne erneutes Training. RT-DETR zeichnet sich durch beschleunigte Backends wie CUDA mit TensorRT aus und übertrifft viele andere Echtzeit-Objektdetektoren.
Beobachten: Echtzeit-Detektions-Transformator (RT-DETR)
Überblick über Baidu's RT-DETR. Das Architekturdiagramm des Modells RT-DETR zeigt die letzten drei Stufen des Backbone {S3, S4, S5} als Eingabe für den Encoder. Der effiziente hybride Kodierer wandelt multiskalige Merkmale in eine Sequenz von Bildmerkmalen um, und zwar durch die Interaktion von Merkmalen innerhalb der Skala (AIFI) und das Modul für die skalenübergreifende Fusion von Merkmalen (CCFM). 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).
Wesentliche Merkmale
- Effizienter Hybrid-Encoder: Baidu's 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 von Objektabfragen durch die Verwendung einer IoU-bewussten 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 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.
Vortrainierte 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
Beispiele für die Verwendung
Dieses Beispiel enthält einfache RT-DETR Trainings- und Inferenzbeispiele. Die vollständige Dokumentation zu diesen und anderen Modi finden Sie 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")
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 | Vorgefertigte Gewichte | Unterstützte Aufgaben | Inferenz | Validierung | Ausbildung | Exportieren |
---|---|---|---|---|---|---|
RT-DETR Groß | rtdetr-l.pt | Objekt-Erkennung | ✅ | ✅ | ✅ | ✅ |
RT-DETR Extra-groß | rtdetr-x.pt | Objekt-Erkennung | ✅ | ✅ | ✅ | ✅ |
Zitate und Danksagungen
Wenn Sie Baidu's RT-DETR in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das Originalpapier:
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, wird sehr geschätzt.
FAQ
Was 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, indem er die skaleninterne Interaktion und die skalenübergreifende Fusion durch seinen effizienten Hybrid-Encoder entkoppelt. Durch den Einsatz einer IoU-bewussten Abfrageauswahl konzentriert sich das Modell auf die relevantesten Objekte und verbessert so die Erkennungsgenauigkeit. Die anpassungsfähige Inferenzgeschwindigkeit, die durch die Anpassung der Decoderschichten ohne erneutes Training erreicht wird, macht RT-DETR für verschiedene Szenarien der Objekterkennung in Echtzeit geeignet. Erfahren Sie hier mehr über die Funktionen von RT-DETR .
Wie kann ich die vortrainierten Modelle von RT-DETR verwenden, die von Ultralytics bereitgestellt werden?
Sie können die Ultralytics Python API nutzen, um bereits trainierte PaddlePaddle RT-DETR Modelle zu verwenden. Um beispielsweise ein RT-DETR-l Modell zu laden, das mit COCO val2017 trainiert wurde, und hohe FPS auf T4 GPU zu erzielen, 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")
Warum sollte ich RT-DETR von Baidu anderen Echtzeit-Objektdetektoren vorziehen?
Baidu's RT-DETR zeichnet sich durch seinen effizienten hybriden Encoder und die IoU-bewusste Abfrageauswahl aus, die die Rechenkosten drastisch reduzieren und gleichzeitig eine hohe Genauigkeit gewährleisten. Seine einzigartige Fähigkeit, die Inferenzgeschwindigkeit durch die Verwendung verschiedener Decoderschichten 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.
Wie unterstützt RT-DETR eine anpassbare Inferenzgeschwindigkeit für verschiedene Echtzeitanwendungen?
Baidu's RT-DETR ermöglicht flexible Anpassungen 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. Ganz gleich, ob Sie eine schnellere Verarbeitung für geringere Genauigkeitsanforderungen oder eine langsamere, genauere Erkennung benötigen, RT-DETR kann auf Ihre spezifischen Anforderungen zugeschnitten werden.
Kann ich RT-DETR Modelle mit anderen Ultralytics Modi, wie Training, Validierung und Export, verwenden?
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 jeweiligen Dokumentation: Trainieren, Validieren, Vorhersagen und Exportieren. Dies gewährleistet einen umfassenden Arbeitsablauf für die Entwicklung und Bereitstellung Ihrer Objekterkennungslösungen.