Link to this sectionRT-DETR da Baidu: um detetor de objetos em tempo real baseado em Transformer de visão#
Link to this sectionVisão geral#
O Real-Time Detection Transformer (RT-DETR), desenvolvido pela Baidu, é um detetor de objetos topo de gama de ponta a ponta que oferece desempenho em tempo real enquanto mantém uma precisão elevada. Baseia-se na ideia do DETR (a estrutura sem NMS), introduzindo simultaneamente um backbone baseado em convolução e um codificador híbrido eficiente para obter velocidade em tempo real. O RT-DETR processa eficientemente características multiescala ao desacoplar 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 descodificador sem necessidade de reparametrização. O RT-DETR destaca-se em backends acelerados como CUDA com TensorRT, superando muitos outros detetores 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 últimos três estágios do backbone {S3, S4, S5} como entrada para o codificador. O codificador híbrido eficiente transforma características multiescala numa sequência de características de imagem através da interação de características intraescala (AIFI) e do módulo de fusão de características entre escalas (CCFM). A seleção de queries sensível a IoU é empregada para selecionar um número fixo de características de imagem para servir como queries de objetos iniciais para o descodificador. Finalmente, o descodificador com heads de predição auxiliares otimiza iterativamente as queries de objetos para gerar caixas e pontuações de confiança (fonte).
Link to this sectionPrincipais recursos#
- Codificador híbrido eficiente: O RT-DETR da Baidu usa um codificador híbrido eficiente que processa características multiescala ao desacoplar a interação intraescala e a fusão entre escalas. Este design único baseado em Vision Transformers reduz os custos computacionais e permite a deteção de objetos em tempo real.
- Seleção de query sensível a IoU: O RT-DETR da Baidu melhora a inicialização de queries de objetos utilizando a seleção de query sensível a IoU. Isto permite que o modelo se foque nos objetos mais relevantes na 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 ao usar diferentes camadas de descodificador sem a necessidade de reparametrização. Esta adaptabilidade facilita a aplicação prática em vários cenários de deteção de objetos em tempo real.
- Estrutura sem NMS: Com base no DETR, o RT-DETR elimina a necessidade de pós-processamento de non-maximum suppression, simplificando o pipeline de deteção e potencialmente melhorando a eficiência.
- Deteção sem âncoras (Anchor-Free): Como um detetor sem âncoras, o RT-DETR simplifica o processo de deteção e pode melhorar a generalização entre diferentes conjuntos de dados.
Link to this sectionModelos 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 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 otimizadas.
Link to this sectionExemplos de uso#
Este exemplo fornece exemplos simples de treino e inferência com RT-DETR. Para a documentação completa sobre estes e outros modos, consulta as páginas de documentação de Predict, Train, Val e Export. Os modelos também podem ser treinados em GPUs na cloud através da Plataforma Ultralytics.
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 reparametrização:
eval_idx: Para a descodificação antecipadamente. Para o descodificador padrão de 6 camadas, usa um índice baseado em zero (0–5).eval_idx=5usa todas as camadas;eval_idx=3usa 4 camadas. Numa 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: Reduz as queries de objetos (padrão: 300). Diminuir 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 é tipicamente menor, mas mantém o valor acima do número máximo esperado de objetos por imagem.
Ambas as definições podem baixar o mAP — valida o compromisso no teu 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, quantize=16)Link to this sectionTarefas 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 | Treinamento | Exportar |
|---|---|---|---|---|---|---|
| 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 lança pesos pré-treinados apenas para rtdetr-l e rtdetr-x. Instancia as variantes ResNet a partir do YAML (por exemplo, RTDETR("rtdetr-resnet50.yaml")) e treina ou ajusta-as conforme necessário.
Link to this sectionCasos de uso ideais#
O RT-DETR é particularmente adequado para aplicações que exigem tanto alta precisão como desempenho em tempo real:
- Condução autónoma: Para uma perceção ambiental fiável em sistemas de condução autónoma onde tanto a velocidade como a precisão são críticas. Sabe mais sobre IA em carros autónomos.
- Robótica avançada: Permitindo que robôs realizem tarefas complexas que exigem reconhecimento preciso de objetos e interação em ambientes dinâmicos. Explora o papel da IA na robótica.
- Imagiologia médica: Para aplicações na saúde onde a precisão na deteção de objetos pode ser crucial para diagnósticos. Descobre 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 uma análise detalhada de imagens de alta resolução onde a compreensão do contexto global é importante. Lê sobre visão computacional em imagens de satélite.
Link to this sectionCitações e Agradecimentos#
Se usares o RT-DETR da Baidu na tua investigação ou trabalho de 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}
}Para o RTDETRv2, podes 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 à equipa PaddlePaddle por criar e manter este recurso valioso para a comunidade de visão computacional. A sua contribuição para a área com o desenvolvimento do detetor de objetos em tempo real baseado em Vision Transformers, o RT-DETR, é muito apreciada.
Link to this sectionFAQ#
Link to this sectionO que é o modelo RT-DETR da Baidu e como funciona?#
O RT-DETR (Real-Time Detection Transformer) da Baidu é um detetor de objetos em tempo real avançado, construído sobre a arquitetura Vision Transformer. Processa eficientemente características multiescala ao desacoplar a interação intraescala e a fusão entre escalas através do seu codificador híbrido eficiente. Ao empregar a seleção de query sensível a IoU, o modelo foca-se nos objetos mais relevantes, melhorando a precisão da deteção. A sua velocidade de inferência adaptável, alcançada ao ajustar as camadas do descodificador sem reparametrização, torna o RT-DETR adequado para vários cenários de deteção de objetos em tempo real. Sabe mais sobre as funcionalidades do RT-DETR no artigo Arxiv do RT-DETR.
Link to this sectionComo posso usar os modelos RT-DETR pré-treinados fornecidos pela Ultralytics?#
Podes 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 no COCO val2017 e atingir FPS elevado numa GPU T4, podes 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")Link to this sectionPorque devo escolher o RT-DETR da Baidu em vez de outros detetores de objetos em tempo real?#
O RT-DETR da Baidu destaca-se devido ao seu codificador híbrido eficiente e seleção de query sensível a IoU, que reduzem drasticamente os custos computacionais enquanto mantêm uma alta precisão. A sua capacidade única de ajustar a velocidade de inferência usando diferentes camadas de descodificador sem reparametrização adiciona uma flexibilidade significativa. Isto torna-o particularmente vantajoso para aplicações que exigem desempenho em tempo real em backends acelerados como CUDA com TensorRT, superando muitos outros detetores de objetos em tempo real. A arquitetura transformer também fornece uma melhor compreensão do contexto global em comparação com os detetores tradicionais baseados em CNN.
Link to this sectionComo é que 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 ao usar diferentes camadas de descodificador sem exigir reparametrização. Esta adaptabilidade é crucial para escalar o desempenho em várias tarefas de deteção de objetos em tempo real. Quer precises de um processamento mais rápido para necessidades de precisão mais baixas ou deteções mais lentas e precisas, o RT-DETR pode ser adaptado para atender aos teus requisitos específicos. Esta funcionalidade é particularmente valiosa ao implementar modelos em dispositivos com capacidades computacionais variáveis.
Link to this sectionPosso usar modelos RT-DETR com outros modos da Ultralytics, como treino, validação e exportação?#
Sim, os modelos RT-DETR são compatíveis com vários modos da Ultralytics, incluindo treino, validação, predição e exportação. Podes consultar a documentação respetiva para 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 tuas soluções de deteção de objetos. O framework Ultralytics fornece uma API consistente em diferentes arquiteturas de modelos, tornando fácil trabalhar com modelos RT-DETR.