Ir al contenido

RT-DETR de Baidu: Un detector de objetos en tiempo real basado en Vision Transformer

Visión general

Real-Time Detection Transformer (RT-DETR), desarrollado por Baidu, es un detector de objetos de última generación que proporciona rendimiento en tiempo real manteniendo una alta precisión. Se basa en la idea de DETR (el framework sin NMS), introduciendo mientras tanto un backbone basado en conv y un codificador híbrido eficiente para obtener velocidad en tiempo real. RT-DETR procesa eficientemente las características multiescala desacoplando la interacción intraescala y la fusión inter escala. El modelo es altamente adaptable, soportando el ajuste flexible de la velocidad de inferencia utilizando diferentes capas de decodificador sin necesidad de reentrenamiento. RT-DETR sobresale en backends acelerados como CUDA con TensorRT, superando a muchos otros detectores de objetos en tiempo real.



Ver: Cómo utilizar RT-DETR de Baidu para la detección de objetos | Inferencia y evaluación comparativa con Ultralytics 🚀

Imagen de ejemplo del modeloDescripción general de RT-DETR de Baidu. El diagrama de arquitectura del modelo RT-DETR muestra las últimas tres etapas del backbone {S3, S4, S5} como la entrada al codificador. El codificador híbrido eficiente transforma las características multiescala en una secuencia de características de imagen a través de la interacción de características intraescala (AIFI) y el módulo de fusión de características entre escalas (CCFM). La selección de consultas con reconocimiento de IoU se emplea para seleccionar un número fijo de características de imagen para que sirvan como consultas de objetos iniciales para el decodificador. Finalmente, el decodificador con encabezados de predicción auxiliares optimiza iterativamente las consultas de objetos para generar cuadros y puntuaciones de confianza (fuente).

Características clave

  • Codificador híbrido eficiente: El RT-DETR de Baidu utiliza un codificador híbrido eficiente que procesa características multiescala desacoplando la interacción intraescala y la fusión inter escala. Este diseño único basado en Vision Transformers reduce los costes computacionales y permite la detección de objetos en tiempo real.
  • Selección de consultas basada en IoU: RT-DETR de Baidu mejora la inicialización de consultas de objetos utilizando la selección de consultas basada en 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 decodificador sin necesidad de volver a entrenar. Esta adaptabilidad facilita la aplicación práctica en varios escenarios de detección de objetos en tiempo real.
  • Framework sin NMS: Basado en DETR, RT-DETR elimina la necesidad del post-procesamiento de supresión no máxima, simplificando el pipeline de detección y mejorando potencialmente la eficiencia.
  • Detección sin anclajes: Como un detector sin anclajes, RT-DETR simplifica el proceso de detección y puede mejorar la generalización en diferentes conjuntos de datos.

Modelos pre-entrenados

La API de python de Ultralytics proporciona modelos PaddlePaddle RT-DETR pre-entrenados 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 ha lanzado RTDETRv2 en julio de 2024, que mejora aún más la arquitectura original con métricas de rendimiento optimizadas.

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 de Predict, Train, Val y Export.

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 modelo, los pesos pre-entrenados específicos, las tareas admitidas por cada modelo y los diversos modos (Train, Val, Predict, Export) que se admiten, indicados por emojis ✅.

Tipo de ModeloPesos Pre-entrenadosTareas admitidasInferenciaValidaciónEntrenamientoExportar
RT-DETR Grandertdetr-l.ptDetección de objetos
RT-DETR Extra-Grandertdetr-x.ptDetección de objetos

Casos de Uso Ideales

RT-DETR es particularmente adecuado para aplicaciones que requieren alta 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 artículo 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, puedes citar el artículo 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 artificial. Su contribución al campo con el desarrollo del detector de objetos en tiempo real basado en Vision Transformers, RT-DETR, es muy apreciada.

Preguntas frecuentes

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

RT-DETR (Real-Time Detection Transformer) de Baidu es un detector de objetos en tiempo real avanzado construido sobre la arquitectura Vision Transformer. Procesa de manera eficiente características multiescala desacoplando la interacción intraescala y la fusión inter-escala a través de su eficiente codificador híbrido. Al emplear la selección de consultas basada en IoU, el modelo se centra en los objetos más relevantes, mejorando la precisión de la detección. Su velocidad de inferencia adaptable, lograda ajustando las capas del decodificador sin reentrenamiento, hace que RT-DETR sea adecuado para varios escenarios de detección de objetos en tiempo real. Obtenga más información sobre las características de RT-DETR en el artículo de RT-DETR Arxiv.

¿Cómo puedo utilizar los modelos RT-DETR preentrenados proporcionados por Ultralytics?

Puedes aprovechar la API de Python de Ultralytics para utilizar modelos PaddlePaddle RT-DETR pre-entrenados. Por ejemplo, para cargar un modelo RT-DETR-l pre-entrenado en COCO val2017 y lograr un alto 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?

RT-DETR de Baidu destaca por su eficiente codificador híbrido y la selección de consultas basada en IoU, que reducen drásticamente los costes computacionales manteniendo una alta precisión. Su capacidad única para ajustar la velocidad de inferencia utilizando diferentes capas de decodificador sin reentrenamiento añade una flexibilidad significativa. Esto lo hace particularmente 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 transformer también proporciona una mejor comprensión del contexto global en comparación con los detectores tradicionales basados en CNN.

¿Cómo soporta RT-DETR una velocidad de inferencia adaptable para diferentes aplicaciones en tiempo real?

RT-DETR de Baidu permite ajustes flexibles de la velocidad de inferencia mediante el uso de diferentes capas de decodificador sin necesidad de volver a entrenar. Esta adaptabilidad es crucial para escalar el rendimiento en diversas tareas de detección de objetos en tiempo real. Ya sea que necesite un procesamiento más rápido para necesidades de menor precisión o detecciones más lentas y precisas, RT-DETR se puede adaptar para satisfacer sus requisitos específicos. Esta característica es particularmente valiosa al implementar modelos en dispositivos con diferentes capacidades computacionales.

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

Sí, los modelos RT-DETR son compatibles con varios modos de Ultralytics, incluyendo el entrenamiento, la validación, la predicción y la exportación. Puedes consultar la documentación respectiva para obtener instrucciones detalladas sobre cómo utilizar estos modos: Train, Val, Predict y Export. Esto asegura un flujo de trabajo completo para desarrollar e implementar tus soluciones de detección de objetos. El framework de Ultralytics proporciona una API consistente en diferentes arquitecturas de modelos, facilitando el trabajo con modelos RT-DETR.



📅 Creado hace 2 años ✏️ Actualizado hace 1 mes
glenn-jocherRizwanMunawarleonnilLaughing-qMatthewNoyce

Comentarios