RTDETRv2 и YOLOv5: Подробное техническое сравнение
Выбор оптимальной модели обнаружения объектов — критически важное решение для любого проекта компьютерного зрения. Компромиссы между точностью, скоростью и вычислительными затратами определяют пригодность модели для данного приложения. На этой странице представлено подробное техническое сравнение между RTDETRv2, высокоточной моделью на основе transformer, и Ultralytics YOLOv5, высокоэффективным и широко распространенным отраслевым стандартом. Мы рассмотрим их архитектурные различия, эталонные показатели производительности и идеальные варианты использования, чтобы помочь вам сделать осознанный выбор.
RTDETRv2: Высокоточный детектор реального времени на основе Transformer
RT-DETRv2 (Детектор-трансформер реального времени v2) — это современный детектор объектов от Baidu, который использует возможности Vision Transformers для достижения высокой точности при сохранении производительности в реальном времени. Он представляет собой значительный шаг в переносе сложных архитектур Transformer в практические приложения реального времени.
Авторы: Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang и Yi Liu
Организация: Baidu
Дата: 2023-04-17 (Первоначальная версия RT-DETR), 2024-07-24 (Улучшения RT-DETRv2)
Arxiv: https://arxiv.org/abs/2304.08069, https://arxiv.org/abs/2407.17140
GitHub: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch
Документация: https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch#readme
Архитектура
RTDETRv2 использует гибридную архитектуру, которая сочетает в себе сильные стороны сверточных нейронных сетей (CNN) и трансформеров.
- Backbone: CNN (например, ResNet или HGNetv2) используется для начального извлечения признаков, эффективно захватывая низкоуровневые признаки изображения.
- Encoder-Decoder: Ядром модели является структура энкодера-декодера на основе Transformer. Она использует механизмы самовнимания для обработки карт признаков из базовой сети, что позволяет модели захватывать глобальный контекст и долгосрочные зависимости между объектами в сцене. Это особенно эффективно для обнаружения объектов в сложных или переполненных средах.
Сильные стороны
- Высокая точность: Архитектура transformer позволяет RTDETRv2 достигать отличных показателей mAP, часто превосходя традиционные модели на основе CNN на сложных наборах данных, таких как COCO.
- Надежное извлечение признаков: Учитывая контекст всего изображения, он хорошо работает в сложных сценариях с окклюдированными или маленькими объектами, что делает его подходящим для таких приложений, как автономное вождение.
- Возможности реального времени: Модель оптимизирована для обеспечения конкурентоспособной скорости вывода, особенно при ускорении с помощью таких инструментов, как NVIDIA TensorRT.
Слабые стороны
- Вычислительные затраты: Модели на основе Transformer обычно имеют большее количество параметров и FLOPs, что требует более значительных вычислительных ресурсов, таких как память GPU и вычислительная мощность.
- Сложность обучения: Обучение RTDETRv2 может быть ресурсоемким и более медленным, чем обучение моделей на основе CNN. Часто требуется значительно больше памяти CUDA, что может быть барьером для пользователей с ограниченным оборудованием.
- Скорость инференса на CPU: Несмотря на быстроту на высокопроизводительных GPU, ее производительность может быть значительно ниже, чем у оптимизированных моделей, таких как YOLOv5, на CPU или менее мощных периферийных устройствах.
- Экосистема: Ей не хватает обширной, унифицированной экосистемы, инструментов и широкой поддержки сообщества, которые Ultralytics предоставляет для своих моделей YOLO.
Ultralytics YOLOv5: Устоявшийся отраслевой стандарт
Ultralytics YOLOv5, впервые выпущенный в 2020 году, быстро стал отраслевым эталоном благодаря исключительному балансу скорости, точности и беспрецедентной простоте использования. Разработанный на PyTorch Гленном Джохером, YOLOv5 — это зрелая, надежная и хорошо оптимизированная модель, которая была развернута в бесчисленных реальных приложениях.
Автор: Гленн Джокер
Организация: Ultralytics
Дата: 2020-06-26
GitHub: https://github.com/ultralytics/yolov5
Документация: https://docs.ultralytics.com/models/yolov5/
Архитектура
YOLOv5 имеет классическую и очень эффективную архитектуру CNN. Он использует бэкбон CSPDarknet53 для извлечения признаков, neck PANet для агрегирования признаков в разных масштабах и head обнаружения на основе anchor-ов. Эта конструкция доказала свою исключительную эффективность для обнаружения объектов в реальном времени.
Сильные стороны
- Исключительная скорость и эффективность: YOLOv5 высоко оптимизирована для быстрого вывода на широком спектре оборудования, от высокопроизводительных GPU до периферийных устройств с ограниченными ресурсами, таких как NVIDIA Jetson и Raspberry Pi.
- Простота использования: Ultralytics YOLOv5 славится своим оптимизированным пользовательским интерфейсом. Благодаря простому Python API и обширной документации разработчики могут обучать, проверять и развертывать модели с минимальными усилиями.
- Хорошо поддерживаемая экосистема: YOLOv5 поддерживается надежной экосистемой Ultralytics, которая включает активную разработку, большое и поддерживающее сообщество, частые обновления и интегрированные инструменты, такие как Ultralytics HUB, для обучения и развертывания без кода.
- Баланс производительности: Семейство моделей (n, s, m, l, x) предлагает превосходный компромисс между скоростью и точностью, позволяя пользователям выбрать идеальную модель для своих конкретных потребностей.
- Эффективность памяти: По сравнению с моделями на основе трансформеров, такими как RTDETRv2, YOLOv5 требует значительно меньше памяти CUDA для обучения, что делает его доступным для более широкого круга разработчиков и исследователей.
- Универсальность: YOLOv5 поддерживает несколько задач, включая обнаружение объектов, сегментацию экземпляров и классификацию изображений, и все это в рамках единой структуры.
- Эффективность обучения: Процесс обучения быстрый и эффективный, с готовыми предварительно обученными весами, которые ускоряют сходимость на пользовательских наборах данных.
Слабые стороны
- Точность на сложных сценах: Несмотря на высокую точность, YOLOv5 может немного уступать RTDETRv2 по mAP на наборах данных с очень плотными или маленькими объектами, где глобальный контекст имеет решающее значение.
- На основе Anchor: Использование предопределенных anchor boxes иногда может потребовать дополнительной настройки для наборов данных с необычными пропорциями объектов, что не требуется в детекторах без anchor.
Идеальные варианты использования
YOLOv5 превосходен в приложениях, где скорость, эффективность и быстрая разработка являются приоритетами:
- Видеонаблюдение в реальном времени: Обеспечивает работу систем охранной сигнализации и мониторинг прямых видеотрансляций.
- Edge Computing: Развертывание на маломощных устройствах для приложений в области робототехники и промышленной автоматизации.
- Мобильные приложения: Его легкие модели идеально подходят для инференса на устройстве на смартфонах.
- Быстрое прототипирование: Простота использования и быстрые циклы обучения делают его идеальным для быстрой разработки и тестирования новых идей.
Анализ производительности: скорость в сравнении с точностью
Основное различие между RTDETRv2 и YOLOv5 заключается в их философии проектирования. RTDETRv2 отдает приоритет достижению максимально возможной точности за счет использования вычислительно интенсивной архитектуры transformer. В отличие от этого, YOLOv5 разработан для оптимального баланса скорости и точности, что делает его более практичным выбором для более широкого спектра сценариев развертывания, особенно на оборудовании без GPU.
В таблице ниже представлено количественное сравнение на наборе данных COCO val2017. В то время как модели RTDETRv2 достигают более высокого mAP, модели YOLOv5, особенно меньшие варианты, предлагают значительно более высокую скорость логического вывода, особенно на CPU.
Модель | размер (пиксели) |
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 |
YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Заключение и рекомендации
RTDETRv2 и YOLOv5 — это мощные модели обнаружения объектов, но они служат разным потребностям.
RTDETRv2 — отличный выбор для приложений, где достижение абсолютно наивысшей точности является главным приоритетом и доступны значительные вычислительные ресурсы (особенно высокопроизводительные GPU). Его способность понимать глобальный контекст делает его превосходным для академических бенчмарков и специализированных промышленных задач со сложными сценами.
Однако, для подавляющего большинства реальных приложений Ultralytics YOLOv5 остается более практичным и универсальным выбором. Его исключительный баланс скорости и точности в сочетании с низкими требованиями к ресурсам делает его подходящим для развертывания повсюду, от облака до периферии. Ключевые преимущества YOLOv5 — простота использования, хорошо поддерживаемая экосистема, эффективность обучения и универсальность — делают его предпочтительной моделью для разработчиков и исследователей, которым необходимо быстро и эффективно предоставлять надежные, высокопроизводительные решения.
Для тех, кто ищет последние достижения, основанные на этой прочной основе, мы настоятельно рекомендуем изучить новые модели Ultralytics, такие как YOLOv8 и YOLO11, которые предлагают еще лучшую производительность и больше возможностей в рамках той же удобной для пользователя структуры.
Сравнения с другими моделями
Если вам интересно, как эти модели соотносятся с другими, ознакомьтесь со следующими страницами сравнения:
- YOLOv5 против YOLOv8
- YOLOv5 против YOLOv9
- RT-DETR против YOLOv8
- RT-DETR против YOLO11
- EfficientDet в сравнении с YOLOv5
- YOLOX против YOLOv5