YOLOv7 и YOLOv9#
Сфера детекции объектов в реальном времени стремительно развивается: каждая новая версия расширяет возможности периферийных устройств и облачных серверов. Выбирая архитектуру для проектов компьютерного зрения, разработчики часто сравнивают проверенные бенчмарки с новыми решениями. В этом подробном руководстве сравниваются две важные вехи семейства YOLO: YOLOv7 и YOLOv9.
Мы проанализируем архитектурные нововведения, метрики производительности и оптимальные сценарии развертывания, чтобы помочь тебе выбрать подходящую модель для своего приложения. Также мы рассмотрим, как платформа Ultralytics и Python API упрощают обучение, валидацию и развертывание поддерживаемых моделей, например YOLOv9.
Происхождение моделей и технические характеристики#
Понимание истории и принципов проектирования этих моделей помогает лучше оценить их возможности. Обе модели имеют общие исследовательские корни, но решают разные архитектурные проблемы.
YOLOv7: первопроходец среди моделей с бесплатными улучшениями#
Выпущенная в середине 2022 года, YOLOv7 зарекомендовала себя как надёжная и хорошо оптимизированная архитектура. В ней появились структурная перепараметризация и подход «обучаемого набора бесплатных улучшений», позволяющие сохранять высокую скорость инференса без ущерба для средней точности (mAP).
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информатики, Академия Синика, Тайвань
- Дата: 6 июля 2022 года
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Архитектурные нововведения: YOLOv7 использует Extended Efficient Layer Aggregation Network (E-ELAN), которая позволяет модели изучать более разнообразные признаки за счёт расширения, перемешивания и объединения кардинальности. Такая архитектура обеспечивает отличную загрузку GPU и низкую задержку инференса. Однако по сравнению с современными версиями для сложных запусков обучения ей может потребоваться значительно больше памяти.
YOLOv9: решение проблемы информационного узкого места#
Представленная в начале 2024 года той же исследовательской командой YOLOv9 решает проблему «информационного узкого места», присущую глубоким нейронным сетям. При прохождении данных через глубокие слои часто теряются важные детали. YOLOv9 устраняет эту проблему с помощью принципиально новых конструкций слоёв.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информатики, Академия Синика, Тайвань
- Дата: 21 февраля 2024 года
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Архитектурные нововведения: в YOLOv9 появились Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). PGI обеспечивает сохранение надёжных градиентов и их передачу обратно для точного обновления весов. GELAN повышает эффективность использования параметров, позволяя YOLOv9 достигать высокой точности при значительно меньшем количестве FLOPs, чем у предыдущих моделей.
Анализ производительности#
Выбирая между архитектурами, инженерам по ИИ необходимо учитывать компромисс между точностью, скоростью инференса и вычислительными затратами. В таблице ниже сравнивается производительность этих моделей на стандартном датасете COCO.
| Модель | размер (пиксели) | 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 |
| 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 |
Основные выводы#
- Эффективность использования параметров: YOLOv9m достигает той же точности, что и YOLOv7l (51,4% mAP), используя примерно на 45% меньше параметров (20,1M против 36,9M). Благодаря этому значительному сокращению YOLOv9m гораздо проще развернуть на периферийных устройствах ИИ с ограниченной памятью.
- Микроразвертывания: появление варианта YOLOv9t (tiny) обеспечивает впечатляющую скорость (2,3ms на T4 TensorRT) для сред, где требования к работе в реальном времени особенно строгие.
- Максимальная точность: в приложениях, где точность важнее всего, YOLOv9e повышает точность детекции до 55,6% mAP, значительно превосходя YOLOv7x.
Хотя YOLOv7 и YOLOv9 обладают широкими возможностями, недавно выпущенная YOLO26 — это решительный шаг вперёд. YOLO26 представляет собой встроенную сквозную архитектуру без NMS (опционально включается через nms=False), которая позволяет отказаться от сложной постобработки и обеспечивает ускорение инференса на CPU до 43%. Благодаря новому оптимизатору MuSGD и улучшенным функциям потерь ProgLoss + STAL YOLO26 обеспечивает непревзойдённую стабильность обучения и точность обнаружения мелких объектов.
Преимущества Ultralytics#
Выбор архитектуры модели — это лишь первый шаг. Скорость перехода от прототипа к производственной среде зависит от программной экосистемы, окружающей модель. Интеграция поддерживаемых моделей, например YOLOv9, через Python API Ultralytics даёт разработчикам и исследователям значительные преимущества.
Удобство использования и эффективность обучения#
Раньше обучение YOLOv7 требовало сложной подготовки данных и глубоко кастомизированных скриптов. Фреймворк Ultralytics избавляет от этих сложностей глубокого обучения. Разработчики могут легко переключаться между архитектурами, экспериментировать с настройкой гиперпараметров и использовать интеллектуальные конвейеры аугментации данных, написав минимум кода.
Кроме того, Ultralytics оптимизирует использование памяти во время обучения и инференса. В отличие от тяжёлых моделей Transformer, таких как RT-DETR, архитектуры Ultralytics YOLO обучаются значительно быстрее и требуют гораздо меньше памяти CUDA, что делает их идеальным выбором для потребительских GPU.
Пример кода: упрощенное обучение#
Обучение современных моделей в экосистеме Ultralytics проходит без проблем. Вот полностью готовый к запуску пример обучения и валидации модели YOLOv9:
from ultralytics import YOLO
# Инициализация модели (можно заменить 'yolov9c.pt' на 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Обучение модели на примере набора данных COCO8
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Использование GPU 0, если он доступен
batch=16, # Оптимизированный размер пакета для эффективного использования памяти
)
# Проверка производительности модели на валидационной выборке
metrics = model.val()
# Экспортируй обученную модель в формат ONNX для развёртывания
model.export(format="onnx")Непревзойдённая универсальность для разных задач#
Хорошо поддерживаемая экосистема открывает доступ к разнообразным задачам компьютерного зрения. YOLOv7 изначально создавалась в первую очередь для обнаружения объектов (позже появились экспериментальные форки для других задач), а современные модели Ultralytics изначально рассчитаны на универсальное применение. Сразу после установки можно выполнять сегментацию экземпляров, оценку позы, классификацию изображений и обнаружение ориентированных ограничивающих рамок (OBB).
Оптимальные сценарии применения#
Выбор между YOLOv7 и YOLOv9 часто зависит от конкретных отраслевых ограничений и доступного оборудования.
Когда использовать YOLOv7#
- Устаревшие периферийные системы: Если аппаратная среда уже тщательно настроена и оптимизирована для архитектуры E-ELAN в YOLOv7, эта модель остаётся надёжным решением для промышленного IoT.
- Мониторинг дорожного движения: Высокая частота кадров и проверенная стабильность YOLOv7 делают её отличным выбором для инфраструктуры умных городов и управления дорожным движением в реальном времени.
- Интеграция в робототехнические системы: Для навигации в динамической среде нужна обработка с низкой задержкой — в таких сценариях варианты YOLOv7 прошли обширное тестирование.
Когда стоит использовать YOLOv9#
- Медицинская визуализация: Архитектура PGI в YOLOv9 отлично сохраняет мелкие детали при прохождении через глубокие слои. Это критически важно для сложных задач анализа медицинских изображений, например обнаружения опухолей.
- Аналитика розничной торговли: Для отслеживания и подсчёта плотно расположенных товаров на полках интеграция признаков в YOLOv9 обеспечивает более высокую точность и сокращает число ложноотрицательных результатов.
- Аэрофотосъёмка и изображения с дронов: Благодаря эффективному использованию параметров YOLOv9m позволяет обрабатывать изображения высокого разрешения на дронах, помогая в охране дикой природы и мониторинге сельскохозяйственных угодий без быстрого разряда батареи.
Заключение#
И YOLOv7, и YOLOv9 прочно вошли в историю компьютерного зрения. YOLOv7 предложила важные оптимизации для обработки в реальном времени, а YOLOv9 устранила структурные узкие места глубокого обучения, повысив эффективность использования параметров.
Однако разработчикам, которые начинают новые проекты сегодня, экосистема Ultralytics и особенно модели нового поколения, такие как YOLO11 и недавно выпущенная YOLO26, предлагают наиболее выгодный баланс скорости, точности и удобства разработки. Благодаря таким инновациям, как оптимизатор MuSGD и отказ от Distribution Focal Loss (DFL) для обеспечения совместимости с более широким спектром оборудования, Ultralytics продолжает предоставлять самые доступные и мощные инструменты для специалистов по компьютерному зрению и ИИ.