Перейти к содержанию

YOLOv9 в сравнении с YOLOv7: глубокий анализ эволюции detectирования объектов

Ландшафт компьютерного зрения характеризуется быстрыми инновациями, когда архитектурные прорывы постоянно переопределяют границы скорости и точности. Двумя важными вехами на этом пути являются YOLOv9 и YOLOv7. Обе модели происходят из исследований Chien-Yao Wang и его коллег, представляя разные поколения семейства «You Only Look Once».

В то время как YOLOv7 установил стандарт для object detection в реальном времени после своего выпуска в 2022 году, YOLOv9 появился в 2024 году с новыми механизмами для решения проблемы потери информации в глубоких сетях. Это сравнение исследует их технические характеристики, архитектурные различия и практическое применение, чтобы помочь разработчикам выбрать оптимальную модель для своих нужд.

Метрики производительности и эффективность

Эволюция от YOLOv7 к YOLOv9 наиболее заметна в компромиссе между вычислительными затратами и производительностью detect. YOLOv9 обеспечивает значительное повышение эффективности, позволяя достигать более высокого среднего значения Average Precision (mAP) с меньшим количеством параметров по сравнению со своим предшественником.

Например, модель YOLOv9m достигает тех же 51,4% mAPval, что и YOLOv7l, но использует почти вдвое меньше параметров (20,0M против 36,9M) и значительно меньше FLOPs. Эта эффективность делает YOLOv9 особенно привлекательным для приложений edge AI, где аппаратные ресурсы ограничены.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

YOLOv9: Программируемая градиентная информация

YOLOv9 представляет собой сдвиг парадигмы в том, как глубокие нейронные сети обрабатывают передачу данных через слои. Выпущенный в начале 2024 года, он специально нацелен на проблему «информационного узкого места», когда данные теряются при прохождении через последовательные слои глубокой сети.

Авторы: Чен-Яо Ван, Хун-Юань Марк Ляо
Организация:Институт информатики, Academia Sinica
Дата: 2024-02-21
Arxiv:2402.13616
GitHub:WongKinYiu/yolov9
Документация:Ultralytics YOLOv9

Архитектурные инновации

Основным нововведением в YOLOv9 является внедрение Programmable Gradient Information (PGI). PGI предоставляет вспомогательную структуру контроля, которая обеспечивает надежное распространение градиентов обратно к начальным слоям, сохраняя важную входную информацию, которая в противном случае могла бы быть потеряна во время извлечения признаков.

В качестве дополнения к PGI выступает Generalized Efficient Layer Aggregation Network (GELAN). Эта архитектура позволяет разработчикам гибко комбинировать различные вычислительные блоки (например, CSP или ResBlocks), оптимизируя веса модели для конкретных аппаратных ограничений без ущерба для точности.

Сильные и слабые стороны

  • Преимущества:
    • Превосходная точность: Достигает самых современных результатов на наборе данных COCO, при этом модель YOLOv9-E достигает 55,6% mAP.
    • Эффективность параметров: Обеспечивает сопоставимую производительность со старыми моделями, используя значительно меньше параметров, что снижает требования к памяти во время инференса.
    • Сохранение информации: Теоретические улучшения в потоке градиентов приводят к лучшей сходимости и представлению признаков.
  • Слабые стороны:
    • Сложность обучения: Вспомогательные ветви, используемые во время обучения (и удаляемые для инференса), могут увеличить использование памяти GPU во время фазы обучения по сравнению с более простыми архитектурами.

Узнайте больше о YOLOv9

YOLOv7: Стандарт Bag-of-Freebies

До YOLOv9, YOLOv7 был действующим чемпионом семейства YOLO. В нем были представлены архитектурные усовершенствования, направленные на оптимизацию процесса обучения без увеличения затрат на вывод, концепция, известная как "bag-of-freebies".

Авторы: Чен-Яо Ван, Алексей Бочковский, Хун-Юань Марк Ляо
Организация: Институт информатики, Academia Sinica
Дата: 2022-07-06
Arxiv:2207.02696
GitHub:WongKinYiu/yolov7
Документация:Ultralytics YOLOv7

Архитектурный обзор

YOLOv7 представила E-ELAN (Extended Efficient Layer Aggregation Network), которая контролирует кратчайшие и длиннейшие пути градиента для улучшения обучаемости сети. Он также использовал методы масштабирования модели, которые одновременно изменяют глубину и ширину сети, обеспечивая оптимальную архитектуру для различных целевых устройств.

Сильные и слабые стороны

  • Преимущества:
    • Доказанная надежность: Обширное использование сообществом и проверка в течение нескольких лет делают его стабильным выбором для устаревших систем.
    • Высокая скорость: Оптимизировано специально для inference в реальном времени на стандартном оборудовании GPU.
  • Слабые стороны:
    • Более низкая эффективность: Требует больше параметров и FLOPs, чтобы соответствовать уровням точности, которых могут достичь более новые модели, такие как YOLOv9 или YOLO11, с более легкими архитектурами.
    • Устаревшие инструменты: Отсутствуют некоторые собственные интеграции и функции простоты использования, которые есть в современной экосистеме Ultralytics.

Узнайте больше о YOLOv7

Идеальные варианты использования и применения

Выбор между этими двумя моделями часто зависит от конкретных ограничений среды развертывания и требуемой точности задачи.

Когда следует выбирать YOLOv9

YOLOv9 отлично подходит для сценариев, требующих наивысшего соотношения точности и эффективности.

  • Автономная навигация: В самоуправляемых автомобилях обнаружение небольших объектов на больших расстояниях имеет решающее значение. Способность YOLOv9 сохранять информацию помогает распознавать отдаленные опасности.
  • Медицинская визуализация: Для таких задач, как обнаружение опухолей, где пропуск положительного результата обнаружения критичен, высокая полнота и точность YOLOv9 являются полезными.
  • Edge-устройства: Параметр yolov9t вариант предоставляет надежное решение для IoT-устройства например, Raspberry Pi, обеспечивая хорошую точность при минимальных вычислительных затратах.

Когда следует выбирать YOLOv7

YOLOv7 остается актуальным для существующих конвейеров, которые уже оптимизированы под его архитектуру.

  • Устаревшие системы: Промышленные производственные линии, которые проверили YOLOv7 для контроля качества, могут предпочесть сохранить согласованность, а не обновляться немедленно.
  • Базовые показатели для исследований: Он служит отличным эталоном для сравнения новых стратегий detection с установленными стандартами в академических исследованиях.

Баланс производительности с Ultralytics

В то время как YOLOv9 и YOLOv7 являются мощными, разработчикам, ищущим оптимальный баланс скорости, точности и опыта разработки, следует обратить внимание на Ultralytics YOLO11. YOLO11 объединяет в себе лучшие функции предыдущих поколений с оптимизированным API, поддерживающим обнаружение, сегментацию, оценку позы и классификацию в единой структуре.

Преимущество Ultralytics

Использование этих моделей в экосистеме Ultralytics предоставляет явные преимущества по сравнению с использованием необработанных исследовательских репозиториев. Ultralytics Python API абстрагирует сложный шаблонный код, позволяя исследователям и инженерам сосредоточиться на данных и результатах.

  1. Простота использования: Унифицированный интерфейс позволяет переключаться между YOLOv8, YOLOv9 и YOLO11 с помощью одной строки кода.
  2. Эффективность обучения: Модели Ultralytics оптимизированы для более быстрой сходимости, часто требуя меньше данных для обучения для достижения высокой точности.
  3. Требования к памяти: Фреймворк разработан для минимизации использования памяти CUDA, что позволяет обучать большие размеры пакетов на оборудовании потребительского класса по сравнению с моделями Transformer, требовательными к памяти.
  4. Универсальность: Помимо простых ограничивающих рамок, экосистема поддерживает задачи instance segmentation, pose estimation и Oriented Bounding Box (OBB), что делает ее комплексным инструментом для решения различных задач в области ИИ.

Пример реализации

Запуск этих моделей прост с библиотекой Ultralytics. Следующий фрагмент кода демонстрирует, как загрузить предварительно обученную модель и запустить inference на изображении.

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")

# Run inference on a local image
results = model.predict("path/to/image.jpg", save=True, conf=0.5)

# Process results
for result in results:
    result.show()  # Display predictions

Для тех, кто заинтересован в обучении на пользовательских наборах данных, процесс одинаково прост, с использованием надежной настройки гиперпараметров и стратегий увеличения данных, встроенных в структуру.

# Train the model on a custom dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Заключение

И YOLOv9, и YOLOv7 представляют собой значительные достижения в области компьютерного зрения. YOLOv9 является явным техническим преемником, предлагая превосходную эффективность параметров и точность благодаря своим инновационным архитектурам PGI и GELAN. Это рекомендуемый выбор для пользователей, стремящихся к высокой производительности от конкретной исследовательской линии Wang et al.

Однако, для разработчиков, стремящихся к наиболее целостному опыту разработки ИИ, Ultralytics YOLO11 остается главной рекомендацией. Благодаря активной поддержке, обширной документации и широкой поддержке мультимодальных задач, YOLO11 гарантирует, что ваши проекты будут перспективными и готовыми к производству.

Изучите другие модели

Чтобы еще больше расширить свое понимание ландшафта обнаружения объектов, рассмотрите возможность изучения этих связанных моделей и сравнений:

  • YOLO11 vs. YOLOv9 - Сравните последнюю модель Ultralytics с YOLOv9.
  • YOLOv8 vs. YOLOv7 — Посмотрите, как складывается предыдущее поколение.
  • RT-DETR vs. YOLOv9 — Взгляд на детектирование на основе Transformer'ов в сравнении с CNN.
  • YOLOv10 - Изучите модель detect объектов в реальном времени.
  • Ultralytics HUB — Самый простой способ обучить и развернуть свои модели.

Комментарии