Zum Inhalt springen

Baidus RT-DETR: Ein Vision Transformer-basierter Echtzeit-Objektdetektor

Überblick

Real-Time Detection TransformerRT-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 Framework), wobei ein Conv-basiertes Backbone und ein effizienter hybrider Encoder eingeführt wurden, um die Echtzeitgeschwindigkeit zu erhöhen. RT-DETR verarbeitet multiskalige Merkmale effizient, indem es die skaleninterne Interaktion und die skalenübergreifende Fusion entkoppelt. 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 auf beschleunigten Backends wie CUDA mit TensorRT aus und übertrifft viele andere Echtzeit-Objektdetektoren.



Ansehen: Verwendung von RT-DETR von Baidu für Objekterkennung | Inferenz und Benchmarking mit Ultralytics 🚀

Beispielbild des ModellsÜberblick über Baidus RT-DETR. Das Diagramm der RT-DETR zeigt die letzten drei Stufen des Backbone {S3, S4, S5} als Eingang zum 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 Abfrageauswahl wird eingesetzt, um eine feste Anzahl von Bildmerkmalen auszuwählen, die als anfängliche Objektabfragen für den Decoder dienen. Schließlich optimiert der Decoder mit Hilfsvorhersageköpfen iterativ die Objektabfragen, um Boxen und Konfidenzwerte zu erzeugen (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 Abfrageauswahl: RT-DETR von Baidu verbessert die Initialisierung von Objektabfragen durch die Verwendung einer IoU Abfrageauswahl. Dadurch kann sich das Modell auf die relevantesten Objekte in der Szene konzentrieren, was die Erkennungsgenauigkeit erhöht.
  • 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 Framework: Auf der Grundlage von DETR macht RT-DETR die Nachbearbeitung der nichtmaximalen Unterdrückung überflüssig, was die Erkennungspipeline vereinfacht und die Effizienz potenziell 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: 53,0% AP auf COCO val2017, 114 FPS auf T4 GPU
  • RT-DETR: 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.

ModelltypVortrainierte GewichteUnterstützte AufgabenInferenzValidierungTrainingExport
RT-DETR Largertdetr-l.ptObjekterkennung
RT-DETR Extra-Largertdetr-x.ptObjekterkennung

Ideale Anwendungsfälle

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

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?

RT-DETR (Real-Time Detection Transformer) von Baidu 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 Abfrageauswahl konzentriert sich das Modell auf die relevantesten Objekte und verbessert so die Erkennungsgenauigkeit. Die anpassungsfähige Inferenzgeschwindigkeit, die durch die Anpassung von Decoderschichten ohne erneutes Training erreicht wird, macht RT-DETR für verschiedene Echtzeit-Objekterkennungsszenarien geeignet. Erfahren Sie mehr über die Funktionen von RT-DETR im RT-DETR Arxiv Paper.

Wie kann ich die von Ultralytics bereitgestellten vortrainierten RT-DETR-Modelle verwenden?

Sie können diePython Ultralytics nutzen, um vorab trainierteRT-DETR zu verwenden. Um beispielsweise ein auf COCO val2017 vortrainiertes RT-DETR zu laden und hohe FPS auf der 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")
# 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?

Das RT-DETR von Baidu zeichnet sich durch seinen effizienten hybriden Encoder und die IoU 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, sorgt für erhebliche Flexibilität. Dies macht es besonders vorteilhaft für Anwendungen, die Echtzeitleistung auf beschleunigten Backends wie CUDA mit TensorRT erfordern, und übertrifft viele andere Echtzeit-Objektdetektoren. Die Transformer-Architektur bietet auch 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.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 1 Monat
glenn-jocherRizwanMunawarleonnilLaughing-qMatthewNoyce

Kommentare