Meet YOLO26: next-gen vision AI.

Link to this sectionRT-DETR de Baidu: Un detector de objetos en tiempo real basado en Transformer de visión#

Link to this sectionDescripción general#

Real-Time Detection Transformer (RT-DETR), desarrollado por Baidu, es un detector de objetos integral de vanguardia que ofrece un rendimiento en tiempo real manteniendo una alta precisión. Se basa en la idea de DETR (el marco sin NMS), al mismo tiempo que introduce una backbone basada en convolución y un codificador híbrido eficiente para ganar velocidad en tiempo real. RT-DETR procesa eficientemente características multiescala desacoplando la interacción intraescala y la fusión trans-escala. El modelo es altamente adaptable, permitiendo un ajuste flexible de la velocidad de inferencia mediante diferentes capas de decodificador sin necesidad de reentrenamiento. RT-DETR destaca en backends acelerados como CUDA con TensorRT, superando a muchos otros detectores de objetos en tiempo real.



Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀

Descripción general de la arquitectura del modelo RT-DETR de Baidu Descripción general del RT-DETR de Baidu. El diagrama de la arquitectura del modelo RT-DETR muestra las tres últimas etapas de la backbone {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 a través de la interacción de características intraescala (AIFI) y el módulo de fusión de características trans-escala (CCFM). Se emplea la selección de consultas basada en IoU para elegir un número fijo de características de imagen que sirvan como consultas de objeto iniciales para el decodificador. Finalmente, el decodificador con cabezales de predicción auxiliares optimiza iterativamente las consultas de objetos para generar cajas y puntuaciones de confianza (fuente).

Link to this sectionCaracterí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 trans-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: El RT-DETR de Baidu mejora la inicialización de las 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: El RT-DETR de Baidu admite ajustes flexibles de la velocidad de inferencia mediante el uso de diferentes capas de decodificador 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 mediante supresión no máxima, simplificando la tubería de detección y mejorando potencialmente la eficiencia.
  • Detección sin anclas (Anchor-Free): Como detector sin anclas, RT-DETR simplifica el proceso de detección y puede mejorar la generalización a través de diferentes datasets.

Link to this sectionModelos preentrenados#

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

  • RT-DETR-L: 53.0% AP en COCO val2017, 114 FPS en GPU T4
  • RT-DETR-X: 54.8% AP en COCO val2017, 74 FPS en GPU T4

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

Link to this sectionEjemplos de uso#

Este ejemplo proporciona ejemplos sencillos de entrenamiento e inferencia de RT-DETR. Para obtener la documentación completa sobre estos y otros modos, consulta las páginas de documentos de Predict, Train, Val y Export. Los modelos también pueden entrenarse en GPUs en la nube a través de Ultralytics Platform.

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")
Compromisos para una inferencia más rápida

Los pesos preentrenados de RT-DETR admiten dos configuraciones durante la inferencia para reducir la latencia sin necesidad de reentrenamiento:

  • eval_idx: Detener la decodificación antes de tiempo. Para el decodificador predeterminado de 6 capas, utiliza un índice de base cero (05). eval_idx=5 utiliza todas las capas; eval_idx=3 utiliza 4 capas. En una GPU T4 con TensorRT v10.11, RT-DETR-L mejora de 8.0 ms / 52.7 mAP a 7.4 ms / 52.5 mAP con 4 capas.
  • num_queries: Reducir las consultas de objetos (predeterminado: 300). Reducirlo a 100 puede alcanzar 7.4 ms / 51.7 mAP en COCO con la misma configuración. En datasets con menos objetos por imagen, la caída de mAP suele ser menor, pero mantén el valor por encima del máximo esperado de objetos por imagen.

Ambas configuraciones pueden reducir el mAP: valida el compromiso en tu dataset antes de la implementación.

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 sectionTareas y modos soportados#

Esta tabla presenta los tipos de modelos, los pesos preentrenados específicos, las tareas admitidas por cada modelo y los diversos modos (Train, Val, Predict, Export) que son compatibles, indicados mediante emojis ✅.

Tipo de modeloPesos preentrenadosTareas compatiblesInferenciaValidaciónEntrenamientoExportar
RT-DETR Largertdetr-l.ptDetección de objetos
RT-DETR Extra-Largertdetr-x.ptDetección de objetos
Variantes solo de arquitectura

rtdetr-resnet50.yaml y rtdetr-resnet101.yaml se distribuyen solo como arquitecturas YAML. Ultralytics solo publica pesos preentrenados para rtdetr-l y rtdetr-x. Instancia las variantes de ResNet desde YAML (por ejemplo, RTDETR("rtdetr-resnet50.yaml")) y entrénalas o ajústalas según sea necesario.

Link to this sectionCasos de uso ideales#

RT-DETR es especialmente adecuado para aplicaciones que requieren tanto alta precisión como rendimiento en tiempo real:

Link to this sectionCitas y agradecimientos#

Si utilizas el RT-DETR de Baidu en tu trabajo de investigación o desarrollo, por favor cita el artículo original:

Cita
@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:

Cita
@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}
}

Queremos dar las gracias 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.

Link to this sectionFAQ#

Link to this section¿Qué es el modelo RT-DETR de Baidu y cómo funciona?#

El RT-DETR (Real-Time Detection Transformer) de Baidu es un avanzado detector de objetos en tiempo real construido sobre la arquitectura Vision Transformer. Procesa eficientemente las características multiescala desacoplando la interacción intraescala y la fusión trans-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 necesidad de reentrenamiento, hace que RT-DETR sea adecuado para diversos escenarios de detección de objetos en tiempo real. Aprende más sobre las características de RT-DETR en el artículo de Arxiv de RT-DETR.

Link to this section¿Cómo puedo utilizar los modelos RT-DETR preentrenados proporcionados por Ultralytics?#

Puedes aprovechar la API de Python de Ultralytics para utilizar modelos RT-DETR de PaddlePaddle preentrenados. Por ejemplo, para cargar un modelo RT-DETR-l preentrenado en COCO val2017 y alcanzar altos FPS en una GPU T4, 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")

Link to this section¿Por qué debería elegir el RT-DETR de Baidu frente a otros detectores de objetos en tiempo real?#

El RT-DETR de Baidu destaca debido a su eficiente codificador híbrido y su 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 mediante el uso de diferentes capas de decodificador sin necesidad de reentrenamiento añade una flexibilidad significativa. Esto lo hace especialmente ventajoso para aplicaciones que requieren un 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.

Link to this section¿Cómo admite RT-DETR una velocidad de inferencia adaptable para diferentes aplicaciones en tiempo real?#

El RT-DETR de Baidu permite ajustes flexibles de la velocidad de inferencia mediante el uso de diferentes capas de decodificador sin necesidad de reentrenamiento. Esta adaptabilidad es crucial para escalar el rendimiento a través de diversas tareas de detección de objetos en tiempo real. Tanto si necesitas 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 tus requisitos específicos. Esta característica es especialmente valiosa cuando se despliegan modelos en dispositivos con capacidades computacionales variables.

Link to this section¿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, incluidos entrenamiento, validación, predicción y exportación. Puedes consultar la documentación respectiva para obtener instrucciones detalladas sobre cómo utilizar estos modos: Train, Val, Predict y Export. Esto garantiza un flujo de trabajo integral para desarrollar y desplegar tus soluciones de detección de objetos. El marco de trabajo de Ultralytics proporciona una API consistente a través de diferentes arquitecturas de modelos, lo que facilita el trabajo con modelos RT-DETR.

Comentarios