YOLOv7 и YOLOv9#
Область обнаружения объектов в реальном времени стремительно развивается, и каждая новая итерация расширяет границы возможного как на периферийных устройствах, так и на облачных серверах. При выборе архитектур для проектов компьютерного зрения разработчики часто сравнивают проверенные временем бенчмарки с новыми инновациями. В этом подробном руководстве сравниваются две знаковые вехи семейства YOLO: YOLOv7 и YOLOv9.
Мы проанализируем их архитектурные прорывы, показатели производительности и оптимальные сценарии развертывания, чтобы помочь тебе выбрать подходящую модель для своего приложения. Также мы рассмотрим, как Ultralytics Platform объединяет эти модели, упрощая их обучение, валидацию и развертывание.
Происхождение моделей и технические характеристики#
Понимание происхождения и принципов проектирования этих моделей дает важный контекст для оценки их возможностей. Обе модели имеют общее исследовательское происхождение, но нацелены на устранение разных архитектурных узких мест.
YOLOv7: пионер «бесплатных улучшений»#
Выпущенная в середине 2022 года, YOLOv7 зарекомендовала себя как надежная и тщательно оптимизированная архитектура. В ней были внедрены структурная репараметризация и подход «обучаемый набор бесплатных улучшений», позволяющие сохранять высокую скорость инференса без ущерба для средней точности (mAP).
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Институт информационных наук, Academia Sinica, Тайвань
- Дата: 6 июля 2022 года
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Архитектурные инновации: YOLOv7 использует расширенную сеть агрегации эффективных слоев (E-ELAN), которая позволяет модели изучать более разнообразные признаки за счет расширения, перемешивания и объединения кардинальности. Такая конструкция обеспечивает отличную утилизацию GPU и низкую задержку инференса. Однако по сравнению с современными итерациями она может требовать значительного объема памяти во время сложных циклов обучения.
YOLOv9: устранение информационного узкого места#
Представленная в начале 2024 года той же исследовательской командой, YOLOv9 устраняет «информационное узкое место», свойственное глубоким нейронным сетям. При прохождении данных через глубокие слои важные детали часто теряются. YOLOv9 смягчает эту проблему благодаря принципиально новым конструкциям слоев.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Институт информационных наук, Academia Sinica, Тайвань
- Дата: 21 февраля 2024 г.
- Arxiv: 2402.13616
- GitHub: WongKinYiu/yolov9
Архитектурные инновации: YOLOv9 внедряет программируемую информацию о градиентах (PGI) и обобщенную сеть агрегации эффективных слоев (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.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 |
Основные выводы#
- Эффективность параметров: YOLOv9m соответствует точности YOLOv7l (51,4% mAP), используя при этом почти на 45% меньше параметров (20,0 млн против 36,9 млн). Такое существенное сокращение значительно упрощает развертывание YOLOv9m на устройствах периферийного ИИ с ограниченным объемом памяти.
- Микроразвертывания: появление варианта YOLOv9t (tiny) обеспечивает впечатляющую скорость (2,3 мс на T4 TensorRT) в средах, где требования к работе в реальном времени являются абсолютными.
- Максимальная точность: для приложений, где точность имеет первостепенное значение, YOLOv9e повышает точность обнаружения до 55,6% mAP, значительно превосходя YOLOv7x.
Хотя YOLOv7 и YOLOv9 обладают высокой мощностью, недавно выпущенная YOLO26 представляет собой решительный шаг вперед. YOLO26 внедряет нативную сквозную архитектуру без NMS, устраняя сложную постобработку и повышая скорость инференса на CPU до 43%. Благодаря новому оптимизатору MuSGD и улучшенным функциям потерь ProgLoss + STAL YOLO26 обеспечивает непревзойденную стабильность обучения и точность обнаружения небольших объектов.
Преимущества Ultralytics#
Выбор архитектуры модели — лишь первый шаг. Скорость перехода от прототипа к промышленной эксплуатации определяется программной экосистемой, окружающей модель. Интеграция этих моделей через Ultralytics Python API дает разработчикам и исследователям значительные преимущества.
Простота использования и эффективность обучения#
Раньше для обучения YOLOv7 требовались сложная подготовка данных и сильно кастомизированные скрипты. Фреймворк Ultralytics абстрагирует эти сложности глубокого обучения. Разработчики могут легко переключаться между архитектурами, экспериментировать с настройкой гиперпараметров и использовать интеллектуальные конвейеры аугментации данных, написав минимум кода.
Кроме того, Ultralytics оптимизирует использование памяти во время обучения и инференса. В отличие от тяжелых моделей на основе трансформеров, таких как RT-DETR, архитектуры Ultralytics YOLO обучаются значительно быстрее и требуют гораздо меньше памяти CUDA, что делает их идеальными для потребительских GPU.
Пример кода: упрощенное обучение#
Обучение современных моделей в экосистеме Ultralytics проходит без лишних сложностей. Ниже приведен полностью готовый к запуску пример обучения и валидации модели YOLOv9:
from ultralytics import YOLO
# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")
# Train the model on the COCO8 sample dataset
train_results = model.train(
data="coco8.yaml",
epochs=50,
imgsz=640,
device="0", # Use GPU 0 if available
batch=16, # Optimized batch size for memory efficiency
)
# Validate the model's performance on the validation set
metrics = model.val()
# Export the trained model to ONNX format for deployment
model.export(format="onnx")Непревзойденная универсальность для разных задач#
Хорошо поддерживаемая экосистема обеспечивает доступ к разнообразным задачам компьютерного зрения. Хотя YOLOv7 изначально создавалась главным образом для обнаружения объектов (позднее появились экспериментальные ответвления для других задач), современные модели Ultralytics изначально рассчитаны на универсальное применение. Сразу после установки ты можешь выполнять сегментацию экземпляров, оценку позы, классификацию изображений и обнаружение объектов с ориентированными ограничивающими рамками (OBB).
Оптимальные сценарии и области применения#
Выбор между YOLOv7 и YOLOv9 часто зависит от конкретных отраслевых ограничений и доступного оборудования.
Когда использовать YOLOv7#
- Устаревшие периферийные развертывания: для аппаратных сред, уже тщательно настроенных и оптимизированных под архитектуру E-ELAN YOLOv7 остается надежным выбором для промышленного Интернета вещей.
- Мониторинг трафика: высокая частота кадров и проверенная стабильность YOLOv7 делают ее отличным решением для инфраструктуры умных городов и управления трафиком в реальном времени.
- Интеграция с робототехникой: навигация в динамичных средах требует обработки с низкой задержкой — именно в таких сценариях варианты YOLOv7 прошли множество испытаний.
Когда использовать YOLOv9#
- Медицинская визуализация: архитектура PGI в YOLOv9 превосходно сохраняет мелкие детали при прохождении данных через глубокие слои, что критически важно при выполнении сложных задач анализа медицинских изображений, например обнаружения опухолей.
- Плотная аналитика розничной торговли: при отслеживании и подсчете плотно расположенных товаров на полках магазинов интеграция признаков в YOLOv9 обеспечивает более высокую точность и уменьшает количество ложноотрицательных результатов.
- Аэрофотосъемка и изображения с дронов: эффективность параметров YOLOv9m позволяет обрабатывать изображения высокого разрешения на дронах, помогая в охране дикой природы и мониторинге сельского хозяйства без быстрой разрядки аккумулятора.
Заключение#
И YOLOv7, и YOLOv9 прочно заняли свое место в истории компьютерного зрения. YOLOv7 внедрила важные оптимизации для обработки в реальном времени, тогда как YOLOv9 устранила структурные узкие места глубокого обучения, чтобы повысить эффективность использования параметров.
Однако разработчикам, начинающим новые проекты сегодня, экосистема Ultralytics — особенно модели следующего поколения, такие как YOLO11 и YOLO26, — предлагает наиболее выгодный компромисс между скоростью, точностью и удобством разработки. Благодаря таким инновациям, как оптимизатор MuSGD и отказ от Distribution Focal Loss (DFL) для более широкой совместимости с оборудованием, Ultralytics продолжает предоставлять наиболее доступные и мощные инструменты для специалистов по ИИ в области компьютерного зрения.