YOLOv9 и YOLOv7#
Развитие обнаружения объектов в реальном времени обусловлено постоянным стремлением найти баланс между вычислительной эффективностью и высокой точностью. Важную роль в этом сыграли две архитектуры — YOLOv9 и YOLOv7, разработанные исследователями из Института информационных наук Академии Синика на Тайване. YOLOv7 представила революционные обучаемые «бесплатные улучшения», а более новая YOLOv9 напрямую решает проблему информационных узких мест в глубоком обучении.
В этом подробном техническом сравнении рассматриваются архитектурные различия, показатели производительности и оптимальные сценарии развёртывания обеих моделей, чтобы ML-инженеры и исследователи могли выбрать подходящий инструмент для своих конвейеров компьютерного зрения.
Сравнение производительности и метрик#
При сравнении этих моделей важно учитывать производительность и эффективность. В таблице ниже приведены значения средней точности (mAP) и требования к вычислительным ресурсам для тестирования на стандартном наборе данных COCO.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Обрати внимание: YOLOv9c обеспечивает почти ту же точность (53,0 mAP), что и YOLOv7x (53,1 mAP), используя значительно меньше параметров (25,5 млн против 71,3 млн) и FLOPs. Это показывает, как современные архитектуры улучшили баланс производительности.
YOLOv9: решение проблемы информационного узкого места#
Представленная в начале 2024 года, YOLOv9 коренным образом изменила подход к сохранению данных в слоях глубоких нейронных сетей.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информатики Академии Синика
- Дата: 21 февраля 2024 года
- Материалы: Статья на arXiv | Репозиторий на GitHub
Архитектурные инновации#
YOLOv9 представляет обобщённую эффективную сеть агрегации слоёв (GELAN) и программируемую информацию о градиентах (PGI). GELAN сочетает сильные стороны CSPNet и ELAN, оптимизируя эффективность использования параметров и вычислительные затраты, что обеспечивает высокую точность при меньшем количестве параметров. PGI — это фреймворк вспомогательного обучения, предотвращающий потерю данных в глубоких сетях и формирующий надёжные градиенты для обновления весов во время обучения.
Сильные стороны и ограничения#
Главное преимущество YOLOv9 — способность извлекать малозаметные признаки без чрезмерных вычислительных затрат. Поэтому модель отлично подходит для задач, требующих высокой точности передачи признаков, например для анализа медицинских изображений. Однако сложная структура PGI во время обучения может усложнить для начинающих внесение изменений в архитектуру по сравнению с более унифицированными фреймворками.
YOLOv7: первопроходец среди моделей с бесплатными улучшениями#
Выпущенная в 2022 году, YOLOv7 задала новый ориентир для потребительского оборудования и представила структурные инновации, значительно повысившие скорость инференса в реальном времени.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информатики Академии Синика
- Дата: 6 июля 2022 года
- Материалы: Статья на arXiv | Репозиторий на GitHub
Архитектурные инновации#
Главный вклад YOLOv7 — расширенная эффективная сеть агрегации слоёв (E-ELAN). Эта архитектура позволяет модели постоянно обучаться извлечению более разнообразных признаков. Кроме того, YOLOv7 использует «обучаемые бесплатные улучшения» — например, заранее запланированные перепараметризованные свёртки и динамическое назначение меток. Эти методы повышают точность модели во время обучения, не увеличивая затраты на инференс при развёртывании.
Сильные стороны и ограничения#
YOLOv7 хорошо оптимизирована для обработки данных в реальном времени на периферийных устройствах и по-прежнему широко используется в устаревших системах и старых средах CUDA. Сегодня её основное ограничение — большее количество параметров по сравнению с новыми моделями. Как видно из таблицы производительности, для достижения максимальной точности требуется тяжёлая модель YOLOv7x, которой нужно значительно больше памяти GPU, чем сопоставимым современным архитектурам.
Преимущества Ultralytics: упрощённое развёртывание#
Оригинальные исследовательские репозитории YOLOv9 и YOLOv7 служат отличной академической основой, но развёртывание этих моделей в production-средах может быть сложным. Интеграция YOLOv9 через пакет ultralytics (YOLOv7 поддерживается только через модели, экспортированные в ONNX или TensorRT) обеспечивает непревзойдённую простоту использования.
Используя интегрированную платформу Ultralytics, разработчики получают доступ к хорошо поддерживаемой экосистеме с интуитивно понятным Python API, активным сообществом и надёжным инструментом для отслеживания экспериментов.
Готовность к будущему с YOLO26#
Если ты начинаешь новый проект в области компьютерного зрения, настоятельно рекомендуем рассмотреть недавно выпущенную YOLO26 вместо YOLOv9 и YOLOv7. YOLO26 стала новым отраслевым стандартом и предлагает революционные улучшения:
- Архитектура без NMS от начала до конца: необязательная голова «один к одному» (
nms=False) пропускает этап постобработки с подавлением немаксимумов, значительно упрощая развёртывание и снижая задержку. - Инференс на CPU до 43% быстрее: модель оптимизирована для сред периферийных вычислений, поэтому приложение будет работать плавно даже без выделенных GPU.
- Оптимизатор MuSGD: Гибридный оптимизатор, вдохновлённый обучением LLM, обеспечивает высокую стабильность сходимости и сокращает время обучения.
- Удаление DFL: Упрощает экспорт модели за счёт удаления Distribution Focal Loss, повышая совместимость с маломощными мобильными устройствами.
- ProgLoss + STAL: Значительно повышает качество обнаружения небольших объектов, что делает этот подход оптимальным для аэросъёмки и систем видеонаблюдения.
К другим популярным альтернативам в экосистеме относятся Ultralytics YOLOv8 и YOLO11: обе модели универсальны и подходят для самых разных задач, включая сегментацию экземпляров и оценку позы.
Пример реализации#
Обучать и экспортировать YOLOv9 или YOLO26 очень просто благодаря унифицированному API. Приведённый ниже код демонстрирует характерную для инструментов Ultralytics высокую эффективность обучения.
from ultralytics import YOLO
# Инициализация YOLOv9 или рекомендованной модели YOLO26
model = YOLO("yolov9c.pt") # Замени на «yolo26n.pt» для более высокой производительности на периферийных устройствах
# Обучи модель на собственном наборе данных со встроенной аугментацией данных
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# Экспортируй обученную модель в формат ONNX для развёртывания
model.export(format="onnx")При обучении на оборудовании потребительского класса важна эффективная работа с памятью. Реализации YOLOv9 и YOLO26 от Ultralytics тщательно оптимизированы для уменьшения пикового потребления VRAM. В отличие от них, модели на базе Transformer (например, RT-DETR) часто отличаются чрезмерным ростом потребления памяти во время обучения.
Применение в реальном мире и подходящие сценарии использования#
Выбор между этими архитектурами часто зависит от конкретных ограничений производственной среды.
Когда использовать YOLOv9: YOLOv9 особенно хорошо подходит для задач, где важно сохранять мельчайшие детали. Благодаря надёжному извлечению признаков модель отлично подходит для аналитики в розничной торговле, например для подсчёта товаров, плотно расставленных на полках, а также для сельского хозяйства, где важно выявлять ранние стадии заболеваний растений на небольших листьях.
Когда использовать YOLOv7: YOLOv7 остаётся хорошим выбором для старых конвейеров развёртывания. Если ты интегрируешь модель в устаревшие аппаратные системы (например, в некоторые поколения Google Coral Edge TPU), простую архитектуру CNN в YOLOv7 может быть легче скомпилировать, чем более новые модели.
Когда использовать YOLO26 (рекомендуется): Для любого современного развёртывания — от автономных дронов до управления дорожным движением в умном городе — YOLO26 станет лучшим выбором. Архитектура без NMS обеспечивает предсказуемое время инференса, что критически важно для робототехники, где безопасность имеет первостепенное значение. При этом по точности модель превосходит и YOLOv9, и YOLOv7.