YOLOv10 и YOLOX#
Развитие компьютерного зрения во многом определяется быстрым прогрессом архитектур обнаружения объектов в реальном времени. В этом подробном техническом сравнении рассматриваются две влиятельные модели, расширившие границы эффективности и архитектурных подходов: YOLOv10 и YOLOX. Изучив различия в архитектуре, метрики производительности и методы обучения, разработчики и исследователи смогут принимать обоснованные решения при внедрении надежных систем компьютерного зрения.
История моделей и их происхождение#
Понимание происхождения этих моделей глубокого обучения дает важный контекст для изучения их архитектурных целей и сценариев применения.
YOLOv10: отказ от NMS для полноценного сквозного обнаружения объектов#
YOLOv10 разработали, чтобы устранить давно существовавшие узкие места, увеличивавшие задержку. Эта модель внедрила в семейство YOLO нативный сквозной подход.
- Авторы: Ao Wang, Hui Chen, Lihao Liu и др.
- Организация: Университет Цинхуа
- Дата: 23 мая 2024 года
- ArXiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Документация: Документация Ultralytics YOLOv10
YOLOX: сокращение разрыва между исследованиями и индустрией#
YOLOX появилась как версия традиционной архитектуры YOLO без якорей. Она предложила более простой подход с конкурентоспособной производительностью и была специально нацелена на упрощение внедрения в промышленных сообществах.
- Авторы: Чжэн Гэ, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация: Megvii
- Дата: 18 июля 2021 года
- ArXiv: 2107.08430
- GitHub: Megvii-BaseDetection/YOLOX
- Документация: Официальная документация YOLOX
Особенности архитектуры и инновации#
Обе системы отходят от традиционных детекторов с якорями, но решают разные задачи в конвейере обнаружения объектов.
Архитектура YOLOX#
В 2021 году YOLOX привнесла в эту экосистему несколько важных обновлений. Главное из них — переход к конструкции детектора без якорей. Отказ от заранее заданных якорных рамок существенно сократил количество настраиваемых параметров и объем эвристической настройки для разных наборов данных.
Кроме того, YOLOX использует разделенную голову, которая разделяет задачи классификации и регрессии. Это устранило конфликт между двумя задачами и значительно ускорило сходимость при обучении. Модель также использует SimOTA для продвинутого назначения меток, что улучшает обработку переполненных сцен и перекрытий, часто встречающихся в наборе данных COCO.
Архитектуры без якорей, подобные той, которую впервые предложила YOLOX, значительно упрощают настройку моделей. Разработчикам больше не нужно выполнять кластеризацию k-means на пользовательских наборах данных, чтобы определить оптимальные размеры якорных рамок, что экономит ценное время на подготовку.
Архитектура YOLOv10#
Несмотря на усовершенствованную голову обнаружения, YOLOX по-прежнему использовала подавление немаксимумов (NMS) при инференсе, что приводило к нестабильности задержки. YOLOv10 специально устранила этот недостаток, предложив стратегию согласованного двойного назначения для обучения без NMS. Во время обучения модель использует назначение меток по схеме «один ко многим» и «один к одному», а при инференсе полностью отключает голову «один ко многим» и выдает готовые предсказания без постобработки с помощью NMS.
YOLOv10 также отличается целостным подходом к проектированию модели с учетом эффективности и точности. Легковесные головы классификации и раздельное пространственно-канальное уменьшение разрешения существенно сокращают количество параметров и FLOPs без потери точности.
Сравнение производительности#
Оценка этих моделей на таком оборудовании, как GPU NVIDIA T4, выявляет разные преимущества в зависимости от масштаба. Ниже приведена подробная сравнительная таблица.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.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 |
Как видно выше, YOLOv10 отлично масштабируется. Вариант YOLOv10x обеспечивает наивысшую точность (54.4 mAP), а вариант YOLOv10n обеспечивает самый быстрый инференс благодаря интеграции с TensorRT. В свою очередь, устаревшая компактная модель YOLOX nano имеет наименьший размер и подходит для сред с жесткими ограничениями ресурсов.
Методы обучения и требования к ресурсам#
При внедрении моделей в производство экосистема обучения и требования к ресурсам так же важны, как и скорость инференса.
YOLOX часто требует старых конфигураций окружения, которыми бывает сложно управлять. Кроме того, ее устаревшая кодовая база требует больше шаблонного кода для распределенного обучения на нескольких GPU и оптимизации с пониженной точностью.
В отличие от нее, YOLOv10 легко интегрируется в современные рабочие процессы PyTorch, но именно экосистема Ultralytics кардинально меняет опыт разработчика. Для моделей Ultralytics характерно значительно меньшее потребление памяти CUDA во время обучения по сравнению с архитектурами на базе Transformer, такими как RT-DETR.
Пример кода: упрощенное обучение#
С помощью унифицированного API Ultralytics ты можешь без труда обучать самые современные модели, написав всего несколько строк Python. Так тебе не придется вручную компилировать операторы C++ или разбираться в сложных файлах конфигурации.
from ultralytics import YOLO
# Инициализация предварительно обученной модели YOLOv10
model = YOLO("yolov10s.pt")
# Обучи модель на датасете COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Проверка производительности модели
metrics = model.val()
# Экспорт оптимизированной модели в формат ONNX
model.export(format="onnx")Этот простой синтаксис сразу дает доступ к автоматическому обучению со смешанной точностью, автоматическому увеличению данных и интеграции с такими инструментами, как Weights & Biases.
Сценарии использования и рекомендации#
Выбор между YOLOv10 и YOLOX зависит от требований твоего проекта, ограничений среды развертывания и предпочтений в отношении экосистемы.
Когда выбирать YOLOv10#
YOLOv10 — хороший выбор для:
- Детектирование в реальном времени без NMS: Приложения, которым полезно сквозное детектирование без подавления немаксимумов, что упрощает развертывание.
- Сбалансированное соотношение скорости и точности: Проекты, в которых важно найти оптимальный баланс между скоростью инференса и точностью детектирования для моделей разных размеров.
- Приложения с постоянной задержкой: Сценарии развертывания, где важны предсказуемые времена инференса, например в робототехнике или автономных системах.
Когда стоит выбрать YOLOX#
YOLOX подойдёт для следующих задач:
- Исследования обнаружения без якорей: Академические исследования, в которых чистая архитектура YOLOX без якорей используется как базовая модель для экспериментов с новыми головами обнаружения или функциями потерь.
- Сверхкомпактные периферийные устройства: Развертывание на микроконтроллерах или устаревшем мобильном оборудовании, где критически важен крайне малый размер варианта YOLOX-Nano (0,91 млн параметров).
- Исследования назначения меток SimOTA: Исследовательские проекты по изучению стратегий назначения меток на основе оптимального транспорта и их влияния на сходимость обучения.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Будущее компьютерного зрения на базе ИИ: встречай YOLO26#
YOLOv10 и YOLOX стали важными вехами, но компьютерное зрение продолжает неуклонно развиваться. Разработчикам, которые начинают новые проекты сегодня, мы рекомендуем Ultralytics YOLO26.
Выпущенная в январе 2026 года Ultralytics YOLO26 развивает заложенную YOLOv10 революционную идею сквозной архитектуры без NMS, обеспечивая еще большую стабильность и скорость.
YOLO26 выделяется рядом важных усовершенствований:
- Инференс на CPU до 43% быстрее: Благодаря целенаправленному отказу от Distribution Focal Loss (DFL) YOLO26 обеспечивает значительно более высокую производительность на периферийных устройствах без GPU.
- Оптимизатор MuSGD: Этот новый гибрид SGD и Muon, вдохновленный стабильностью обучения LLM, обеспечивает более быструю сходимость и высокостабильное обучение.
- ProgLoss + STAL: Эти продвинутые функции потерь заметно улучшают распознавание небольших объектов — это особенно важно для аэрофотосъемки и датчиков IoT.
- Непревзойденная универсальность: В отличие от YOLOX, которая предназначена только для обнаружения объектов, YOLO26 нативно поддерживает сегментацию экземпляров, оценку позы, классификацию изображений и обнаружение OBB в рамках единой библиотеки.
Чтобы максимально просто перейти к промышленному использованию, разработчики могут применять платформу Ultralytics для разметки наборов данных, обучения моделей YOLO26 в облаке и развертывания на любых периферийных устройствах без настройки окружения.
Применение в реальных условиях#
Выбор подходящей модели определяет успех ее внедрения в реальных условиях в различных отраслях.
Высокоскоростная видеоаналитика#
Для обработки плотных видеопотоков, например при управлении городским трафиком, YOLOv10 дает существенное преимущество благодаря постобработке без NMS. Устранение узкого места, связанного с NMS, обеспечивает стабильно низкую задержку, поэтому модель идеально сочетается с алгоритмами отслеживания, такими как BoT-SORT.
Развертывание на устаревших периферийных устройствах#
В старых академических средах или устаревших приложениях для Android, оптимизированных под традиционные сверточные архитектуры, небольшие модели вроде YOLOX-Tiny все еще могут применяться в специализированных сценариях, где допустимо использовать старые окружения PyTorch.
Современные периферийные устройства и IoT#
Для развертывания на оборудовании нового поколения, например в робототехнике, дронах и системах анализа ассортимента на полках магазинов, YOLO26 — оптимальное решение. Благодаря значительно меньшей задержке на CPU и превосходному обнаружению небольших объектов модель идеально подходит для автономной навигации и детального управления запасами.
Чтобы расширить инструментарий глубокого обучения, сравни эти модели с альтернативами, например гибкой YOLO11 или работающей на базе Transformer RT-DETR.