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 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 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.2 |
| 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
# Load a pretrained model (YOLOv8 recommended for general tasks)
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset with automatic memory management
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device=0)
# Run inference on a test image
predictions = model("https://ultralytics.com/images/zidane.jpg")
predictions[0].show()Следующее поколение: YOLO26#
Хотя YOLOv8 и YOLOv10 являются важными достижениями, область машинного обучения постоянно развивается. Разработчикам, начинающим новые проекты, мы настоятельно рекомендуем использовать YOLO26 — последнюю флагманскую модель Ultralytics, выпущенную в январе 2026 года.
YOLO26 объединяет лучшие архитектурные достижения последних лет в едином высокооптимизированном фреймворке. Она унаследовала сквозной дизайн без NMS, впервые представленный такими моделями, как YOLOv10, что упрощает конвейеры развертывания и уменьшает вариативность задержки. Кроме того, YOLO26 представляет оптимизатор MuSGD — гибридный оптимизатор, вдохновленный стабильностью обучения LLM и обеспечивающий более быструю и стабильную сходимость.
Ключевые улучшения в YOLO26:
- До 43% более быстрый инференс на CPU: модель тщательно оптимизирована для периферийных устройств за счет удаления Distribution Focal Loss (DFL).
- ProgLoss + STAL: продвинутые функции потерь, значительно улучшающие распознавание небольших объектов, что крайне важно для изображений с дронов и датчиков IoT.
- Улучшения для конкретных задач: специализированные архитектуры для сегментации, оценки позы и OBB, обеспечивающие первоклассную производительность во всех областях компьютерного зрения.
Идеальные сценарии использования и стратегии развёртывания#
При выборе между этими архитектурами учитывай конкретные требования среды развертывания:
- Выбирай YOLOv10, если: ты работаешь с конвейером, предназначенным исключительно для обнаружения объектов, где критически важна максимальная эффективность по количеству параметров, и хочешь поэкспериментировать с ранними реализациями архитектур без NMS.
- Выбирай Ultralytics YOLOv8, если: тебе нужна стабильная модель, готовая к промышленной эксплуатации и поддерживаемая надежной платформой Ultralytics. Это идеальный выбор, если проект требует выполнения нескольких задач (например, обнаружения объектов с последующей их сегментацией) на основе единой кодовой базы, которую легко поддерживать.
- Выбирай YOLO26 (рекомендуется), если: тебе нужен оптимальный баланс передовой точности, встроенной сквозной эффективности без NMS и максимально высокой скорости на CPU и периферийном оборудовании.
Если ты изучаешь более широкий спектр решений, тебе также может быть интересно сравнить эти модели с YOLO11 или ознакомиться со специализированными интеграциями для периферийного развертывания, такими как Intel OpenVINO, чтобы дополнительно ускорить приложения ИИ для компьютерного зрения. Благодаря унифицированным инструментам Ultralytics развертывать надежные решения для компьютерного зрения стало проще, чем когда-либо.