Meet YOLO26: next-gen vision AI.

Link to this sectionBaidus RT-DETR: Ein auf Transformer basierender Echtzeit-Objektdetektor#

Link to this sectionÜbersicht#

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) und führt gleichzeitig ein auf Convolution basierendes Backbone sowie einen effizienten hybriden Encoder ein, um Echtzeitgeschwindigkeit zu erzielen. RT-DETR verarbeitet multiskalige Merkmale effizient durch die Entkopplung von Intra-Scale-Interaktion und Cross-Scale-Fusion. Das Modell ist hochgradig anpassungsfähig und unterstützt die flexible Einstellung der Inferenzgeschwindigkeit durch die Verwendung 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 🚀

Überblick über die Architektur des Baidu RT-DETR Modells Überblick über Baidus RT-DETR. Das Diagramm der RT-DETR Modellarchitektur zeigt die letzten drei Stufen des Backbones {S3, S4, S5} als Eingang für den Encoder. Der effiziente hybride 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 verwendet, 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 Vorhersageköpfen die Objekt-Queries iterativ, um Boxen und Konfidenzwerte zu generieren (Quelle).

Link to this sectionHauptfunktionen#

  • Effizienter Hybrid-Encoder: Baidus RT-DETR verwendet einen effizienten hybriden Encoder, der multiskalige Merkmale durch die Entkopplung von Intra-Scale-Interaktion und Cross-Scale-Fusion verarbeitet. Dieses einzigartige Design auf Basis von Vision Transformers reduziert die Rechenkosten und ermöglicht eine Echtzeit-Objekterkennung.
  • IoU-bewusste Query-Selektion: Baidus RT-DETR verbessert die Initialisierung von Objekt-Queries durch den Einsatz von IoU-bewusster Query-Selektion. Dies ermöglicht es dem Modell, sich auf die relevantesten Objekte in der Szene zu konzentrieren, was die Genauigkeit der Erkennung verbessert.
  • Anpassbare Inferenzgeschwindigkeit: Baidus RT-DETR unterstützt flexible Anpassungen der Inferenzgeschwindigkeit durch die Verwendung unterschiedlicher 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 Erkennungs-Pipeline vereinfacht und die Effizienz potenziell steigert.
  • 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 mit 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, das die ursprüngliche Architektur mit verbesserten Leistungsmetriken weiter optimiert.

Link to this sectionAnwendungsbeispiele#

Dieses Beispiel bietet einfache RT-DETR Trainings- und Inferenzbeispiele. Für eine vollständige Dokumentation zu diesen und anderen Modi siehe die Dokumentationsseiten für Predict, Train, Val und Export. Modelle können auch über die Ultralytics Platform auf Cloud-GPUs 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 für schnellere Inferenz

Die vortrainierten RT-DETR Gewichte unterstützen zwei Einstellungen während der Inferenzzeit, um die Latenz ohne erneutes Training zu reduzieren:

  • eval_idx: Vorzeitiger Abbruch der Dekodierung. Verwende für den Standard-6-Layer-Decoder einen nullbasierten Index (05). eval_idx=5 verwendet alle Layer; eval_idx=3 verwendet 4 Layer. 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 Layern.
  • num_queries: Reduzierung der Objekt-Queries (Standard: 300). Eine Senkung auf 100 kann im gleichen Setup 7,4 ms / 51,7 mAP auf COCO erreichen. Auf Datensätzen mit weniger Objekten pro Bild ist der mAP-Abfall typischerweise geringer, halte den Wert jedoch über der maximal erwarteten Objektanzahl pro Bild.

Beide Einstellungen können den mAP senken – validiere den Kompromiss vor dem Deployment auf deinem Datensatz.

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, quantize=16)

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 AufgabenInferenceValidationTrainingExportieren
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 YAML (zum Beispiel RTDETR("rtdetr-resnet50.yaml")) und trainiere oder optimiere sie bei Bedarf.

Link to this sectionIdeale Anwendungsfälle#

RT-DETR ist besonders gut für Anwendungen geeignet, die sowohl hohe Genauigkeit als auch Echtzeitleistung erfordern:

Link to this sectionZitate und Danksagungen#

Wenn du Baidus RT-DETR in deiner Forschung 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 dafür danken, dass sie diese wertvolle Ressource für die Computer Vision-Community erstellt und gepflegt haben. Ihr Beitrag zum Fachgebiet durch die Entwicklung des auf Vision Transformers basierenden Echtzeit-Objektdetektors RT-DETR wird sehr geschätzt.

Link to this sectionFAQ#

Link to this sectionWas ist das Baidu 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 aufbaut. Er verarbeitet multiskalige Merkmale effizient durch die Entkopplung von Intra-Scale-Interaktion und Cross-Scale-Fusion mittels seines effizienten hybriden Encoders. Durch den Einsatz von IoU-bewusster Query-Selektion konzentriert sich das Modell auf die relevantesten Objekte und erhöht so die Erkennungsgenauigkeit. Seine anpassbare 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 RT-DETR Funktionen im RT-DETR Arxiv Paper.

Link to this sectionWie kann ich die vortrainierten RT-DETR Modelle von Ultralytics nutzen?#

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 erreichen, kannst du 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")

Link to this sectionWarum sollte ich Baidus RT-DETR anderen Echtzeit-Objektdetektoren vorziehen?#

Baidus RT-DETR zeichnet sich durch seinen effizienten hybriden Encoder und die IoU-bewusste Query-Selektion aus, die die Rechenkosten drastisch senken und gleichzeitig eine hohe Genauigkeit beibehalten. Die einzigartige Fähigkeit, die Inferenzgeschwindigkeit durch die Verwendung unterschiedlicher Decoder-Layer ohne erneutes Training anzupassen, bietet enorme Flexibilität. Dies macht ihn besonders vorteilhaft für Anwendungen, die Echtzeitleistung auf beschleunigten Backends wie CUDA mit TensorRT erfordern, und stellt viele andere Echtzeit-Objektdetektoren in den Schatten. 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 Echtzeitanwendungen?#

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, um die Leistung über verschiedene Echtzeit-Objekterkennungsaufgaben hinweg zu skalieren. Egal, ob du eine schnellere Verarbeitung für geringere Präzisionsanforderungen oder langsamere, genauere Erkennungen benötigst, RT-DETR kann an deine spezifischen Anforderungen angepasst werden. Diese Funktion ist besonders wertvoll beim Deployment von Modellen auf Geräten mit unterschiedlichen Rechenkapazitäten.

Link to this sectionKann ich RT-DETR Modelle mit anderen Ultralytics Modi verwenden, wie 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 Nutzung 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