заглушки YOLOv9: скачок в обнаружении объектов в реальном времени - Unite.AI
Свяжитесь с нами:

Artificial Intelligence

YOLOv9: скачок в обнаружении объектов в реальном времени

mm

опубликованный

 on

Обнаружение объекта в последние годы наблюдается быстрый прогресс благодаря глубокое обучение такие алгоритмы, как YOLO («Вы смотрите только один раз»). Последняя итерация, 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 обеспечивают высокую точность при большом количестве параметров и операциях умножения-сложения (FLOP). Но за это приходится платить скоростью, размером и энергоэффективностью.

Например, YOLOv5-L требует более 100 миллиардов флоп для обработки одного изображения размером 1280×1280. Это слишком медленно для многих случаев использования в реальном времени. Тенденция к все более крупным моделям также увеличивает риск переобучения и затрудняет обобщение.

Поэтому, чтобы расширить возможности обнаружения объектов, нам нужны способы повышения эффективности – повышение точности при меньшем количестве параметров и вычислений. Давайте посмотрим на методы, используемые в YOLOv9 для решения этой задачи.

YOLOv9 – более высокая точность с меньшими ресурсами

Исследователи YOLOv9 сосредоточились на повышении эффективности, чтобы добиться производительности в реальном времени на более широком спектре устройств. Они представили два ключевых нововведения:

  1. Новая модель архитектуры под названием Общая эффективная сеть агрегации уровней (GELAN) это максимизирует точность при минимизации параметров и FLOP.
  2. Технология обучения под названием Информация о программируемом градиенте (PGI) это обеспечивает более надежные градиенты обучения, особенно для небольших моделей.

Давайте посмотрим, как каждое из этих достижений помогает повысить эффективность.

Более эффективная архитектура с GELAN

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

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

GELAN использует два основных строительных блока, сложенных вместе:

  • Эффективные блоки агрегации слоев – Эти агрегированные преобразования в нескольких ветвях сети позволяют эффективно захватывать многомасштабные функции.
  • Вычислительные блоки – Блоки CSPNet помогают распространять информацию между уровнями. Любой блок может быть заменен в зависимости от вычислительных ограничений.

Тщательно балансируя и комбинируя эти блоки, GELAN достигает оптимального соотношения производительности, параметров и скорости. Одна и та же модульная архитектура может масштабироваться вверх или вниз для моделей и оборудования разных размеров.

Эксперименты показали, что GELAN обеспечивает большую производительность в моделях меньшего размера по сравнению с предыдущими архитектурами YOLO. Например, GELAN-Small с параметрами 7М превзошел по параметрам 11M YOLOv7-Nano. А GELAN-Medium с 20M параметрами работает наравне со средними моделями YOLOv7, требующими 35-40M параметров.

Таким образом, разрабатывая параметризованную архитектуру, специально оптимизированную для повышения эффективности, GELAN позволяет моделям работать быстрее и на устройствах с более ограниченными ресурсами. Далее мы увидим, как PGI помогает им лучше тренироваться.

Лучшее обучение с помощью программируемой информации о градиенте (PGI)

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

Градиенты определить, насколько веса модели обновляются во время обучения. Шумные или вводящие в заблуждение градиенты приводят к плохой сходимости. Эта проблема становится более заметной для небольших сетей.

Техника глубокий надзор решает эту проблему путем введения дополнительных боковых ветвей с потерями для лучшего распространения градиентного сигнала по сети. Но он имеет тенденцию выходить из строя и вызывать расхождения в моделях меньшего размера и легких.

YOLOv9: Изучайте то, что хотите, используя информацию о программируемом градиенте

YOLOv9: Изучите то, что хотите узнать, используя информацию о программируемом градиенте https://arxiv.org/abs/2402.13616

Чтобы преодолеть это ограничение, YOLOv9 вводит Информация о программируемом градиенте (PGI). PGI состоит из двух основных компонентов:

  • Вспомогательные реверсивные ветки – Они обеспечивают более чистые градиенты, поддерживая обратимые соединения со входом с помощью таких блоков, как RevCols.
  • Многоуровневая интеграция градиентов – Это позволяет избежать расхождений из-за влияния различных боковых ветвей. Он объединяет градиенты всех ветвей перед передачей обратно в основную модель.

Создавая более надежные градиенты, PGI помогает меньшим моделям обучаться так же эффективно, как и более крупным:

Эксперименты показали, что PGI повышает точность моделей всех размеров, особенно меньших конфигураций. Например, это повысило показатели AP YOLOv9-Small на 0.1–0.4% по сравнению с базовым уровнем GELAN-Small. Прирост был еще более значительным для более глубоких моделей, таких как YOLOv9-E с 55.6% mAP.

Таким образом, PGI позволяет более мелким и эффективным моделям обучаться с более высокими уровнями точности, которые ранее были достижимы только с помощью чрезмерно параметризованных моделей.

YOLOv9 устанавливает новый уровень эффективности

Объединив архитектурные достижения GELAN с улучшениями обучения от PGI, YOLOv9 достигает беспрецедентной эффективности и производительности:

  • По сравнению с предыдущими версиями YOLO, YOLOv9 получает более высокая точность при меньшем количестве параметров на 10–15 % и меньшем количестве вычислений на 25 %. Это приводит к значительному улучшению скорости и возможностей моделей разных размеров.
  • YOLOv9 превосходит другие детекторы реального времени, такие как YOLO-MS и RT-DETR, с точки зрения эффективность параметров и FLOP. Для достижения заданного уровня производительности требуется гораздо меньше ресурсов.
  • Меньшие модели YOLOv9 даже превосходят более крупные предварительно обученные модели, такие как RT-DETR-X. Несмотря на использование На 36% меньше параметров, YOLOv9-E достигает лучше 55.6% AP за счет более эффективных архитектур.

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

GELAN – Оптимизированная архитектура для повышения эффективности

YOLOv9 представляет новую архитектуру под названием General Efficient Layer Aggregation Network (GELAN), которая максимизирует точность при минимальном бюджете параметров. Он создан на основе предыдущих моделей YOLO, но оптимизирует различные компоненты специально для повышения эффективности.

https://arxiv.org/abs/2402.13616

YOLOv9: Изучайте то, что хотите, используя информацию о программируемом градиенте
https://arxiv.org/abs/2402.13616

Общие сведения о CSPNet и ELAN

В последних версиях YOLO, начиная с v5, для повышения эффективности использовались магистрали на основе межэтапной частичной сети (CSPNet). CSPNet позволяет агрегировать карты объектов по параллельным ветвям сети, добавляя при этом минимальные накладные расходы:

Это более эффективно, чем простое последовательное наложение слоев, что часто приводит к избыточным вычислениям и чрезмерной параметризации.

YOLOv7 обновил CSPNet до Efficient Layer Aggregation Network (ELAN), что упростило структуру блоков:

ELAN удалил короткие соединения между слоями в пользу узла агрегации на выходе. Это еще больше улучшило параметры и эффективность FLOP.

Обобщение ELAN для гибкой эффективности

Авторы еще больше обобщили ELAN, чтобы создать ГЕЛАН, основа, используемая в YOLOv9. Компания GELAN внесла ключевые изменения для повышения гибкости и эффективности:

  • Сменные вычислительные блоки – Предыдущий ELAN имел фиксированные сверточные слои. GELAN позволяет заменить любой вычислительный блок, например ResNets или CSPNet, предоставляя больше архитектурных возможностей.
  • Глубинная параметризация – Отдельная глубина блоков для основной ветки и ветки-агрегатора упрощает точную настройку использования ресурсов.
  • Стабильная производительность во всех конфигурациях – GELAN поддерживает точность с различными типами блоков и глубиной, обеспечивая гибкое масштабирование.

Эти изменения делают GELAN мощной, но настраиваемой основой для максимизации эффективности:

В экспериментах модели GELAN неизменно превосходили предыдущие архитектуры YOLO по точности каждого параметра:

  • GELAN-Small с параметрами 7M превосходит параметры YOLOv7-Nano с 11M
  • 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 % меньше FLOP.

Примечательно, что меньшие модели YOLOv9 даже превосходят более тяжелые модели других детекторов, которые используют предварительное обучение, например RT-DETR-X. Несмотря на в 4 раза меньше параметров, YOLOv9-E превосходит RT-DETR-X по точности.

Эти результаты демонстрируют превосходную эффективность YOLOv9. Улучшения обеспечивают высокоточное обнаружение объектов в более реальных случаях использования.

Основные выводы об обновлениях YOLOv9

Давайте кратко резюмируем некоторые ключевые обновления и инновации, которые обеспечивают новую современную производительность YOLOv9:

  • Оптимизированная архитектура GELAN – Повышает эффективность параметров за счет гибких блоков агрегирования. Позволяет масштабировать модели для разных целей.
  • Информация о программируемом градиенте – Обеспечивает надежные градиенты за счет обратимых соединений и сварки. Улучшает обучение в зависимости от размера модели.
  • Большая точность с меньшими ресурсами – Уменьшает параметры и вычисления на 10-15% по сравнению с YOLOv8 с большей точностью. Обеспечивает более эффективный вывод.
  • Превосходные результаты для моделей любого размера – Устанавливает новое современное состояние для конфигураций легких, средних и больших моделей. Превосходит по производительности предварительно обученные модели.
  • Расширенная применимость – Более высокая эффективность расширяет возможности применения, например обнаружение в реальном времени на периферийных устройствах.

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

Последние пять лет я погружался в увлекательный мир машинного обучения и глубокого обучения. Моя страсть и опыт позволили мне принять участие в более чем 50 различных проектах по разработке программного обеспечения, уделяя особое внимание AI/ML. Мое постоянное любопытство также привлекло меня к обработке естественного языка, области, которую я очень хочу исследовать дальше.