Искусственный интеллект
YOLOv9: Рывок в Обнаружении Объектов в Реальном Времени
Обнаружение объектов пережило быстрый прогресс в последние годы благодаря алгоритмам глубокого обучения, таким как YOLO (You Only Look Once). Последняя итерация, YOLOv9, приносит значительные улучшения в точности, эффективности и применимости по сравнению с предыдущими версиями. В этой статье мы рассмотрим инновации, которые делают YOLOv9 новым эталоном для обнаружения объектов в реальном времени.
Быстрый Курс по Обнаружению Объектов
Прежде чем погрузиться в новое в YOLOv9, давайте кратко рассмотрим, как работает обнаружение объектов. Цель обнаружения объектов – определить и локализовать объекты внутри изображения, такие как машины, люди или животные. Это ключевая возможность для приложений, таких как самоходные автомобили, системы наблюдения и поиск изображений.
Детектор принимает изображение в качестве входных данных и выводит ограничивающие рамки вокруг обнаруженных объектов, каждая с связанным классовым меткой. Популярные наборы данных, такие как MS COCO, предоставляют тысячи помеченных изображений для обучения и оценки этих моделей.
Существует два основных подхода к обнаружению объектов:
- Детекторы с двумя стадиями типа Faster R-CNN сначала генерируют региональные предложения, затем классифицируют и уточняют границы каждого региона. Они склонны быть более точными, но медленнее.
- Детекторы с одной стадией типа YOLO применяют модель непосредственно над изображением в одном проходе. Они торгуют некоторой точностью за очень быстрые времена вывода.
YOLO был пионером в подходе с одной стадией. Давайте посмотрим, как он эволюционировал за несколько версий, чтобы улучшить точность и эффективность.
Обзор Предыдущих Версий YOLO
Семейство моделей YOLO (You Only Look Once) было на переднем крае быстрого обнаружения объектов с момента публикации первой версии в 2016 году. Вот краткий обзор того, как YOLO прогрессировало за несколько итераций:
- YOLOv1 предложил унифицированную модель для предсказания ограничивающих рамок и классовых вероятностей непосредственно из полных изображений в одном проходе. Это сделало его чрезвычайно быстрым по сравнению с предыдущими двустадийными моделями.
- YOLOv2 улучшил оригинал, используя пакетную нормализацию для лучшей стабильности, якорные коробки на различных масштабах и соотношениях сторон для обнаружения нескольких размеров, и различные другие оптимизации.
- YOLOv3 добавил новый извлекатель признаков под названием Darknet-53 с большим количеством слоев и обходных путей между ними, что еще больше улучшило точность.
- YOLOv4 объединил идеи из других детекторов объектов и моделей сегментации, чтобы еще больше повысить точность, сохраняя при этом быстрое время вывода.
- YOLOv5 полностью переписал YOLOv4 на PyTorch и добавил новый извлекатель признаков под названием CSPDarknet, а также несколько других улучшений.
- YOLOv6 продолжил оптимизировать архитектуру и процесс обучения, с моделями, предварительно обученными на больших внешних наборах данных, чтобы еще больше повысить производительность.
Итак, в итоге, предыдущие версии YOLO достигли более высокой точности за счет улучшений в архитектуре модели, методах обучения и предварительном обучении. Но по мере того, как модели становятся больше и более сложными, скорость и эффективность начинают страдать.
Необходимость Лучшей Эффективности
Многие приложения требуют обнаружения объектов в реальном времени на устройствах с ограниченными вычислительными ресурсами. По мере того, как модели становятся больше и более вычислительными, они становятся непригодными для развертывания.
Например, самоходный автомобиль должен обнаруживать объекты на высоких кадровых скоростях, используя процессоры внутри транспортного средства. Система безопасности должна запускать обнаружение объектов на своем видеопотоке внутри встроенного оборудования. Телефоны и другие потребительские устройства имеют очень жесткие ограничения по мощности и теплу.
Последние версии YOLO получают высокую точность с большим количеством параметров и операциями умножения и сложения (FLOPs). Но это происходит за счет скорости, размера и эффективности мощности.
Например, YOLOv5-L требует более 100 миллиардов FLOPs для обработки одного изображения размером 1280×1280. Это слишком медленно для многих реальных случаев использования. Тенденция все более крупных моделей также увеличивает риск переобучения и затрудняет обобщение.
Итак, чтобы расширить применимость обнаружения объектов, нам нужно улучшить эффективность – получать лучшую точность с меньшим количеством параметров и вычислений. Давайте рассмотрим методы, используемые в YOLOv9, чтобы решить эту проблему.
YOLOv9 – Лучшая Точность с Меньшими Ресурсами
Исследователи, стоящие за YOLOv9, сосредоточились на улучшении эффективности, чтобы достичь производительности в реальном времени на более широком диапазоне устройств. Они ввели два ключевых инновационных метода:
- Новая архитектура модели под названием Общая Эффективная Сеть Слоев (GELAN), которая максимизирует точность, минимизируя параметры и FLOPs.
- Метод обучения под названием Программируемая Информация Градиента (PGI), который обеспечивает более надежные градиенты обучения, особенно для небольших моделей.
Давайте рассмотрим, как каждое из этих достижений помогает улучшить эффективность.
Более Эффективная Архитектура с GELAN
Сама архитектура модели имеет решающее значение для балансирования точности и скорости использования ресурсов во время вывода. Нейронная сеть должна иметь достаточную глубину и ширину, чтобы захватить соответствующие признаки из входных изображений. Но слишком много слоев или фильтров приводит к медленным и разбухшим моделям.
Авторы разработали GELAN специально, чтобы выжать максимальную точность из самой маленькой возможной архитектуры.
GELAN использует два основных строительных блока, сложенных вместе:
- Блоки Эффективного Слоевого Агрегирования – Эти блоки агрегируют преобразования через несколько ветвей сети, чтобы эффективно захватить много масштабных признаков.
- Вычислительные Блоки – Блоки CSPNet помогают распространять информацию через слои. Любой блок может быть заменен на основе ограничений вычислений.
Балансируя и сочетая эти блоки, GELAN достигает оптимального баланса между производительностью, параметрами и скоростью. Та же модульная архитектура может масштабироваться вверх или вниз на разных размерах моделей и оборудования.
Эксперименты показали, что GELAN помещает больше производительности в более мелкие модели по сравнению с предыдущими архитектурами YOLO. Например, GELAN-Small с 7 миллионами параметров превосходит YOLOv7-Nano с 11 миллионами параметров. И GELAN-Medium с 20 миллионами параметров работает на уровне с YOLOv7 средними моделями, требующими 35-40 миллионов параметров.
Итак, проектируя параметризованную архитектуру, специально оптимизированную для эффективности, GELAN позволяет моделям работать быстрее и на более ограниченных ресурсах. Далее мы рассмотрим, как PGI помогает им обучаться лучше.
Лучшее Обучение с Программируемой Информацией Градиента (PGI)
Обучение модели столь же важно, чтобы максимизировать точность с ограниченными ресурсами. Авторы YOLOv9 определили проблемы при обучении небольших моделей, вызванные ненадежной информацией градиента.
Градиенты определяют, насколько веса модели обновляются во время обучения. Шумные или вводящие в заблуждение градиенты приводят к плохой сходимости. Эта проблема становится более выраженной для небольших сетей.
Техника глубокого надзора решает эту проблему, вводя дополнительные боковые ветви с потерями, чтобы распространить лучший градиентный сигнал через сеть. Но она склонна разрушаться и вызывать расхождение для небольших легких моделей.

YOLOv9: Обучение тому, что вы хотите учиться, используя Программируемую Информацию Градиента https://arxiv.org/abs/2402.13616
Чтобы преодолеть это ограничение, YOLOv9 вводит Программируемую Информацию Градиента (PGI). PGI имеет два основных компонента:
- Вспомогательные обратимые ветви – Эти ветви обеспечивают более чистые градиенты, сохраняя обратимые связи с входом с помощью блоков, таких как RevCols.
- Многоуровневая интеграция градиента – Этот блок агрегирует градиенты из всех ветвей, прежде чем передать их обратно в основную модель.
Генерируя более надежные градиенты, PGI улучшает сходимость обучения и эффективность во всех размерах моделей:
Эксперименты показали, что PGI улучшил точность во всех конфигурациях YOLOv9 над базовой GELAN:
- +0,1-0,4% AP для YOLOv9-Small
- +0,5-0,6% AP для более крупных моделей YOLOv9
Итак, PGI с программируемыми градиентами позволяет моделям большого и малого размера обучаться более эффективно.
YOLOv9 Устанавливает Новый Эталон Эффективности
Объединив архитектурные достижения GELAN и улучшения обучения PGI, YOLOv9 достигает беспрецедентной эффективности и производительности:
- По сравнению с предыдущими версиями YOLO, YOLOv9 получает лучшую точность с 10-15% меньшим количеством параметров и 25% меньшим количеством вычислений. Это приводит к значительным улучшениям в скорости и возможностях во всех размерах моделей.
- YOLOv9 превосходит другие детекторы реального времени, такие как YOLO-MS и RT-DETR, в плане эффективности параметров и FLOPs. Он требует намного меньше ресурсов, чтобы достичь заданного уровня производительности.
- Меньшие модели YOLOv9 даже превосходят более крупные предварительно обученные модели, такие как RT-DETR-X. Несмотря на использование 36% меньшего количества параметров, YOLOv9-E достигает лучшей 55,6% AP благодаря более эффективной архитектуре.
Итак, решая проблему эффективности на уровне архитектуры и обучения, YOLOv9 устанавливает новый эталон для максимизации производительности в ограниченных ресурсах.
GELAN – Оптимизированная Архитектура для Эффективности
YOLOv9 вводит новую архитектуру под названием Общая Эффективная Сеть Слоев (GELAN), которая максимизирует точность в минимальном бюджете параметров. Она строится на основе предыдущих моделей YOLO, но оптимизирует различные компоненты специально для эффективности.

YOLOv9: Обучение тому, что вы хотите учиться, используя Программируемую Информацию Градиента https://arxiv.org/abs/2402.13616
Фон на CSPNet и ELAN
Последние версии YOLO с версии 5 используют в качестве основы сеть Cross-Stage Partial Network (CSPNet) для улучшения эффективности. CSPNet позволяет агрегировать признаки через параллельные ветви сети, добавляя минимальную нагрузку:
Это более эффективно, чем просто укладывание слоев последовательно, что часто приводит к избыточным вычислениям и переопределению параметров.
YOLOv7 обновил CSPNet до Эффективной Сети Слоевого Агрегирования (ELAN), упростив структуру блока:
ELAN удалил обходные связи между слоями в пользу узла агрегирования на выходе. Это еще больше улучшило эффективность параметров и FLOPs.
Общая ELAN для Гибкой Эффективности
Авторы обобщили ELAN еще дальше, создав GELAN, используемый в YOLOv9. GELAN внес ключевые изменения, чтобы улучшить гибкость и эффективность:
- Заменяемые вычислительные блоки – Предыдущий ELAN имел фиксированные свертки. GELAN позволяет заменять любой вычислительный блок, такой как ResNets или CSPNet, предоставляя больше архитектурных вариантов.
- Параметризация по глубине – Отдельные глубины блока для основной ветви и агрегатора упрощают тонкую настройку использования ресурсов.
- Стабильная производительность через конфигурации – GELAN поддерживает точность с разными типами блоков и глубинами, позволяя гибкое масштабирование.
Эти изменения делают GELAN сильной, но конфигурируемой основой для максимизации эффективности:
В экспериментах модели GELAN последовательно превосходили предыдущие архитектуры YOLO в точности на параметр:
- GELAN-Small с 7 миллионами параметров превосходит YOLOv7-Nano с 11 миллионами параметров
- GELAN-Medium соответствует более тяжелым моделям YOLOv7 среднего размера
Итак, GELAN обеспечивает оптимизированную основу для масштабирования YOLO на различные цели эффективности. Далее мы рассмотрим, как PGI помогает им обучаться лучше.
PGI – Улучшенное Обучение для всех Размеров Моделей
Хотя выбор архитектуры влияет на эффективность во время вывода, процесс обучения также влияет на использование ресурсов модели. YOLOv9 использует новую технику под названием Программируемая Информация Градиента (PGI), чтобы улучшить обучение на разных размерах и сложностях моделей.
Проблема Ненадежных Градиентов
Во время обучения функция потерь сравнивает выходы модели с метками и вычисляет градиент ошибки, чтобы обновить параметры. Шумные или вводящие в заблуждение градиенты приводят к плохой сходимости и эффективности.
Очень глубокие сети усугубляют эту проблему через информационный бутылочное горлышко – градиенты из глубоких слоев искажаются потерянными или сжатыми сигналами.
Глубокий надзор помогает, вводя вспомогательные боковые ветви с потерями, чтобы обеспечить более чистые градиенты. Но он часто разрушается для небольших моделей, вызывая помехи и расхождение между разными ветвями.
Итак, нам нужно способ обеспечить надежные градиенты, который работает во всех размерах моделей, особенно в небольших.
Введение Программируемой Информации Градиента (PGI)
Чтобы решить проблему ненадежных градиентов, YOLOv9 предлагает Программируемую Информацию Градиента (PGI). PGI имеет два основных компонента, разработанных для улучшения качества градиента:
1. Вспомогательные обратимые ветви
Дополнительные ветви обеспечивают обратимые связи обратно к входу, используя блоки, такие как RevCols. Это сохраняет чистые градиенты, избегая информационного бутылочного горлышка.
2. Многоуровневая интеграция градиента
Блок слияния агрегирует градиенты из всех ветвей, прежде чем передать их обратно в основную модель. Это предотвращает расхождение между ветвями.
Генерируя более надежные градиенты, PGI улучшает сходимость обучения и эффективность во всех размерах моделей:
- Легкие модели получают пользу от глубокого надзора, который они не могли использовать ранее
- Более крупные модели получают более чистые градиенты, что позволяет лучше обобщать
Эксперименты показали, что PGI повысил точность для небольших и крупных конфигураций YOLOv9 над базовой GELAN:
- +0,1-0,4% AP для YOLOv9-Small
- +0,5-0,6% AP для более крупных моделей YOLOv9
Итак, программируемые градиенты PGI позволяют моделям большого и малого размера обучаться более эффективно.
YOLOv9 Устанавливает Новый Эталон Точности
Объединив архитектурные достижения GELAN и улучшения обучения PGI, YOLOv9 достигает нового эталона для обнаружения объектов в реальном времени.
Эксперименты на наборе данных COCO показывают, что YOLOv9 превосходит предыдущие версии YOLO, а также другие детекторы реального времени, такие как YOLO-MS, в точности и эффективности:
Некоторые ключевые моменты:
- YOLOv9-Small превосходит YOLO-MS-Small с 10% меньшим количеством параметров и вычислений
- YOLOv9-Medium соответствует более тяжелым моделям YOLOv7, используя менее половины ресурсов
- YOLOv9-Large превосходит YOLOv8-X с 15% меньшим количеством параметров и 25% меньшим количеством FLOPs
Замечательно, что более мелкие модели YOLOv9 даже превосходят более тяжелые модели из других детекторов, которые используют предварительное обучение, такие как RT-DETR-X. Несмотря на 4-кратное меньшее количество параметров, YOLOv9-E превосходит RT-DETR-X в точности.
Эти результаты демонстрируют превосходную эффективность YOLOv9. Улучшения позволяют обнаруживать объекты с высокой точностью в более реальных случаях использования.
Ключевые Выводы об Улучшениях YOLOv9
Давайте быстро рассмотрим некоторые из ключевых улучшений и инноваций, которые позволяют YOLOv9 достичь нового эталона производительности:
- Оптимизированная архитектура GELAN – Улучшает эффективность параметров через гибкие блоки агрегирования. Позволяет масштабировать модели для разных целей.
- Программируемая информация градиента – Обеспечивает надежные градиенты через обратимые связи и слияние. Улучшает обучение во всех размерах моделей.
- Большая точность с меньшими ресурсами – Снижает параметры и вычисления на 10-15% по сравнению с YOLOv8, с лучшей точностью. Позволяет более эффективный вывод.
- Лучшие результаты во всех размерах моделей – Устанавливает новый эталон для легких, средних и крупных конфигураций моделей. Превосходит предварительно обученные модели.
- Расширенная применимость – Более высокая эффективность расширяет диапазон возможных случаев использования, таких как обнаружение объектов в реальном времени на устройствах на краю сети.
Решая точность, эффективность и применимость напрямую, YOLOv9 продвигает обнаружение объектов вперед, чтобы удовлетворить разнообразные реальные потребности. Улучшения обеспечивают прочную основу для будущих инноваций в этой критической возможности компьютерного зрения.












