RT-DETR de Baidu: Un detector de objetos en tiempo real basado en Vision Transformer
Visión general
El transformador de detección en tiempo real (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 marco sin NMS), al tiempo que introduce 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 destaca en backends acelerados como CUDA con TensorRT, superando a muchos otros detectores de objetos en tiempo real.
Ver: Transformador de detección en tiempo real (RT-DETR)
Descripción general de RT-DETR de Baidu. El diagrama de la arquitectura del modelo RT-DETR muestra las últimas tres etapas del backbone {S3, S4, S5} como la entrada al codificador. El eficiente codificador híbrido 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 inter escala (CCFM). La selección de consultas basada en 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 Consciente de IoU: RT-DETR de Baidu mejora la inicialización de consultas de objetos utilizando la selección de consultas 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 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 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 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 Modelo | Pesos Pre-entrenados | Tareas admitidas | Inferencia | Validación | Entrenamiento | 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 particularmente adecuado para aplicaciones que requieren alta precisión y rendimiento en tiempo real:
- Conducción autónoma: Para una percepción ambiental fiable en sistemas de conducción autónoma donde tanto la velocidad como la precisión son críticas. Obtenga más información sobre la IA en los coches autónomos.
- Robótica Avanzada: Permite a los robots realizar tareas complejas que requieren un reconocimiento e interacción precisos de los objetos en entornos dinámicos. Explora el papel de la IA en la robótica.
- Imágenes médicas: Para aplicaciones en la atención médica donde la precisión en la detección de objetos puede ser crucial para el diagnóstico. Descubra la IA en la atención médica.
- Sistemas de vigilancia: Para aplicaciones de seguridad que requieren monitorización en tiempo real con alta precisión de detección. Más información sobre los sistemas de alarma de seguridad.
- Análisis de imágenes de satélite: Para un análisis detallado de imágenes de alta resolución donde la comprensión del contexto global es importante. Más información sobre la visión artificial en imágenes de satélite.
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 de Baidu (Real-Time Detection Transformer) es un detector de objetos en tiempo real avanzado construido sobre la arquitectura Vision Transformer. Procesa eficientemente 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 necesidad de volver a entrenar, 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 Arxiv de RT-DETR.
¿Cómo puedo utilizar los modelos RT-DETR preentrenados proporcionados por Ultralytics?
Puedes aprovechar la API de Ultralytics Python para utilizar modelos RT-DETR de PaddlePaddle pre-entrenados. Por ejemplo, para cargar un modelo RT-DETR-l pre-entrenado en COCO val2017 y lograr un alto 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")
# 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 mediante el uso de diferentes capas de decodificador sin necesidad de volver a entrenar 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.