YOLOv5 против YOLOX: архитектурные изменения и показатели производительности
Область обнаружения объектов стремительно развивается, и различные архитектуры борются за оптимальный баланс между скоростью вывода и точностью обнаружения. Двумя важными вехами на этом пути стали YOLOv5разработанная компанией Ultralytics, и YOLOX, модель Megvii, ориентированная на исследования. Несмотря на то, что обе модели относятся к линейке "You Only Look Once", они значительно отличаются друг от друга по своей архитектурной философии - в частности, в отношении механизмов обнаружения на основе якорей и без якорей.
В этом сравнении рассматриваются технические характеристики, архитектурные различия и показатели производительности обеих моделей, чтобы помочь разработчикам и исследователям выбрать подходящий инструмент для своих проектов в области компьютерного зрения.
Ultralytics YOLOv5: инженерный стандарт
Выпущенный в 2020 году YOLOv5 быстро стал отраслевым стандартом для практического обнаружения объектов. В отличие от своих предшественников, которые были в основном академическими исследовательскими проектами, YOLOv5 был разработан с упором на удобство использования, простоту развертывания и реальную производительность. В ней был представлен оптимизированный рабочий процесс PyTorch, который сделал обучение и развертывание пользовательских моделей доступным для широкой аудитории.
- Авторы: Гленн Джокер
- Организация:Ultralytics
- Дата: 26.06.2020
- GitHub:https://github.com/ultralytics/yolov5
- Документы:https://docs.ultralytics.com/models/yolov5/
В YOLOv5 используется архитектура, основанная на якорях, с использованием заранее определенных якорных ящиков для предсказания местоположения объектов. В модель интегрирована функция "Автоанкор", которая изменяет форму якорей в соответствии с пользовательскими наборами данных перед обучением, обеспечивая оптимальную сходимость. Модель имеет основу CSPNet и горловину PANet, оптимизированную для быстрого извлечения и агрегирования признаков. Основное достоинство модели - исключительная скорость вычислений и малый объем памяти, что делает ее идеальной для пограничных вычислений и мобильных приложений.
YOLOX: соперник без якоря
YOLOX, выпущенный в 2021 году компанией Megvii, стремится расширить границы семейства YOLO , применяя безъякорный дизайн. Такой подход устраняет необходимость в предварительно заданных ячейках, вместо этого предсказывая центры и размеры объектов напрямую. Этот переход был направлен на упрощение процесса проектирования и улучшение обобщения для различных форм объектов.
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: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 реализована архитектура с раздельными головами, разделяющая задачи классификации и регрессии на разные ветви. Теоретически это позволяет модели изучать различные представления признаков для идентификации того, что представляет собой объект, и того , где он находится. Кроме того, модель использует усовершенствованную стратегию присвоения меток, известную как SimOTA (Simplified Optimal Transport Assignment), для динамического присвоения положительных образцов в процессе обучения. Хотя эти инновации способствуют высокой точности, они часто сопровождаются повышенной вычислительной сложностью.
Ищете новейшие технологии?
Хотя YOLOv5 и YOLOX представляют собой значительные шаги в истории компьютерного зрения, область развивается быстро. YOLO11новейшая модель от Ultralytics, отличающаяся повышенной точностью и скоростью по сравнению с ними, имеет усовершенствованную архитектуру, поддерживающую обнаружение, сегментацию, оценку позы и многое другое.
Анализ производительности: скорость в сравнении с точностью
При сравнении 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). Это объясняется безъякорной конструкцией и отсоединенной головкой, которая лучше справляется с колебаниями объектов. Однако за этот незначительный выигрыш часто приходится платить значительно более высокими вычислительными затратами (FLOPs).
- Эффективность: Модели YOLOv5 обычно требуют меньше FLOP для заданной скорости вывода. Конструкция головки YOLOv5 более дружественна к аппаратному обеспечению, что позволяет ускорить выполнение как на CPU, так и на GPU.
Архитектурное Глубокое Погружение
Принципиальное различие заключается в том, как каждая модель подходит к проблеме обнаружения.
YOLOv5 (основанный на якорях): YOLOv5 использует предопределенный набор якорных ящиков. В процессе обучения модель учится подстраивать эти ячейки под объекты. Этот метод основан на корреляции между размером объекта и размером ячейки сетки.
- Плюсы: Стабильное обучение, устоявшаяся методология, отличная производительность на стандартных наборах данных.
- Минусы: Требуется настройка гиперпараметров для якорей на экзотических наборах данных (хотя AutoAnchor в YOLOv5 смягчает эту проблему).
YOLOX (без якоря): YOLOX рассматривает обнаружение объектов как проблему регрессии точек. Он предсказывает расстояние от центра ячейки сетки до границ объекта.
- Плюсы: Уменьшение количества параметров конструкции (нет якорей для настройки), потенциал для лучшего обобщения на нестандартные соотношения сторон.
- Минусы: может медленнее сходиться во время обучения, а отсоединенная голова добавляет слои, которые увеличивают задержку вывода.
Пользовательский опыт и экосистема
Одна из наиболее определяющих характеристик 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 предназначены не только для обнаружения. Фреймворк поддерживает классификацию изображений и сегментацию экземпляров, предлагая единый API для решения множества задач. Этой универсальности часто не хватает в репозиториях, ориентированных на исследования, таких как YOLOX, которые в основном сосредоточены на обнаружении. Кроме того, активное сопровождение Ultralytics обеспечивает совместимость с последними версиями PyTorch и CUDA, уменьшая "гниение кода" с течением времени.
Идеальные варианты использования
Выбирайте Ultralytics YOLOv5 , если:
- Вам нужна производительность в реальном времени на граничных устройствах (Raspberry Pi, мобильные телефоны).
- Для вас важна простота развертывания и нужна встроенная поддержка экспорта в TensorRT, CoreML или TFLite.
- Вы предпочитаете стабильный, хорошо документированный фреймворк с активной поддержкой сообщества.
- Ваше приложение связано с охранным видеонаблюдением или автономной навигацией, где низкая задержка имеет решающее значение.
Выбирайте YOLOX, если:
- Вы проводите академические исследования, посвященные безъякорным архитектурам.
- Вам требуется абсолютный максимум mAP для соревнований или эталона, независимо от скорости вывода.
- У вас есть специализированный набор данных, где методы, основанные на привязке, явно не сработали (например, экстремальные соотношения сторон), и AutoAnchor не помог решить проблему.
Заключение
И YOLOv5 , и YOLOX заняли достойное место в истории компьютерного зрения. YOLOX продемонстрировал жизнеспособность безъякорных детекторов в семействе YOLO , предложив сильную основу для академических исследований. Однако для подавляющего большинства практических приложений, Ultralytics YOLOv5 остается лучшим выбором благодаря своей непревзойденной скорости, эффективности и дружественной экосистеме для разработчиков.
Тем, кто начинает новые проекты сегодня, мы настоятельно рекомендуем изучить YOLO11. Он опирается на сильные стороны YOLOv5использования и скорость - и в то же время интегрирует современные архитектурные достижения, которые превосходят YOLOv5 и YOLOX по точности и универсальности.
Сравнения с другими моделями
Изучите, как модели Ultralytics сравниваются с другими архитектурами в этой области: