Перейти к содержанию

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.



📅 Создано 1 год назад ✏️ Обновлено 4 месяца назад

Комментарии