YOLOv7 и DAMO-YOLO#
Сфера обнаружения объектов в реальном времени постоянно развивается: исследователи и инженеры ищут оптимальный баланс между скоростью и точностью. В этом техническом сравнении мы подробно рассмотрим две примечательные архитектуры 2022 года: YOLOv7 и DAMO-YOLO. Обе модели предложили сообществу компьютерного зрения новые концепции и решали разные задачи обучения моделей, проектирования архитектур и развёртывания.
Предыстория моделей и технические подробности#
Прежде чем разбирать архитектуры, важно понять происхождение этих моделей. Обе разработаны ведущими исследовательскими группами и представили передовые методы, расширяющие возможности обнаружения объектов в реальном времени.
Сведения о YOLOv7#
Созданная как продолжение семейства YOLO, YOLOv7 представила концепцию обучаемого «набора бесплатных улучшений» (bag-of-freebies), значительно повышающего точность без увеличения затрат на инференс.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информатики, Академия Синика, Тайвань
- Дата: 2022-07-06
- Arxiv: https://arxiv.org/abs/2207.02696
- GitHub: https://github.com/WongKinYiu/yolov7
- Документация: https://docs.ultralytics.com/models/yolov7
Подробнее о DAMO-YOLO#
DAMO-YOLO, созданная исследователями Alibaba Group, активно использует поиск нейронной архитектуры (NAS) и продвинутую дистилляцию знаний для построения высокоэффективных моделей под разное оборудование.
- Авторы: Сяньчжэ Сюй, Ици Цзян, Вэйхуа Чэнь, Илуне Хуан, Юань Чжан и Сюйюй Сунь
- Организация: Alibaba Group
- Дата: 2022-11-23
- Arxiv: https://arxiv.org/abs/2211.15444v2
- GitHub: https://github.com/tinyvision/DAMO-YOLO
Архитектурные инновации#
YOLOv7: анализ градиентных путей и репараметризация#
YOLOv7 активно использует расширенные сети эффективной агрегации слоёв (E-ELAN). Авторы разработали E-ELAN, проанализировав градиентные пути сети, чтобы сеть могла непрерывно обучаться без ухудшения исходного градиентного пути. Кроме того, YOLOv7 эффективно применяет репараметризацию модели во время инференса, объединяя слои для сокращения FLOPs и ускорения выполнения. Благодаря этому модель отлично подходит для инференса в реальном времени на современных GPU.
DAMO-YOLO: поиск нейронной архитектуры и RepGFPN#
DAMO-YOLO отличается тем, что активно использует поиск нейронной архитектуры (NAS) с учётом ограничений по задержке. Фреймворк MAE-NAS позволяет находить оптимальные бэкбоны для конкретного оборудования, например мобильных устройств или определённых периферийных ускорителей. Для шеи модели используется эффективная RepGFPN (обобщённая пирамидальная сеть признаков с репараметризацией), а архитектура ZeroHead снижает вычислительную нагрузку на предсказательные головы.
YOLOv7 полагается на мощные встроенные архитектурные оптимизации, тогда как DAMO-YOLO в значительной мере зависит от сложного многоэтапного процесса дистилляции знаний. Для переноса знаний в компактную ученическую модель необходимо обучить крупную учительскую модель, что может требовать значительных вычислительных ресурсов на этапе обучения.
Сравнение производительности и метрик#
При сравнении этих моделей важно учитывать mAP (среднюю точность), скорость инференса и сложность модели.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Как видно из таблицы выше, YOLOv7 хорошо масштабируется для задач, требующих высокой точности (YOLOv7x), а DAMO-YOLO предлагает хорошо оптимизированные компактные модели для сред с ограниченными ресурсами.
Эффективность обучения и требования к памяти#
Существенное различие между архитектурами заключается в методах обучения. Поскольку DAMO-YOLO опирается на дистилляцию, обучение новой модели с нуля или дообучение на пользовательском наборе данных для компьютерного зрения часто требует значительно больше видеопамяти и времени на вычисления GPU.
В отличие от них, модели с нативной поддержкой в экосистеме Ultralytics, например YOLOv8 и более поздние версии, хорошо оптимизированы с учётом требований к памяти. Разработчики могут использовать более крупные размеры пакетов на обычном пользовательском оборудовании без ошибок нехватки памяти, что упрощает отслеживание экспериментов и итеративную разработку.
Преимущества Ultralytics#
И YOLOv7, и DAMO-YOLO предлагают привлекательные возможности, но развёртывание моделей в экосистеме Ultralytics обеспечивает непревзойдённые удобство и опыт разработки.
- Простота использования: пакет Ultralytics Python предлагает унифицированный и простой API. Ты можешь быстро переключаться между архитектурами моделей, запускать циклы обучения или выполнять инференс всего несколькими строками кода.
- Хорошо поддерживаемая экосистема: Ultralytics часто выпускает обновления, обеспечивая нативную совместимость с новейшими версиями PyTorch и драйверами CUDA. Кроме того, экспорт моделей в такие форматы, как ONNX, TensorRT и OpenVINO, становится проще.
- Универсальность: в отличие от DAMO-YOLO, предназначенной только для обнаружения объектов, экосистема Ultralytics изначально поддерживает широкий спектр задач. Модели семейства Ultralytics решают задачи стандартного обнаружения объектов с помощью ограничивающих рамок, оценки позы, сегментации экземпляров и ориентированных ограничивающих рамок (OBB).
Пример кода: быстрый старт#
Вот как легко загружать и обучать модели Ultralytics, а также запускать инференс:
from ultralytics import YOLO
# Загрузи предварительно обученную модель YOLO26 (Ultralytics не поддерживает нативные веса YOLOv7)
model = YOLO("yolo26n.pt")
# Обучи модель на наборе данных COCO8 с автоматической настройкой гиперпараметров
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Запустить инференс на изображении
predictions = model("https://ultralytics.com/images/bus.jpg")
# Экспортируем в формат ONNX для развертывания
model.export(format="onnx")В Ultralytics экспорт обученных весов в различные форматы с аппаратным ускорением, например TensorRT или CoreML, выполняется с помощью одного аргумента команды экспорта, что экономит часы, которые иначе ушли бы на настройку сложных скриптов.
Следующее поколение: YOLO26#
YOLOv7 остаётся мощной устаревшей архитектурой, но область быстро развивается. Для новых развёртываний рекомендуется Ultralytics YOLO26, выпущенная в январе 2026 года: по почти всем метрикам она превосходит предыдущие поколения.
- Сквозная архитектура без NMS: впервые реализованная в YOLOv10, необязательная голова one-to-one в YOLO26 (
nms=False) устраняет этап постобработки Non-Maximum Suppression (NMS). Это обеспечивает детерминированный инференс с крайне низкой задержкой, необходимый для робототехники и технологий беспилотного вождения. - Оптимизатор MuSGD: этот гибридный оптимизатор, вдохновлённый передовыми методами обучения LLM, такими как Kimi K2 от Moonshot AI, сочетает SGD и Muon, обеспечивая стабильное обучение и быструю сходимость на разных наборах данных.
- Инференс на CPU до 43% быстрее: благодаря целенаправленному удалению Distribution Focal Loss (DFL) YOLO26 значительно повышает производительность на периферийных вычислительных платформах и CPU.
- ProgLoss + STAL: эти продвинутые функции потерь существенно повышают точность обнаружения мелких объектов, благодаря чему YOLO26 особенно хорошо подходит для аэрофотосъёмки и детализированного видеонаблюдения.
Оптимальные сценарии применения#
Когда стоит выбрать DAMO-YOLO#
- Академические исследования NAS: если твоя организация активно изучает методы поиска нейронной архитектуры.
- Крайне жёсткие ограничения по задержке на конкретном оборудовании: если у тебя есть ресурсы для исчерпывающего поиска NAS, чтобы подобрать бэкбон для специализированного ускорителя ИИ.
Когда выбирать YOLOv7#
- Существующие конвейеры на GPU: для команд, которые поддерживают устаревшие производственные конвейеры, глубоко оптимизированные под конкретную архитектуру E-ELAN YOLOv7 на мощном оборудовании NVIDIA.
Зачем переходить на современные модели Ultralytics (YOLO11 / YOLO26)#
Для подавляющего большинства корпоративных приложений — от аналитики розничной торговли и умного производства до здравоохранения — современные модели Ultralytics не имеют равных. Интеграция с платформой Ultralytics обеспечивает полный конвейер машинного обучения: простоту использования, качественную документацию, надёжную поддержку сообщества и универсальность для решения множества задач. Модели вроде YOLO26 обеспечивают оптимальный баланс производительности для будущего компьютерного зрения — будь то учёт запасов на Raspberry Pi или сложная аналитика в облаке.