Link to this sectionRT-DETR от Baidu: детектор объектов реального времени на основе Transformer#
Link to this sectionОбзор#
Real-Time Detection Transformer (RT-DETR), разработанный Baidu, представляет собой передовой сквозной детектор объектов, обеспечивающий производительность в реальном времени при сохранении высокой точности. Он основан на идее DETR (фреймворка без NMS), при этом использует backbone на основе сверток и эффективный гибридный энкодер для достижения скорости реального времени. RT-DETR эффективно обрабатывает мультимасштабные признаки за счет разделения внутримасштабного взаимодействия и кросс-масштабной интеграции. Модель обладает высокой адаптируемостью, поддерживая гибкую настройку скорости вывода с помощью разных слоев декодера без необходимости переобучения. RT-DETR превосходно работает на ускоренных бэкендах, таких как CUDA с TensorRT, опережая многие другие детекторы объектов реального времени.
Watch: How to Use Baidu's RT-DETR for Object Detection | Inference and Benchmarking with Ultralytics 🚀
Обзор RT-DETR от Baidu. На схеме архитектуры модели RT-DETR показаны последние три стадии backbone {S3, S4, S5} в качестве входных данных для энкодера. Эффективный гибридный энкодер преобразует мультимасштабные признаки в последовательность признаков изображения с помощью модуля внутримасштабного взаимодействия признаков (AIFI) и модуля кросс-масштабной интеграции признаков (CCFM). IoU-aware выбор запросов используется для отбора фиксированного количества признаков изображения, которые служат начальными запросами объектов для декодера. Наконец, декодер со вспомогательными головами предсказаний итеративно оптимизирует запросы объектов для генерации рамок и оценок достоверности (источник).
Link to this sectionКлючевые особенности#
- Эффективный гибридный энкодер: RT-DETR от Baidu использует эффективный гибридный энкодер, который обрабатывает мультимасштабные признаки путем разделения внутримасштабного взаимодействия и кросс-масштабной интеграции. Этот уникальный дизайн, основанный на Vision Transformers, снижает вычислительные затраты и обеспечивает обнаружение объектов в реальном времени.
- IoU-aware выбор запросов: RT-DETR от Baidu улучшает инициализацию запросов объектов за счет использования IoU-aware выбора запросов. Это позволяет модели фокусироваться на наиболее релевантных объектах в сцене, повышая точность обнаружения.
- Адаптируемая скорость вывода: RT-DETR от Baidu поддерживает гибкую настройку скорости вывода за счет использования различных слоев декодера без необходимости переобучения. Эта адаптивность облегчает практическое применение в различных сценариях обнаружения объектов в реальном времени.
- Фреймворк без NMS: Основанный на DETR, RT-DETR исключает необходимость постпроцессинга non-maximum suppression, упрощая конвейер обнаружения и потенциально повышая эффективность.
- Anchor-free детектирование: Являясь anchor-free детектором, RT-DETR упрощает процесс обнаружения и может улучшить обобщающую способность на различных наборах данных.
Link to this sectionПредварительно обученные модели#
Python API от Ultralytics предоставляет предобученные модели PaddlePaddle RT-DETR различных масштабов:
- RT-DETR-L: 53.0% mAP на COCO val2017, 114 FPS на GPU T4
- RT-DETR-X: 54.8% mAP на COCO val2017, 74 FPS на GPU T4
Кроме того, в июле 2024 года Baidu выпустила RTDETRv2, которая дополнительно улучшает оригинальную архитектуру благодаря повышенным метрикам производительности.
Link to this sectionПримеры использования#
Этот пример содержит простые примеры обучения и вывода RT-DETR. Полную документацию по этим и другим режимам см. на страницах документации Predict, Train, Val и Export. Модели также можно обучать на облачных GPU через Ultralytics Platform.
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")Предобученные веса RT-DETR поддерживают две настройки времени вывода для снижения задержки без переобучения:
eval_idx: Завершить декодирование раньше. Для стандартного 6-слойного декодера используй индекс с нуля (0–5).eval_idx=5использует все слои;eval_idx=3использует 4 слоя. На GPU T4 с TensorRT v10.11 производительность RT-DETR-L улучшается с 8.0 мс / 52.7 mAP до 7.4 мс / 52.5 mAP при использовании 4 слоев.num_queries: Уменьшить количество запросов объектов (по умолчанию: 300). Снижение до 100 позволяет достичь 7.4 мс / 51.7 mAP на COCO в тех же условиях. На наборах данных с меньшим количеством объектов на изображение падение mAP обычно меньше, но держи значение выше ожидаемого максимального количества объектов на кадр.
Обе настройки могут снизить mAP — проверяй компромисс на своем наборе данных перед развертыванием.
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 sectionПоддерживаемые задачи и режимы#
В этой таблице представлены типы моделей, конкретные предобученные веса, задачи, поддерживаемые каждой моделью, и различные режимы (Train, Val, Predict, Export), отмеченные эмодзи ✅.
| Тип модели | Предобученные веса | Поддерживаемые задачи | Inference | Validation | Training | Экспорт |
|---|---|---|---|---|---|---|
| RT-DETR Large | rtdetr-l.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
| RT-DETR Extra-Large | rtdetr-x.pt | Обнаружение объектов (Object Detection) | ✅ | ✅ | ✅ | ✅ |
rtdetr-resnet50.yaml и rtdetr-resnet101.yaml поставляются только в виде YAML-архитектур. Ultralytics выпускает предобученные веса только для rtdetr-l и rtdetr-x. Создавай варианты ResNet из YAML (например, RTDETR("rtdetr-resnet50.yaml")) и обучай или дообучай их по мере необходимости.
Link to this sectionИдеальные варианты использования#
RT-DETR особенно хорошо подходит для приложений, требующих как высокой точности, так и производительности в реальном времени:
- Автономное вождение: Для надежного восприятия окружающей среды в беспилотных системах, где скорость и точность критически важны. Узнай больше об ИИ в самоуправляемых автомобилях.
- Продвинутая робототехника: Позволяет роботам выполнять сложные задачи, требующие точного распознавания объектов и взаимодействия в динамических средах. Изучи роль ИИ в робототехнике.
- Медицинская визуализация: Для применения в здравоохранении, где точность обнаружения объектов может быть решающей для диагностики. Открой для себя ИИ в здравоохранении.
- Системы видеонаблюдения: для охранных приложений, требующих мониторинга в реальном времени с высокой точностью обнаружения. Узнай о системах охранной сигнализации.
- Анализ спутниковых снимков: Для детального анализа изображений высокого разрешения, где важно понимание глобального контекста. Читай о компьютерном зрении в спутниковых снимках.
Link to this sectionЦитирование и благодарности#
Если используешь RT-DETR от Baidu в своих исследованиях или разработках, пожалуйста, процитируй оригинальную статью:
@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}
}Для RTDETRv2 ты можешь процитировать статью 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}
}Мы хотели бы выразить благодарность Baidu и команде PaddlePaddle за создание и поддержку этого ценного ресурса для сообщества computer vision. Их вклад в область, заключающийся в разработке детектора объектов реального времени на основе Vision Transformers, RT-DETR, высоко ценится.
Link to this sectionFAQ#
Link to this sectionЧто такое модель RT-DETR от Baidu и как она работает?#
RT-DETR от Baidu (Real-Time Detection Transformer) — это продвинутый детектор объектов реального времени, построенный на архитектуре Vision Transformer. Он эффективно обрабатывает мультимасштабные признаки за счет разделения внутримасштабного взаимодействия и кросс-масштабной интеграции через свой эффективный гибридный энкодер. Используя IoU-aware выбор запросов, модель фокусируется на наиболее релевантных объектах, повышая точность обнаружения. Адаптируемая скорость вывода, достигаемая за счет настройки слоев декодера без переобучения, делает RT-DETR подходящим для различных сценариев обнаружения объектов в реальном времени. Узнай больше о функциях RT-DETR в статье на Arxiv.
Link to this sectionКак я могу использовать предобученные модели RT-DETR, предоставляемые Ultralytics?#
Ты можешь использовать Python API от Ultralytics для работы с предобученными моделями PaddlePaddle RT-DETR. Например, чтобы загрузить модель RT-DETR-l, предобученную на COCO val2017, и достичь высокого FPS на GPU T4, ты можешь использовать следующий пример:
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Почему мне стоит выбрать RT-DETR от Baidu вместо других детекторов объектов реального времени?#
RT-DETR от Baidu выделяется благодаря своему эффективному гибридному энкодеру и IoU-aware выбору запросов, которые значительно снижают вычислительные затраты при сохранении высокой точности. Уникальная способность настраивать скорость вывода с помощью разных слоев декодера без переобучения обеспечивает значительную гибкость. Это делает модель особенно выгодной для приложений, требующих производительности в реальном времени на ускоренных бэкендах, таких как CUDA с TensorRT, превосходя многие другие детекторы объектов реального времени. Архитектура трансформера также обеспечивает лучшее понимание глобального контекста по сравнению с традиционными детекторами на базе CNN.
Link to this sectionКак RT-DETR поддерживает адаптируемую скорость вывода для различных приложений реального времени?#
RT-DETR от Baidu позволяет гибко настраивать скорость вывода за счет использования различных слоев декодера без необходимости переобучения. Эта адаптивность критически важна для масштабирования производительности в различных задачах обнаружения объектов в реальном времени. Нужно ли тебе более быстрое выполнение для задач с меньшей точностью или более медленное, но точное детектирование — RT-DETR можно настроить под твои специфические требования. Эта функция особенно полезна при развертывании моделей на устройствах с разными вычислительными мощностями.
Link to this sectionМогу ли я использовать модели RT-DETR с другими режимами Ultralytics, такими как обучение, валидация и экспорт?#
Да, модели RT-DETR совместимы с различными режимами Ultralytics, включая обучение, валидацию, предсказание и экспорт. Ты можешь обратиться к соответствующей документации для получения подробных инструкций о том, как использовать эти режимы: Train, Val, Predict и Export. Это обеспечивает полноценный рабочий процесс для разработки и развертывания твоих решений по обнаружению объектов. Фреймворк Ultralytics предоставляет согласованный API для различных архитектур моделей, что упрощает работу с моделями RT-DETR.