RTDETRv2 и YOLOv6-3.0: высокоточные трансформеры, отвечающие требованиям промышленной скорости
Выбор оптимальной архитектуры для detectирования объектов часто включает в себя учет компромисса между абсолютной точностью и задержкой inference. В этом техническом сравнении рассматриваются RTDETRv2, модель на основе Vision Transformer, разработанная для задач высокой точности, и YOLOv6-3.0, детектор на основе CNN, разработанный специально для промышленной скорости и эффективности. Анализируя их архитектуры, показатели производительности и характеристики развертывания, мы помогаем вам определить наилучшее решение для ваших приложений компьютерного зрения.
RTDETRv2: расширяя границы с помощью Vision Transformers
RTDETRv2 (Real-Time Detection Transformer v2) представляет собой значительную эволюцию в обнаружении объектов, используя мощь transformers для захвата глобального контекста внутри изображений. В отличие от традиционных CNN, которые обрабатывают локальные признаки, RTDETRv2 использует механизмы само-внимания для понимания взаимосвязей между удаленными объектами, что делает его очень эффективным для сложных сцен.
Авторы: Веню Лв, Йиан Чжао, Циняо Чанг, Куи Хуанг, Гуанжонг Ванг и Йи Лиу
Организация:Baidu
Дата: 2023-04-17 (Первоначальный), 2024-07-24 (v2)
Arxiv:RT-DETR: DETRs Beat YOLOs on Real-time Object Detection
GitHub:Репозиторий RT-DETR
Документация:Документация RTDETRv2
Архитектурные инновации
Архитектура RTDETRv2 представляет собой гибридную конструкцию. Она использует стандартный CNN backbone (обычно ResNet или HGNet) для начального извлечения признаков, за которым следует transformer encoder-decoder. Эта структура позволяет модели эффективно обрабатывать многомасштабные признаки, устраняя при этом необходимость в компонентах, созданных вручную, таких как anchor boxes и Non-Maximum Suppression (NMS).
Преимущества Transformer
Компоненты Vision Transformer (ViT) в RTDETRv2 превосходно справляются с устранением неоднозначностей в перегруженных сценах. Анализируя контекст всего изображения одновременно, модель уменьшает количество ложных срабатываний, вызванных окклюзией или фоновым шумом.
Сильные и слабые стороны
Преимущества:
- Превосходная точность: Обычно достигает более высокого среднего значения точности (mAP) на наборах данных, таких как COCO, по сравнению с CNN аналогичного размера.
- Дизайн без Anchor: Упрощает конвейер detect, удаляя anchor boxes, уменьшая настройку гиперпараметров.
- Глобальный контекст: Отлично подходит для detect объектов в плотных или запутанных средах, где локальных признаков недостаточно.
Слабые стороны:
- Computational Cost: Требует значительно больше FLOPs и памяти GPU, особенно во время обучения.
- Задержка (Latency): Будучи "в реальном времени", она, как правило, уступает оптимизированным CNN, таким как YOLOv6, в скорости необработанного инференса на эквивалентном оборудовании.
- Нехватка данных: Модели Transformer часто требуют больших наборов данных для обучения и более длительных графиков обучения для сходимости.
YOLOv6-3.0: Промышленный скоростной
YOLOv6-3.0, разработанный Meituan, ориентирован непосредственно на потребности промышленных применений: низкую задержку и высокую пропускную способность. Он совершенствует классическую парадигму одноэтапного детектора объектов для максимальной эффективности на оборудовании, начиная от периферийных устройств и заканчивая GPU.
Авторы: Чуйи Ли, Лулу Ли, Ифэй Генг, Хунлян Цзян, Мэн Чэн, Бо Чжан, Зайдан Ке, Сяомин Сюй и Сянсян Чу
Организация:Meituan
Дата: 2023-01-13
Arxiv:YOLOv6 v3.0: A Full-Scale Reloading
GitHub:Репозиторий YOLOv6
Документация:Документация Ultralytics YOLOv6
Оптимизировано для эффективности
YOLOv6-3.0 включает в себя философию проектирования, "учитывающую особенности оборудования". Он использует эффективный Reparameterization Backbone (в стиле RepVGG), который упрощает сеть в простой стек сверток 3x3 во время inference, устраняя сложность многокомпонентности. Кроме того, он использует методы самодистилляции во время обучения для повышения точности без увеличения стоимости inference.
Сильные и слабые стороны
Преимущества:
- Исключительная скорость: Обеспечивает очень низкую задержку, что делает его идеальным для высокоскоростных производственных линий и робототехники.
- Удобство развертывания: Репараметризованную структуру легко экспортировать в такие форматы, как ONNX и TensorRT для максимальной производительности.
- Аппаратная эффективность: Оптимизировано для полного использования вычислительных блоков GPU, минимизируя время простоя.
Слабые стороны:
- Потолок точности: Несмотря на конкурентоспособность, может быть сложно достичь пиковой точности моделей на основе трансформеров в очень сложных визуальных сценариях.
- Ограниченная универсальность: В первую очередь ориентирован на detection, отсутствует встроенная поддержка таких задач, как instance segmentation или оценка позы, которые есть в новых фреймворках.
Анализ производительности: Скорость vs. Точность
Выбор между RTDETRv2 и YOLOv6-3.0 часто сводится к конкретным ограничениям среды развертывания. RTDETRv2 доминирует в сценариях, требующих максимально возможной точности, в то время как YOLOv6-3.0 выигрывает в скорости и эффективности.
В следующей таблице сопоставляются ключевые метрики. Обратите внимание, как YOLOv6-3.0 достигает более низкой задержки (более высокой скорости) при аналогичных масштабах модели, в то время как RTDETRv2 стремится к более высоким показателям mAP за счет вычислительной интенсивности (FLOPs).
| Модель | размер (пиксели) | 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 |
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
Обучение и требования к ресурсам
При разработке пользовательских моделей опыт обучения значительно различается.
- Использование памяти: RTDETRv2 требует значительного объема GPU VRAM из-за квадратичной сложности механизмов внимания. Обучение вариантов "Large" или "X-Large" часто требует высокопроизводительных корпоративных GPU. В отличие от этого, модели Ultralytics YOLO и YOLOv6, как правило, более эффективно используют память, что позволяет проводить обучение на оборудовании потребительского класса или небольших облачных инстансах.
- Сходимость: Моделям на основе Transformer обычно требуется больше эпох для изучения пространственных иерархий, которые CNN улавливают интуитивно, что потенциально увеличивает затраты на облачные вычисления.
Идеальный баланс: Преимущество Ultralytics
В то время как RTDETRv2 и YOLOv6-3.0 превосходны в своих нишах, Ultralytics YOLO11 предлагает унифицированное решение, которое устраняет ограничения обоих. Он сочетает в себе простоту использования и скорость CNN с усовершенствованиями архитектуры, которые конкурируют с точностью transformer.
Почему разработчики и исследователи все чаще предпочитают модели Ultralytics:
- Универсальность: В отличие от YOLOv6, которая предназначена исключительно для обнаружения, Ultralytics поддерживает классификацию изображений, сегментацию, оценку позы и обнаружение ориентированных ограничивающих рамок (OBB) в рамках одного API.
- Хорошо поддерживаемая экосистема: Платформа Ultralytics предоставляет частые обновления, широкую поддержку сообщества и простую интеграцию с такими инструментами, как MLflow, TensorBoard и Ultralytics HUB.
- Простота использования: Благодаря философии «минимум кода» вы можете обучать, проверять и развертывать современные модели, используя всего несколько строк кода на Python или команд в CLI.
- Баланс производительности: YOLO11 обеспечивает оптимальное сочетание скорости инференса в реальном времени и высокой точности, часто превосходя старые версии YOLO и соответствующие сложным трансформерам в практических сценариях.
Пример кода
Оцените простоту API Ultralytics. В следующем примере показано, как загрузить предварительно обученную модель и запустить логический вывод на изображении:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model (n=nano, s=small, m=medium, l=large, x=xlarge)
model = YOLO("yolo11n.pt")
# Run inference on a local image
results = model("path/to/image.jpg")
# Process results
for result in results:
result.show() # Display results on screen
result.save(filename="result.jpg") # Save results to disk
Заключение
RTDETRv2 и YOLOv6-3.0 являются впечатляющими вехами в истории компьютерного зрения. RTDETRv2 - отличный выбор для исследований и сценариев, где точность является абсолютным приоритетом, независимо от вычислительных затрат. YOLOv6-3.0 хорошо обслуживает промышленный сектор, предлагая чрезвычайную скорость для контролируемых сред.
Однако, для большинства реальных приложений, требующих надежного, универсального и простого в развертывании решения, Ultralytics YOLO11 выделяется как превосходный выбор. Сочетание передовой производительности, низкого потребления памяти и процветающей экосистемы позволяет разработчикам уверенно и быстро переходить от прототипа к производству.
Изучите другие модели
Узнайте, как сравнить различные архитектуры, чтобы найти идеальный вариант для вашего проекта: