Meet YOLO26: next-gen vision AI.

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 🚀

Обзор архитектуры модели Baidu RT-DETR Обзор 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-слойного декодера используй индекс с нуля (05). 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), отмеченные эмодзи ✅.

Тип моделиПредобученные весаПоддерживаемые задачиInferenceValidationTrainingЭкспорт
RT-DETR Largertdetr-l.ptОбнаружение объектов (Object Detection)
RT-DETR Extra-Largertdetr-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.

Комментарии