Salta para o conte√ļdo

RT-DETR da Baidu: um detetor de objectos em tempo real baseado no transformador de vis√£o

Vis√£o geral

O Real-Time Detection Transformer (RT-DETR), desenvolvido pela Baidu, é um detetor de objectos de ponta a ponta que proporciona um desempenho em tempo real, mantendo uma elevada precisão. Baseia-se na ideia de DETR (a estrutura sem NMS), introduzindo entretanto um backbone baseado em conv e um codificador híbrido eficiente para ganhar velocidade em tempo real. RT-DETR processa eficazmente características multiescala, dissociando a interação intra-escala e a fusão inter-escala. O modelo é altamente adaptável, suportando um ajuste flexível da velocidade de inferência utilizando diferentes camadas de descodificadores sem necessidade de reciclagem. RT-DETR destaca-se em backends acelerados como CUDA com TensorRT, superando muitos outros detectores de objectos em tempo real.



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

  • Codificador h√≠brido eficiente: O RT-DETR da Baidu utiliza um codificador h√≠brido eficiente que processa caracter√≠sticas de v√°rias escalas, dissociando a intera√ß√£o intra-escala e a fus√£o entre escalas. Este design √ļnico baseado em Transformadores de Vis√£o reduz os custos computacionais e permite a dete√ß√£o de objectos em tempo real.
  • 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 modelo Pesos pré-treinados Tarefas suportadas Inferência Validação Formação Exportação
RT-DETR Grande rtdetr-l.pt Deteção de objectos ✅ ✅ ✅ ✅
RT-DETR Extra-grande rtdetr-x.pt Deteçã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}
}

Gostaríamos de agradecer à Baidu e à equipa PaddlePaddle pela criação e manutenção deste valioso recurso para a comunidade da visão computacional. A sua contribuição para o campo com o desenvolvimento do detetor de objectos em tempo real baseado em Transformadores de Visão, 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 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?

O RT-DETR da Baidu permite ajustes flex√≠veis da velocidade de infer√™ncia, utilizando diferentes camadas de descodificadores sem necessidade de reciclagem. Esta adaptabilidade √© crucial para escalar o desempenho em v√°rias tarefas de dete√ß√£o de objectos em tempo real. Quer precises de um processamento mais r√°pido para necessidades de menor precis√£o ou de detec√ß√Ķes mais lentas e precisas, o RT-DETR pode ser adaptado para satisfazer os teus requisitos espec√≠ficos.

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.



Criado em 2023-11-12, Atualizado em 2024-07-04
Autores: glenn-jocher (15), RizwanMunawar (1)

Coment√°rios