YOLOv10 и DAMO-YOLO#
При создании современных конвейеров компьютерного зрения крайне важно правильно выбрать архитектуру детекции объектов в реальном времени. В этом техническом анализе рассматриваются архитектуры, показатели производительности и подходящие сценарии применения YOLOv10 и DAMO-YOLO. Обе модели продвинули детекцию в реальном времени, но используют для этого разные архитектурные подходы.
Если проект требует развертывания на ограниченном по ресурсам оборудовании периферийного ИИ или максимальной точности на облачных GPU, понимание различий между этими архитектурами поможет тебе принять обоснованное решение.
Знакомство с YOLOv10#
Представленная исследователями Университета Цинхуа YOLOv10 принесла в семейство YOLO изначально сквозной подход, устранив необходимость в подавлении немаксимумов (NMS) при постобработке.
Подробности о YOLOv10:
- Авторы: Ao Wang, Hui Chen, Lihao Liu и др.
- Организация: Университет Цинхуа
- Дата: 2024-05-23
- arXiv: https://arxiv.org/abs/2405.14458
- GitHub: https://github.com/THU-MIG/yolov10
- Документация: https://docs.ultralytics.com/models/yolov10
Ключевые особенности архитектуры#
Главная инновация YOLOv10 — стратегия согласованных двойных назначений, позволяющая обучать модель без NMS. Традиционные детекторы объектов используют NMS для фильтрации перекрывающихся ограничивающих рамок, что приводит к изменчивой задержке и создает узкое место для приложений реального времени, таких как автономные транспортные средства и высокоскоростная робототехника. Предсказывая для каждого объекта одну ограничивающую рамку напрямую, YOLOv10 обеспечивает низкую и предсказуемую задержку инференса.
Кроме того, в модели используется целостный подход к проектированию, ориентированный на эффективность и точность. Архитектура оптимизирует различные компоненты, включая легкую голову классификации и раздельное пространственно-канальное уменьшение размера, что сокращает избыточные вычисления. В результате модель содержит меньше параметров и требует меньше FLOPs, сохраняя при этом конкурентную среднюю точность (mAP).
Пример использования#
YOLOv10 интегрирована в экосистему Ultralytics, поэтому ты можешь использовать ее через пакет Ultralytics для Python.
from ultralytics import YOLO
# Загрузи предварительно обученную компактную модель YOLOv10
model = YOLO("yolov10n.pt")
# Обучи модель на датасете COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Запусти инференс на тестовом изображении
results = model("https://ultralytics.com/images/bus.jpg")
# Экспортируй модель в формат TensorRT
model.export(format="engine", quantize=16)Знакомство с DAMO-YOLO#
Разработанная Alibaba Group, DAMO-YOLO ориентирована на поиск эффективных структур сети с помощью автоматизированного поиска архитектуры нейронной сети (NAS), чтобы расширить границу Парето между скоростью и точностью.
Сведения о DAMO-YOLO:
- Авторы: Сяньчжэ Сюй, Ици Цзян, Вэйхуа Чэнь, Илуне Хуан, Юань Чжан и Сюйюй Сунь
- Организация: Alibaba Group
- Дата: 2022-11-23
- arXiv: https://arxiv.org/abs/2211.15444v2
- GitHub: https://github.com/tinyvision/DAMO-YOLO
Ключевые особенности архитектуры#
DAMO-YOLO включает несколько методов для промышленного применения. В основе модели лежит магистральная сеть MAE-NAS, созданная с помощью поиска, управляемого принципом максимальной энтропии. Этот автоматизированный процесс находит структуры магистральных сетей, соответствующие заданным вычислительным бюджетам и обеспечивающие баланс точности и задержки инференса.
В архитектуре также используется шейка Efficient RepGFPN. Эта сеть пирамиды признаков предназначена для улучшения объединения признаков на разных масштабах, что важно для сложных задач, таких как анализ аэрофотоснимков, где объекты сильно различаются по размеру. DAMO-YOLO также использует ZeroHead — минималистичную голову детекции, снижающую сложность финальных слоев предсказания и вычислительные затраты при инференсе.
Сравнение производительности#
При оценке архитектур детекции объектов важно найти баланс между скоростью инференса, эффективностью по количеству параметров и точностью детекции. В таблице ниже сравнивается производительность YOLOv10 и DAMO-YOLO для моделей разных размеров.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
| 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 |
При сопоставимых масштабах YOLOv10 точнее DAMO-YOLO и использует меньше параметров: YOLOv10s достигает 46.3 mAP при 7.2M параметров и задержке 2.49 мс, тогда как DAMO-YOLOs — 46.0 mAP при 16.3M параметров и 3.45 мс. DAMO-YOLOt обеспечивает высокую для своего размера точность (42.0 mAP), а DAMO-YOLOl немного быстрее YOLOv10l при работе с TensorRT на T4 (7.18 мс против 7.28 мс), но эффективность семейства YOLOv10 по количеству параметров дает ему преимущество при развертывании в условиях ограниченных ресурсов.
Сценарии использования и рекомендации#
Выбор между YOLOv10 и DAMO-YOLO зависит от конкретных требований твоего проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда выбирать YOLOv10#
YOLOv10 — хороший выбор для:
- Детектирование в реальном времени без NMS: Приложения, которым полезно сквозное детектирование без подавления немаксимумов, что упрощает развертывание.
- Сбалансированное соотношение скорости и точности: Проекты, в которых важно найти оптимальный баланс между скоростью инференса и точностью детектирования для моделей разных размеров.
- Приложения с постоянной задержкой: Сценарии развертывания, где важны предсказуемые времена инференса, например в робототехнике или автономных системах.
Когда стоит выбрать DAMO-YOLO#
DAMO-YOLO рекомендуется для следующих задач:
- Высокопроизводительная видеоаналитика: Обработка видеопотоков с высокой частотой кадров на фиксированной инфраструктуре NVIDIA GPU, где основной показатель — пропускная способность при размере пакета 1.
- Промышленные производственные линии: Сценарии со строгими ограничениями по задержке GPU на выделенном оборудовании, например контроль качества в реальном времени на сборочных линиях.
- Исследования в области поиска нейросетевых архитектур: Изучение влияния автоматизированного поиска архитектур (MAE-NAS) и эффективных перенастраиваемых базовых сетей на качество обнаружения.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорения GPU, где инференс YOLO26 на CPU — до 43% быстрее (YOLO26n против YOLO11n), что даёт решающее преимущество.
- Обнаружение небольших объектов: сложные сценарии, например аэрофотосъемка с дронов или анализ данных датчиков IoT, где ProgLoss и STAL повышают точность обнаружения небольших объектов.
Преимущества Ultralytics#
При выборе архитектуры для промышленного применения недостаточно смотреть только на основные метрики. Использование моделей, поддерживаемых экосистемой Ultralytics, дает разработчикам и исследователям ряд практических преимуществ.
Удобство использования и хорошо поддерживаемая экосистема#
В отличие от отдельных академических репозиториев, которые могут редко обновляться, Ultralytics предлагает активно поддерживаемую экосистему. Настройка сложных сред для моделей, использующих конвейеры NAS, может быть непростой задачей. Вместо этого Ultralytics предоставляет стандартизированные API Python и CLI с подробной документацией, сокращая время вывода пользовательских решений для компьютерного зрения на рынок.
Эффективность обучения и требования к памяти#
Обучение крупных моделей может быстро стать дорогостоящим с вычислительной точки зрения. Архитектуры Ultralytics YOLO традиционно отличаются низким потреблением памяти CUDA при обучении и инференсе. Благодаря такой эффективности разработчики могут обучать модели на обычном пользовательском оборудовании или недорогих облачных инстансах, не сталкиваясь с нехваткой памяти, которая часто возникает при работе с моделями на основе Transformer, например RT-DETR.
Ultralytics интегрируется с популярными инструментами MLOps. Ты можешь отслеживать ход обучения модели с помощью интеграций с Weights & Biases, Comet или ClearML, не добавляя шаблонный код.
Универсальность для разных задач#
Многие специализированные модели детекции, включая YOLOv10 и DAMO-YOLO, ограничены задачей детекции. В экосистеме Ultralytics такие модели, как YOLO11 и YOLO26, позволяют использовать те же инструменты для решения множества задач компьютерного зрения, включая сегментацию экземпляров, классификацию изображений, оценку позы и детекцию объектов с ориентированными ограничивающими рамками (OBB).
Взгляд в будущее: эволюция YOLO26#
YOLOv10 внедрила инференс без NMS в модели YOLO, а DAMO-YOLO показала возможности NAS. Разработчикам, начинающим новые проекты сегодня, мы рекомендуем Ultralytics YOLO26.
Выпущенная в январе 2026 года как преемница YOLO11, YOLO26 развивает заложенную YOLOv10 основу без NMS, используя дополнительную голову один-к-одному (nms=False).
Ключевые достижения YOLO26:
- До 43% более быстрый инференс на CPU: YOLO26n работает на CPU до 43% быстрее YOLO11n, что делает ее подходящей для периферийных вычислений и маломощных устройств.
- Удаление DFL: Distribution Focal Loss удалена, что упрощает экспорт и повышает совместимость с различными целевыми платформами развертывания.
- Оптимизатор MuSGD: Гибрид SGD и Muon, обеспечивающий стабильность обучения больших языковых моделей (LLM) и быструю сходимость в компьютерном зрении.
- ProgLoss + STAL: Прогрессивная функция потерь и назначение меток с учетом малых объектов (STAL) улучшают распознавание небольших объектов, что важно для таких сценариев, как сельское хозяйство и дистанционное зондирование.
С помощью платформы Ultralytics разработчики могут размечать данные, обучать и развертывать такие модели, как YOLO26, в одном месте.