Meet YOLO26: next-gen vision AI.

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 🚀

Baidu RT-DETR Modellarchitektur-Übersicht Ü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.

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")
Kompromisse bei schnellerer Inferenz

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 (05). eval_idx=5 verwendet alle Schichten; eval_idx=3 verwendet 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.

ModelltypVortrainierte GewichteUnterstützte AufgabenInferenzValidierungTrainingExportieren
RT-DETR Largertdetr-l.ptObjekterkennung
RT-DETR Extra-Largertdetr-x.ptObjekterkennung
Nur-Architektur-Varianten

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:

Link to this sectionZitate und Danksagungen#

Wenn du Baidus RT-DETR in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte das Original-Paper:

Zitat
@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:

Zitat
@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:

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")

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.

Kommentare