YOLOv8 и DAMO-YOLO: всестороннее техническое сравнение
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха проекта. В этом сравнении рассматриваются технические нюансы между Ultralytics YOLOv8 и DAMO-YOLO — двумя известными архитектурами, которые оказали значительное влияние на эту область. Хотя обе модели расширяют границы скорости и точности, они удовлетворяют различные потребности и базы пользователей, от академических исследований до развертывания производственного уровня.
Краткое изложение
YOLOv8, разработанная Ultralytics, представляет собой универсальную, ориентированную на пользователя эволюцию в семействе YOLO. Запущенная в начале 2023 года, она отдает приоритет унифицированной структуре, поддерживающей несколько задач — detect, segment, классификацию, оценку позы и OBB —, подкрепленной надежной, хорошо поддерживаемой экосистемой.
DAMO-YOLO, выпущенный Alibaba Group в конце 2022 года, уделяет большое внимание архитектурным инновациям, полученным в результате поиска нейронных архитектур (NAS) и передовых методов слияния признаков. Он разработан в первую очередь для высокопроизводительного detect объектов на GPU.
Архитектурные инновации
Основные различия между этими двумя моделями заключаются в их философиях проектирования. YOLOv8 делает упор на простоту использования и обобщение, а DAMO-YOLO нацелен на архитектурную оптимизацию для конкретных показателей производительности.
Ultralytics YOLOv8: Улучшенная и унифицированная
YOLOv8 развивает успех своих предшественников, представляя современную anchor-free голову обнаружения. Эта decoupled head обрабатывает задачи определения объекта, классификации и регрессии независимо, что повышает скорость сходимости и точность.
Ключевые архитектурные особенности включают:
- C2f Module: Заменяя модуль C3, блок C2f (Cross-Stage Partial with 2 bottlenecks) улучшает поток градиентов и представление признаков, сохраняя при этом небольшой размер.
- Дизайн без Anchor: Устранение необходимости в предопределенных anchor boxes уменьшает количество гиперпараметров, упрощая процесс обучения и улучшая обобщение для различных наборов данных.
- Аугментация данных Mosaic: Оптимизированный конвейер, который повышает способность модели обнаруживать объекты в сложных сценах и различных масштабах.
DAMO-YOLO: Оптимизация, основанная на исследованиях
DAMO-YOLO («Discovery, Adventure, Momentum, and Outlook») объединяет несколько передовых исследовательских концепций для максимального повышения производительности архитектуры.
Ключевые технологии включают:
- Бэкбон MAE-NAS: Он использует поиск нейронной архитектуры (NAS) для автоматического обнаружения эффективной структуры бэкбона, оптимизируя компромисс между задержкой и точностью.
- RepGFPN Neck: Efficient RepGFPN (Generalized Feature Pyramid Network) улучшает объединение признаков в разных масштабах, что имеет решающее значение для detect объектов разных размеров.
- ZeroHead: облегченная конструкция головки, позволяющая снизить вычислительную сложность (FLOPs) без существенного снижения производительности обнаружения.
- AlignedOTA: Стратегия динамического назначения меток, которая решает проблему рассогласования между задачами классификации и регрессии во время обучения.
Метрики производительности
Производительность часто является решающим фактором для инженеров. В таблице ниже представлено подробное сравнение ключевых метрик на COCO dataset.
| Модель | размер (пиксели) | 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, превосходя самый большой вариант DAMO-YOLO. Это делает YOLOv8 предпочтительным выбором для приложений, где точность имеет первостепенное значение, таких как анализ медицинских изображений или системы, критичные к безопасности.
- Скорость инференса:YOLOv8n (Nano) доминирует по скорости, показывая всего 1,47 мс на GPU T4 и 80,4 мс на CPU. Эта исключительная скорость жизненно важна для инференса в реальном времени на периферийных устройствах.
- Эффективность: YOLOv8 демонстрирует превосходную эффективность параметров. Например, YOLOv8n использует всего 3,2M параметров по сравнению с 8,5M у DAMO-YOLOt, но при этом обеспечивает высокую конкурентоспособную производительность. Этот меньший объем памяти имеет решающее значение для развертывания на оборудовании с ограниченными ресурсами, таком как Raspberry Pi.
- Производительность CPU: Ultralytics предоставляет прозрачные тесты производительности CPU, в то время как DAMO-YOLO не предоставляет официальных данных о CPU. Для многих предприятий, не имеющих доступа к выделенным GPU, подтвержденная производительность CPU YOLOv8 является значительным преимуществом.
Гибкость развертывания
Модели YOLOv8 можно легко экспортировать в различные форматы, включая ONNX, TensorRT, CoreML и TFLite, используя yolo export команда. Это развертывание модели возможность обеспечивает плавную интеграцию в различные производственные среды.
Удобство использования и экосистема
Разрыв между исследовательской моделью и производственным инструментом часто определяется ее экосистемой и простотой использования.
Преимущества экосистемы Ultralytics
YOLOv8 — это не просто модель; это часть комплексной платформы. Экосистема Ultralytics предоставляет:
- Простой API: Унифицированный интерфейс python позволяет разработчикам обучать, проверять и развертывать модели, используя менее пяти строк кода.
- Обширная документация: Подробные руководства, учебные пособия и глоссарий помогают пользователям ориентироваться в сложных концепциях компьютерного зрения.
- Поддержка сообщества: Активное сообщество на GitHub и Discord обеспечивает быстрое решение проблем.
- Интеграции: Нативная поддержка таких инструментов, как Weights & Biases, Comet и Roboflow, оптимизирует конвейер MLOps.
Удобство использования DAMO-YOLO
DAMO-YOLO — это, прежде всего, исследовательский репозиторий. Несмотря на впечатляющие технологии, он требует более крутой кривой обучения. Пользователям часто необходимо вручную настраивать окружение и ориентироваться в сложных кодовых базах, чтобы адаптировать модель для пользовательских наборов данных. Ему не хватает широкой поддержки мультизадачности (segmentation, определение позы и т. д.), которая есть во фреймворке Ultralytics.
Случаи использования и приложения
Идеальные сценарии для YOLOv8
- Системы машинного зрения для нескольких задач: Проекты, требующие одновременного обнаружения объектов, сегментации экземпляров и оценки позы.
- Edge AI: Развертывания на таких устройствах, как NVIDIA Jetson или мобильные телефоны, где эффективность использования памяти и низкая задержка имеют решающее значение.
- Быстрое прототипирование: Стартапы и команды R&D, которым необходимо быстро выполнять итерации от сбора данных до развертывания модели.
- Промышленная автоматизация: Производственные линии, использующие контроль качества, где необходимы надежность и стандартные интеграции.
Идеальные сценарии для DAMO-YOLO
- Серверы, ориентированные на GPU: Высокопроизводительные облачные сервисы, где огромные пакеты изображений обрабатываются на мощных GPU.
- Академические исследования: Исследователи, изучающие эффективность NAS и методов дистилляции в архитектурах object detection.
Пример обучения: 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")
Этот простой рабочий процесс контрастирует с более сложной настройкой, обычно необходимой для исследовательских моделей, таких как DAMO-YOLO.
Заключение
Обе архитектуры представляют собой значительные достижения в области компьютерного зрения. DAMO-YOLO представляет убедительные инновации, такие как ZeroHead и MAE-NAS, что делает его сильным конкурентом для конкретных высокопроизводительных задач GPU.
Однако, для подавляющего большинства разработчиков и организаций Ultralytics YOLOv8 остается лучшим выбором. Его непревзойденная универсальность, исчерпывающая документация и динамичная экосистема снижают трения при внедрении ИИ. Независимо от того, оптимизируете ли вы оценку скорости на шоссе или выполняете детальную сегментацию тканей в лаборатории, YOLOv8 обеспечивает сбалансированную производительность и инструменты, необходимые для эффективного внедрения вашего решения в производство.
Изучите другие модели
Сравнение моделей — лучший способ найти подходящий инструмент для ваших конкретных потребностей. Ознакомьтесь с этими другими сравнениями: