DAMO-YOLO против YOLOv7#
Стремительное развитие компьютерного зрения привело к появлению высокоэффективных моделей обнаружения объектов, разработанных для баланса между точностью и вычислительными затратами. Две заметные модели, представленные в 2022 году, — DAMO-YOLO и YOLOv7. Хотя обе стремятся расширить возможности задач компьютерного зрения в реальном времени, они достигают результатов с помощью принципиально разных архитектурных подходов и методик обучения.
В этом подробном техническом сравнении рассматриваются различные подходы обеих моделей, их архитектуры, потенциал развертывания и показатели производительности, чтобы помочь инженерам по машинному обучению выбрать подходящий инструмент для конкретных приложений компьютерного зрения.
Происхождение моделей и метаданные#
Прежде чем перейти к подробному техническому анализу, важно рассмотреть происхождение этих двух моделей компьютерного зрения.
DAMO-YOLO#
DAMO-YOLO, разработанная исследователями Alibaba Group, была представлена для оптимизации скорости и точности с помощью автоматизированного поиска архитектуры и дистилляции.
- Авторы: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang и Xiuyu Sun
- Организация: Alibaba Group
- Дата: 23 ноября 2022 года
- Arxiv: 2211.15444v2
- GitHub: tinyvision/DAMO-YOLO
YOLOv7#
Представленная в качестве передовой модели в середине 2022 года, YOLOv7 еще больше расширила возможности вывода в реальном времени, внедрив обучаемые «bag-of-freebies» без увеличения затрат на развертывание.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информационных наук, Academia Sinica, Тайвань
- Дата: 6 июля 2022 года
- Arxiv: 2207.02696
- Документация: Документация YOLOv7
YOLOv7 официально поддерживается в экосистеме Ultralytics, обеспечивая удобное обучение, валидацию и экспорт через единый API.
Архитектурные инновации#
DAMO-YOLO: NAS и дистилляция#
DAMO-YOLO включает несколько передовых методов, ориентированных на максимальную эффективность:
- Бэкбоны NAS: использует поиск нейронных архитектур (NAS) для автоматического проектирования оптимальных бэкбонов (MAE-NAS), адаптированных для сред с критическими требованиями к задержке.
- Эффективная RepGFPN: модифицированная обобщенная сеть пирамиды признаков, значительно повышающая эффективность объединения признаков на нескольких масштабах.
- ZeroHead и AlignedOTA: включает легковесную голову обнаружения и оптимизированную стратегию назначения меток (AlignedOTA) для снижения вычислительных затрат.
- Улучшение с помощью дистилляции: активно использует дистилляцию знаний во время обучения для повышения производительности небольших вариантов моделей без увеличения количества параметров.
YOLOv7: E-ELAN и Bag-of-Freebies#
YOLOv7 использует более структурный инженерный подход, сосредоточенный на оптимизации путей градиента и надежных стратегиях обучения.
- Архитектура E-ELAN: расширенная эффективная сеть агрегации слоев позволяет модели изучать более разнообразные признаки за счет управления самыми короткими и длинными путями градиента, обеспечивая эффективную сходимость обучения.
- Масштабирование модели: вводит составной метод масштабирования для моделей на основе конкатенации, одновременно увеличивая глубину и ширину для структурного согласования.
- Обучаемый Bag-of-Freebies: использует такие методы, как перепараметризованные свертки (RepConv) без identity-соединений и динамические стратегии назначения меток, которые повышают точность во время обучения, не влияя на скорость вывода.
Анализ производительности#
При оценке средней точности (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, такие как YOLOv7, получают преимущества от хорошо сопровождаемой экосистемы и непревзойденной простоты использования.
- Баланс производительности: модели Ultralytics стабильно обеспечивают оптимальный компромисс между скоростью вывода и точностью обнаружения, что делает их идеальными как для периферийных устройств, так и для облачного развертывания моделей.
- Требования к памяти: в отличие от более тяжелых моделей на основе Transformer, модели Ultralytics YOLO требуют мало памяти CUDA во время обучения. Это позволяет использовать большие размеры пакетов, ускоряя процесс обучения даже на оборудовании потребительского класса.
- Универсальность: фреймворк Ultralytics выходит за рамки обнаружения объектов и поддерживает такие задачи, как сегментация экземпляров и оценка позы, предоставляя разработчикам полный набор инструментов для компьютерного зрения.
Пакет Ultralytics позволяет всего за несколько минут перейти от наборов данных к полностью обученной модели благодаря высокооптимизированным загрузчикам данных и предварительно обученным весам.
Пример кода: обучение YOLOv7 с помощью Ultralytics#
Интегрировать YOLOv7 в конвейер компьютерного зрения чрезвычайно просто с помощью Python API Ultralytics.
from ultralytics import YOLO
# Load a pre-trained YOLOv7 model
model = YOLO("yolov7.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference and validate results
metrics = model.val()
predictions = model.predict("https://ultralytics.com/images/bus.jpg", save=True)Новый стандарт: знакомство с YOLO26#
Хотя YOLOv7 и DAMO-YOLO стали значительными прорывами в 2022 году, область ИИ для компьютерного зрения развивается стремительно. Для команд, начинающих новые проекты сегодня, рекомендуемой моделью является передовая Ultralytics YOLO26, выпущенная в январе 2026 года.
YOLO26 обеспечивает скачок производительности и удобства использования, сопоставимый с переходом на новое поколение, благодаря передовым инновациям:
- Сквозной дизайн без NMS: YOLO26 изначально работает сквозным образом. Отказ от постобработки с подавлением немаксимумов (NMS) обеспечивает более быстрое и простое развертывание — это смена парадигмы, впервые предложенная в YOLOv10.
- Оптимизатор MuSGD: вдохновленный инновациями в области больших языковых моделей, такими как Kimi K2 от Moonshot AI, YOLO26 использует комбинацию SGD и Muon. Этот оптимизатор обеспечивает исключительно стабильную динамику обучения и значительно ускоряет сходимость.
- До 43% более быстрый вывод на CPU: благодаря целенаправленному удалению Distribution Focal Loss (DFL) и значительным структурным улучшениям YOLO26 тщательно оптимизирована для маломощных периферийных вычислений и превосходит предыдущие поколения на оборудовании без GPU.
- ProgLoss + STAL: включает новые продвинутые функции потерь, специально предназначенные для улучшения распознавания небольших объектов — важнейшей возможности для приложений с аэрофотосъемкой, робототехникой и мониторингом безопасности.
- Улучшения для конкретных задач: помимо стандартного обнаружения, YOLO26 предлагает специализированные улучшения для различных задач, включая мультимасштабное прототипирование для сегментации, RLE для оценки позы и специальные функции потерь угла для ориентированных ограничивающих рамок (OBB).
Идеальные сценарии использования#
Выбор подходящей архитектуры полностью зависит от целевой среды развертывания и ограничений проекта.
Когда стоит выбрать DAMO-YOLO:
- Ты работаешь в жестко ограниченной периферийной среде с дефицитом ресурсов, где количество параметров необходимо свести к минимуму, например на микроконтроллерах.
- Ты используешь конвейеры автоматизированного машинного обучения, специально интегрированные с проприетарными облачными сервисами Alibaba.
Когда стоит выбрать YOLOv7:
- У тебя уже есть устаревшие конвейеры на GPU, оптимизированные для высокоточного вывода на основе anchor-боксов.
- Ты работаешь в средах, где точность в реальном времени имеет первостепенное значение, например в высокоскоростных автономных транспортных средствах или передовой робототехнике.
Когда стоит выбрать YOLO26 (рекомендуется):
- Ты создаешь новое приложение компьютерного зрения с нуля и нуждаешься в самой передовой технологии как по точности, так и по скорости вывода на CPU и периферийных устройствах.
- Тебе необходимо быстрое и удобное развертывание, например экспорт в CoreML или TensorRT, без ограничений операторов NMS.
- Ты хочешь использовать все возможности платформы Ultralytics для облачного обучения, управления наборами данных и автоматизированного развертывания.
Используя надежную экосистему моделей Ultralytics, разработчики могут значительно сократить время разработки и одновременно обеспечить высочайшую прогнозную производительность для реальных приложений.