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)
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:
- Direção Autônoma: Para percepção ambiental confiável em sistemas de direção autônoma, onde velocidade e precisão são críticas. Saiba mais sobre IA em carros autônomos.
- Robótica Avançada: Permitindo que robôs executem tarefas complexas que exigem reconhecimento e interação precisos de objetos em ambientes dinâmicos. Explore o papel da IA na robótica.
- Imagem Médica: Para aplicações na área da saúde onde a precisão na detecção de objetos pode ser crucial para o diagnóstico. Descubra a IA na área da saúde.
- Sistemas de Vigilância: Para aplicações de segurança que exigem monitoramento em tempo real com alta precisão de detecção. Saiba mais sobre sistemas de alarme de segurança.
- Análise de Imagens de Satélite: Para análise detalhada de imagens de alta resolução onde a compreensão do contexto global é importante. Leia sobre visão computacional em imagens de satélite.
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.