YOLOX против YOLOv6-3.0: техническое сравнение
Выбор правильной архитектуры обнаружения объектов — это критически важное решение для разработчиков и исследователей, стремящихся сбалансировать производительность, скорость и вычислительную эффективность. В этом всестороннем сравнении исследуются технические различия между YOLOX, высокопроизводительным детектором без привязки к якорям (anchor-free) от Megvii, и YOLOv6-3.0, фреймворком промышленного уровня, разработанным Meituan. Анализируя их архитектуры, эталонные тесты и методологии обучения, мы стремимся направить вас к лучшей модели для ваших конкретных приложений компьютерного зрения.
YOLOX: Наведение мостов между исследованиями и промышленностью
Авторы: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li и Jian Sun
Организация:Megvii
Дата: 2021-07-18
Arxiv:https://arxiv.org/abs/2107.08430
GitHub:https://github.com/Megvii-BaseDetection/YOLOX
Документация:https://yolox.readthedocs.io/en/latest/
Выпущенный в 2021 году, YOLOX представляет собой значительный сдвиг в линейке YOLO , приняв механизм без якорей и интегрировав передовые методы обнаружения, ранее предназначавшиеся для академических исследований. Устранив зависимость от заранее заданных якорных ящиков, YOLOX упростил процесс обучения и улучшил обобщение для различных форм объектов.
Архитектура и ключевые особенности
YOLOX отличается архитектурой "decoupled head". В отличие от традиционных моделей YOLO, которые объединяли задачи классификации и локализации в одной ветви, YOLOX разделяет их, что значительно повышает скорость сходимости и точность. В нем используется стратегия назначения меток SimOTA (Simplified Optimal Transport Assignment), которая динамически назначает положительные примеры ground truth объектам, уменьшая нестабильность обучения.
Дизайн без якорей
YOLOX устраняет необходимость в кластеризации anchor box вручную, что является распространенным шагом в предыдущих версиях YOLO. Это уменьшает количество эвристических гиперпараметров и вариантов проектирования, связанных с обучением, что делает модель более устойчивой к различным наборам данных без обширной настройки.
Сильные и слабые стороны
Преимущества:
- Высокая точность: Разделенная голова и расширенное назначение меток позволяют YOLOX достигать конкурентоспособных показателей средней точности (mAP), особенно на наборе данных COCO.
- Гибкость исследований: Его упрощенная конструкция делает его отличной отправной точкой для исследователей, экспериментирующих с новыми головками detection или стратегиями назначения.
- Обнаружение малых объектов: Подход без привязки к якорям иногда может предложить лучшую производительность на малых объектах по сравнению с жесткими системами на основе якорей.
Слабые стороны:
- Задержка инференса: Несмотря на точность, отсоединенная голова создает небольшую вычислительную нагрузку, что часто приводит к более низкой скорости инференса по сравнению с полностью оптимизированными промышленными моделями, такими как YOLOv6.
- Развитость экосистемы: Хотя код имеет открытый исходный код, экосистема сторонних инструментов, руководств по развертыванию и поддержки сообщества меньше, чем у Ultralytics YOLOv8 или YOLOv5.
Идеальные варианты использования
YOLOX особенно хорошо подходит для академических исследований и сценариев, где точность является приоритетом по сравнению с чистой скоростью inference.
- Медицинская визуализация: Анализ сложных структур в анализе медицинских изображений, где точность имеет первостепенное значение.
- Обнаружение дефектов: выявление незначительных аномалий в производстве, где пропущенные обнаружения (detect) обходятся дорого.
- Академические эксперименты: Служит чистым базисом без anchor для разработки новых алгоритмов компьютерного зрения.
YOLOv6-3.0: Разработан для промышленной скорости
Авторы: Чуйи Ли, Лулу Ли, Ифэй Генг, Хунлян Цзян, Мэн Чэн, Бо Чжан, Зайдан Ке, Сяомин Сюй и Сянсян Чу
Организация:Meituan
Дата: 2023-01-13
Arxiv:https://arxiv.org/abs/2301.05586
GitHub:https://github.com/meituan/YOLOv6
Документация:https://docs.ultralytics.com/models/yolov6/
YOLOv6-3.0 — это специально разработанный детектор объектов, предназначенный для реальных промышленных приложений. Обновление "3.0", известное как "Full-Scale Reloading", представило значительные архитектурные усовершенствования для максимального увеличения пропускной способности на оборудовании, таком как NVIDIA GPU.
Архитектура и ключевые особенности
Основой YOLOv6-3.0 является интенсивное использование репараметризации. Модель использует EfficientRep backbone и Rep-PAN neck, которые позволяют сети иметь сложные многокомпонентные структуры во время обучения, но сворачиваться в простые однокомпонентные структуры во время инференса. Этот подход в стиле "RepVGG" обеспечивает высокую способность извлечения признаков без штрафа за задержку во время выполнения, связанного со сложным ветвлением.
Кроме того, YOLOv6-3.0 использует Anchor-Aided Training (AAT) (Обучение с помощью якорей), сочетая преимущества парадигм, основанных на якорях и без якорей, для стабилизации обучения и ускорения сходимости.
Сильные и слабые стороны
Преимущества:
- Исключительная скорость: Оптимизированный для TensorRT, YOLOv6-3.0 обеспечивает чрезвычайно низкую задержку, что делает его идеальным для приложений с высокой частотой кадров.
- Готовность к развертыванию: Такие функции, как поддержка квантования моделей, облегчают развертывание на периферийных устройствах и серверах.
- Эффективность: Метод репараметризации обеспечивает отличный баланс FLOPs и точности.
Слабые стороны:
- Интенсивность использования ресурсов при обучении: Сложная архитектура во время обучения (до репараметризации) может потребовать значительный объем памяти GPU по сравнению с более простыми моделями.
- Ограниченная область задач: YOLOv6 в основном ориентирован на detection. Ему не хватает встроенной, интегрированной поддержки других задач, таких как оценка позы или ориентированные ограничивающие рамки (OBB) в том же бесшовном API, который есть в предложениях Ultralytics.
Идеальные варианты использования
YOLOv6-3.0 превосходно работает в средах, где скорость inference в реальном времени является строгим требованием.
- Автономная робототехника: Обеспечение навигации и мгновенной реакции роботов на динамические среды.
- Инспекция производственных линий: Высокоскоростная проверка качества на производственных лентах, где производительность не может быть снижена.
- Видеоаналитика: Одновременная обработка нескольких видеопотоков для систем охранной сигнализации.
Прямое сравнение производительности
Сравнение показателей производительности на наборе данных COCO выявляет различные философии проектирования. YOLOX предлагает упрощенную архитектуру с достойной точностью, в то время как YOLOv6-3.0 расширяет границы скорости инференса за счет структурной оптимизации.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Данные показывают, что YOLOv6-3.0n значительно быстрее на GPU (1,17 мс против 2,56 мс у YOLOXs), сохраняя при этом высокий mAP. Для устройств с ограниченными ресурсами, где важен каждый мегабайт, YOLOXnano остается интересным вариантом с параметрами менее 1M, хотя его точность ниже. В более высоком сегменте YOLOv6-3.0l превосходит YOLOXx как по точности (52,8 против 51,1 mAP), так и по эффективности, используя примерно на 40% меньше параметров.
Методологии обучения и экосистема
Пользовательский опыт обучения этих моделей значительно различается.
YOLOX полагается на надежные методы аугментации данных, такие как Mosaic и MixUp, для достижения своих результатов без предварительно обученных весов. Его конвейер обучения ориентирован на исследования, предлагая гибкость для тех, кто хорошо знаком с конфигурациями PyTorch.
YOLOv6-3.0 использует self-distillation, где большая учительская модель направляет модель-ученика во время обучения, повышая точность меньших моделей без увеличения стоимости инференса. Эта методология является мощной, но добавляет сложности в настройку обучения.
Однако разработчики, отдающие приоритет оптимизированному рабочему процессу, часто считают экосистему Ultralytics превосходной. В отличие от фрагментированных инструментов, часто встречающихся в автономных исследовательских моделях, Ultralytics предоставляет унифицированную платформу.
- Простота использования: Простой Python API позволяет выполнять обучение, проверку и вывод всего в несколько строк кода.
- Хорошо поддерживаемая экосистема: Частые обновления обеспечивают совместимость с последними версиями PyTorch, CUDA и форматами экспорта, такими как ONNX и OpenVINO.
- Эффективность обучения: Модели Ultralytics оптимизированы для эффективного использования памяти, часто обучаясь быстрее и с меньшим объемом памяти GPU, чем сопоставимые архитектуры на основе трансформеров.
Простота использования Ultralytics
Обучение современной модели с помощью Ultralytics так же просто, как:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
Вывод: Преимущество Ultralytics
В то время как YOLOX предлагает инновационный дизайн без anchor, подходящий для исследований, а YOLOv6-3.0 обеспечивает впечатляющую скорость для конкретного промышленного оборудования, Ultralytics YOLO11 представляет собой вершину современных технологий компьютерного зрения.
YOLO11 и зарекомендовавшая себя YOLOv8 обеспечивают превосходный баланс производительности, достигая современных показателей mAP с замечательной скоростью выводов как на CPU, так и на GPU. В отличие от конкурентов, которые в основном ограничиваются detect, модели Ultralytics предлагают непревзойденную универсальность, изначально поддерживая:
- Сегментация экземпляров
- Оценка позы
- Классификация изображений
- Ориентированные ограничивающие рамки (OBB)
Для разработчиков, ищущих перспективное решение, поддерживаемое активной разработкой, всесторонней документацией и процветающим сообществом, Ultralytics остается рекомендуемым выбором для переноса проектов от концепции до производства.
Чтобы изучить дальнейшие сравнения, рассмотрите возможность прочтения о YOLOv5 vs YOLOv6 или YOLO11 vs RT-DETR.