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 |
В небольших вариантах DAMO-YOLOt и DAMO-YOLOs обеспечивают более высокий mAP, чем YOLOv8n и YOLOv8s, но используют больше параметров; начиная со среднего размера YOLOv8 превосходит их по точности. Для YOLOv8n (nano) требуется всего 3.2 миллиона параметров против 8.5 миллиона у DAMO-YOLOt, поэтому она лучше подходит для мобильных устройств и сред со строгими ограничениями по памяти. YOLOv8 также предлагает больше вариантов размеров, вплоть до YOLOv8x — самой точной модели в этом сравнении, подходящей для облачных нагрузок.
Опыт разработчиков и экосистема#
Удобство использования и эффективность обучения#
Одно из главных отличий — удобство использования. Экосистема Ultralytics разработана с учетом высокой скорости разработки. Обучение пользовательской модели YOLOv8 не требует много памяти и выполняется через унифицированный Python API или интерфейс командной строки.
В свою очередь, для воспроизведения обучения 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: приложения, которым нужен стабильный инференс с низкой задержкой без сложной постобработки методом подавления немаксимумов (NMS).
- Среды, работающие только на CPU: устройства без выделенного ускорения на GPU, на которых преимущество YOLO26n особенно заметно: инференс на CPU выполняется до 43% быстрее, чем у YOLO11n.
- Обнаружение мелких объектов: сложные сценарии, например съемка с дронов или анализ данных датчиков IoT, где ProgLoss и STAL повышают точность распознавания крошечных объектов.
Что дальше: новые модели Ultralytics#
YOLOv8 остаётся надёжной рабочей моделью, но компьютерное зрение развивается быстро, поэтому пользователям стоит рассмотреть и более новые поколения:
YOLO26: новейшее поколение — Ultralytics YOLO26 — представляет нативную сквозную архитектуру без NMS (nms=False), которая устраняет задержки на этапе постобработки NMS. Оптимизатор MuSGD (гибрид SGD и Muon) стабилизирует обучение, а ProgLoss + STAL (прогрессивная функция потерь и назначение меток с учётом малых объектов) повышают качество обнаружения мелких объектов. Благодаря удалению DFL (Distribution Focal Loss удалена для упрощения экспорта и повышения совместимости с периферийными устройствами и устройствами с низким энергопотреблением) YOLO26n обеспечивает до 43% более высокую скорость инференса на CPU, чем YOLO11n, что делает её отличным выбором для периферийных вычислений.
YOLO11: Ultralytics YOLO11 дорабатывает архитектуру YOLOv8 и остаётся широко востребованной в сообществе.
Чтобы перевести модели от прототипа к производству, используй Ultralytics Platform, чтобы автоматически размечать датасеты, отслеживать эксперименты и развёртывать модели в облаке или на периферийных устройствах.
В заключение: DAMO-YOLO даёт полезные исследовательские сведения о поиске архитектур, но модели Ultralytics предлагают более зрелую, универсальную и удобную для разработчиков экосистему. Независимо от того, останешься ли ты на YOLOv8 или перейдёшь на архитектуру YOLO26 без NMS, Ultralytics предоставляет полный инструментарий для компьютерного зрения и ИИ в реальном времени.