YOLOv10 и YOLOv8#
Развитие обнаружения объектов в реальном времени сопровождается быстрой сменой новаторских архитектур, каждая из которых стремится повысить точность, скорость инференса и эффективность вычислений. В этом подробном техническом руководстве мы сравниваем два важных этапа развития компьютерного зрения: YOLOv10 и Ultralytics YOLOv8. YOLOv8 задала универсальный стандарт, готовый к промышленной эксплуатации, а YOLOv10 предложила изменения архитектуры, специально направленные на устранение узких мест постобработки.
Разработчикам и исследователям, которые хотят развертывать передовые решения в области компьютерного зрения в реальных условиях, важно понимать преимущества, архитектуру и показатели производительности этих моделей.
Технические характеристики и авторы#
Для эффективной оценки этих моделей полезно знать их происхождение и основные направления исследований соответствующих команд.
YOLOv10: сквозная эффективность#
Исследователи из Университета Цинхуа разработали YOLOv10, чтобы устранить вычислительные издержки, вызванные этапами постобработки в предыдущих поколениях.
- Авторы: Ao Wang, Hui Chen, Lihao Liu и др.
- Организация: Университет Цинхуа
- Дата: 2024-05-23
- Arxiv: 2405.14458
- GitHub: THU-MIG/yolov10
- Документация: Документация YOLOv10
Ultralytics YOLOv8: универсальный стандарт#
Выпущенная в начале 2023 года, YOLOv8 быстро стала отраслевым стандартом благодаря надежной архитектуре и беспрецедентной интеграции в широкую экосистему машинного обучения.
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: ultralytics/ultralytics
Архитектурные инновации#
Обе модели значительно улучшили традиционную архитектуру YOLO, хотя и нацелены на разные аспекты конвейера.
Архитектура YOLOv10#
Главная особенность YOLOv10 — стратегия обучения без NMS. Традиционно детекторы объектов используют подавление немаксимумов (NMS) во время инференса, чтобы отфильтровать перекрывающиеся ограничивающие рамки. Этот этап может увеличить задержку и усложнить сквозное развертывание. YOLOv10 использует согласованные двойные назначения во время обучения, благодаря чему модель изначально предсказывает одну точную ограничивающую рамку для каждого объекта. Кроме того, в модели применяется целостный подход, который учитывает эффективность и точность и оптимизирует различные компоненты, существенно сокращая количество операций с плавающей запятой (FLOPs) и параметров.
Архитектура YOLOv8#
В YOLOv8 появилась голова детекции без якорей, заменившая подходы с якорями, применявшиеся в предыдущих моделях. Это сокращает количество предсказаний рамок и ускоряет операции NMS. Кроме того, в YOLOv8 используется модуль C2f (узкое место с частичными связями между этапами и двумя свертками), который улучшает распространение градиента и позволяет сети обучаться более богатым представлениям признаков без значительного увеличения вычислительных затрат. Разделенная голова распределяет задачи классификации и регрессии по разным ветвям, что ускоряет сходимость и повышает общую точность.
Производительность и тесты#
При развертывании моделей на периферийных устройствах или облачных серверах первостепенное значение имеет компромисс между скоростью и точностью. В таблице ниже напрямую сравниваются две модели разных размеров.
| Модель | размер (пиксели) | 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 |
| 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 |
Примечание: тире (-) указывают на метрики, официально не опубликованные для идентичных условий тестирования.
Как видно из данных, YOLOv10 отличается высокой эффективностью использования параметров и зачастую не уступает моделям YOLOv8 по mAP или превосходит их, используя при этом меньше параметров и операций с плавающей запятой (FLOPs). Однако YOLOv8 остается весьма конкурентоспособной моделью: ее оптимизированная интеграция с TensorRT обеспечивает минимальную задержку инференса на современных GPU.
Для развертывания в производственной среде использование таких форматов, как ONNX или TensorRT, может значительно ускорить инференс. YOLOv8 и YOLOv10 поддерживают удобный экспорт в эти высокооптимизированные форматы графов.
Экосистема, эффективность обучения и универсальность#
При выборе модели важно учитывать не только теоретические показатели: не менее важны удобство работы разработчика и окружающая экосистема.
Преимущества Ultralytics#
Одно из главных преимуществ YOLOv8 — тесная интеграция с экосистемой Ultralytics. Она обеспечивает путь «от новичка до профессионала» благодаря интуитивно понятному Python API и подробной документации. В отличие от ориентированных на исследования репозиториев, где может потребоваться сложная настройка среды, модели Ultralytics известны своей простотой использования.
Кроме того, YOLOv8 изначально универсальна. Если YOLOv10 оптимизирована исключительно для детекции объектов, то фреймворк Ultralytics позволяет разработчикам легко переключаться между задачами детекции объектов, сегментации экземпляров, классификации изображений, оценки позы и детекции ориентированных ограничивающих рамок (OBB), используя одну и ту же библиотеку и структуру API.
Требования к памяти и обучение#
Модели Ultralytics YOLO разработаны с учетом эффективности обучения. Как правило, во время обучения и инференса они используют меньше памяти, чем сложные модели на базе Transformer, поэтому разработчики могут обучать передовые модели на обычном пользовательском оборудовании или стандартных облачных инстансах, не исчерпывая память CUDA. Хорошо настроенные гиперпараметры по умолчанию и встроенное расширение данных помогают обеспечить быструю сходимость.
Вот практический пример того, насколько просто обучать и валидировать модель с помощью Python API Ultralytics:
from ultralytics import YOLO
# Загрузи предварительно обученную модель (для общих задач рекомендуем YOLOv8)
model = YOLO("yolov8n.pt")
# Обучи модель на наборе данных COCO8 с автоматическим управлением памятью
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# Запусти инференс на тестовом изображении
predictions = model("https://ultralytics.com/images/zidane.jpg")
predictions[0].show()Следующее поколение: YOLO26#
YOLOv8 и YOLOv10 стали выдающимися вехами, но машинное обучение постоянно развивается. Разработчикам, которые начинают новые проекты, мы настоятельно рекомендуем использовать YOLO26 — новейшую флагманскую модель Ultralytics, выпущенную в январе 2026 года.
YOLO26 объединяет лучшие архитектурные достижения последних лет в едином высокооптимизированном фреймворке. Модель унаследовала сквозную архитектуру без NMS, впервые представленную в таких моделях, как YOLOv10: это упрощает конвейеры развертывания и уменьшает вариативность задержки. Кроме того, в YOLO26 появился оптимизатор MuSGD — гибрид, вдохновленный стабильностью обучения LLM и обеспечивающий более быструю и стабильную сходимость.
Ключевые улучшения YOLO26:
- Инференс на CPU до 43% быстрее: модель значительно оптимизирована для периферийных устройств благодаря удалению Distribution Focal Loss (DFL).
- ProgLoss + STAL: усовершенствованные функции потерь значительно улучшают распознавание мелких объектов, что особенно важно для снимков с дронов и датчиков IoT.
- Улучшения для отдельных задач: специализированные архитектуры для сегментации, оценки позы и OBB обеспечивают высочайшую производительность во всех областях компьютерного зрения.
Оптимальные сценарии применения и стратегии развёртывания#
При выборе одной из этих архитектур учитывай особенности своей среды развертывания:
- Выбирай YOLOv10, если: ты работаешь над конвейером исключительно для детекции объектов, где критически важно добиться максимальной эффективности использования параметров, и хочешь поэкспериментировать с ранними реализациями архитектур без NMS.
- Выбирай Ultralytics YOLOv8, если: тебе нужна стабильная, готовая к эксплуатации модель с надежной поддержкой платформы Ultralytics. Она идеально подойдет, если для проекта требуются разные задачи (например, сначала детекция объектов, а затем их сегментация) на единой кодовой базе, которую легко сопровождать.
- Выбирай YOLO26 (рекомендуем), если: тебе нужен оптимальный баланс передовой точности, эффективности сквозной архитектуры без NMS и максимальной скорости на CPU и периферийном оборудовании.
Если ты изучаешь более широкий спектр моделей, сравни их также с YOLO11 или посмотри на интеграции для периферийного развертывания, например Intel OpenVINO, чтобы еще больше ускорить свои приложения компьютерного зрения. Благодаря унифицированным инструментам Ultralytics развертывать надежные решения для компьютерного зрения стало проще, чем когда-либо.