YOLOv8 и YOLOX#
Ландшафт компьютерного зрения во многом сформировался благодаря непрерывному развитию архитектур для обнаружения объектов в реальном времени. Двумя важными вехами на этом пути стали Ultralytics YOLOv8 и YOLOX. Хотя обе модели используют безанкорную архитектуру для упрощения предсказания ограничивающих рамок, они представляют разные эпохи и подходы к исследованиям в области глубокого обучения и развитию экосистемы для его внедрения.
В этом подробном техническом сравнении рассматриваются архитектуры обеих моделей, методики обучения и показатели производительности в реальных условиях, чтобы помочь разработчикам и исследователям выбрать оптимальное решение для своих приложений компьютерного зрения.
История моделей#
Понимание происхождения и целей разработки каждой платформы дает важный контекст для сравнения их архитектур и зрелости экосистем.
Ultralytics YOLOv8#
Разработанная Гленном Джочером, Айушем Чаурасией и Цзин Цю в Ultralytics и выпущенная 10 января 2023 года, YOLOv8 стала важным шагом вперед для экосистемы Ultralytics. Развивая успех YOLOv5, YOLOv8 представила существенно усовершенствованную архитектуру уровня state of the art, изначально поддерживающую широкий спектр задач, включая обнаружение объектов, сегментацию экземпляров, классификацию изображений и оценку позы.
Ее главное преимущество — хорошо поддерживаемая экосистема Ultralytics, обеспечивающая удобный путь от первых шагов до экспертного уровня благодаря единому Python API, подробной документации и встроенной интеграции с инструментами MLOps, такими как Weights & Biases и Comet.
YOLOX#
Представленная Чжэн Гэ, Сунтао Лю, Фэном Ваном, Цзэмином Ли и Цзянь Сунем из Megvii 18 июля 2021 года, YOLOX была призвана сократить разрыв между академическими исследованиями и промышленным применением. В своей статье на 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.
| Модель | размер (пиксели) | mAPval 50-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 при одинаковом количестве параметров. Например, mAP модели YOLOv8m составляет 50,2% против 46,9% у YOLOXm. Это значительный прирост точности при сохранении конкурентной скорости инференса на 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), значительно сокращая время выхода production-приложений на рынок. Кроме того, встроенные функции экспорта позволяют легко преобразовывать модели в ONNX, OpenVINO и CoreML без написания собственных операторов C++.
Оптимальные сценарии применения#
Выбор между этими архитектурами зависит от ограничений проекта, однако YOLOv8 предлагает гораздо более гибкую основу.
- Высокоскоростная аналитика на периферийных устройствах: Для обработки в реальном времени на таких устройствах, как NVIDIA Jetson, YOLOv8 обеспечивает непревзойденный баланс скорости и точности и легко развертывается благодаря встроенной интеграции с TensorRT.
- Академические исследования: YOLOX остается полезным учебным инструментом для исследователей, изучающих переход от анкорных к безанкорным методам в PyTorch.
- Сложные многозадачные приложения: Для приложений, которым одновременно нужны отслеживание объектов и сегментация экземпляров, лучше подойдет YOLOv8, поскольку эти возможности встроены непосредственно в библиотеку Ultralytics.
Что дальше: альтернативные модели#
Хотя YOLOv8 значительно превосходит YOLOX, область ИИ развивается невероятно быстро. Если ты начинаешь новый проект, рекомендуем оценить Ultralytics YOLO26. Выпущенная в январе 2026 года YOLO26 устанавливает новый стандарт для ИИ в сфере компьютерного зрения.
YOLO26 использует революционную сквозную архитектуру без NMS. Ее дополнительная голова «один к одному» (nms=False) устраняет этап постобработки с подавлением немаксимумов и упрощает конвейеры развертывания. Вместе с новым оптимизатором MuSGD и отказом от Distribution Focal Loss (DFL) это позволяет YOLO26 выполнять инференс на CPU до 43% быстрее, чем YOLO11. Также модель использует ProgLoss + STAL (прогрессивную функцию потерь и назначение меток с учетом малых объектов), что значительно улучшает распознавание небольших объектов — важную задачу для аэрофотосъемки и робототехники.
Также можно рассмотреть YOLO11 — еще одну мощную и хорошо поддерживаемую модель предыдущего поколения в экосистеме Ultralytics, обеспечивающую надежную работу в самых разных задачах.
Заключение#
YOLOX наглядно продемонстрировала возможности раздельных голов обнаружения и безанкорной архитектуры в семействе YOLO. Однако Ultralytics YOLOv8 развила эти идеи, усовершенствовала архитектуру и объединила ее с готовой к production экосистемой, которой нет равных по простоте использования и универсальности. Выбирая модель Ultralytics, разработчики получают высокую производительность, эффективное использование памяти при обучении и надежный набор инструментов развертывания, упрощающих переход от экспериментов к практическому применению.