Overslaan naar inhoud

Baidu's RT-DETR: een op Vision Transformer gebaseerde realtime objectdetector

Overzicht

Real-Time Detection Transformer (RT-DETR), ontwikkeld door Baidu, is een geavanceerde end-to-end objectdetector die real-time prestaties levert met behoud van hoge nauwkeurigheid. Het is gebaseerd op het idee van DETR (het NMS-vrije raamwerk) en introduceert ondertussen een conv-gebaseerde ruggengraat en een efficiënte hybride encoder om realtime snelheid te verkrijgen. RT-DETR verwerkt functies op meerdere schalen efficiënt door intra-scale interactie en cross-scale fusie te ontkoppelen. Het model is in hoge mate aanpasbaar en ondersteunt flexibele aanpassing van de inferentiesnelheid met behulp van verschillende decoderlagen zonder hertraining. RT-DETR blinkt uit op versnelde backends zoals CUDA met TensorRT en presteert beter dan veel andere realtime objectdetectors.



Kijken: Real-Time Opsporingstransformator (RT-DETR)

Modelvoorbeeldafbeelding Overzicht van Baidu's RT-DETR. Het architectuurdiagram van het RT-DETR model toont de laatste drie stappen van de backbone {S3, S4, S5} als invoer voor de encoder. De efficiënte hybride encoder transformeert multischaalkenmerken in een reeks beeldkenmerken via intraschaalkenmerkinteractie (AIFI) en cross-scalekenmerkfusiemodule (CCFM). De IoU-bewuste vraagselectie wordt gebruikt om een vast aantal beeldkenmerken te selecteren die dienen als initiële objectvragen voor de decoder. Ten slotte optimaliseert de decoder met hulpvoorspellingskoppen iteratief de objectquery's om boxen en vertrouwensscores te genereren (bron).

Belangrijkste kenmerken

  • Efficiënte hybride encoder: Baidu's RT-DETR gebruikt een efficiënte hybride encoder die functies met meerdere schalen verwerkt door intra-scale interactie en cross-scale fusie te ontkoppelen. Dit unieke, op Vision Transformers gebaseerde ontwerp verlaagt de computerkosten en maakt realtime objectdetectie mogelijk.
  • IoU-bewuste query-selectie: Baidu's RT-DETR verbetert de initialisatie van objectquery's door gebruik te maken van IoU-bewuste query-selectie. Hierdoor kan het model zich richten op de meest relevante objecten in de scène, waardoor de detectienauwkeurigheid wordt verbeterd.
  • Aanpasbare inferentiesnelheid: RT-DETR van Baidu ondersteunt flexibele aanpassingen van de inferentiesnelheid door verschillende decoderlagen te gebruiken zonder dat hertraining nodig is. Dit aanpassingsvermogen vergemakkelijkt praktische toepassing in verschillende realtime objectdetectiescenario's.

Voorgetrainde modellen

De Ultralytics Python API biedt voorgetrainde PaddlePaddle RT-DETR modellen met verschillende schalen:

  • RT-DETRL: 53,0% AP op COCO-val2017, 114 FPS op T4 GPU
  • RT-DETR-X: 54,8% AP op COCO val2017, 74 FPS op T4 GPU

Voorbeelden

Dit voorbeeld geeft eenvoudige RT-DETR training en inferentie voorbeelden. Voor volledige documentatie over deze en andere modi zie de Predict, Train, Val en Export docs pagina's.

Voorbeeld

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

Ondersteunde taken en modi

Deze tabel toont de modeltypes, de specifieke voorgetrainde gewichten, de taken die door elk model worden ondersteund en de verschillende modi(Train, Val, Predict, Export) die worden ondersteund, aangegeven met ✅ emoji's.

Type model Voorgetrainde gewichten Ondersteunde taken Inferentie Validatie Training Exporteer
RT-DETR Groot rtdetr-l.pt Objectdetectie ✅ ✅ ✅ ✅
RT-DETR Extra groot rtdetr-x.pt Objectdetectie ✅ ✅ ✅ ✅

Citaten en Erkenningen

Als je Baidu's RT-DETR gebruikt in je onderzoek of ontwikkeling, citeer dan het originele artikel:

@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}
}

We willen graag Baidu en het PaddlePaddle team voor het maken en onderhouden van deze waardevolle bron voor de computer vision gemeenschap. Hun bijdrage aan het veld met de ontwikkeling van de op Vision Transformers gebaseerde realtime objectdetector, RT-DETR, wordt zeer gewaardeerd.

FAQ

Wat is Baidu's RT-DETR model en hoe werkt het?

Baidu's RT-DETR (Real-Time Detection Transformer) is een geavanceerde realtime objectdetector die is gebouwd op de Vision Transformer-architectuur. Het verwerkt functies met meerdere schalen op een efficiënte manier door intra-scale interactie en cross-scale fusie te ontkoppelen via de efficiënte hybride encoder. Door gebruik te maken van IoU-bewuste vraagselectie richt het model zich op de meest relevante objecten, waardoor de detectienauwkeurigheid wordt verbeterd. De aanpasbare inferentiesnelheid, die wordt bereikt door decoderlagen aan te passen zonder hertraining, maakt RT-DETR geschikt voor verschillende realtime objectdetectiescenario's. Lees hier meer over de functies van RT-DETR .

Hoe kan ik de voorgetrainde RT-DETR modellen van Ultralytics gebruiken?

Je kunt Ultralytics Python API gebruiken om vooraf getrainde PaddlePaddle RT-DETR modellen te gebruiken. Om bijvoorbeeld een RT-DETR-l model te laden dat vooraf is getraind op COCO val2017 en een hoge FPS te bereiken op T4 GPU, kun je het volgende voorbeeld gebruiken:

Voorbeeld

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

Waarom zou ik RT-DETR van Baidu kiezen boven andere realtime objectdetectors?

Baidu's RT-DETR valt op door zijn efficiënte hybride encoder en IoU-bewuste querieselectie, die de computerkosten drastisch verlagen met behoud van een hoge nauwkeurigheid. De unieke mogelijkheid om de inferentiesnelheid aan te passen door verschillende decoderlagen te gebruiken zonder hertraining voegt aanzienlijke flexibiliteit toe. Dit maakt het bijzonder voordelig voor toepassingen die realtime prestaties vereisen op versnelde backends zoals CUDA met TensorRT, die veel andere realtime objectdetectors overtreffen.

Hoe ondersteunt RT-DETR aanpasbare inferentiesnelheid voor verschillende realtime toepassingen?

Baidu's RT-DETR maakt flexibele aanpassingen van de inferentiesnelheid mogelijk door verschillende decoderlagen te gebruiken zonder dat hertraining nodig is. Dit aanpassingsvermogen is cruciaal voor het schalen van prestaties in verschillende realtime objectdetectietaken. Of je nu snellere verwerking nodig hebt voor lagere precisiebehoeften of langzamere, nauwkeurigere detecties, RT-DETR kan op maat worden gemaakt om aan je specifieke eisen te voldoen.

Kan ik RT-DETR modellen gebruiken met andere Ultralytics modi, zoals training, validatie en export?

Ja, RT-DETR modellen zijn compatibel met verschillende Ultralytics modi, waaronder training, validatie, voorspelling en export. Je kunt de betreffende documentatie raadplegen voor gedetailleerde instructies over het gebruik van deze modi: Trainen, Validering, Voorspellen en Exporteren. Dit zorgt voor een uitgebreide workflow voor het ontwikkelen en implementeren van je oplossingen voor objectdetectie.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (15), RizwanMunawar (1)

Reacties