Saltar al contenido

Baidu's RT-DETR: A Vision Transformer-Based Real-Time Object Detector

Visión general

Real-Time Detection Transformer (RT-DETR), developed by Baidu, is a cutting-edge end-to-end object detector that provides real-time performance while maintaining high accuracy. It is based on the idea of DETR (the NMS-free framework), meanwhile introducing conv-based backbone and an efficient hybrid encoder to gain real-time speed. RT-DETR efficiently processes multiscale features by decoupling intra-scale interaction and cross-scale fusion. The model is highly adaptable, supporting flexible adjustment of inference speed using different decoder layers without retraining. RT-DETR excels on accelerated backends like CUDA with TensorRT, outperforming many other real-time object detectors.



Observa: Transformador de Detección en Tiempo Real (RT-DETR)

Modelo de imagen de ejemplo Visión general de Baidu RT-DETR. El diagrama de arquitectura del modelo RT-DETR muestra las tres últimas etapas de la columna vertebral {S3, S4, S5} como entrada al codificador. El codificador híbrido eficiente transforma las características multiescala en una secuencia de características de imagen mediante la interacción de características intraescala (AIFI) y el módulo de fusión de características de escala cruzada (CCFM). La selección de consultas consciente de la IoU se emplea para seleccionar un número fijo de características de imagen que sirvan como consultas de objeto iniciales para el descodificador. Por último, el descodificador con cabezas de predicción auxiliares optimiza iterativamente las consultas de objetos para generar casillas y puntuaciones de confianza (fuente).

Características principales

  • Efficient Hybrid Encoder: Baidu's RT-DETR uses an efficient hybrid encoder that processes multiscale features by decoupling intra-scale interaction and cross-scale fusion. This unique Vision Transformers-based design reduces computational costs and allows for real-time object detection.
  • Selección de consulta consciente de IoU: RT-DETR de Baidu mejora la inicialización de la consulta de objetos utilizando la selección de consulta consciente de IoU. Esto permite que el modelo se centre en los objetos más relevantes de la escena, mejorando la precisión de la detección.
  • Velocidad de inferencia adaptable: RT-DETR de Baidu admite ajustes flexibles de la velocidad de inferencia mediante el uso de distintas capas de descodificación sin necesidad de reentrenamiento. Esta adaptabilidad facilita la aplicación práctica en diversos escenarios de detección de objetos en tiempo real.

Modelos preentrenados

La API Ultralytics Python proporciona modelos preentrenados PaddlePaddle RT-DETR con diferentes escalas:

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

Ejemplos de uso

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia de RT-DETR . Para obtener documentación completa sobre estos y otros modos, consulta las páginas de documentación Predecir, Entrenar, Val y Exportar.

Ejemplo

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

Tareas y modos admitidos

Esta tabla presenta los tipos de modelos, los pesos específicos preentrenados, las tareas que admite cada modelo y los distintos modos(Entrenar, Val, Predecir, Exportar) que admite, indicados con ✅ emojis.

Tipo de modeloPesos preentrenadosTareas admitidasInferenciaValidaciónFormaciónExportar
RT-DETR Grandertdetr-l.ptDetección de objetos
RT-DETR Extragrandertdetr-x.ptDetección de objetos

Citas y agradecimientos

Si utilizas RT-DETR de Baidu en tu trabajo de investigación o desarrollo, por favor, cita el documento 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}
}

We would like to acknowledge Baidu and the PaddlePaddle team for creating and maintaining this valuable resource for the computer vision community. Their contribution to the field with the development of the Vision Transformers-based real-time object detector, RT-DETR, is greatly appreciated.

PREGUNTAS FRECUENTES

¿Qué es el modelo RT-DETR de Baidu y cómo funciona?

RT-DETR (Transformador de Detección en Tiempo Real) de Baidu es un detector avanzado de objetos en tiempo real basado en la arquitectura del Transformador de Visión. Procesa eficazmente las características multiescala desacoplando la interacción intraescala y la fusión multiescala mediante su eficaz codificador híbrido. Al emplear una selección de consultas consciente de la IoU, el modelo se centra en los objetos más relevantes, mejorando la precisión de la detección. Su velocidad de inferencia adaptable, conseguida ajustando las capas del decodificador sin reentrenamiento, hace que RT-DETR sea adecuado para diversos escenarios de detección de objetos en tiempo real. Más información sobre las características de RT-DETR aquí.

¿Cómo puedo utilizar los modelos RT-DETR preentrenados que proporciona Ultralytics?

Puedes aprovechar la API Ultralytics Python para utilizar modelos PaddlePaddle RT-DETR preentrenados. Por ejemplo, para cargar un modelo RT-DETR-l preentrenado en COCO val2017 y conseguir altos FPS en T4 GPU, puedes utilizar el siguiente ejemplo:

Ejemplo

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 qué debería elegir RT-DETR de Baidu en lugar de otros detectores de objetos en tiempo real?

El sitio RT-DETR de Baidu destaca por su eficaz codificador híbrido y su selección de consultas consciente del IoU, que reducen drásticamente los costes computacionales manteniendo una gran precisión. Su capacidad única para ajustar la velocidad de inferencia mediante el uso de diferentes capas de decodificación sin reentrenamiento añade una flexibilidad significativa. Esto lo hace especialmente ventajoso para aplicaciones que requieren rendimiento en tiempo real en backends acelerados como CUDA con TensorRT, superando a muchos otros detectores de objetos en tiempo real.

¿Cómo soporta RT-DETR la velocidad de inferencia adaptable a las distintas aplicaciones en tiempo real?

Baidu's RT-DETR allows flexible adjustments of inference speed by using different decoder layers without requiring retraining. This adaptability is crucial for scaling performance across various real-time object detection tasks. Whether you need faster processing for lower precision needs or slower, more accurate detections, RT-DETR can be tailored to meet your specific requirements.

¿Puedo utilizar los modelos de RT-DETR con otros modos de Ultralytics , como entrenamiento, validación y exportación?

Sí, los modelos de RT-DETR son compatibles con varios modos de Ultralytics , incluyendo entrenamiento, validación, predicción y exportación. Puedes consultar la documentación correspondiente para obtener instrucciones detalladas sobre cómo utilizar estos modos: Entrenar, Val, Predecir y Exportar. Esto garantiza un flujo de trabajo completo para desarrollar y desplegar tus soluciones de detección de objetos.

📅 Created 11 months ago ✏️ Updated 28 days ago

Comentarios