YOLOv5 против YOLOX: Архитектурные сдвиги и показатели производительности
Ландшафт object detection быстро развивался, и различные архитектуры боролись за оптимальный баланс между скоростью вывода и точностью detect. Двумя важными вехами на этом пути являются YOLOv5, разработанная Ultralytics, и YOLOX, модель, ориентированная на исследования, от Megvii. Хотя обе модели происходят из семейства «You Only Look Once», они значительно расходятся в своих архитектурных философиях — особенно в отношении механизмов detect на основе якорей и без якорей.
В этом сравнении исследуются технические характеристики, архитектурные различия и показатели производительности обеих моделей, чтобы помочь разработчикам и исследователям выбрать правильный инструмент для своих проектов в области computer vision.
Ultralytics YOLOv5: Инженерный стандарт
YOLOv5, выпущенная в 2020 году, быстро стала отраслевым стандартом для практического detectирования объектов. В отличие от своих предшественников, которые были в основном академическими исследовательскими проектами, YOLOv5 была разработана с упором на удобство использования, простоту развертывания и производительность в реальном мире. Она представила оптимизированный рабочий процесс на основе PyTorch, который сделал обучение и развертывание пользовательских моделей доступным для более широкой аудитории.
- Авторы: Гленн Джокер
- Организация:Ultralytics
- Дата: 26.06.2020
- GitHub:https://github.com/ultralytics/yolov5
- Документация:https://docs.ultralytics.com/models/yolov5/
YOLOv5 использует архитектуру, основанную на anchor boxes, используя предопределенные anchor boxes для предсказания местоположения объектов. Он интегрирует функцию «AutoAnchor», которая изменяет формы anchor boxes в соответствии с пользовательскими наборами данных перед обучением, обеспечивая оптимальную сходимость. Модель имеет бэкбон CSPNet и neck PANet, оптимизированные для быстрого извлечения и агрегации признаков. Его основная сила заключается в его исключительной скорости inference и небольшом объеме памяти, что делает его идеальным для периферийных вычислений и мобильных приложений.
YOLOX: претендент Anchor-Free
YOLOX, выпущенный Megvii в 2021 году, стремился расширить границы семейства YOLO, приняв anchor-free дизайн. Этот подход устраняет необходимость в предварительно определенных anchor boxes, вместо этого напрямую предсказывая центры и размеры объектов. Этот сдвиг был направлен на упрощение процесса проектирования и улучшение обобщения для объектов различных форм.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:https://arxiv.org/abs/2107.08430
- GitHub:https://github.com/Megvii-BaseDetection/YOLOX
- Документация:https://yolox.readthedocs.io/en/latest/
YOLOX представляет архитектуру decoupled head, разделяющую задачи классификации и регрессии на разные ветви. Теоретически это позволяет модели изучать различные представления признаков для определения что представляет собой объект, в отличие от где он находится. Кроме того, он использует продвинутую стратегию назначения меток, известную как SimOTA (Simplified Optimal Transport Assignment), для динамического назначения положительных примеров во время обучения. Хотя эти нововведения способствуют высокой точности, они часто сопряжены с повышенной вычислительной сложностью.
Ищете новейшие технологии?
Хотя YOLOv5 и YOLOX представляют собой значительные шаги в истории компьютерного зрения, эта область развивается быстро. YOLO11, новейшая модель от Ultralytics, предлагает превосходную точность и скорость по сравнению с обеими, отличаясь усовершенствованной архитектурой, которая поддерживает detect, segmentation, оценку позы и многое другое.
Анализ производительности: скорость в сравнении с точностью
При сравнении YOLOv5 и YOLOX компромисс обычно сосредоточен на задержке инференса и абсолютной точности. YOLOv5 тщательно оптимизирована для скорости, особенно на аппаратных ускорителях с использованием TensorRT и ONNX Runtime. Как показано в данных ниже, модели YOLOv5 демонстрируют значительно меньшую задержку (более высокую скорость) при эквивалентных размерах моделей.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Основные выводы
- Скорость инференса: YOLOv5 имеет решающее преимущество в скорости. Например, YOLOv5n достигает задержки TensorRT всего 1,12 мс, что делает его исключительно подходящим для обработки видео с высокой частотой кадров на периферийных устройствах, таких как NVIDIA Jetson. В отличие от этого, наименьшие модели YOLOX не имеют сопоставимых эталонных данных для CPU, и их задержка GPU обычно выше для аналогичных уровней точности.
- Точность (mAP): YOLOX, как правило, достигает несколько более высоких показателей mAP на наборе данных COCO, особенно с его более крупными вариантами (YOLOX-x — 51,1 против YOLOv5x — 50,7). Это связано с его конструкцией без anchor и разделенной головой, которые могут лучше обрабатывать вариации объектов. Однако этот незначительный выигрыш часто достигается за счет значительно более высоких вычислительных затрат (FLOPs).
- Эффективность: Модели YOLOv5 обычно требуют меньше FLOPs для заданной скорости inference. Связанная структура head в YOLOv5 более удобна для оборудования, что позволяет быстрее выполнять вычисления как на CPU, так и на GPU.
Архитектурное Глубокое Погружение
Принципиальное различие заключается в том, как каждая модель подходит к задаче detection.
YOLOv5 (Anchor-Based): YOLOv5 использует предопределенный набор anchor boxes. Во время обучения модель учится корректировать эти boxes в соответствии с объектами. Этот метод основан на корреляции между размером объекта и размером ячейки сетки.
- Плюсы: Стабильное обучение, устоявшаяся методология, отличная производительность на стандартных наборах данных.
- Минусы: Требуется настройка гиперпараметров для якорей на экзотических наборах данных (хотя AutoAnchor YOLOv5 это смягчает).
YOLOX (Anchor-Free): YOLOX рассматривает object detection как задачу регрессии точек. Он предсказывает расстояние от центра ячейки сетки до границ объекта.
- Плюсы: Уменьшает количество параметров проектирования (нет якорей для настройки), потенциал для лучшего обобщения на нерегулярных соотношениях сторон.
- Минусы: Может медленнее сходиться во время обучения, а отсоединенная голова добавляет слои, которые увеличивают задержку при выводе.
Пользовательский опыт и экосистема
Одной из наиболее определяющих характеристик Ultralytics YOLOv5 является ее надежная экосистема. В то время как YOLOX обеспечивает прочную академическую основу, YOLOv5 предлагает готовый к использованию продукт, разработанный для разработчиков.
Простота использования
YOLOv5 известен своей простотой «от начала до конца». От аннотации данных до обучения и развертывания модели, экосистема Ultralytics оптимизирует каждый шаг. Модель можно загрузить с помощью нескольких строк кода, и она поддерживает автоматический экспорт в такие форматы, как TFLite, CoreML и ONNX.
import torch
# Load a pretrained YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Run inference on an image
results = model("https://ultralytics.com/images/zidane.jpg")
# Print results
results.print()
Универсальность и обслуживание
Модели Ultralytics — это не только detect. Фреймворк поддерживает классификацию изображений и instance segmentation, предлагая унифицированный API для нескольких задач. Этой универсальности часто не хватает в репозиториях, специфичных для исследований, таких как YOLOX, которые в основном сосредоточены на detect. Кроме того, активное обслуживание Ultralytics обеспечивает совместимость с последними версиями PyTorch и CUDA, уменьшая «устаревание кода» с течением времени.
Идеальные варианты использования
Выберите Ultralytics YOLOv5, если:
- Вам нужна производительность в реальном времени на периферийных устройствах (Raspberry Pi, мобильные телефоны).
- Вы уделяете приоритетное внимание простоте развертывания и нуждаетесь во встроенной поддержке экспорта в TensorRT, CoreML или TFLite.
- Вы предпочитаете стабильный, хорошо документированный фреймворк с активной поддержкой сообщества.
- Ваше приложение включает в себя охранное наблюдение или автономную навигацию, где низкая задержка имеет решающее значение.
Выберите YOLOX, если:
- Вы проводите академические исследования, посвященные конкретно anchor-free архитектурам.
- Вам требуется абсолютно максимальное значение mAP для соревнования или эталонного теста, независимо от скорости инференса.
- У вас есть специализированный набор данных, где методы, основанные на anchor, явно не работают (например, экстремальные соотношения сторон), и AutoAnchor не решил проблему.
Заключение
И YOLOv5, и YOLOX заслужили свое место в истории компьютерного зрения. YOLOX продемонстрировал жизнеспособность детекторов без привязки к якорям в семействе YOLO, предложив прочную основу для академических исследований. Однако, для подавляющего большинства практических применений, Ultralytics YOLOv5 остается превосходным выбором благодаря своей непревзойденной скорости, эффективности и удобной для разработчиков экосистеме.
Для тех, кто начинает новые проекты сегодня, мы настоятельно рекомендуем изучить YOLO11. Он опирается на сильные стороны YOLOv5 — простоту использования и скорость, — интегрируя при этом современные архитектурные достижения, которые превосходят как YOLOv5, так и YOLOX по точности и универсальности.
Сравнения с другими моделями
Узнайте, как модели Ultralytics сравниваются с другими архитектурами в этой области: