Ir al contenido

Baidu's RT-DETR: Detector de objetos en tiempo real basado en un transformador de visión

Visión general

Real-Time Detection TransformerRT-DETR), desarrollado por Baidu, es un detector de objetos integral de última generación que ofrece rendimiento en tiempo real manteniendo una alta precisión. Se basa en la idea de DETR (el marco sin NMS), introduciendo al mismo tiempo una columna vertebral basada en conv y un codificador híbrido eficiente para ganar velocidad en tiempo real. RT-DETR procesa eficazmente características multiescala desacoplando la interacción intraescala y la fusión entre escalas. El modelo es muy adaptable y permite un ajuste flexible de la velocidad de inferencia utilizando distintas capas de decodificación sin necesidad de reentrenamiento. RT-DETR destaca en backends acelerados como CUDA con TensorRT, superando a muchos otros detectores de objetos en tiempo real.



Observa: Transformador de detección en tiempo real (RT-DETR)

Modelo de imagen de ejemplo Panorama 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 eficaz codificador híbrido 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 basada en 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

  • Codificador híbrido eficiente: RT-DETR de Baidu utiliza un eficaz codificador híbrido que procesa características multiescala desacoplando la interacción intraescala y la fusión entre escalas. Este diseño exclusivo basado en transformadores de visión reduce los costes computacionales y permite detectar objetos en tiempo real.
  • Selección de consultas según IoU: Baidu's RT-DETR 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 diferentes 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.
  • Marco sin NMS: Basado en DETR, RT-DETR elimina la necesidad de postprocesamiento de supresión no máxima, lo que simplifica el canal de detección y mejora potencialmente la eficiencia.
  • Detección sin anclaje: Como detector sin anclaje, RT-DETR simplifica el proceso de detección y puede mejorar la generalización en diferentes conjuntos de datos.

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

Además, Baidu lanzó RTDETRv2 en julio de 2024, que mejora aún más la arquitectura original con métricas de rendimiento mejoradas.

Ejemplos de uso

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia en RT-DETR . Para obtener documentación completa sobre estos y otros modos, consulte las páginas de documentación Predicción, Entrenamiento, Val y Exportación.

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 compatibles

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

Tipo de modelo Pesas preentrenadas Tareas admitidas Inferencia Validación Formación Exportar
RT-DETR Grande rtdetr-l.pt Detección de objetos
RT-DETR Extra grande rtdetr-x.pt Detección de objetos

Casos de uso ideales

RT-DETR es especialmente adecuado para aplicaciones que requieren una gran precisión y rendimiento en tiempo real:

Citas y agradecimientos

Si utiliza RT-DETR de Baidu en su trabajo de investigación o desarrollo, cite 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}
}

Para RTDETRv2, puede citar el documento 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}
}

Nos gustaría agradecer a Baidu y al equipo de PaddlePaddle por crear y mantener este valioso recurso para la comunidad de visión por ordenador. Agradecemos enormemente su contribución a este campo con el desarrollo del detector de objetos en tiempo real basado en transformadores de visión, RT-DETR.

PREGUNTAS FRECUENTES

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

El RT-DETR (Real-Time Detection Transformer) de Baidu es un avanzado detector de objetos en tiempo real basado en la arquitectura Vision Transformer. Procesa eficazmente características multiescala desacoplando la interacción intraescala y la fusión entre escalas mediante su eficaz codificador híbrido. Mediante el empleo de la selección de consultas IoU-aware, el modelo se centra en los objetos más relevantes, mejorando la precisión de la detección. Su velocidad de inferencia adaptable, que se consigue ajustando las capas del descodificador sin necesidad de 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 en el artículoRT-DETR Arxiv.

¿Cómo puedo utilizar los modelos RT-DETR preformados que ofrece Ultralytics?

Puede aprovechar la API Ultralytics Python para utilizar modelos preentrenados PaddlePaddle RT-DETR . Por ejemplo, para cargar un modelo RT-DETR-l preentrenado en COCO val2017 y lograr altos FPS en T4 GPU, puede 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é elegir RT-DETR de Baidu en lugar de otros detectores de objetos en tiempo real?

El RT-DETR de Baidu destaca por su eficaz codificador híbrido y la selección de consultas en función del IoU, que reducen drásticamente los costes computacionales al tiempo que mantienen una gran precisión. Su capacidad única para ajustar la velocidad de inferencia mediante el uso de diferentes capas de decodificación sin necesidad de 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. La arquitectura del transformador también proporciona una mejor comprensión del contexto global en comparación con los detectores tradicionales basados en CNN.

¿Cómo permite RT-DETR adaptar la velocidad de inferencia a distintas aplicaciones en tiempo real?

El RT-DETR de Baidu permite realizar ajustes flexibles de la velocidad de inferencia utilizando distintas capas de descodificación sin necesidad de reentrenamiento. Esta adaptabilidad es crucial para escalar el rendimiento en diversas tareas de detección de objetos en tiempo real. Tanto si necesita un procesamiento más rápido para necesidades de menor precisión como detecciones más lentas y precisas, RT-DETR puede adaptarse para satisfacer sus requisitos específicos. Esta característica es especialmente valiosa a la hora de desplegar modelos en dispositivos con distintas capacidades de cálculo.

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

Sí, los modelos RT-DETR son compatibles con varios modos de Ultralytics , como la formación, la validación, la predicción y la exportación. Puede consultar la documentación correspondiente para obtener instrucciones detalladas sobre cómo utilizar estos modos: Entrenamiento, Validación, Predicción y Exportación. Esto garantiza un flujo de trabajo completo para desarrollar e implantar sus soluciones de detección de objetos. El marco de trabajo Ultralytics proporciona una API coherente en diferentes arquitecturas de modelos, lo que facilita el trabajo con modelos RT-DETR .

Creado hace 1 año ✏️ Actualizado hace 5 días

Comentarios