YOLOv8 vs YOLOv6-3.0: Техническое сравнение
Выбор оптимальной модели для detectирования объектов является ключевым шагом в создании надежных приложений компьютерного зрения. В этом подробном сравнении рассматриваются архитектурные различия, показатели производительности и идеальные варианты использования для Ultralytics YOLOv8 и YOLOv6-3.0. Хотя обе модели возникли примерно в одно и то же время и направлены на решение схожих проблем, они существенно различаются по своей философии проектирования, универсальности и экосистемам, которые их поддерживают.
Ultralytics YOLOv8
Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
Организация: Ultralytics
Дата: 2023-01-10
GitHub: https://github.com/ultralytics/ultralytics
Документация: https://docs.ultralytics.com/models/yolov8/
Ultralytics YOLOv8 представляет собой значительный скачок вперед в эволюции архитектуры YOLO. Разработанная как унифицированная платформа, она поддерживает широкий спектр задач компьютерного зрения, выходящих за рамки простого detect, включая instance segmentation, оценку позы и классификацию. Ее ориентированный на пользователя дизайн отдает приоритет простоте использования, делая современный AI доступным для разработчиков любого уровня подготовки.
Архитектура и ключевые особенности
YOLOv8 представляет механизм обнаружения без anchor boxes, который упрощает структуру модели и уменьшает количество гиперпараметров, необходимых для обучения. Такой подход улучшает обобщение для различных форм и размеров объектов. Архитектура включает в себя современную магистральную сеть и слой агрегации признаков, использующий модуль C2f, который улучшает распространение градиента и интеграцию признаков по сравнению с предыдущими итерациями.
Сильные стороны
- Непревзойденная универсальность: В отличие от многих конкурентов, YOLOv8 не ограничивается только object detection. Он изначально поддерживает сегментацию экземпляров, классификацию изображений, оценку позы и задачи ориентированных ограничивающих прямоугольников (OBB) в рамках единой кодовой базы.
- Превосходная эффективность: Как подчеркивается в сравнительных тестах производительности, YOLOv8 достигает более высокой точности (mAP) с меньшим количеством параметров и FLOP. Это приводит к снижению требований к памяти во время обучения и inference, что является критическим преимуществом перед более тяжелыми моделями на основе transformer.
- Простота использования: Модель обернута в оптимизированный Python API и интерфейс командной строки (CLI), что позволяет пользователям обучать, проверять и развертывать модели с минимальным количеством кода.
- Надежная экосистема: Поддерживаемая Ultralytics, YOLOv8 выигрывает от непрерывных обновлений, обширной документации и активного сообщества. Это обеспечивает долгосрочную жизнеспособность и поддержку для корпоративных развертываний.
Слабые стороны
- Обнаружение малых объектов: Несмотря на высокую производительность, одноэтапные детекторы, такие как YOLOv8, могут иногда испытывать трудности с очень маленькими или перекрытыми объектами по сравнению со специализированными, вычислительно затратными двухэтапными детекторами.
YOLOv6-3.0
Авторы: Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu и Xiangxiang Chu
Организация: Meituan
Дата: 2023-01-13
Arxiv: https://arxiv.org/abs/2301.05586
GitHub: https://github.com/meituan/YOLOv6
Документация: https://docs.ultralytics.com/models/yolov6/
YOLOv6-3.0 — это фреймворк для detect object, разработанный компанией Meituan, специально спроектированный для промышленных применений, где скорость inference на специализированном оборудовании является приоритетом. Он фокусируется на оптимизации компромисса между скоростью и точностью, используя передовые методы для максимизации использования GPU.
Архитектура и ключевые особенности
Архитектура YOLOv6 включает в себя аппаратно-ориентированный дизайн, использующий структуры Rep-Block (re-parameterization), которые позволяют сети иметь сложные ветви во время обучения, но сворачиваться в более простую и быструю структуру во время вывода. Она также использует стратегию самодистилляции для повышения точности без дополнительных затрат на вывод.
Сильные стороны
- Скорость Inference на GPU: Модель высоко оптимизирована для производительности GPU, особенно на оборудовании NVIDIA, что делает ее сильным кандидатом для промышленных сценариев со строгими ограничениями по задержке.
- Поддержка квантования: YOLOv6 делает упор на поддержку квантования моделей, предоставляя инструменты для развертывания моделей на оборудовании с ограниченной вычислительной точностью.
- Мобильная оптимизация: Благодаря таким вариантам, как YOLOv6Lite, фреймворк предлагает решения, адаптированные для мобильных устройств и конечных точек на базе CPU.
Слабые стороны
- Ограниченная область задач: YOLOv6 в основном ориентирован на object detection. Ему не хватает встроенной, готовой к использованию поддержки segment, оценки позы и tracking, которая характеризует экосистему Ultralytics.
- Интенсивность использования ресурсов: Чтобы достичь точности, сопоставимой с YOLOv8, модели YOLOv6 часто требуют значительно больше параметров и FLOPs, что приводит к более высоким вычислительным затратам во время обучения.
- Сообщество и поддержка: Несмотря на открытый исходный код, экосистема менее активна по сравнению с Ultralytics, что может привести к более медленному решению проблем и меньшему количеству ресурсов, предоставляемых сообществом.
Сравнение производительности
В следующей таблице представлено прямое сравнение показателей производительности на датасете COCO. Эти данные подчеркивают эффективность Ultralytics YOLOv8, которая стабильно обеспечивает высокую Mean Average Precision (mAP) при сниженной сложности модели.
| Модель | размер (пиксели) | 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.2 |
| 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 |
Анализ метрик
- Эффективность: YOLOv8 демонстрирует превосходную эффективность параметров. Например, YOLOv8s достигает конкурентоспособного показателя 44,9 mAP, имея всего 11,2M параметров, тогда как YOLOv6-3.0s требует 18,5M параметров — на 65% больше — для достижения практически идентичного mAP 45,0. Это приводит к снижению затрат на хранение и ускорению обновлений на периферийных устройствах.
- Вычислительная нагрузка: Аналогично, с точки зрения FLOPs (операций с плавающей точкой), YOLOv8m работает с 78.9B FLOPs по сравнению с 85.8B у YOLOv6-3.0m, что делает модель Ultralytics вычислительно более легкой при достижении более высокого mAP (50.2 против 50.0).
- Скорость: Хотя YOLOv6-3.0 демонстрирует несколько более высокую скорость инференса на GPU T4 благодаря своей специализированной конструкции, учитывающей особенности оборудования, YOLOv8 предлагает отличную производительность CPU через ONNX, что крайне важно для развертываний, где GPU недоступны.
Обучение и удобство использования
Одним из определяющих различий между этими моделями является удобство для разработчиков. Ultralytics уделяет первостепенное внимание беспрепятственному рабочему процессу, что очевидно в том, как модели обучаются и развертываются.
Унифицированный рабочий процесс
Ultralytics предоставляет согласованный API для всех задач. Независимо от того, выполняете ли вы detect, segment или оценку позы, синтаксис остается прежним, что значительно сокращает время обучения.
Простота использования с Ultralytics
YOLOv8 может быть интегрирована в проект всего несколькими строками кода на python. Python SDK автоматически обрабатывает загрузку данных, аугментацию и настройку конвейера обучения.
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
В отличие от этого, хотя YOLOv6 эффективен, он часто требует больше ручной настройки и управления зависимостями, что типично для академических репозиториев, что может замедлить быстрое прототипирование и интеграцию MLOps.
Идеальные варианты использования
Когда следует выбирать Ultralytics YOLOv8
- Разнообразные приложения: Если вашему проекту требуется больше, чем просто ограничивающие рамки, например, segment объектов или estimate ключевые точки, многозадачные возможности YOLOv8 незаменимы.
- Развертывание на периферии и в облаке: Благодаря своим режимам экспорта, YOLOv8 легко развертывается в TFLite, ONNX, CoreML и TensorRT, охватывая все, от мобильных телефонов до облачных серверов.
- Быстрая разработка: Для команд, которым необходимо быстро выполнять итерации, обширная документация и активная поддержка сообщества сводят к минимуму время простоя и устранение неполадок.
Когда следует выбирать YOLOv6-3.0
- Специфическое промышленное оборудование: Если ваша среда развертывания строго контролируется и использует оборудование, которое выигрывает от архитектур Rep-Block (например, определенные конфигурации GPU), YOLOv6 может предложить незначительный прирост скорости.
- Устаревшие системы: Для существующих конвейеров, уже построенных на основе конкретных форматов ввода/вывода YOLOv6, где рефакторинг невозможен.
Заключение
Несмотря на то, что YOLOv6-3.0 остается сильным конкурентом в специфической нише промышленного object detection, Ultralytics YOLOv8 предлагает более комплексное, эффективное и перспективное решение для подавляющего большинства проектов компьютерного зрения. Его способность обеспечивать превосходную точность с меньшим количеством параметров, в сочетании с процветающей экосистемой и поддержкой нескольких задач компьютерного зрения, делает его рекомендуемым выбором как для разработчиков, так и для исследователей.
Для тех, кто хочет изучить самые последние достижения в области компьютерного зрения, рекомендуем ознакомиться с YOLO11, которая еще больше повышает эффективность и производительность, установленные YOLOv8. Кроме того, сравнения с моделями на основе трансформеров, такими как RT-DETR, могут дать дополнительное представление о современных архитектурах detectирования.