RTDETRv2 и YOLOX: техническое сравнение для обнаружения объектов в реальном времени
В быстро развивающейся области компьютерного зрения стремление к оптимальному балансу между скоростью и точностью продолжает стимулировать инновации. Два различных подхода стали лидерами: RTDETRv2 на основе трансформеров и YOLOX на основе CNN без привязки. В этом сравнении рассматриваются их архитектурные различия, показатели производительности и идеальные варианты использования, чтобы помочь разработчикам выбрать правильный инструмент для своих конкретных потребностей.
Обзоры моделей
Прежде чем углубляться в технические детали, давайте установим происхождение и основные принципы этих двух влиятельных моделей.
RTDETRv2
RTDETRv2 (Real-Time DEtection TRansformer version 2) представляет собой значительный шаг вперед во внедрении архитектур Transformer в приложения реального времени. Разработанный исследователями из Baidu, он основывается на оригинальной RT-DETR, представляя "Bag-of-Freebies", который повышает стабильность обучения и производительность без увеличения задержки вывода. Он направлен на решение проблемы высокой вычислительной стоимости, обычно связанной с Vision Transformers (ViTs), при этом превосходя традиционные CNN-детекторы по точности.
- Авторы: Веню Лю, Иань Чжао, Циньяо Чанг, Куй Хуанг, Гуаньчжун Ван и И Лю
- Организация:Baidu
- Дата: 2023-04-17 (Оригинальная RT-DETR), последующие обновления v2.
- Arxiv:RT-DETRv2: Improved Baseline with Bag-of-Freebies
- GitHub:Репозиторий RT-DETRv2
YOLOX
YOLOX оживил семейство YOLO в 2021 году, переключившись на механизм anchor-free и внедрив передовые методы, такие как decoupled heads и назначение меток SimOTA. Хотя он сохраняет бэкбон в стиле Darknet, характерный для серии YOLO, его архитектурные сдвиги устранили многие ограничения детекторов на основе anchor, что привело к созданию высокоэффективной и гибкой модели, которая исключительно хорошо работает на периферийных устройствах.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:YOLOX: Exceeding YOLO Series in 2021
- GitHub:Репозиторий 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-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.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 значительно сокращает время и энергию, необходимые для обучения высокопроизводительных моделей.
Пример кода
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 предоставляет инструменты и производительность для достижения успеха.
Изучите другие сравнения
Чтобы принять более взвешенное решение, рассмотрите возможность изучения других сравнений моделей: