YOLOv8 и YOLOv6-3.0#
Сфера компьютерного зрения в реальном времени постоянно развивается под влиянием спроса на более быстрые, точные и универсальные модели. Две наиболее заметные архитектуры, появившиеся в начале 2023 года, — это Ultralytics YOLOv8 и YOLOv6-3.0 от Meituan. Обе модели расширяют границы современных достижений, но в их основе лежат несколько разные подходы к разработке и сценарии развертывания.
В этом подробном руководстве представлен углубленный анализ архитектур, показателей производительности и оптимальных сценариев применения этих моделей, который поможет инженерам и исследователям в области машинного обучения выбрать подходящий инструмент для следующего проекта по обнаружению объектов.
Происхождение и характеристики моделей#
Прежде чем перейти к техническим нюансам, важно понять происхождение и основные характеристики обеих моделей. В обоих репозиториях активно используется популярный фреймворк PyTorch, но интеграция с экосистемами существенно различается.
Особенности YOLOv8#
Архитектура Ultralytics YOLOv8 — это унифицированный многозадачный фреймворк, созданный с нуля для удобства разработчиков и универсальности. Она опирается на многолетние исследования и отзывы сообщества о предыдущих версиях.
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: https://github.com/ultralytics/ultralytics
- Документация: https://docs.ultralytics.com/models/yolov8
Особенности YOLOv6-3.0#
Изначально YOLOv6 была создана для промышленных приложений Meituan, а в версии 3.0 получила крупное обновление «Full-Scale Reloading». Модель ориентирована прежде всего на высокооптимизированные среды развертывания и использует такие методы, как самодистилляция и RepOptimizer.
- Авторы: Чуйи Ли, Лулу Ли, Ифэй Гэн, Хунлян Цзян, Мэн Чэн, Бо Чжан, Зайдань Кэ, Сяомин Сюй и Сянсян Чу
- Организация: Meituan
- Дата: 2023-01-13
- Arxiv: https://arxiv.org/abs/2301.05586
- GitHub: https://github.com/meituan/YOLOv6
- Документация: https://docs.ultralytics.com/models/yolov6
Управлять наборами данных, сеансами обучения и развертыванием моделей намного проще с помощью платформы Ultralytics. Она предоставляет сквозной интерфейс, который сводит к минимуму объем шаблонного кода, обычно необходимого в рабочих процессах MLOps.
Архитектура и методики обучения#
Архитектура Ultralytics YOLOv8#
В YOLOv8 появилась усовершенствованная голова обнаружения без якорей. Отказ от заранее заданных якорных рамок улучшает обобщающую способность модели на разных наборах данных и сокращает количество эвристик постобработки. Кроме того, YOLOv8 обеспечивает непревзойденный баланс производительности и стабильно предлагает удачный компромисс между скоростью и точностью, подходящий для различных реальных сценариев развертывания — от облачных серверов до периферийных устройств с ограниченными ресурсами.
Одно из важных преимуществ YOLOv8 — требования к памяти. Во время обучения модели Ultralytics используют значительно меньше памяти CUDA, чем ресурсоемкие альтернативы на основе Transformer, например RT-DETR. Это позволяет разработчикам использовать более крупные размеры пакетов на обычных потребительских GPU и добиваться отличной эффективности обучения.
Архитектура YOLOv6-3.0#
В YOLOv6-3.0 используются двунаправленный модуль конкатенации (BiC) и стратегия обучения с поддержкой якорей (AAT). В небольших моделях (N и S) применяется основа EfficientRep, а в более крупных вариантах (M и L) — основа CSPStackRep. Архитектура тщательно оптимизирована для выполнения на NVIDIA TensorRT, благодаря чему она работает исключительно быстро на совместимом оборудовании. Однако такая тесная связь с конкретными аппаратными оптимизациями иногда усложняет перенос на другие платформы по сравнению с гибкими процессами экспорта в ONNX, доступными в Ultralytics.
Сравнение производительности#
При оценке моделей на валидационном наборе данных 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 |
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
YOLOv6-3.0 немного быстрее в отдельных тестах TensorRT, однако YOLOv8 обеспечивает более эффективное использование параметров в небольших вариантах. Это повышает гибкость модели на различном оборудовании, в том числе на мобильных и встроенных CPU.
Экосистема и универсальность#
Самое заметное различие между моделями — поддержка экосистемы.
YOLOv6 — это преимущественно средство обнаружения ограничивающих рамок. В отличие от нее, YOLOv8 известна своей универсальностью. В рамках единого фреймворка YOLOv8 изначально поддерживает сегментацию экземпляров, классификацию изображений, оценку позы и обнаружение повернутых ограничивающих рамок (OBB).
Кроме того, экосистема Ultralytics отличается непревзойденной простотой использования. С помощью простого API Python исследователи могут запускать обучение, проверять результаты и экспортировать модели в множество форматов без написания сложного шаблонного кода. Хорошо поддерживаемая экосистема гарантирует активную разработку, регулярные обновления и бесшовную интеграцию с популярными инструментами отслеживания экспериментов.
Пример кода: обучение YOLOv8#
Для обучения модели YOLOv8 требуется минимальная настройка, что подчеркивает простоту фреймворка:
from ultralytics import YOLO
# Загружаем предварительно обученную небольшую модель YOLOv8
model = YOLO("yolov8s.pt")
# Обучи модель на датасете COCO8
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device=0, # Используем GPU для эффективного обучения
batch=32,
)
# Экспортируем модель в ONNX для развертывания на разных платформах
model.export(format="onnx")Сценарии использования и рекомендации#
Выбор между YOLOv8 и YOLOv6 зависит от требований конкретного проекта, ограничений среды развертывания и предпочтений в отношении экосистемы.
Когда выбрать YOLOv8#
YOLOv8 — хороший выбор для:
- Универсальное решение для нескольких задач: проекты, которым нужна проверенная модель для обнаружения объектов, сегментации, классификации и оценки позы в экосистеме Ultralytics.
- Уже работающие системы: существующие промышленные среды, построенные на архитектуре YOLOv8 и использующие стабильные, тщательно проверенные конвейеры развертывания.
- Широкая поддержка сообщества и экосистемы: приложения, которым помогают многочисленные руководства по YOLOv8, сторонние интеграции и активное сообщество.
Когда стоит выбрать YOLOv6#
YOLOv6 рекомендуется для следующих задач:
- Развертывание с учетом промышленного оборудования: сценарии, в которых аппаратно-ориентированный дизайн и эффективная репараметризация модели обеспечивают оптимальную производительность на конкретном целевом оборудовании.
- Быстрая одноэтапная детекция: приложения, где приоритетом является максимальная скорость инференса на GPU для обработки видео в реальном времени в контролируемых условиях.
- Интеграция с экосистемой Meituan: команды, уже работающие с технологическим стеком и инфраструктурой развертывания Meituan.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Перспективы: переход на YOLO26#
YOLOv8 и YOLOv6-3.0 — отличные варианты, но разработчикам, начинающим новые проекты, настоятельно рекомендуется изучить модель следующего поколения Ultralytics YOLO26. Выпущенная в январе 2026 года, YOLO26 задает новый стандарт для ИИ в области компьютерного зрения с приоритетом периферийных устройств.
В YOLO26 реализована опциональная сквозная архитектура без NMS (nms=False), которая устраняет необходимость в подавлении немаксимумов на этапе постобработки. Такой изначально сквозной подход упрощает логику развертывания и ускоряет его, особенно в периферийных средах. В сочетании с удалением DFL (Distribution Focal Loss) это значительно облегчает голову модели и повышает скорость инференса на CPU до 43%.
Благодаря оптимизатору MuSGD, гибридной версии SGD и Muon, вдохновленной методиками обучения LLM, также значительно улучшились стабильность обучения и скорость сходимости. Кроме того, внедрение ProgLoss + STAL существенно повышает качество распознавания небольших объектов, что важно для изображений с дронов и тщательного промышленного контроля.
В зависимости от конкретных ограничений тебе также может быть интересно изучить YOLO11 для хорошо сбалансированных устаревших рабочих процессов или YOLO-World для обнаружения объектов с нулевым количеством примеров в условиях открытого словаря, не требующего масштабного переобучения.
Заключение#
Окончательный выбор между YOLOv8 и YOLOv6-3.0 зависит от приоритетов конвейера развертывания. YOLOv6-3.0 — мощная модель для сред со строгими требованиями к TensorRT, где абсолютный приоритет — максимальная скорость GPU. Однако для подавляющего большинства команд лучшим выбором станет Ultralytics YOLOv8. Сочетание меньших требований к памяти при обучении, многозадачной универсальности и ведущей в отрасли экосистемы, доступной через платформу Ultralytics, значительно сокращает срок вывода продукта на рынок.
Если тебе нужна максимальная эффективность современных моделей, плавный переход на YOLO26 обеспечит непревзойденную работу без NMS и поможет подготовить любое приложение компьютерного зрения к будущим изменениям.