YOLOv8 и DAMO-YOLO#
Область компьютерного зрения постоянно развивается: новые архитектуры расширяют возможности периферийных устройств и крупных облачных кластеров. В этом подробном техническом обзоре мы сравниваем две известные модели обнаружения объектов в реальном времени: YOLOv8 и DAMO-YOLO. Изучив их архитектуру, метрики производительности и методы обучения, инженеры по машинному обучению смогут принимать обоснованные решения для конвейеров развертывания.
История моделей и их происхождение#
Обе модели появились примерно в одно время, но основаны на разных принципах проектирования и исследовательских целях.
Особенности YOLOv8#
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: Репозиторий Ultralytics на GitHub
- Документация: Официальная документация YOLOv8
Подробнее о DAMO-YOLO#
- Авторы: Сяньчжэ Сюй, Ици Цзян, Вэйхуа Чэнь, Илуне Хуан, Юань Чжан и Сюйюй Сунь
- Организация: Alibaba Group
- Дата: 2022-11-23
- Arxiv: Исследовательская статья о DAMO-YOLO
- GitHub: Репозиторий DAMO-YOLO на GitHub
Архитектурные инновации#
YOLOv8: универсальная безанкорная архитектура#
Ultralytics YOLOv8 привнесла значительные улучшения по сравнению с предшественниками и закрепила за собой статус надёжной современной модели. В ней используется безанкорная голова обнаружения, что сокращает количество предсказаний рамок и ускоряет инференс. Архитектура включает раздельную голову, которая разделяет задачи классификации и регрессии, повышая точность предсказаний ограничивающих рамок.
Кроме того, YOLOv8 использует Distribution Focal Loss (DFL) вместе с функцией потерь CIoU, что повышает точность определения границ объектов, особенно небольших или частично закрытых. Упрощённая базовая сеть хорошо оптимизирована для работы как на GPU, так и на CPU.
DAMO-YOLO: поиск оптимальной архитектуры#
DAMO-YOLO использует другой подход и в значительной мере полагается на автоматический поиск архитектуры нейронной сети (NAS) для проектирования базовой сети. Команда Alibaba представила «MAE-NAS» для поиска структур с оптимальным балансом задержки и точности, специально рассчитанных на ускорение с помощью TensorRT.
Модель использует RepGFPN (обобщённую пирамидальную сеть признаков с перепараметризацией) для эффективного объединения признаков и архитектуру «ZeroHead» для снижения вычислительной нагрузки на голову обнаружения. При обучении модель использует AlignedOTA для назначения меток и активно применяет сложную дистилляцию знаний, для которой нужна более крупная модель-учитель, обучающая целевую модель-ученика.
DAMO-YOLO показывает впечатляющие значения задержки благодаря NAS и дистилляции, но для обучения ей требуется значительно больше памяти CUDA и вычислительного времени, чем высокооптимизированному одноэтапному конвейеру обучения YOLOv8.
Производительность и метрики#
При развертывании моделей компьютерного зрения в production критически важно соблюдать баланс между точностью (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.1 |
| 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 |
YOLOv8 демонстрирует превосходный баланс производительности. Модель YOLOv8n (nano) требует всего 3,2 млн параметров против 8,5 млн у DAMO-YOLOt, поэтому она гораздо лучше подходит для мобильных устройств и сред со строгими ограничениями по памяти. Кроме того, у YOLOv8 больше вариантов размеров, включая высокоточную YOLOv8x для облачных рабочих нагрузок.
Опыт разработчиков и экосистема#
Удобство использования и эффективность обучения#
Одно из главных различий — пользовательский опыт. Экосистема Ultralytics создана для ускорения работы разработчиков. Обучение собственной модели YOLOv8 требует совсем немного памяти и выполняется через единый API Python или интерфейс командной строки.
В свою очередь, для воспроизведения обучения DAMO-YOLO с дистилляцией часто приходится разбираться в сложных файлах конфигурации и настраивать отслеживание экспериментов для многоэтапного процесса «учитель — ученик».
Вот пример того, как просто обучить, проверить и экспортировать YOLOv8 с помощью Python:
from ultralytics import YOLO
# Загрузи предварительно обученную модель YOLOv8 nano
model = YOLO("yolov8n.pt")
# Обучи модель на датасете COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="cpu")
# Экспортируй обученную модель в формат ONNX
path = model.export(format="onnx")Универсальность для задач компьютерного зрения#
DAMO-YOLO предназначена исключительно для обнаружения объектов с ограничивающими рамками. В отличие от неё, архитектура YOLOv8 изначально поддерживает несколько задач. Просто заменив веса модели, разработчики могут выполнять сегментацию экземпляров, классификацию изображений и оценку позы, не меняя основной код для развертывания. Благодаря этой универсальности модели Ultralytics гораздо практичнее для сложных приложений.
Примеры применения в реальных условиях#
Когда использовать YOLOv8#
Сочетание скорости, точности и простоты развертывания делает YOLOv8 идеальным решением для следующих задач:
- Аналитика для умной розницы: использование отслеживания объектов для мониторинга поведения покупателей или автоматизации учёта запасов.
- Сельскохозяйственная робототехника: благодаря высокой производительности на различном оборудовании модель позволяет распознавать сельскохозяйственные культуры и вредителей в реальном времени.
- Медицинская диагностика: сегментация экземпляров помогает быстро и точно выявлять аномалии на медицинских изображениях.
- Развертывание на периферийных устройствах: благодаря простой интеграции с форматами экспорта, такими как OpenVINO и CoreML, YOLOv8 отлично работает на устройствах с ограниченными ресурсами.
Когда использовать DAMO-YOLO#
DAMO-YOLO может быть полезна в узкоспециализированных сценариях, в частности:
- Академические исследования NAS: для команд, изучающих репараметризацию или методы автоматизированного проектирования архитектур.
- Конвейеры, работающие исключительно на GPU: приложения, предназначенные только для конкретного оборудования NVIDIA, где структуры NAS оптимизированы с учётом ограничений выполнения TensorRT.
Сценарии использования и рекомендации#
Выбор между YOLOv8 и DAMO-YOLO зависит от конкретных требований проекта, ограничений на развертывание и предпочтений в отношении экосистемы.
Когда выбрать YOLOv8#
YOLOv8 — хороший выбор для:
- Универсальное решение для нескольких задач: проекты, которым нужна проверенная модель для обнаружения объектов, сегментации, классификации и оценки позы в экосистеме Ultralytics.
- Уже работающие системы: существующие промышленные среды, построенные на архитектуре YOLOv8 и использующие стабильные, тщательно проверенные конвейеры развертывания.
- Широкая поддержка сообщества и экосистемы: приложения, которым помогают многочисленные руководства по YOLOv8, сторонние интеграции и активное сообщество.
Когда стоит выбрать DAMO-YOLO#
DAMO-YOLO рекомендуется для следующих задач:
- Высокопроизводительная видеоаналитика: Обработка видеопотоков с высокой частотой кадров на фиксированной инфраструктуре NVIDIA GPU, где основной показатель — пропускная способность при размере пакета 1.
- Промышленные производственные линии: Сценарии со строгими ограничениями по задержке GPU на выделенном оборудовании, например контроль качества в реальном времени на сборочных линиях.
- Исследования в области поиска нейросетевых архитектур: Изучение влияния автоматизированного поиска архитектур (MAE-NAS) и эффективных перенастраиваемых базовых сетей на качество обнаружения.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Что дальше: новые модели Ultralytics#
YOLOv8 остаётся надёжной рабочей моделью, однако компьютерное зрение развивается стремительно. Рассмотри также более новые поколения моделей:
YOLO26: новое поколение Ultralytics YOLO26 меняет подход к компьютерному зрению. В модели появилась встроенная сквозная архитектура без NMS (nms=False), устраняющая задержки, связанные с постобработкой с подавлением немаксимумов. Новый оптимизатор MuSGD (гибрид SGD и Muon) и специализированные функции потерь ProgLoss + STAL обеспечивают замечательную стабильность обучения и значительно улучшают распознавание мелких объектов. Благодаря удалению DFL (Distribution Focal Loss), упрощающему экспорт и повышающему совместимость с периферийными устройствами и устройствами с низким энергопотреблением, архитектурные изменения ускоряют инференс на CPU до 43% по сравнению с предыдущими поколениями. Поэтому YOLO26 — оптимальный выбор для современных периферийных вычислений.
YOLO11: ещё один отличный вариант — Ultralytics YOLO11. Эта модель получила ряд архитектурных улучшений по сравнению с YOLOv8 и остаётся надёжным решением, широко используемым сообществом.
Хочешь перевести свои модели от прототипа к production? Используй Платформу Ultralytics, чтобы автоматически размечать наборы данных, отслеживать эксперименты и без проблем развертывать модели в облаке или на периферийных устройствах.
В заключение: DAMO-YOLO предлагает интересные академические идеи в области поиска архитектур, а модели Ultralytics — значительно более зрелую, универсальную и удобную для разработчиков экосистему. Выбирай проверенную стабильность YOLOv8 или переходи на сверхбыструю архитектуру YOLO26 без NMS — линейка Ultralytics остаётся лучшим выбором для ИИ в компьютерном зрении в реальном времени.