Salta para o conteúdo

Baidu's RT-DETR: A Vision Transformer-Based Real-Time Object Detector

Visão geral

Real-Time Detection Transformer (RT-DETR), developed by Baidu, is a cutting-edge end-to-end object detector that provides real-time performance while maintaining high accuracy. It is based on the idea of DETR (the NMS-free framework), meanwhile introducing conv-based backbone and an efficient hybrid encoder to gain real-time speed. RT-DETR efficiently processes multiscale features by decoupling intra-scale interaction and cross-scale fusion. The model is highly adaptable, supporting flexible adjustment of inference speed using different decoder layers without retraining. RT-DETR excels on accelerated backends like CUDA with TensorRT, outperforming many other real-time object detectors.



Observa: Transformador de deteção em tempo real (RT-DETR)

Imagem de exemplo de modelo Visão geral da Baidu RT-DETR. O diagrama de arquitetura do modelo RT-DETR mostra as últimas três fases do backbone {S3, S4, S5} como entrada para o codificador. O codificador híbrido eficiente transforma as características multiescala numa sequência de características de imagem através da interação de características intra-escala (AIFI) e do módulo de fusão de características inter-escala (CCFM). A seleção de consultas com reconhecimento de IoU é utilizada para selecionar um número fixo de características de imagem para servir de consultas de objectos iniciais para o descodificador. Finalmente, o descodificador com cabeças de previsão auxiliares optimiza iterativamente as consultas de objectos para gerar caixas e pontuações de confiança (fonte).

Características principais

  • Efficient Hybrid Encoder: Baidu's RT-DETR uses an efficient hybrid encoder that processes multiscale features by decoupling intra-scale interaction and cross-scale fusion. This unique Vision Transformers-based design reduces computational costs and allows for real-time object detection.
  • Seleção de consultas com conhecimento da IoU: O RT-DETR da Baidu melhora a inicialização da consulta de objectos utilizando a seleção de consultas com conhecimento da IoU. Isto permite que o modelo se concentre nos objectos mais relevantes da cena, melhorando a precisão da deteção.
  • Velocidade de inferência adaptável: O RT-DETR da Baidu suporta ajustes flexíveis da velocidade de inferência, utilizando diferentes camadas de descodificadores sem necessidade de reciclagem. Esta adaptabilidade facilita a aplicação prática em vários cenários de deteção de objectos em tempo real.

Modelos pré-treinados

A API Ultralytics Python fornece modelos pré-treinados PaddlePaddle RT-DETR com diferentes escalas:

  • RT-DETR-L: 53.0% de PA no COCO val2017, 114 FPS no T4 GPU
  • RT-DETR-X: 54,8% de PA no COCO val2017, 74 FPS no T4 GPU

Exemplos de utilização

Este exemplo fornece exemplos simples de treinamento e inferência em RT-DETR . Para obter a documentação completa sobre estes e outros modos, consulta as páginas de documentação Predict, Train, Val e Export.

Exemplo

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

Tarefas e modos suportados

Esta tabela apresenta os tipos de modelos, os pesos pré-treinados específicos, as tarefas suportadas por cada modelo e os vários modos(Train, Val, Predict, Export) que são suportados, indicados por emojis ✅.

Tipo de modeloPesos pré-treinadosTarefas suportadasInferênciaValidaçãoFormaçãoExportação
RT-DETR Grandertdetr-l.ptDeteção de objectos
RT-DETR Extra-grandertdetr-x.ptDeteção de objectos

Citações e agradecimentos

Se utilizares o RT-DETR da Baidu no teu trabalho de investigação ou desenvolvimento, por favor cita o artigo original:

@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 would like to acknowledge Baidu and the PaddlePaddle team for creating and maintaining this valuable resource for the computer vision community. Their contribution to the field with the development of the Vision Transformers-based real-time object detector, RT-DETR, is greatly appreciated.

FAQ

O que é o modelo RT-DETR da Baidu e como funciona?

O RT-DETR (Real-Time Detection Transformer) da Baidu é um detetor avançado de objectos em tempo real, construído com base na arquitetura do Vision Transformer. Processa eficazmente características multiescala, dissociando a interação intra-escala e a fusão inter-escala através do seu eficiente codificador híbrido. Ao empregar a seleção de consulta consciente da IoU, o modelo concentra-se nos objectos mais relevantes, melhorando a precisão da deteção. A sua velocidade de inferência adaptável, conseguida através do ajuste das camadas do descodificador sem reciclagem, torna o RT-DETR adequado para vários cenários de deteção de objectos em tempo real. Sabe mais sobre as funcionalidades do RT-DETR aqui.

Como posso utilizar os modelos RT-DETR pré-treinados fornecidos por Ultralytics?

Podes tirar partido da API Ultralytics Python para utilizar modelos pré-treinados PaddlePaddle RT-DETR . Por exemplo, para carregar um modelo RT-DETR-l pré-treinado no COCO val2017 e obter um FPS elevado no T4 GPU, podes utilizar o seguinte exemplo:

Exemplo

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

Por que razão devo escolher o RT-DETR da Baidu em vez de outros detectores de objectos em tempo real?

O RT-DETR da Baidu destaca-se pelo seu eficiente codificador híbrido e pela seleção de consultas com conhecimento da IoU, que reduzem drasticamente os custos computacionais, mantendo uma elevada precisão. A sua capacidade única de ajustar a velocidade de inferência através da utilização de diferentes camadas de descodificadores sem reciclagem acrescenta uma flexibilidade significativa. Isto torna-o particularmente vantajoso para aplicações que requerem desempenho em tempo real em backends acelerados como CUDA com TensorRT, superando muitos outros detectores de objectos em tempo real.

Como é que o RT-DETR suporta uma velocidade de inferência adaptável para diferentes aplicações em tempo real?

Baidu's RT-DETR allows flexible adjustments of inference speed by using different decoder layers without requiring retraining. This adaptability is crucial for scaling performance across various real-time object detection tasks. Whether you need faster processing for lower precision needs or slower, more accurate detections, RT-DETR can be tailored to meet your specific requirements.

Posso utilizar os modelos de RT-DETR com outros modos de Ultralytics , tais como formação, validação e exportação?

Sim, os modelos do RT-DETR são compatíveis com vários modos do Ultralytics , incluindo treinamento, validação, previsão e exportação. Podes consultar a respectiva documentação para obteres instruções detalhadas sobre como utilizar estes modos: Treina, valida, prevê e exporta. Isto assegura um fluxo de trabalho abrangente para desenvolver e implementar as tuas soluções de deteção de objectos.

📅 Created 11 months ago ✏️ Updated 28 days ago

Comentários