Перейти к содержанию

YOLOv5 против YOLOX: архитектурные изменения и показатели производительности

Область обнаружения объектов стремительно развивается, и различные архитектуры борются за оптимальный баланс между скоростью вывода и точностью обнаружения. Двумя важными вехами на этом пути стали YOLOv5разработанная компанией Ultralytics, и YOLOX, модель Megvii, ориентированная на исследования. Несмотря на то, что обе модели относятся к линейке "You Only Look Once", они значительно отличаются друг от друга по своей архитектурной философии - в частности, в отношении механизмов обнаружения на основе якорей и без якорей.

В этом сравнении рассматриваются технические характеристики, архитектурные различия и показатели производительности обеих моделей, чтобы помочь разработчикам и исследователям выбрать подходящий инструмент для своих проектов в области компьютерного зрения.

Ultralytics YOLOv5: инженерный стандарт

Выпущенный в 2020 году YOLOv5 быстро стал отраслевым стандартом для практического обнаружения объектов. В отличие от своих предшественников, которые были в основном академическими исследовательскими проектами, YOLOv5 был разработан с упором на удобство использования, простоту развертывания и реальную производительность. В ней был представлен оптимизированный рабочий процесс PyTorch, который сделал обучение и развертывание пользовательских моделей доступным для широкой аудитории.

В YOLOv5 используется архитектура, основанная на якорях, с использованием заранее определенных якорных ящиков для предсказания местоположения объектов. В модель интегрирована функция "Автоанкор", которая изменяет форму якорей в соответствии с пользовательскими наборами данных перед обучением, обеспечивая оптимальную сходимость. Модель имеет основу CSPNet и горловину PANet, оптимизированную для быстрого извлечения и агрегирования признаков. Основное достоинство модели - исключительная скорость вычислений и малый объем памяти, что делает ее идеальной для пограничных вычислений и мобильных приложений.

Узнайте больше о YOLOv5

YOLOX: соперник без якоря

YOLOX, выпущенный в 2021 году компанией Megvii, стремится расширить границы семейства YOLO , применяя безъякорный дизайн. Такой подход устраняет необходимость в предварительно заданных ячейках, вместо этого предсказывая центры и размеры объектов напрямую. Этот переход был направлен на упрощение процесса проектирования и улучшение обобщения для различных форм объектов.

В YOLOX реализована архитектура с раздельными головами, разделяющая задачи классификации и регрессии на разные ветви. Теоретически это позволяет модели изучать различные представления признаков для идентификации того, что представляет собой объект, и того , где он находится. Кроме того, модель использует усовершенствованную стратегию присвоения меток, известную как SimOTA (Simplified Optimal Transport Assignment), для динамического присвоения положительных образцов в процессе обучения. Хотя эти инновации способствуют высокой точности, они часто сопровождаются повышенной вычислительной сложностью.

Узнайте больше о YOLOX

Ищете новейшие технологии?

Хотя YOLOv5 и YOLOX представляют собой значительные шаги в истории компьютерного зрения, область развивается быстро. YOLO11новейшая модель от Ultralytics, отличающаяся повышенной точностью и скоростью по сравнению с ними, имеет усовершенствованную архитектуру, поддерживающую обнаружение, сегментацию, оценку позы и многое другое.

Анализ производительности: скорость в сравнении с точностью

При сравнении YOLOv5 и YOLOX компромисс обычно заключается в соотношении задержки вывода и абсолютной точности. YOLOv5 тщательно оптимизирован для скорости, особенно на аппаратных ускорителях, использующих TensorRT и ONNX Runtime. Как видно из приведенных ниже данных, модели YOLOv5 демонстрируют значительно меньшую задержку (более высокую скорость) при эквивалентных размерах модели.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.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 сравниваются с другими архитектурами в этой области:


Комментарии