YOLOv10 против YOLOv8: технический глубокий разбор современного обнаружения объектов
Эволюция обнаружения объектов в реальном времени ознаменовалась быстрой чередой революционных архитектур, каждая из которых пытается расширить границы точности, скорости вывода и вычислительной эффективности. В этом подробном техническом руководстве мы сравниваем две важные вехи в мире компьютерного зрения: YOLOv10 и Ultralytics YOLOv8. В то время как YOLOv8 установил высокоуниверсальный и готовый к продакшену стандарт, YOLOv10 представил архитектурные изменения, направленные специально на устранение узких мест пост-обработки.
Понимание отличительных преимуществ, архитектур и показателей производительности этих моделей имеет решающее значение для разработчиков и исследователей, стремящихся внедрить современные решения в области ИИ компьютерного зрения в реальных сценариях.
Технические характеристики и авторство
Чтобы эффективно оценивать эти модели, полезно понимать их происхождение и основное направление исследований соответствующих команд.
YOLOv10: сквозная эффективность
Разработанная исследователями Университета Цинхуа, модель YOLOv10 была создана для решения проблемы вычислительных затрат, привносимых этапами пост-обработки в предыдущих поколениях.
- Авторы: Ao Wang, Hui Chen, Lihao Liu и др.
- Организация: Tsinghua University
- Дата: 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. Традиционно детекторы объектов полагаются на Non-Maximum Suppression (NMS) во время вывода для фильтрации перекрывающихся ограничивающих рамок. Этот этап может вносить задержки и усложняет сквозное развертывание. YOLOv10 использует согласованные двойные назначения (consistent dual assignments) во время обучения, что позволяет модели изначально предсказывать одну точную ограничивающую рамку для каждого объекта. Кроме того, она использует целостный дизайн модели, ориентированный на эффективность и точность, оптимизируя различные компоненты для значительного сокращения количества FLOPs и параметров.
Архитектура YOLOv8
В YOLOv8 представлена детекционная голова без якорей (anchor-free detection head), что является отходом от подходов на основе якорей, применявшихся в предыдущих версиях. Это уменьшает количество предсказаний рамок и ускоряет операции NMS. Кроме того, YOLOv8 включает модуль C2f (Cross-Stage Partial bottleneck с двумя свертками), который улучшает градиентный поток и позволяет сети изучать более богатые представления признаков без существенного увеличения вычислительных затрат. Структура разделенной головы (decoupled head) отделяет задачи обнаружения объектов, классификации и регрессии, что приводит к более быстрой сходимости и более высокой общей точности.
Производительность и бенчмарки
При развертывании моделей на периферийных устройствах или облачных серверах компромисс между скоростью и точностью имеет первостепенное значение. В таблице ниже приведено прямое сравнение двух моделей для различных размеров.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| 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 демонстрирует исключительную эффективность параметров, часто соответствуя или превосходя mAP своих аналогов YOLOv8 при использовании меньшего количества параметров и FLOPs. Тем не менее, YOLOv8 остается невероятно конкурентоспособной, предлагая высокооптимизированную интеграцию TensorRT, которая обеспечивает минимальную задержку вывода на современных графических процессорах.
При работе в производственных средах использование форматов, таких как ONNX или TensorRT, может значительно повысить скорость вывода. Как YOLOv8, так и YOLOv10 поддерживают беспрепятственный экспорт в эти высокооптимизированные графовые форматы.
Экосистема, эффективность обучения и универсальность
Выбор модели выходит за рамки теоретических тестов; опыт разработчика и окружающая экосистема не менее важны.
Преимущество Ultralytics
Одной из ключевых сильных сторон YOLOv8 является ее плотная интеграция в экосистему Ultralytics. Эта среда обеспечивает опыт «с нуля до профи», характеризующийся интуитивно понятным Python API и обширной документацией. В отличие от исследовательских репозиториев, которые могут потребовать сложной настройки среды, модели Ultralytics славятся своей простотой использования.
Более того, YOLOv8 по своей сути универсальна. В то время как YOLOv10 строго оптимизирована для обнаружения объектов, фреймворк Ultralytics позволяет разработчикам легко переключаться между задачами обнаружения объектов, сегментации экземпляров, классификации изображений, оценки позы и ориентированных ограничивающих рамок (OBB) в рамках одной и той же библиотеки и структуры API.
Требования к памяти и обучение
Модели Ultralytics YOLO разработаны с упором на эффективность обучения. Как правило, они демонстрируют меньшее использование памяти во время обучения и вывода по сравнению со сложными моделями трансформеров, что позволяет разработчикам обучать современные модели на потребительском оборудовании или стандартных облачных инстансах без исчерпания памяти 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 — гибрид, вдохновленный стабильностью обучения больших языковых моделей, который обеспечивает более быструю и стабильную сходимость.
Ключевые улучшения в YOLO26 включают:
- До 43% быстрее вывод на CPU: значительно оптимизировано для периферийных устройств за счет удаления Distribution Focal Loss (DFL).
- ProgLoss + STAL: передовые функции потерь, которые значительно улучшают распознавание мелких объектов, что критически важно для аэрофотосъемки с дронов и IoT-датчиков.
- Специфические для задач улучшения: специализированные архитектуры для сегментации, оценки позы и OBB, обеспечивающие первоклассную производительность во всех доменах компьютерного зрения.
Идеальные сценарии использования и стратегии развертывания
При выборе между этими архитектурами учитывай специфические потребности твоей среды развертывания:
- Выбирай YOLOv10, если: ты работаешь над конвейером чистого обнаружения объектов, где критически важно выжать максимум из эффективности параметров, и ты хочешь поэкспериментировать с ранними реализациями архитектур, свободных от NMS.
- Выбирай Ultralytics YOLOv8, если: тебе нужна высокостабильная, готовая к производству модель, поддерживаемая надежной платформой Ultralytics. Это идеальный выбор, если твой проект требует решения нескольких задач (например, обнаружение объектов с последующей сегментацией) с использованием единой, простой в обслуживании кодовой базы.
- Выбирай YOLO26 (рекомендуется), если: ты хочешь получить максимальный баланс между современной точностью, нативной сквозной эффективностью без NMS и максимально возможной скоростью на CPU и периферийном оборудовании.
Если ты изучаешь более широкий ландшафт, тебе также может быть интересно сравнить эти модели с YOLO11 или ознакомиться со специфическими интеграциями для периферийного развертывания, такими как Intel OpenVINO, чтобы еще больше ускорить свои приложения ИИ компьютерного зрения. Благодаря использованию унифицированных инструментов, предоставляемых Ultralytics, развертывание надежных решений компьютерного зрения стало доступнее, чем когда-либо.