YOLOv7 и DAMO-YOLO#
Ландшафт обнаружения объектов в реальном времени постоянно развивается: исследователи и инженеры стремятся найти оптимальный баланс между скоростью и точностью. В этом техническом сравнении мы подробно рассмотрим две известные архитектуры 2022 года: YOLOv7 и DAMO-YOLO. Обе модели представили новые концепции сообществу компьютерного зрения, решая разные задачи обучения моделей, проектирования архитектуры и развертывания.
Предпосылки и технические детали моделей#
Прежде чем перейти к их архитектурам, важно понять происхождение этих двух моделей. Обе были разработаны ведущими исследовательскими группами и внедрили передовые методы, расширяющие возможности обнаружения объектов в реальном времени.
Сведения о YOLOv7#
Разработанная как продолжение семейства YOLO, YOLOv7 представила концепцию обучаемого «набора бесплатных улучшений», позволяющую значительно повысить точность без увеличения стоимости инференса.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информационных наук, Academia Sinica, Тайвань
- Дата: 2022-07-06
- Arxiv: https://arxiv.org/abs/2207.02696
- GitHub: https://github.com/WongKinYiu/yolov7
- Документация: https://docs.ultralytics.com/models/yolov7
Подробности о DAMO-YOLO#
Созданная исследователями Alibaba Group, DAMO-YOLO уделяет большое внимание поиску нейронной архитектуры (NAS) и продвинутой дистилляции знаний для создания высокоэффективных моделей под различные аппаратные платформы.
- Авторы: Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang и Xiuyu Sun
- Организация: 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 от дистилляции означает, что обучение новой модели с нуля или дообучение на пользовательском датасете компьютерного зрения часто требует значительно больше VRAM и времени вычислений на GPU.
Напротив, модели, интегрированные в экосистему Ultralytics, такие как YOLOv7 и более поздние версии, тщательно оптимизированы с учетом требований к памяти. Они позволяют разработчикам использовать большие размеры батчей на потребительском оборудовании без ошибок нехватки памяти, упрощая отслеживание экспериментов и процесс итераций.
Преимущества Ultralytics#
Хотя и YOLOv7, и DAMO-YOLO предлагают привлекательные возможности, развертывание моделей в экосистеме Ultralytics обеспечивает непревзойденный опыт разработки.
- Простота использования: пакет Ultralytics для Python предоставляет единый простой API. Ты можешь быстро переключаться между архитектурами моделей, запускать циклы обучения или выполнять инференс всего несколькими строками кода.
- Экосистема с активной поддержкой: Ultralytics регулярно выпускает обновления, обеспечивая нативную совместимость с последними версиями PyTorch и драйверами CUDA. Также упрощается экспорт моделей в такие форматы, как ONNX, TensorRT и OpenVINO.
- Универсальность: в отличие от DAMO-YOLO, которая предназначена исключительно для обнаружения объектов, экосистема Ultralytics изначально поддерживает различные задачи. Модели семейства Ultralytics могут выполнять стандартное обнаружение объектов в ограничивающих рамках, оценку позы, сегментацию экземпляров и работу с ориентированными ограничивающими рамками (OBB).
Пример кода: быстрый старт#
Вот как просто загружать, обучать модели Ultralytics и выполнять с их помощью инференс:
from ultralytics import YOLO
# Load a pre-trained YOLOv7 model (or newer models like yolo26n.pt)
model = YOLO("yolov7.pt")
# Train the model on the COCO8 dataset with automated hyperparameter handling
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on an image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX format for deployment
model.export(format="onnx")С Ultralytics экспорт обученных весов в различные форматы с аппаратным ускорением, такие как TensorRT или CoreML, выполняется с помощью одного аргумента в команде экспорта, что позволяет сэкономить часы на настройке сложных скриптов.
Следующее поколение: YOLO26#
Хотя YOLOv7 остается сильной устаревшей архитектурой, эта область быстро развивается. Для новых развертываний рекомендуется использовать Ultralytics YOLO26, выпущенную в январе 2026 года: она превосходит предыдущие поколения почти по всем метрикам.
- Сквозная конструкция без NMS: впервые представленная в YOLOv10, YOLO26 изначально устраняет постобработку с подавлением немаксимумов (NMS). Это обеспечивает детерминированный инференс со сверхнизкой задержкой, критически важный для робототехники и технологий беспилотного вождения.
- Оптимизатор MuSGD: вдохновленный передовыми методами обучения LLM, такими как Kimi K2 от Moonshot AI, этот гибридный оптимизатор объединяет SGD и Muon, обеспечивая стабильное обучение и более быструю сходимость на различных датасетах.
- До 43% более быстрый инференс на CPU: благодаря целенаправленному удалению Distribution Focal Loss (DFL) YOLO26 значительно повышает производительность на периферийных вычислительных платформах и CPU.
- ProgLoss + STAL: эти продвинутые функции потерь существенно повышают качество обнаружения небольших объектов, благодаря чему YOLO26 особенно хорошо подходит для аэрофотосъемки и детализированного видеонаблюдения.
Идеальные сценарии использования#
Когда стоит выбрать DAMO-YOLO#
- Академические исследования в области NAS: если твоя организация активно занимается изучением методологий поиска нейронной архитектуры.
- Жесткие ограничения по задержке на конкретном оборудовании: если у тебя есть ресурсы для выполнения исчерпывающего поиска NAS с целью подбора бэкбона для специализированного чипа AI-ускорителя.
Когда выбирать YOLOv7#
- Существующие GPU-конвейеры: для команд, поддерживающих устаревшие производственные конвейеры, глубоко оптимизированные под конкретную архитектуру E-ELAN YOLOv7 на высокопроизводительном оборудовании NVIDIA.
Зачем переходить на современные модели Ultralytics (YOLO11 / YOLO26)#
Для подавляющего большинства корпоративных приложений — от аналитики розничной торговли и умного производства до здравоохранения — современные модели Ultralytics не имеют равных. Интеграция с платформой Ultralytics предоставляет полный ML-конвейер, сочетая простоту использования, превосходную документацию, надежную поддержку сообщества и универсальность для разных задач. Будь то отслеживание запасов на Raspberry Pi или выполнение сложной аналитики в облаке, такие модели, как YOLO26, предлагают оптимальный баланс производительности для будущего компьютерного зрения.