Ultralytics YOLO27:

YOLOv8 vs YOLOX#

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

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

Предыстория моделей#

Понимание происхождения и целей разработки каждого фреймворка дает важный контекст для различий в их архитектуре и зрелости экосистем.

Ultralytics YOLOv8#

Разработанная Glenn Jocher, Ayush Chaurasia и Jing Qiu из Ultralytics и выпущенная 10 января 2023 года, YOLOv8 стала значительным шагом вперед для экосистемы Ultralytics. Опираясь на огромный успех YOLOv5, YOLOv8 представила тщательно доработанную современную архитектуру, способную нативно выполнять широкий спектр задач, включая обнаружение объектов, сегментацию экземпляров, классификацию изображений и оценку позы.

Главное преимущество — хорошо поддерживаемая экосистема Ultralytics, которая обеспечивает плавный путь от «новичка до профессионала» благодаря унифицированному Python API, обширной документации и нативным интеграциям с инструментами MLOps, такими как Weights & Biases и Comet.

YOLOX#

Представленная Zheng Ge, Songtao Liu, Feng Wang, Zeming Li и Jian Sun из Megvii 18 июля 2021 года, YOLOX была призвана сократить разрыв между академическими исследованиями и промышленными приложениями. Описанная в их статье на Arxiv, YOLOX привлекла внимание переходом семейства YOLO к безъякорной архитектуре и интеграцией разделенной головки, что повысило стабильность и сходимость обучения.

Несмотря на большое влияние в 2021 году, репозиторий YOLOX на GitHub по-прежнему представляет собой преимущественно исследовательскую кодовую базу. Ему не хватает широкого спектра задач и отлаженных конвейеров развертывания, характерных для современных фреймворков, поэтому для развертывания в production требуется больше ручной настройки.

Посмотри документацию YOLOX

Архитектурные инновации#

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

Разделенные головки и извлечение признаков#

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

YOLOv8 переняла и значительно усовершенствовала эту концепцию. В backbone используется современный модуль C2f (частичный межэтапный узкий блок с двумя свертками), заменивший более старый модуль C3. Это улучшает прохождение градиентов и представление признаков без существенного увеличения вычислительных затрат. Кроме того, YOLOv8 реализует усовершенствованную безъякорную головку обнаружения с использованием Task-Aligned Assigner, динамически сопоставляя положительные образцы на основе комбинации оценок классификации и пересечения по объединению (IoU), что обеспечивает более высокую точность.

Эффективность использования памяти

Модели Ultralytics YOLO разработаны с учетом исключительной эффективности использования памяти. По сравнению с архитектурами на основе Transformer или неоптимизированными исследовательскими кодовыми базами YOLOv8 требует значительно меньше памяти CUDA во время обучения, позволяя разработчикам использовать большие размеры пакетов на стандартном пользовательском оборудовании.

Сравнение производительности#

При оценке моделей для развертывания в реальных условиях крайне важно сбалансировать точность (mAP) с задержкой инференса и сложностью модели. В таблице ниже приведены показатели производительности на наборе данных COCO.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
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

Как видно, модели YOLOv8 стабильно превосходят соответствующие модели YOLOX при одинаковом количестве параметров. Например, YOLOv8m достигает mAP 50,2% против 46,9% у YOLOXm, демонстрируя значительный прирост точности при сохранении конкурентной скорости инференса на GPU с использованием TensorRT.

Преимущества обучения и экосистемы#

Одно из наиболее заметных различий между этими двумя решениями — удобство работы разработчика. Обучение YOLOX часто требует сложной настройки окружения, ручного изменения скриптов и глубокого знания внутреннего устройства PyTorch для отладки утечек памяти или проблем с экспортом.

В свою очередь, экосистема Ultralytics скрывает эту сложность, предоставляя интуитивно понятные Python API и интерфейс командной строки (CLI).

Упрощенный Python API#

Для обучения современной модели YOLOv8 на пользовательском наборе данных достаточно всего нескольких строк кода:

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model for object detection
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 example dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Easily validate the model
metrics = model.val()

# Export seamlessly to ONNX for production
model.export(format="onnx")

Этот API стандартизирует рабочие процессы для задач обнаружения, сегментации и ориентированных ограничивающих рамок (OBB), значительно сокращая время вывода production-приложений на рынок. Кроме того, встроенные функции экспорта обеспечивают бесшовное преобразование в ONNX, OpenVINO и CoreML без написания пользовательских операторов C++.

Идеальные сценарии использования#

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

  • Высокоскоростная периферийная аналитика: Для обработки в реальном времени на таких устройствах, как NVIDIA Jetson, YOLOv8 обеспечивает непревзойденный баланс скорости и точности и легко развертывается благодаря нативной интеграции с TensorRT.
  • Академические исследования: YOLOX остается ценным учебным инструментом для исследователей, изучающих переход от методов на основе якорей к безъякорным методам в PyTorch.
  • Сложные многозадачные приложения: Приложения, требующие одновременного отслеживания объектов и сегментации экземпляров, значительно выиграют от YOLOv8, поскольку эти возможности напрямую встроены в библиотеку Ultralytics.

Взгляд в будущее: альтернативные модели#

Хотя YOLOv8 значительно превосходит YOLOX, область AI развивается невероятно быстро. Пользователям, начинающим новые проекты, мы настоятельно рекомендуем оценить Ultralytics YOLO26. Выпущенная в январе 2026 года, YOLO26 представляет собой новый золотой стандарт для AI в области компьютерного зрения.

YOLO26 использует революционный сквозной дизайн без NMS, полностью устраняя постобработку подавления немаксимумов для упрощения конвейеров развертывания. В сочетании с новым оптимизатором MuSGD и удалением функции потерь Distribution Focal Loss (DFL) YOLO26 обеспечивает до 43% более быстрый инференс на CPU по сравнению с YOLOv8. Она также представляет функции потерь ProgLoss + STAL, обеспечивающие значительное улучшение распознавания небольших объектов, критически важного для аэрофотосъемки и робототехники.

В качестве альтернативы пользователи также могут рассмотреть YOLO11 — еще одну мощную и хорошо поддерживаемую предшественницу в экосистеме Ultralytics, обеспечивающую стабильную производительность в широком спектре задач.

Заключение#

YOLOX успешно продемонстрировала возможности разделенных головок и безъякорной архитектуры в семействе YOLO. Однако Ultralytics YOLOv8 развила эти концепции, усовершенствовала архитектуру и объединила ее с готовой к production экосистемой, не имеющей аналогов по простоте использования и универсальности задач. Выбирая модель Ultralytics, разработчики получают доступ к более высокой производительности, эффективному по памяти обучению и надежному набору инструментов развертывания, которые упрощают переход от экспериментов к реальному применению.

Комментарии