RT-DETR от Baidu: Детектор объектов реального времени на основе Vision Transformer
Обзор
Real-Time Detection Transformer (RT-DETR), разработанный Baidu, — это передовой объектный детектор end-to-end, который обеспечивает производительность в реальном времени, сохраняя при этом высокую точность. Он основан на идее DETR (фреймворк без NMS), при этом внедряя backbone на основе сверточных нейронных сетей и эффективный гибридный энкодер для достижения скорости в реальном времени. RT-DETR эффективно обрабатывает многомасштабные признаки, разделяя взаимодействие внутри масштаба и слияние между масштабами. Модель обладает высокой адаптивностью, поддерживая гибкую настройку скорости инференса с использованием различных слоев декодера без переобучения. RT-DETR превосходно работает на ускоренных бэкендах, таких как CUDA с TensorRT, превосходя многие другие детекторы объектов реального времени.
Смотреть: Real-Time Detection Transformer (RT-DETR)
Обзор RT-DETR от Baidu. На схеме архитектуры модели RT-DETR показаны последние три этапа базовой сети {S3, S4, S5} в качестве входных данных для кодировщика. Эффективный гибридный кодировщик преобразует многомасштабные признаки в последовательность признаков изображения посредством внутримасштабного взаимодействия признаков (AIFI) и модуля межмасштабного слияния признаков (CCFM). Выборка запросов с учетом IoU используется для выбора фиксированного количества признаков изображения, которые служат начальными запросами объектов для декодера. Наконец, декодер с вспомогательными предиктивными головками итеративно оптимизирует запросы объектов для создания ограничивающих рамок и оценок достоверности (confidence scores).источник).
Основные характеристики
- Эффективный гибридный энкодер: RT-DETR от Baidu использует эффективный гибридный энкодер, который обрабатывает многомасштабные признаки путем разделения взаимодействия внутри масштаба и межмасштабного слияния. Эта уникальная конструкция на основе Vision Transformers снижает вычислительные затраты и обеспечивает обнаружение объектов в реальном времени.
- Выбор запросов с учетом IoU: RT-DETR от Baidu улучшает инициализацию запросов объектов, используя выбор запросов с учетом IoU. Это позволяет модели сосредоточиться на наиболее релевантных объектах в сцене, повышая точность обнаружения.
- Адаптируемая скорость инференса: RT-DETR от Baidu поддерживает гибкую настройку скорости инференса с использованием различных слоев декодера без необходимости переобучения. Эта адаптивность облегчает практическое применение в различных сценариях обнаружения объектов в реальном времени.
- Фреймворк без NMS: Основанный на DETR, RT-DETR устраняет необходимость в постобработке non-maximum suppression, упрощая конвейер обнаружения и потенциально повышая эффективность.
- Anchor-Free Detection: Как anchor-free детектор, RT-DETR упрощает процесс обнаружения и может улучшить обобщение на различных наборах данных.
Предварительно обученные модели
API Ultralytics Python предоставляет предварительно обученные модели PaddlePaddle RT-DETR с различными масштабами:
- RT-DETR-L: 53.0% AP на COCO val2017, 114 FPS на GPU T4
- RT-DETR-X: 54.8% AP на COCO val2017, 74 FPS на GPU T4
Кроме того, в июле 2024 года Baidu выпустила RTDETRv2, которая еще больше улучшает исходную архитектуру за счет улучшенных показателей производительности.
Примеры использования
В этом примере представлены простые примеры обучения и логического вывода RT-DETR. Полную документацию по этим и другим режимам см. на страницах документации Predict, Train, Val и Export.
Пример
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
Поддерживаемые задачи и режимы
В этой таблице представлены типы моделей, конкретные предварительно обученные веса, задачи, поддерживаемые каждой моделью, и различные режимы (Train, Val, Predict, Export), которые поддерживаются, обозначенные эмодзи ✅.
Тип модели | Предварительно обученные веса | Поддерживаемые задачи | Инференс | Валидация | Обучение | Экспорт |
---|---|---|---|---|---|---|
RT-DETR Large | rtdetr-l.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
RT-DETR Extra-Large | rtdetr-x.pt | Обнаружение объектов | ✅ | ✅ | ✅ | ✅ |
Идеальные варианты использования
RT-DETR особенно хорошо подходит для приложений, требующих высокой точности и производительности в реальном времени:
- Автономное вождение: Для надежного восприятия окружающей среды в системах автономного вождения, где скорость и точность имеют решающее значение. Узнайте больше об ИИ в самоуправляемых автомобилях.
- Продвинутая робототехника: Позволяет роботам выполнять сложные задачи, требующие точного распознавания объектов и взаимодействия в динамических средах. Узнайте о роли ИИ в робототехнике.
- Медицинская визуализация: Для применения в здравоохранении, где точность обнаружения объектов может иметь решающее значение для диагностики. Узнайте об ИИ в здравоохранении.
- Системы наблюдения: Для приложений безопасности, требующих мониторинга в реальном времени с высокой точностью обнаружения. Узнайте о системах охранной сигнализации.
- Анализ спутниковых изображений: Для детального анализа изображений с высоким разрешением, где важно понимание глобального контекста. Узнайте о компьютерном зрении в спутниковых изображениях.
Цитирование и благодарности
Если вы используете 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 за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения. Их вклад в эту область благодаря разработке детектора объектов реального времени на основе Vision Transformers, RT-DETR, высоко ценится.
Часто задаваемые вопросы
Что такое модель RT-DETR от Baidu и как она работает?
RT-DETR (Real-Time Detection Transformer) от Baidu — это передовой детектор объектов реального времени, построенный на архитектуре Vision Transformer. Он эффективно обрабатывает многомасштабные признаки, разделяя взаимодействие внутри масштаба и слияние между масштабами с помощью своего эффективного гибридного энкодера. Используя выбор запросов с учетом IoU, модель фокусируется на наиболее релевантных объектах, повышая точность обнаружения. Его адаптируемая скорость инференса, достигаемая путем настройки слоев декодера без переобучения, делает RT-DETR подходящим для различных сценариев обнаружения объектов в реальном времени. Узнайте больше о функциях RT-DETR в статье RT-DETR Arxiv.
Как я могу использовать предварительно обученные модели RT-DETR, предоставляемые Ultralytics?
Вы можете использовать Ultralytics Python API для работы с предварительно обученными моделями PaddlePaddle RT-DETR. Например, чтобы загрузить модель RT-DETR-l, предварительно обученную на COCO val2017, и добиться высокой FPS на T4 GPU, вы можете использовать следующий пример:
Пример
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
Почему мне следует выбрать RT-DETR от Baidu вместо других детекторов объектов реального времени?
RT-DETR от Baidu выделяется благодаря своему эффективному гибридному энкодеру и выбору запросов с учетом IoU, которые значительно снижают вычислительные затраты при сохранении высокой точности. Его уникальная способность регулировать скорость инференса с помощью различных слоев декодера без переобучения добавляет значительную гибкость. Это делает его особенно выгодным для приложений, требующих производительности в реальном времени на ускоренных бэкендах, таких как CUDA с TensorRT, превосходя многие другие детекторы объектов реального времени. Архитектура transformer также обеспечивает лучшее понимание глобального контекста по сравнению с традиционными детекторами на основе CNN.
Как RT-DETR поддерживает адаптивную скорость инференса для различных приложений реального времени?
RT-DETR от Baidu позволяет гибко регулировать скорость инференса, используя различные слои декодера без необходимости переобучения. Эта адаптивность имеет решающее значение для масштабирования производительности в различных задачах обнаружения объектов в реальном времени. Независимо от того, нужна ли вам более быстрая обработка для менее точных задач или более медленное, но более точное обнаружение, RT-DETR можно настроить в соответствии с вашими конкретными требованиями. Эта функция особенно ценна при развертывании моделей на устройствах с различными вычислительными возможностями.
Могу ли я использовать модели RT-DETR с другими режимами Ultralytics, такими как обучение, валидация и экспорт?
Да, модели RT-DETR совместимы с различными режимами Ultralytics, включая обучение, валидацию, предсказание и экспорт. Подробные инструкции по использованию этих режимов можно найти в соответствующей документации: Train, Val, Predict и Export. Это обеспечивает комплексный рабочий процесс для разработки и развертывания ваших решений по обнаружению объектов. Фреймворк Ultralytics предоставляет согласованный API для различных архитектур моделей, что упрощает работу с моделями RT-DETR.