Перейти к содержимому

Baidu's RT-DETR: детектор объектов в реальном времени на основе трансформатора зрения

Обзор

Real-Time Detection Transformer (RT-DETR), разработанный компанией Baidu, - это передовой сквозной детектор объектов, который обеспечивает производительность в реальном времени, сохраняя при этом высокую точность. Он основан на идее DETR (фреймворк без NMS), но при этом в него введены conv-основа и эффективный гибридный кодер для достижения скорости работы в реальном времени. RT-DETR эффективно обрабатывает разномасштабные признаки за счет разделения внутримасштабного взаимодействия и межмасштабного слияния. Модель обладает высокой адаптивностью, поддерживая гибкую настройку скорости вывода с использованием различных слоев декодера без переобучения. RT-DETR отлично работает на ускоренных бэкендах, таких как CUDA и TensorRT, превосходя многие другие детекторы объектов в реальном времени.



Смотри: Трансформатор обнаружения в реальном времени (RT-DETR)

Пример модели изображения Обзор сайта Baidu RT-DETR. На схеме архитектуры модели RT-DETR показаны три последних этапа магистрали {S3, S4, S5} в качестве входа для кодера. Эффективный гибридный кодер преобразует разномасштабные признаки в последовательность признаков изображения с помощью внутримасштабного взаимодействия признаков (AIFI) и модуля межмасштабного слияния признаков (CCFM). Выбор запросов с учетом IoU используется для выбора фиксированного количества признаков изображения, которые будут служить начальными объектными запросами для декодера. Наконец, декодер со вспомогательными головками предсказания итеративно оптимизирует запросы к объектам, чтобы сгенерировать боксы и баллы доверия (источник).

Основные характеристики

  • Эффективный гибридный кодер: На сайте Baidu RT-DETR используется эффективный гибридный кодер, который обрабатывает разномасштабные признаки, отделяя внутримасштабное взаимодействие от межмасштабного слияния. Эта уникальная конструкция на основе Vision Transformers снижает вычислительные затраты и позволяет обнаруживать объекты в режиме реального времени.
  • IoU-aware Query Selection: Baidu's RT-DETR улучшает инициализацию запросов к объектам за счет использования IoU-aware query selection. Это позволяет модели фокусироваться на наиболее релевантных объектах в сцене, повышая точность обнаружения.
  • Адаптируемая скорость вывода: RT-DETR от Baidu поддерживает гибкую настройку скорости вывода за счет использования различных слоев декодера без необходимости переобучения. Такая адаптивность облегчает практическое применение в различных сценариях обнаружения объектов в реальном времени.

Предварительно обученные модели

Ultralytics Python API предоставляет предварительно обученные модели PaddlePaddle RT-DETR с разными масштабами:

  • RT-DETR-L: 53,0% AP на COCO val2017, 114 FPS на T4. GPU
  • RT-DETR-X: 54,8% AP на COCO val2017, 74 FPS на T4 GPU

Примеры использования

В этом примере приведены простые примеры обучения и вывода RT-DETR . Полную документацию по этим и другим режимам можно найти на страницах Predict, Train, Val и Export docs.

Пример

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), которые поддерживаются, обозначенные ✅ emojis.

Тип модели Предварительно обученные веса Поддерживаемые задачи Заключение Валидация Тренировка Экспорт
RT-DETR Большой rtdetr-l.pt Обнаружение объектов
RT-DETR Экстрабольшой rtdetr-x.pt Обнаружение объектов

Цитаты и благодарности

Если ты используешь сайт Baidu RT-DETR в своих исследованиях или разработках, пожалуйста, ссылайся на оригинальную статью:

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

Мы хотели бы выразить благодарность компании Baidu и ее PaddlePaddle за создание и поддержку этого ценного ресурса для сообщества компьютерного зрения. Их вклад в эту область, связанный с разработкой детектора объектов в реальном времени на основе Vision Transformers, RT-DETR, заслуживает огромной благодарности.

ВОПРОСЫ И ОТВЕТЫ

Что такое модель Baidu RT-DETR и как она работает?

Baidu's RT-DETR (Real-Time Detection Transformer) - это продвинутый детектор объектов в реальном времени, построенный на архитектуре Vision Transformer. Он эффективно обрабатывает разномасштабные признаки, отделяя внутримасштабное взаимодействие и межмасштабное слияние с помощью эффективного гибридного кодера. Используя IoU-aware query selection, модель фокусируется на наиболее релевантных объектах, повышая точность обнаружения. Адаптируемая скорость вывода, достигаемая за счет настройки слоев декодера без переобучения, делает RT-DETR подходящей для различных сценариев обнаружения объектов в реальном времени. Узнать больше о возможностях RT-DETR можно здесь.

Как я могу использовать предварительно обученные модели 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, а не другие детекторы объектов в реальном времени?

Сайт Baidu RT-DETR выделяется эффективным гибридным кодером и выбором запросов с учетом IoU, что значительно снижает вычислительные затраты при сохранении высокой точности. Его уникальная способность регулировать скорость вывода, используя различные слои декодера без переобучения, добавляет значительную гибкость. Это делает его особенно выгодным для приложений, требующих производительности в реальном времени на ускоренных бэкендах, таких как CUDA и TensorRT, превосходящих многие другие детекторы объектов в реальном времени.

Как RT-DETR поддерживает адаптируемую скорость вывода для различных приложений реального времени?

Baidu's RT-DETR позволяет гибко регулировать скорость вывода информации, используя различные слои декодера без необходимости переобучения. Такая адаптивность очень важна для масштабирования производительности при решении различных задач по обнаружению объектов в реальном времени. Независимо от того, нужна ли тебе более быстрая обработка данных для обеспечения низкой точности или более медленное и точное обнаружение, RT-DETR может быть адаптирован под твои конкретные требования.

Могу ли я использовать модели RT-DETR с другими режимами Ultralytics , такими как обучение, проверка и экспорт?

Да, модели RT-DETR совместимы с различными режимами Ultralytics , включая обучение, валидацию, предсказание и экспорт. За подробными инструкциями по использованию этих режимов ты можешь обратиться к соответствующей документации: Train, Val, Predict и Export. Это обеспечивает комплексный рабочий процесс для разработки и развертывания твоих решений по обнаружению объектов.



Создано 2023-11-12, Обновлено 2024-07-04
Авторы: glenn-jocher (15), RizwanMunawar (1)

Комментарии