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), а YOLO26 также добавляет семантическую сегментацию и оценку глубины.
Пример кода: быстрый старт#
Вот как загрузить модели 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 года и превосходящая предыдущие поколения по точности и скорости на CPU.
- Сквозная архитектура без NMS: Опираясь на обучение без NMS, которое YOLOv10 внедрила в модели YOLO, дополнительная голова one-to-one в YOLO26 (
nms=False) пропускает постобработку с подавлением немаксимумов (NMS). Это снижает колебания задержки и упрощает развёртывание в робототехнике и системах автономного вождения. - Оптимизатор MuSGD: Этот гибридный оптимизатор, вдохновленный передовыми методами обучения LLM, такими как Kimi K2 от Moonshot AI, объединяет SGD и Muon для более стабильного обучения и быстрой сходимости.
- Инференс на CPU до 43% быстрее: Удаление Distribution Focal Loss (DFL) упрощает экспорт YOLO26 и ускоряет инференс на периферийных устройствах и CPU; YOLO26n работает на CPU до 43% быстрее, чем YOLO11n.
- ProgLoss + STAL: Прогрессивная функция потерь и стратегия назначения меток с учетом малых объектов улучшают обнаружение небольших объектов. Поэтому YOLO26 хорошо подходит для работы с аэрофотоснимками и детализированного видеонаблюдения.
Оптимальные сценарии применения#
Когда стоит выбрать DAMO-YOLO#
- Академические исследования NAS: если твоя организация активно изучает методы поиска нейронной архитектуры.
- Крайне жёсткие ограничения по задержке на конкретном оборудовании: если у тебя есть ресурсы для исчерпывающего поиска NAS, чтобы подобрать бэкбон для специализированного ускорителя ИИ.
Когда выбирать YOLOv7#
- Существующие конвейеры на GPU: для команд, которые поддерживают устаревшие производственные конвейеры, глубоко оптимизированные под конкретную архитектуру E-ELAN YOLOv7 на мощном оборудовании NVIDIA.
Зачем переходить на современные модели Ultralytics (YOLO11 / YOLO26)#
Для подавляющего большинства корпоративных приложений — от аналитики розничной торговли и умного производства до здравоохранения — современные модели Ultralytics являются практичным выбором по умолчанию. Интеграция с Ultralytics Platform обеспечивает полный ML-конвейер с простым API, подробной документацией, активным сообществом и поддержкой множества задач. Будь то учет запасов на Raspberry Pi или масштабная аналитика в облаке, такие модели, как YOLO26, обеспечивают хороший баланс скорости и точности.