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

RTDETRv2 и YOLOX: техническое сравнение для обнаружения объектов в реальном времени

В быстро развивающейся области компьютерного зрения стремление к оптимальному балансу между скоростью и точностью продолжает стимулировать инновации. Два различных подхода стали лидерами: RTDETRv2 на основе трансформеров и YOLOX на основе CNN без привязки. В этом сравнении рассматриваются их архитектурные различия, показатели производительности и идеальные варианты использования, чтобы помочь разработчикам выбрать правильный инструмент для своих конкретных потребностей.

Обзоры моделей

Прежде чем углубляться в технические детали, давайте установим происхождение и основные принципы этих двух влиятельных моделей.

RTDETRv2

RTDETRv2 (Real-Time DEtection TRansformer version 2) представляет собой значительный шаг вперед во внедрении архитектур Transformer в приложения реального времени. Разработанный исследователями из Baidu, он основывается на оригинальной RT-DETR, представляя "Bag-of-Freebies", который повышает стабильность обучения и производительность без увеличения задержки вывода. Он направлен на решение проблемы высокой вычислительной стоимости, обычно связанной с Vision Transformers (ViTs), при этом превосходя традиционные CNN-детекторы по точности.

Узнайте больше о RTDETRv2

YOLOX

YOLOX оживил семейство YOLO в 2021 году, переключившись на механизм anchor-free и внедрив передовые методы, такие как decoupled heads и назначение меток SimOTA. Хотя он сохраняет бэкбон в стиле Darknet, характерный для серии YOLO, его архитектурные сдвиги устранили многие ограничения детекторов на основе anchor, что привело к созданию высокоэффективной и гибкой модели, которая исключительно хорошо работает на периферийных устройствах.

Узнайте больше о YOLOX

Анализ производительности

Компромиссы в производительности между RTDETRv2 и YOLOX различны. RTDETRv2 отдает приоритет максимальной точности (mAP), используя механизмы глобального внимания трансформеров для лучшего понимания сложных сцен и объектов с перекрытиями. Однако это сопряжено с более высокими вычислительными требованиями, особенно в отношении использования памяти GPU.

И наоборот, YOLOX оптимизирован для скорости и эффективности. Его конструкция без привязки упрощает головку обнаружения, уменьшая количество параметров проектирования и ускоряя постобработку (NMS). Модели YOLOX, особенно варианты Nano и Tiny, часто предпочтительнее для развертываний edge AI, где аппаратные ресурсы ограничены.

В таблице ниже показаны эти различия. Обратите внимание, что, хотя RTDETRv2 достигает более высоких показателей mAP, YOLOX-s обеспечивает более высокую скорость инференса на TensorRT, что демонстрирует его пригодность для приложений, чувствительных к задержкам.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
RTDETRv2-s64048.1-5.032060
RTDETRv2-m64051.9-7.5136100
RTDETRv2-l64053.4-9.7642136
RTDETRv2-x64054.3-15.0376259
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Углубленное изучение архитектуры

Понимание структурных различий помогает понять, почему эти модели работают по-разному.

RTDETRv2: гибридный энкодер-декодер

RTDETRv2 решает вычислительные узкие места стандартных моделей DETR, представляя эффективный гибридный энкодер. Этот компонент обрабатывает многомасштабные признаки, разделяя взаимодействие внутри масштаба (в пределах одного и того же слоя признаков) и слияние между масштабами (между слоями).

  • Выбор запросов с учетом IoU: Вместо выбора статических запросов объектов, RTDETRv2 выбирает фиксированное количество признаков изображения, которые служат начальными запросами объектов на основе их оценок классификации, улучшая инициализацию.
  • Гибкий декодер: Декодер поддерживает динамическую настройку количества запросов во время вывода, позволяя пользователям выбирать между скоростью и точностью без переобучения.

YOLOX: Anchor-Free и разделенный

YOLOX отходит от anchor-based парадигмы, используемой в YOLOv4 и YOLOv5.

  • Без привязки к якорям: Предсказывая непосредственно центры и размеры объектов, YOLOX устраняет необходимость ручного проектирования anchor box, снижая сложность настройки гиперпараметров.
  • Разделенная голова (Decoupled Head): Она разделяет задачи классификации и регрессии на разные ветви головы сети. Такое разделение часто приводит к более быстрой сходимости и лучшей точности.
  • SimOTA: Продвинутая стратегия назначения меток, которая рассматривает процесс назначения как задачу оптимальной транспортировки, динамически назначая положительные примеры истинным значениям на основе глобальной стоимости оптимизации.

На основе якорей и без якорей

Традиционные детекторы используют предопределенные рамки (anchor boxes) для оценки местоположения объектов. YOLOX устраняет эту зависимость, упрощая архитектуру и делая модель более устойчивой к различным формам объектов. RTDETRv2, будучи трансформером, использует object queries вместо anchor boxes, динамически обучаясь определять важные области изображения.

Сильные и слабые стороны

RTDETRv2

  • Преимущества:
    • Высокая точность: достигает современного mAP на эталонных тестах COCO.
    • Глобальный контекст: Механизмы внимания Transformer эффективно улавливают зависимости на большом расстоянии.
    • Адаптируемость: Регулируемый выбор запросов обеспечивает гибкость во время inference.
  • Слабые стороны:
    • Требовательный к ресурсам: Требуется значительный объем памяти GPU для обучения и вывода по сравнению с CNN.
    • Более медленное обучение: Transformer-ы обычно сходятся дольше, чем архитектуры на основе CNN.

YOLOX

  • Преимущества:
    • Скорость инференса: Чрезвычайно высокая, особенно у небольших вариантов (Nano, Tiny, S).
    • Удобство развертывания: Легче развертывать на периферийных устройствах и CPU из-за меньшего количества операций с плавающей запятой и количества параметров.
    • Простота: Безъякорная конструкция снижает сложность проектирования.
  • Слабые стороны:
    • Более низкая пиковая точность: С трудом может сравниться с топовой точностью больших моделей-трансформеров, таких как RTDETRv2-x.
    • Эволюция функций: Отсутствуют некоторые многомодальные возможности, имеющиеся в новых фреймворках.

Преимущество Ultralytics: Почему стоит выбрать YOLO11?

В то время как RTDETRv2 и YOLOX являются внушительными моделями, экосистема Ultralytics YOLO, возглавляемая современной YOLO11, предлагает комплексное решение, которое часто перевешивает преимущества отдельных моделей.

  • Баланс производительности: YOLO11 разработан для обеспечения оптимального компромисса между скоростью и точностью. Он часто соответствует или превосходит точность моделей на основе трансформеров, сохраняя при этом скорость инференса, характерную для семейства YOLO.
  • Простота использования: Ultralytics уделяет первостепенное внимание опыту разработчиков. С унифицированным Python API и CLI вы можете обучать, проверять и развертывать модели всего в несколько строк кода.
  • Эффективность использования памяти: В отличие от RT-DETR, который может быть требовательным к GPU VRAM, YOLO11 отличается высокой эффективностью использования памяти как во время обучения, так и во время инференса. Это делает его доступным для исследователей и разработчиков с оборудованием потребительского класса.
  • Хорошо поддерживаемая экосистема: Модели Ultralytics поддерживаются частыми обновлениями, активным сообществом и обширной документацией. Такие функции, как Ultralytics HUB, облегчают простое управление моделями и облачное обучение.
  • Универсальность: Помимо простого object detection, YOLO11 изначально поддерживает instance segmentation, pose estimation, OBB и classification, тогда как YOLOX и RTDETRv2 в основном ориентированы на detect.
  • Эффективность обучения: Благодаря предварительно обученным весам, доступным для различных задач, и сложным возможностям трансферного обучения, YOLO11 значительно сокращает время и энергию, необходимые для обучения высокопроизводительных моделей.

Узнайте больше о YOLO11

Пример кода

Ultralytics делает использование этих передовых моделей невероятно простым. Ниже приведен пример того, как запустить вывод с использованием YOLO11, и, что примечательно, Ultralytics также поддерживает RT-DETR напрямую, что значительно упрощает его использование по сравнению с оригинальным репозиторием.

from ultralytics import RTDETR, YOLO

# Load the Ultralytics YOLO11 model (Recommended)
model_yolo = YOLO("yolo11n.pt")

# Run inference on an image
results_yolo = model_yolo("path/to/image.jpg")

# Load an RT-DETR model via Ultralytics API
model_rtdetr = RTDETR("rtdetr-l.pt")

# Run inference with RT-DETR
results_rtdetr = model_rtdetr("path/to/image.jpg")

Заключение

Выбор между RTDETRv2 и YOLOX в конечном счете зависит от ваших конкретных ограничений.

  • Выберите RTDETRv2, если вашему приложению требуется абсолютно высокая точность, например, в академических исследованиях или высокоточной промышленной инспекции, и у вас есть доступ к мощным ресурсам GPU.
  • Выберите YOLOX, если вы выполняете развертывание в средах с ограниченными ресурсами, таких как Raspberry Pi или мобильные устройства, где важна каждая миллисекунда задержки.

Однако, для подавляющего большинства реальных приложений, Ultralytics YOLO11 становится превосходным универсальным выбором. Она сочетает в себе преимущества современных архитектур в точности со скоростью и эффективностью CNN, и все это в удобной, готовой к производству экосистеме. Независимо от того, создаете ли вы для периферии или облака, YOLO11 предоставляет инструменты и производительность для достижения успеха.

Изучите другие сравнения

Чтобы принять более взвешенное решение, рассмотрите возможность изучения других сравнений моделей:


Комментарии