YOLOv9 против YOLOv7: глубокий технический анализ современных методов обнаружения объектов
Эволюция обнаружения объектов в реальном времени подпитывается постоянным стремлением сбалансировать вычислительную эффективность с высокой точностью. Двумя знаковыми архитектурами на этом пути стали YOLOv9 и YOLOv7, обе из которых разработаны исследователями из Института информационных наук Academia Sinica на Тайване. В то время как YOLOv7 представила революционный подход «набора бесплатных инструментов» (trainable bag-of-freebies), более современная YOLOv9 напрямую решает проблему «бутылочного горлышка» информации в глубоком обучении.
Этот всесторонний технический обзор исследует архитектурные различия, метрики производительности и идеальные сценарии развертывания для обеих моделей, помогая ML-инженерам и исследователям выбирать правильный инструмент для своих конвейеров компьютерного зрения.
Сравнение производительности и метрик
При сравнении этих моделей критическими факторами являются «сырая» производительность и эффективность. В следующей таблице подробно описаны средняя точность (mAP) и вычислительные требования для стандартных тестов на наборе данных COCO.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| 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.3M против 71.3M) и операций FLOPs. Это демонстрирует улучшения в балансе производительности современных архитектур.
YOLOv9: решение проблемы информационного «бутылочного горлышка»
Представленная в начале 2024 года, YOLOv9 фундаментально изменила то, как глубокие нейронные сети сохраняют данные на протяжении всех своих слоев.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Institute of Information Science, Academia Sinica
- Дата: 21 февраля 2024 г.
- Ресурсы: Статья на Arxiv | Репозиторий GitHub
Архитектурные инновации
YOLOv9 представляет Generalized Efficient Layer Aggregation Network (GELAN) и Programmable Gradient Information (PGI). GELAN объединяет преимущества CSPNet и ELAN для оптимизации эффективности параметров и вычислительных затрат, обеспечивая высокую точность при меньшем количестве параметров. PGI — это вспомогательная структура контроля, предназначенная для предотвращения потери данных в глубоких сетях, генерирующая надежные градиенты для обновления весов в процессе обучения.
Сильные и слабые стороны
Основная сила YOLOv9 заключается в способности извлекать тонкие детали без огромных вычислительных затрат, что делает ее невероятно эффективной для задач, требующих высокой точности передачи признаков, таких как анализ медицинских изображений. Однако сложная структура PGI во время обучения может сделать пользовательские архитектурные модификации более трудными для новичков по сравнению с более унифицированными фреймворками.
YOLOv7: первопроходец «набора бесплатных инструментов»
Выпущенная в 2022 году, YOLOv7 установила новый стандарт того, что возможно на потребительском оборудовании, представив структурные инновации, которые значительно увеличили скорость инференса в реальном времени.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Institute of Information Science, Academia Sinica
- Дата: 6 июля 2022 г.
- Ресурсы: Статья на Arxiv | Репозиторий GitHub
Архитектурные инновации
Ключевой вклад YOLOv7 — Extended Efficient Layer Aggregation Network (E-ELAN). Эта архитектура позволяет модели постоянно изучать более разнообразные признаки. Кроме того, YOLOv7 использует «обучаемый набор бесплатных инструментов» (trainable bag-of-freebies) — методы, такие как планируемые репараметризованные свертки и динамическое назначение меток. Эти методы повышают точность модели во время обучения, не добавляя затрат на инференс при развертывании.
Сильные и слабые стороны
YOLOv7 высоко оптимизирована для граничных вычислений в реальном времени и остается основным продуктом в устаревших системах и старых средах CUDA. Ее главное ограничение сегодня — большой размер параметров по сравнению с новыми моделями. Как показано в таблице производительности, достижение высочайшей точности требует использования тяжелой модели YOLOv7x, которая потребляет значительно больше памяти GPU, чем аналогичные современные архитектуры.
Преимущество Ultralytics: упрощенное развертывание
Хотя исходные исследовательские репозитории для YOLOv9 и YOLOv7 предоставляют отличную академическую базу, развертывание этих моделей в производственных средах может быть сложным. Интеграция их через пакет ultralytics предлагает непревзойденную простоту использования.
Используя интегрированную платформу Ultralytics, разработчики получают преимущества от хорошо поддерживаемой экосистемы с интуитивно понятным Python API, активной поддержкой сообщества и надежным отслеживанием экспериментов.
Подготовка к будущему с YOLO26
Если ты начинаешь новый проект по компьютерному зрению, мы настоятельно рекомендуем изучить недавно выпущенную YOLO26 вместо YOLOv9 и YOLOv7. Выпущенная как новый современный стандарт, YOLO26 привносит прорывные улучшения:
- Дизайн End-to-End без NMS: Исключает постобработку Non-Maximum Suppression, что радикально снижает сложность развертывания и задержку.
- До 43% быстрее инференс на CPU: Оптимизировано для сред граничных вычислений, гарантируя, что твое приложение будет работать плавно даже без выделенных GPU.
- Оптимизатор MuSGD: Гибридный оптимизатор, вдохновленный обучением LLM, обеспечивающий высокостабильную сходимость и сокращающий время обучения.
- Удаление DFL: Упрощен экспорт модели за счет удаления Distribution Focal Loss, что повышает совместимость с мобильными устройствами с низким энергопотреблением.
- ProgLoss + STAL: Кардинально повышает производительность при обнаружении мелких объектов, делая ее лучшим выбором для аэросъемки и видеонаблюдения.
Другие популярные альтернативы в экосистеме включают Ultralytics YOLOv8 и YOLO11, обе из которых предлагают огромную универсальность в таких задачах, как сегментация экземпляров и оценка поз.
Пример реализации
Обучение и экспорт любой из этих архитектур невероятно просты с помощью унифицированного API. Приведенный ниже код демонстрирует эффективность обучения, характерную для инструментов Ultralytics.
from ultralytics import YOLO
# Initialize YOLOv9 or the recommended YOLO26 model
model = YOLO("yolov9c.pt") # Swap with "yolo26n.pt" for faster edge performance
# Train on a custom dataset with built-in data augmentation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# Export the trained model to ONNX format for deployment
model.export(format="onnx")При обучении на потребительском оборудовании критически важна эффективность использования памяти. Реализации YOLOv9 и YOLO26 в Ultralytics сильно оптимизированы для снижения пиков VRAM, в отличие от моделей на основе трансформеров (таких как RT-DETR), которые часто страдают от сильного раздувания памяти во время обучения.
Реальные приложения и идеальные сценарии использования
Выбор между этими архитектурами часто сводится к конкретным ограничениям твоей производственной среды.
Когда использовать YOLOv9: YOLOv9 превосходна в средах, где необходимо сохранение мельчайших деталей. Надежное извлечение признаков делает её идеальной для розничной аналитики, чтобы подсчитывать плотно упакованные товары на полках, или для сельскохозяйственных приложений, где критически важно выявление болезней сельскохозяйственных культур на ранней стадии на маленьких листьях.
Когда использовать YOLOv7: YOLOv7 остается сильным кандидатом для устаревших конвейеров развертывания. Если ты интегрируешься в старые аппаратные системы (например, некоторые поколения Google Coral Edge TPU), простая архитектура CNN модели YOLOv7 может быть легче в компиляции, чем более сложные градиентные ветви новых моделей.
Когда использовать YOLO26 (рекомендуется): Для любого современного развертывания — от автономных дронов до управления дорожным движением в умных городах — YOLO26 является превосходным выбором. Её архитектура без NMS гарантирует детерминированное время инференса, что необходимо для критически важной робототехники, а высокая точность превосходит как YOLOv9, так и YOLOv7 по всем показателям.