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 объекты в сложных сценах и на разных масштабах.
YOLO: оптимизация на основе исследований
YOLO ("Discovery, Adventure, Momentum, and Outlook") объединяет несколько передовых исследовательских концепций, чтобы выжать максимум производительности из архитектуры.
Ключевые технологии включают:
- MAE-NAS Backbone: Использует нейронную архитектуру (NAS) для автоматического поиска эффективной структуры магистрали, оптимизируя компромисс между задержкой и точностью.
- RepGFPN Neck: Эффективная сеть RepGFPN (Generalized Feature Pyramid Network) улучшает слияние признаков в разных масштабах, что очень важно для обнаружения объектов разного размера.
- ZeroHead: облегченная конструкция головки, позволяющая снизить вычислительную сложность (FLOPs) без существенного снижения производительности обнаружения.
- AlignedOTA: стратегия динамического присвоения меток, которая решает проблему несоответствия между задачами классификации и регрессии во время обучения.
Метрики производительности
Производительность часто является решающим фактором для инженеров. В таблице ниже представлено подробное сравнение ключевых показателей набора данных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.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.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 обеспечивает сбалансированную производительность и инструментарий, необходимые для эффективного внедрения вашего решения в производство.
Изучите другие модели
Сравнение моделей - лучший способ найти инструмент, соответствующий вашим потребностям. Ознакомьтесь с другими сравнениями: