YOLOv8 и YOLOX#
Ландшафт компьютерного зрения формировался благодаря непрерывному развитию архитектур обнаружения объектов в реальном времени. Два важных этапа этого развития — Ultralytics YOLOv8 и YOLOX. Обе модели используют безанкерную архитектуру для упрощения предсказания ограничивающих рамок, но представляют разные эпохи и подходы к исследованиям в области глубокого обучения и развитию экосистемы развёртывания.
В этом техническом сравнении рассматриваются архитектуры, методики обучения и показатели производительности в реальных условиях, чтобы помочь разработчикам и исследователям выбрать подходящую модель для своих приложений компьютерного зрения и ИИ.
История моделей#
Понимание происхождения и целей разработки каждой платформы дает важный контекст для сравнения их архитектур и зрелости экосистем.
Ultralytics YOLOv8#
YOLOv8 разработали Glenn Jocher, Ayush Chaurasia и Jing Qiu из Ultralytics; релиз состоялся 10 января 2023 года и стал важным шагом вперёд для экосистемы Ultralytics. Развивая успех YOLOv5, YOLOv8 представила усовершенствованную архитектуру, которая изначально поддерживает широкий спектр задач, включая обнаружение объектов, сегментацию экземпляров, классификацию изображений и оценку позы.
Главное преимущество модели — хорошо поддерживаемая экосистема Ultralytics, которая обеспечивает полный рабочий процесс с унифицированным Python API, подробной документацией и нативными интеграциями с инструментами MLOps, такими как Weights & Biases и Comet.
YOLOX#
YOLOX представили Zheng Ge, Songtao Liu, Feng Wang, Zeming Li и Jian Sun из Megvii 18 июля 2021 года. Целью проекта было сократить разрыв между академическими исследованиями и промышленными приложениями. Как подробно описано в статье на arXiv, YOLOX примечательна тем, что перевела семейство YOLO на безанкерную архитектуру и добавила разделённую голову, повысив стабильность обучения и скорость сходимости.
Несмотря на большое влияние в 2021 году, репозиторий YOLOX на GitHub по-прежнему ориентирован главным образом на исследования. В нем нет широкого набора задач и отлаженных конвейеров развертывания, характерных для современных платформ, поэтому для запуска в production требуется больше ручной настройки.
Архитектурные инновации#
Обе модели используют безанкорный подход, поэтому перед обучением не нужно выполнять сложную кластеризацию анкерных рамок, зависящую от набора данных. Это сокращает количество эвристических параметров настройки и упрощает голову обнаружения.
Раздельные головы обнаружения и извлечение признаков#
YOLOX первой внедрила раздельную голову обнаружения в серии YOLO. Раньше задачи классификации и регрессии выполнялись одной общей головой, что нередко приводило к конфликтующим градиентам во время обучения. Разделив ветви классификации и локализации, YOLOX ускорила сходимость.
YOLOv8 переняла и усовершенствовала эту концепцию. В магистральной сети используется модуль C2f (бутылочное горлышко Cross-Stage Partial с двумя свёртками), заменивший более старый модуль C3. Это улучшает распространение градиента и представление признаков без существенного увеличения вычислительных затрат. В YOLOv8 безанкерная голова обнаружения также работает в паре с Task-Aligned Assigner, который динамически выбирает положительные примеры на основе сочетания оценок классификации и пересечения над объединением (IoU), что повышает точность.
Модели Ultralytics YOLO разработаны с учётом эффективного использования памяти. По сравнению с архитектурами на основе Transformer или неоптимизированными исследовательскими кодовыми базами, YOLOv8 требует значительно меньше памяти CUDA во время обучения, позволяя разработчикам использовать более крупные размеры пакетов на обычном потребительском оборудовании.
Сравнение производительности#
При выборе моделей для развёртывания в реальных условиях важно найти баланс между точностью (mAP), задержкой инференса и сложностью модели. В таблице ниже представлены показатели на датасете COCO.
| Модель | размер (пиксели) | mAPval50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
Как видно, модели YOLOv8 стабильно превосходят соответствующие модели YOLOX при одинаковом количестве параметров. Например, YOLOv8m достигает mAP 50,2% против 46,9% у YOLOXm — прирост составляет 3,3 пункта mAP, при этом скорость инференса на GPU остаётся конкурентоспособной при использовании TensorRT.
Преимущества обучения и экосистемы#
Одно из главных различий между этими решениями — опыт разработчика. Для обучения YOLOX часто требуется сложная настройка окружения, ручное изменение скриптов и глубокое знание внутреннего устройства PyTorch, чтобы отлаживать проблемы обучения и экспорта.
Экосистема Ultralytics упрощает эту работу благодаря интуитивно понятному Python API и интерфейсу командной строки (CLI).
Удобный Python API#
Для обучения модели YOLOv8 на собственном датасете достаточно нескольких строк кода:
from ultralytics import YOLO
# Загрузи предварительно обученную модель YOLOv8 для обнаружения объектов
model = YOLO("yolov8n.pt")
# Обучи модель на примере набора данных COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Легко проверь модель
metrics = model.val()
# Экспортируй в ONNX для использования в production
model.export(format="onnx")Этот API стандартизирует рабочие процессы для обнаружения объектов, сегментации и задач с ориентированными ограничивающими рамками (OBB), сокращая время выхода производственных приложений на рынок. Встроенная функция экспорта также преобразует модели в форматы ONNX, OpenVINO и CoreML без написания пользовательских операторов C++.
Оптимальные сценарии применения#
Выбор между этими архитектурами зависит от ограничений проекта, хотя YOLOv8 предлагает более гибкую основу.
- Высокоскоростная аналитика на периферии: для обработки в реальном времени на устройствах вроде NVIDIA Jetson YOLOv8 обеспечивает удачный баланс скорости и точности и легко развёртывается благодаря нативной интеграции с TensorRT.
- Академические исследования: YOLOX остается полезным учебным инструментом для исследователей, изучающих переход от анкорных к безанкорным методам в PyTorch.
- Сложные многозадачные приложения: для приложений, которым одновременно нужны отслеживание объектов и сегментация экземпляров, подойдёт YOLOv8, поскольку эти возможности встроены непосредственно в библиотеку Ultralytics.
Что дальше: альтернативные модели#
YOLOv8 значительно превосходит YOLOX, но область развивается быстро. Для новых проектов Ultralytics рекомендует Ultralytics YOLO26, выпущенную в январе 2026 года.
YOLO26 использует сквозную архитектуру без NMS: её дополнительная голова один-к-одному (nms=False) устраняет постобработку Non-Maximum Suppression (NMS) и упрощает конвейеры развёртывания. Благодаря инференсу без NMS и удалению Distribution Focal Loss (DFL) YOLO26n обеспечивает до 43% более высокую скорость инференса на CPU, чем YOLO11n, а оптимизатор MuSGD повышает стабильность обучения. В модели также появилась технология ProgLoss + STAL (прогрессивная функция потерь и назначение меток с учётом малых объектов), улучшающая обнаружение мелких объектов на аэрофотоснимках и в робототехнике.
Также можно рассмотреть YOLO11 — еще одну мощную и хорошо поддерживаемую модель предыдущего поколения в экосистеме Ultralytics, обеспечивающую надежную работу в самых разных задачах.
Заключение#
YOLOX показала ценность разделённых голов и безанкерной архитектуры для семейства YOLO. Ultralytics YOLOv8 использовала эти концепции, усовершенствовала архитектуру и объединила её с готовой к производству экосистемой, известной простотой использования и поддержкой разных задач. Модель Ultralytics обеспечивает высокую производительность, эффективное обучение с точки зрения расхода памяти и инструменты развёртывания, упрощающие переход от экспериментов к производству.
Комментарии1
marybary0000(изменено) Great deep dive! YOLOX introduced key innovations like anchor-free design and decoupled head structure, which significantly improved detection performance. However, this YOLOv8 comparison highlights how v8 builds on such ideas with a more modular framework, better support for multi-task learning, and an easier deployment pipeline. Both models reflect strong evolution in object detection, and choosing between them really depends on specific project goals and hardware constraints.