RT-DETR da Baidu: Um Detector de Objetos em Tempo Real baseado em Transformer de Visão
Visão geral
O Real-Time Detection Transformer (RT-DETR), desenvolvido pela Baidu, é um detector de objetos ponta a ponta de última geração que oferece desempenho em tempo real enquanto mantém uma alta precisão. Ele é baseado na ideia do DETR (a estrutura livre de NMS), introduzindo, ao mesmo tempo, um backbone baseado em convolução e um codificador híbrido eficiente para ganhar velocidade em tempo real. O RT-DETR processa eficientemente recursos multiescala ao desacoplar a interação intra-escala e a fusão cruzada de escalas. O modelo é altamente adaptável, suportando o ajuste flexível da velocidade de inferência usando diferentes camadas do decodificador sem a necessidade de retreinamento. O RT-DETR se destaca em backends acelerados como CUDA com TensorRT, superando muitos outros detectores de objetos em tempo real.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
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 entrada para o codificador. O codificador híbrido eficiente transforma recursos multiescala em uma sequência de recursos de imagem através da interação de recursos intra-escala (AIFI) e do módulo de fusão de recursos cruzados (CCFM). A seleção de consultas sensível ao IoU é empregada para selecionar um número fixo de recursos de imagem para servir como consultas de objeto iniciais para o decodificador. Finalmente, o decodificador com cabeças de predição auxiliares otimiza iterativamente as consultas de objeto para gerar caixas e pontuações de confiança (fonte).
Principais recursos
- Codificador Híbrido Eficiente: O RT-DETR da Baidu usa um codificador híbrido eficiente que processa recursos multiescala ao desacoplar a interação intra-escala e a fusão cruzada de escalas. Esse design exclusivo baseado em Vision Transformers reduz os custos computacionais e permite a detecção de objetos em tempo real.
- Seleção de Consultas sensível ao IoU: O RT-DETR da Baidu melhora a inicialização de consultas de objeto utilizando a seleção de consultas sensível ao IoU. Isso permite que o modelo se concentre nos objetos mais relevantes na cena, aumentando a precisão da detecção.
- Velocidade de Inferência Adaptável: O RT-DETR da Baidu suporta ajustes flexíveis na velocidade de inferência usando diferentes camadas de decodificador 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.
- Estrutura Livre de NMS: Baseado no DETR, o RT-DETR elimina a necessidade de pós-processamento de non-maximum suppression, simplificando o pipeline de detecção e potencialmente melhorando a eficiência.
- Detecção Livre de Âncora: Como um detector livre de â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 RT-DETR pré-treinados do PaddlePaddle com diferentes escalas:
- RT-DETR-L: 53.0% AP no COCO val2017, 114 FPS em GPU T4
- RT-DETR-X: 54.8% AP no COCO val2017, 74 FPS em GPU T4
Além disso, a Baidu lançou o RTDETRv2 em julho de 2024, que melhora ainda mais a arquitetura original com métricas de desempenho aprimoradas.
Exemplos de Uso
Este exemplo fornece exemplos simples de treinamento e inferência com RT-DETR. Para a documentação completa sobre esses e outros modos, consulte as páginas de documentação de Predict, Train, Val e Export. Os modelos também podem ser treinados em GPUs em nuvem através da Ultralytics Platform.
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")Os pesos pré-treinados do RT-DETR suportam duas configurações de tempo de inferência para reduzir a latência sem retreinamento:
eval_idx: Interrompa a decodificação mais cedo. Para o decodificador padrão de 6 camadas, use um índice baseado em zero (0–5).eval_idx=5usa todas as camadas;eval_idx=3usa 4 camadas. Em uma GPU T4 com TensorRT v10.11, o RT-DETR-L melhora de 8.0 ms / 52.7 mAP para 7.4 ms / 52.5 mAP com 4 camadas.num_queries: Reduza as consultas de objeto (padrão: 300). Reduzir para 100 pode atingir 7.4 ms / 51.7 mAP no COCO na mesma configuração. Em conjuntos de dados com menos objetos por imagem, a queda de mAP é geralmente menor, mas mantenha o valor acima do máximo de objetos esperados por imagem.
Ambas as configurações podem reduzir o mAP — valide a compensação em seu conjunto de dados antes da implementação.
from ultralytics import RTDETR
rtdetr = RTDETR("rtdetr-l.pt")
head = rtdetr.model.model[-1]
# Choose one or both settings after validating the speed/accuracy trade-off.
head.decoder.eval_idx = 3 # Use 4 of 6 decoder layers.
head.num_queries = 100 # Use fewer object queries.
results = rtdetr("path/to/image.jpg")
# Export uses the same decoder and query settings, including TensorRT exports.
rtdetr.export(format="engine", device=0, half=True)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 (Inference) | Validação | Treinamento | Export |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Detecção de Objetos | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml e rtdetr-resnet101.yaml são fornecidos apenas como arquiteturas YAML. A Ultralytics libera pesos pré-treinados apenas para rtdetr-l e rtdetr-x. Instancie as variantes ResNet a partir do YAML (por exemplo, RTDETR("rtdetr-resnet50.yaml")) e treine ou ajuste conforme necessário.
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 uma percepção ambiental confiável em sistemas autônomos 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 realizem tarefas complexas que exigem reconhecimento de objetos e interação precisos em ambientes dinâmicos. Explore o papel da IA na robótica.
- Imagens Médicas: Para aplicações na área da saúde onde a precisão na detecção de objetos pode ser crucial para diagnósticos. Descubra a IA na 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ê usa o RT-DETR da Baidu em seu trabalho de pesquisa ou desenvolvimento, por favor, 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 o 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 ele 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 recursos multiescala ao desacoplar a interação intra-escala e a fusão cruzada de escalas através de seu codificador híbrido eficiente. Ao empregar a seleção de consultas sensível ao IoU, o modelo foca nos objetos mais relevantes, aprimorando a precisão da detecção. Sua velocidade de inferência adaptável, alcançada pelo ajuste de 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 no Arxiv.
Como posso usar os modelos RT-DETR pré-treinados fornecidos pela Ultralytics?
Você pode aproveitar a API Python da Ultralytics para usar modelos RT-DETR pré-treinados do PaddlePaddle. Por exemplo, para carregar um modelo RT-DETR-l pré-treinado no COCO val2017 e atingir alto FPS em GPU T4, você pode utilizar o seguinte 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")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 consultas sensível ao IoU, que reduzem drasticamente os custos computacionais enquanto mantêm 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 fornece uma melhor compreensão do contexto global em comparação com 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 a necessidade de 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. Esse recurso é particularmente valioso ao implantar modelos em dispositivos com capacidades computacionais variadas.
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 da Ultralytics, incluindo treinamento, validação, predição e exportação. Você pode consultar a respectiva documentação para obter instruções detalhadas sobre como utilizar esses modos: Train, Val, Predict e Export. Isso garante um fluxo de trabalho abrangente para o desenvolvimento e implantação de suas soluções de detecção de objetos. A estrutura da Ultralytics fornece uma API consistente em diferentes arquiteturas de modelo, facilitando o trabalho com modelos RT-DETR.