DAMO-YOLO и YOLOv7#
Быстрое развитие компьютерного зрения привело к появлению высокоэффективных моделей обнаружения объектов, призванных сбалансировать точность и вычислительные затраты. Среди примечательных моделей, представленных в 2022 году, — DAMO-YOLO и YOLOv7. Обе модели стремятся расширить возможности компьютерного зрения в реальном времени, но достигают этого с помощью совершенно разных архитектурных принципов и методик обучения.
В этом подробном техническом сравнении рассматриваются различные подходы обеих моделей, их архитектуры, потенциал развёртывания и показатели производительности, чтобы помочь инженерам машинного обучения выбрать подходящий инструмент для своих задач компьютерного зрения.
Происхождение моделей и метаданные#
Прежде чем перейти к подробному техническому анализу, важно разобраться в происхождении этих двух моделей компьютерного зрения.
DAMO-YOLO#
DAMO-YOLO разработали исследователи Alibaba Group. Модель представили для одновременной оптимизации скорости и точности с помощью автоматизированного поиска архитектуры и дистилляции.
- Авторы: Сяньчжэ Сюй, Ици Цзян, Вэйхуа Чэнь, Илуне Хуан, Юань Чжан и Сюйюй Сунь
- Организация: Alibaba Group
- Дата: 23 ноября 2022 года
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
YOLOv7#
Выпущенная в середине 2022 года как передовая модель, YOLOv7 расширила возможности вывода в реальном времени, добавив обучаемые методы «бесплатного улучшения» без увеличения затрат на развёртывание.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информатики, Академия Синика, Тайвань
- Дата: 6 июля 2022 года
- Arxiv: 2207.02696
- Документация: Документация YOLOv7
Ultralytics не публикует веса и YAML-файлы YOLOv7, поэтому обучать YOLOv7 напрямую с помощью пакета Ultralytics нельзя. Модели YOLOv7, обученные в исходном репозитории, можно экспортировать в ONNX или TensorRT и запускать для вывода с помощью Ultralytics.
Архитектурные инновации#
DAMO-YOLO: NAS и дистилляция#
В DAMO-YOLO используется ряд передовых методов, направленных на максимальную эффективность:
- Базовые сети NAS: поиск нейронной архитектуры (NAS) автоматически проектирует оптимальные базовые сети (MAE-NAS) для сред, критичных к задержке.
- Эффективная RepGFPN: модифицированная обобщённая пирамидальная сеть признаков, значительно повышающая эффективность слияния признаков на нескольких масштабах.
- ZeroHead и AlignedOTA: лёгкая голова обнаружения и оптимизированная стратегия назначения меток (AlignedOTA) сокращают вычислительные затраты.
- Улучшение за счёт дистилляции: при обучении активно применяется дистилляция знаний, повышающая производительность компактных вариантов модели без увеличения числа параметров.
YOLOv7: E-ELAN и бесплатные улучшения#
При разработке YOLOv7 использовали более структурный инженерный подход, сосредоточившись на оптимизации путей градиента и надёжных стратегиях обучения.
- Архитектура E-ELAN: расширенная эффективная сеть агрегации слоёв позволяет модели изучать более разнообразные признаки, контролируя самые короткие и самые длинные пути градиента и обеспечивая эффективную сходимость обучения.
- Масштабирование модели: метод составного масштабирования, разработанный для моделей на основе конкатенации, одновременно изменяет глубину и ширину, сохраняя структурное соответствие.
- Обучаемые бесплатные улучшения: применяются такие методы, как свёртки с репараметризацией (RepConv) без связей идентичности и стратегии динамического назначения меток. Они повышают точность при обучении, не влияя на скорость вывода.
Анализ производительности#
При оценке средней точности (mAP), скорости и эффективности обе модели демонстрируют впечатляющие показатели, хотя и рассчитаны на несколько разные сценарии. YOLOv7 ориентирована прежде всего на высокоточную работу на GPU, а структуры DAMO-YOLO, полученные с помощью NAS, предназначены для агрессивного снижения задержки при работе на CPU и периферийных устройствах.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Как показывают метрики, DAMO-YOLO предлагает очень компактные варианты (например, модель tiny всего с 8,5 млн параметров), тогда как YOLOv7 достигает более высокой максимальной точности: YOLOv7x показывает впечатляющие 53,1 mAP на наборе данных COCO.
Преимущества экосистемы Ultralytics#
Теоретические особенности архитектуры важны, но практическая ценность модели определяется её экосистемой. Встроенные модели Ultralytics, например YOLO26, отличаются хорошо поддерживаемой экосистемой и непревзойдённой простотой использования.
- Баланс производительности: модели Ultralytics стабильно обеспечивают оптимальный компромисс между скоростью вывода и точностью обнаружения, поэтому подходят как для периферийных устройств, так и для развёртывания моделей в облаке.
- Требования к памяти: в отличие от более крупных моделей на основе Transformer, моделям Ultralytics YOLO требуется мало памяти CUDA при обучении. Это позволяет использовать более крупные размеры пакетов и ускоряет обучение даже на потребительском оборудовании.
- Универсальность: фреймворк Ultralytics поддерживает не только обнаружение объектов, но и такие задачи, как сегментация экземпляров и оценка позы, предоставляя разработчикам полный инструментарий для компьютерного зрения.
Пакет Ultralytics позволяет всего за несколько минут пройти путь от набора данных до полностью обученной модели благодаря высокооптимизированным загрузчикам данных и предварительно обученным весам.
Пример кода: запуск YOLOv7 с Ultralytics#
После преобразования экспорта YOLOv7 в ONNX из исходного репозитория, как описано в примерах использования YOLOv7, ты можешь запустить модель с помощью Python API Ultralytics.
from ultralytics import YOLO
# Загрузи модель YOLOv7 ONNX, преобразованную для Ultralytics
model = YOLO("yolov7-ultralytics.onnx", task="detect")
# Выполнить инференс
predictions = model.predict("https://ultralytics.com/images/bus.jpg", save=True)Новый стандарт: представляем YOLO26#
В 2022 году YOLOv7 и DAMO-YOLO стали важными прорывами, но область компьютерного зрения быстро развивается. Для команд, начинающих новые проекты сегодня, рекомендуем передовую модель Ultralytics YOLO26, выпущенную в январе 2026 года.
YOLO26 обеспечивает скачок производительности и удобства на целое поколение вперёд благодаря передовым инновациям:
- Сквозная архитектура без NMS: в YOLO26 предусмотрена встроенная сквозная голова (
nms=False). Устранение постобработки с подавлением немаксимумов (NMS) упрощает логику развёртывания и ускоряет её работу. Этот новый подход впервые представила YOLOv10. - Оптимизатор MuSGD: вдохновлённая такими инновациями в области больших языковых моделей, как Kimi K2 от Moonshot AI, YOLO26 использует гибрид SGD и Muon. Этот оптимизатор обеспечивает высокую стабильность процесса обучения и значительно ускоряет сходимость.
- Вывод на CPU до 43% быстрее: благодаря целевому отказу от Distribution Focal Loss (DFL) и значительным структурным улучшениям YOLO26 отлично оптимизирована для периферийных вычислений с низким энергопотреблением и превосходит предыдущие поколения на оборудовании без GPU.
- ProgLoss + STAL: новые продвинутые функции потерь специально разработаны для улучшения распознавания мелких объектов — важной возможности для аэрофотосъёмки, робототехники и систем видеонаблюдения.
- Улучшения для конкретных задач: помимо стандартного обнаружения, YOLO26 включает специальные усовершенствования для различных задач, в том числе многомасштабное прототипирование для сегментации, RLE для оценки позы и специальные функции потерь для углов при работе с ориентированными ограничивающими рамками (OBB).
Оптимальные сценарии применения#
Выбор подходящей архитектуры полностью зависит от целевой среды развёртывания и ограничений проекта.
Когда стоит выбрать DAMO-YOLO:
- Ты работаешь в крайне ограниченных периферийных средах с дефицитом ресурсов, где необходимо свести число параметров к минимуму (например, на микроконтроллерах).
- Ты используешь конвейеры автоматизированного машинного обучения, специально интегрированные с проприетарными облачными сервисами Alibaba.
Когда стоит выбрать YOLOv7:
- У тебя уже есть устаревшие конвейеры на GPU, оптимизированные для анкерного высокоточного вывода.
- Ты работаешь в средах, где критически важна точность в реальном времени, например в высокоскоростных автономных транспортных средствах или передовых робототехнических системах.
Когда выбирать YOLO26 (рекомендуется):
- Ты создаёшь новое приложение для компьютерного зрения с нуля и тебе нужны передовые решения как по точности, так и по скорости инференса на CPU и периферийных устройствах.
- Тебе нужно быстрое и бесшовное развёртывание, например экспорт в CoreML или TensorRT, без ограничений, связанных с операторами NMS.
- Ты хочешь использовать все возможности платформы Ultralytics для обучения в облаке, управления наборами данных и автоматического развёртывания.
Используя надёжную экосистему моделей Ultralytics, разработчики могут значительно сократить время на разработку и при этом обеспечить высочайшее качество прогнозов в реальных приложениях.