Ir para o conteúdo

RT-DETR da Baidu: Um Detector de Objetos em Tempo Real Baseado em Transformer de Visão

Visão geral

O Transformer de Detecção em Tempo Real (RT-DETR), desenvolvido pela Baidu, é um detector de objetos de ponta que oferece desempenho em tempo real, mantendo alta precisão. Ele é baseado na ideia do DETR (a estrutura livre de NMS), enquanto introduz um backbone baseado em conv e um codificador híbrido eficiente para obter velocidade em tempo real. O RT-DETR processa eficientemente recursos multiescala, desacoplando a interação intraescala e a fusão entre escalas. O modelo é altamente adaptável, suportando o ajuste flexível da velocidade de inferência usando diferentes camadas de decodificador sem retreinamento. O RT-DETR se destaca em backends acelerados como CUDA com TensorRT, superando muitos outros detectores de objetos em tempo real.



Assista: Real-Time Detection Transformer (RT-DETR)

Imagem de exemplo do modelo Visão geral do RT-DETR da Baidu. O diagrama da arquitetura do modelo RT-DETR mostra os três últimos estágios do backbone {S3, S4, S5} como a entrada para o encoder. O encoder híbrido eficiente transforma recursos multiescala em uma sequência de recursos de imagem por meio da interação de recursos intraescala (AIFI) e do módulo de fusão de recursos entre escalas (CCFM). A seleção de consulta com reconhecimento de IoU é empregada para selecionar um número fixo de recursos de imagem para servir como consultas de objeto iniciais para o decoder. Finalmente, o decoder com cabeças de previsão auxiliares otimiza iterativamente as consultas de objeto para gerar caixas e pontuações de confiança (fonte).

Principais Características

  • Efficient Hybrid Encoder: O RT-DETR da Baidu usa um encoder híbrido eficiente que processa recursos multiescala, dissociando a interação intraescala e a fusão entre escalas. Este design exclusivo baseado em Vision Transformers reduz os custos computacionais e permite a detecção de objetos em tempo real.
  • IoU-aware Query Selection: O RT-DETR da Baidu melhora a inicialização da consulta de objetos utilizando a seleção de consulta com reconhecimento de IoU. Isso permite que o modelo se concentre nos objetos mais relevantes na cena, aumentando a precisão da detecção.
  • Adaptable Inference Speed: O RT-DETR da Baidu suporta ajustes flexíveis da velocidade de inferência usando diferentes camadas de decoder sem a necessidade de retreinamento. Essa adaptabilidade facilita a aplicação prática em vários cenários de detecção de objetos em tempo real.
  • Framework Livre de NMS: Baseado em DETR, o RT-DETR elimina a necessidade de pós-processamento de supressão não máxima, simplificando o pipeline de detecção e potencialmente melhorando a eficiência.
  • Detecção Sem Âncora: Como um detector sem âncora, o RT-DETR simplifica o processo de detecção e pode melhorar a generalização em diferentes conjuntos de dados.

Modelos Pré-treinados

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

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

Além disso, a Baidu lançou o RTDETRv2 em julho de 2024, que aprimora ainda mais a arquitetura original com métricas de desempenho aprimoradas.

Exemplos de uso

Este exemplo fornece exemplos simples de treinamento e inferência do RT-DETR. Para obter documentação completa sobre estes e outros modos, consulte 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 modelo, 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 Modelo Pesos Pré-treinados Tarefas Suportadas Inferência Validação Treinamento Exportar
RT-DETR Grande rtdetr-l.pt Detecção de Objetos
RT-DETR Extra-Grande rtdetr-x.pt Detecção de Objetos

Casos de Uso Ideais

O RT-DETR é particularmente adequado para aplicações que exigem alta precisão e desempenho em tempo real:

Citações e Agradecimentos

Se você usar o RT-DETR da Baidu em seu trabalho de pesquisa ou desenvolvimento, cite 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}
}

Para RTDETRv2, você pode citar o artigo de 2024:

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

Gostaríamos de agradecer à Baidu e à equipe do PaddlePaddle por criar e manter este recurso valioso para a comunidade de visão computacional. Sua contribuição para o campo com o desenvolvimento do detector de objetos em tempo real baseado em Vision Transformers, RT-DETR, é muito apreciada.

FAQ

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

O RT-DETR (Real-Time Detection Transformer) da Baidu é um detector de objetos em tempo real avançado, construído sobre a arquitetura Vision Transformer. Ele processa eficientemente características multiescala, desacoplando a interação intra-escala e a fusão entre escalas através de seu codificador híbrido eficiente. Ao empregar a seleção de consulta com reconhecimento de IoU, o modelo se concentra nos objetos mais relevantes, aumentando a precisão da detecção. Sua velocidade de inferência adaptável, alcançada ajustando as camadas do decodificador sem retreinamento, torna o RT-DETR adequado para vários cenários de detecção de objetos em tempo real. Saiba mais sobre os recursos do RT-DETR no artigo do RT-DETR Arxiv.

Como posso usar os modelos RT-DETR pré-treinados fornecidos pela Ultralytics?

Você pode aproveitar a API Python da Ultralytics para usar modelos PaddlePaddle RT-DETR pré-treinados. Por exemplo, para carregar um modelo RT-DETR-l pré-treinado em COCO val2017 e obter alto FPS em GPU T4, você pode 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 devo escolher o RT-DETR da Baidu em vez de outros detectores de objetos em tempo real?

O RT-DETR da Baidu se destaca devido ao seu codificador híbrido eficiente e à seleção de consulta com reconhecimento de IoU, que reduzem drasticamente os custos computacionais, mantendo alta precisão. Sua capacidade única de ajustar a velocidade de inferência usando diferentes camadas de decodificador sem retreinamento adiciona flexibilidade significativa. Isso o torna particularmente vantajoso para aplicações que exigem desempenho em tempo real em backends acelerados como CUDA com TensorRT, superando muitos outros detectores de objetos em tempo real. A arquitetura transformer também oferece melhor compreensão do contexto global em comparação com os detectores tradicionais baseados em CNN.

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

O RT-DETR da Baidu permite ajustes flexíveis da velocidade de inferência usando diferentes camadas de decodificador sem exigir retreinamento. Essa adaptabilidade é crucial para escalar o desempenho em várias tarefas de detecção de objetos em tempo real. Se você precisa de um processamento mais rápido para necessidades de menor precisão ou detecções mais lentas e precisas, o RT-DETR pode ser adaptado para atender aos seus requisitos específicos. Este recurso é particularmente valioso ao implantar modelos em dispositivos com diferentes capacidades computacionais.

Posso usar modelos RT-DETR com outros modos da Ultralytics, como treinamento, validação e exportação?

Sim, os modelos RT-DETR são compatíveis com vários modos Ultralytics, incluindo treino, validação, previsão e exportação. Você pode consultar a documentação respectiva para obter instruções detalhadas sobre como utilizar estes modos: Train, Val, Predict e Export. Isto garante um fluxo de trabalho abrangente para desenvolver e implementar as suas soluções de deteção de objetos. A framework Ultralytics fornece uma API consistente em diferentes arquiteturas de modelos, facilitando o trabalho com modelos RT-DETR.



📅 Criado há 1 ano ✏️ Atualizado há 3 meses

Comentários