Перейти к содержанию

YOLOv8 против YOLO: всестороннее техническое сравнение

В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха проекта. В этом сравнении рассматриваются технические нюансы между Ultralytics YOLOv8 и YOLO, двумя выдающимися архитектурами, которые оказали значительное влияние на эту область. Несмотря на то что обе модели расширяют границы скорости и точности, они удовлетворяют разным потребностям и базам пользователей, начиная от академических исследований и заканчивая развертыванием на производстве.

Исполнительное резюме

YOLOv8разработанный Ultralyticsпредставляет собой универсальную, ориентированную на пользователя эволюцию семейства YOLO . Запущенный в начале 2023 года, он ставит во главу угла унифицированную структуру, поддерживающую множество задач - обнаружение, сегментацию, классификацию, оценку позы и OBB - и подкрепленную надежной и хорошо поддерживаемой экосистемой.

YOLO, выпущенный компанией Alibaba Group в конце 2022 года, в значительной степени ориентирован на архитектурные инновации, полученные в результате поиска нейронной архитектуры (NAS) и передовых методов объединения признаков. Он предназначен в первую очередь для высокопроизводительного обнаружения объектов на графических процессорах.

Архитектурные инновации

Основные различия между этими двумя моделями заключаются в их философии проектирования. YOLOv8 делает акцент на простоте использования и обобщении, в то время как YOLO нацелена на оптимизацию архитектуры для конкретных показателей производительности.

Ultralytics YOLOv8: усовершенствованный и унифицированный

YOLOv8 развивает успех своих предшественников, представляя современную головку обнаружения без якоря. Эта головка обрабатывает задачи объектности, классификации и регрессии независимо друг от друга, что повышает скорость и точность сходимости.

Основные архитектурные особенности включают:

  • Модуль C2f: Заменив модуль C3, блок C2f (Cross-Stage Partial with 2 bottlenecks) улучшает градиентный поток и представление признаков, сохраняя при этом малый вес.
  • Дизайн без якорей: Устранение необходимости в предопределенных якорных ящиках уменьшает количество гиперпараметров, упрощая процесс обучения и улучшая обобщение на различных наборах данных.
  • Дополнение данных Mosaic: Оптимизированный конвейер, повышающий способность модели detect объекты в сложных сценах и на разных масштабах.

Узнайте больше о YOLOv8

YOLO: оптимизация на основе исследований

YOLO ("Discovery, Adventure, Momentum, and Outlook") объединяет несколько передовых исследовательских концепций, чтобы выжать максимум производительности из архитектуры.

Ключевые технологии включают:

  • MAE-NAS Backbone: Использует нейронную архитектуру (NAS) для автоматического поиска эффективной структуры магистрали, оптимизируя компромисс между задержкой и точностью.
  • RepGFPN Neck: Эффективная сеть RepGFPN (Generalized Feature Pyramid Network) улучшает слияние признаков в разных масштабах, что очень важно для обнаружения объектов разного размера.
  • ZeroHead: облегченная конструкция головки, позволяющая снизить вычислительную сложность (FLOPs) без существенного снижения производительности обнаружения.
  • AlignedOTA: стратегия динамического присвоения меток, которая решает проблему несоответствия между задачами классификации и регрессии во время обучения.

Узнайте больше о DAMO-YOLO

Метрики производительности

Производительность часто является решающим фактором для инженеров. В таблице ниже представлено подробное сравнение ключевых показателей набора данныхCOCO .

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3

Анализ

  • Точность высшего уровня: Самый большой YOLOv8x достигает наивысшей точности - 53,9 mAP, превосходя самый большой вариант YOLO . Это делает YOLOv8 предпочтительным выбором для приложений, где точность имеет первостепенное значение, таких как анализ медицинских изображений или системы, критически важные для безопасности.
  • Скорость умозаключений:YOLOv8n (Nano) доминирует по скорости, составляя всего 1,47 мс на GPU T4 и 80,4 мс на CPU. Такая исключительная скорость очень важна для вычислений в реальном времени на пограничных устройствах.
  • Эффективность: YOLOv8 демонстрирует превосходную эффективность использования параметров. Например, YOLOv8n использует всего 3,2 М параметров по сравнению с 8,5 М параметров DAMO-YOLOt, обеспечивая при этом высокую конкурентоспособную производительность. Такой низкий объем памяти очень важен для развертывания на ограниченном по ресурсам оборудовании, таком как Raspberry Pi.
  • ПроизводительностьCPU : Ultralytics предоставляет прозрачные бенчмарки CPU , в то время как YOLO не имеет официальных данных по CPU . Для многих компаний, не имеющих доступа к специализированным GPU, доказанная производительность CPU в YOLOv8 является значительным преимуществом.

Гибкость развертывания

Модели YOLOv8 можно легко экспортировать в различные форматы, включая ONNX, TensorRT, CoreML и TFLite , используя yolo export команда. Это развёртывание модели Возможность беспрепятственной интеграции в различные производственные среды.

Удобство использования и экосистема

Разрыв между исследовательской моделью и производственным инструментом часто определяется его экосистемой и простотой использования.

Преимущество экосистемы Ultralytics

YOLOv8 - это не просто модель, это часть комплексной платформы. Экосистема Ultralytics обеспечивает:

  • Простой API: Унифицированный интерфейсPython позволяет разработчикам обучать, проверять и развертывать модели, используя менее пяти строк кода.
  • Обширная документация: Подробные руководства, учебные пособия и глоссарий помогают пользователям ориентироваться в сложных концепциях компьютерного зрения.
  • Поддержка сообщества: Активное сообщество на GitHub и Discord обеспечивает быстрое решение проблем.
  • Интеграции: Встроенная поддержка таких инструментов, как Weights & Biases, Cometи Roboflow оптимизируют конвейер MLOps.

Удобство использования YOLO

YOLO - это прежде всего исследовательский репозиторий. Хотя он предлагает впечатляющие технологии, он требует более сложной кривой обучения. Пользователям часто приходится вручную настраивать окружение и ориентироваться в сложных кодовых базах, чтобы адаптировать модель для пользовательских наборов данных. В ней отсутствует широкая поддержка многозадачности (сегментация, позирование и т. д.), характерная для фреймворка Ultralytics .

Случаи использования и приложения

Идеальные сценарии для YOLOv8

  • Многозадачные системы технического зрения: Проекты, требующие одновременного обнаружения объектов, сегментации объектов и оценки позы.
  • Edge AI: развертывание на таких устройствах, как NVIDIA Jetson или мобильные телефоны, где эффективность использования памяти и низкая задержка имеют решающее значение.
  • Быстрое прототипирование: Стартапы и команды исследователей, которым требуется быстрая итерация от сбора данных до развертывания модели.
  • Промышленная автоматизация: Производственные линии с контролем качества, где необходима надежность и стандартная интеграция.

Идеальные сценарии для YOLO

  • СерверыGPU: Облачные сервисы с высокой пропускной способностью, в которых огромные партии изображений обрабатываются на мощных графических процессорах.
  • Академические исследования: Исследователи, изучающие эффективность методов NAS и дистилляции в архитектурах обнаружения объектов.

Пример обучения: YOLOv8

Оцените простоту API Ultralytics . Следующий фрагмент кода демонстрирует, как загрузить предварительно обученную модель YOLOv8 и выполнить ее тонкую настройку на пользовательском наборе данных.

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model on your custom data
# The data argument points to a YAML file describing your dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

Этот простой рабочий процесс контрастирует с более сложными настройками, которые обычно требуются для исследовательских моделей, таких как YOLO.

Заключение

Обе архитектуры представляют собой значительные достижения в области компьютерного зрения. В YOLO реализованы такие интересные инновации, как ZeroHead и MAE-NAS, что делает ее сильным соперником в решении специфических высокопроизводительных задач GPU .

Однако для подавляющего большинства разработчиков и организаций, Ultralytics YOLOv8 остается лучшим выбором. Его непревзойденная универсальность, исчерпывающая документация и динамично развивающаяся экосистема снижают трудности, связанные с внедрением ИИ. Независимо от того, оптимизируете ли вы оценку скорости на шоссе или выполняете сегментацию тканей в лаборатории, YOLOv8 обеспечивает сбалансированную производительность и инструментарий, необходимые для эффективного внедрения вашего решения в производство.

Изучите другие модели

Сравнение моделей - лучший способ найти инструмент, соответствующий вашим потребностям. Ознакомьтесь с другими сравнениями:


Комментарии