Connect with us

YOLOv9: Большой шаг в детекции объектов в реальном времени

Искусственный интеллект

YOLOv9: Большой шаг в детекции объектов в реальном времени

mm

Детекция объектов в последние годы прошла значительный путь благодаря алгоритмам глубокого обучения, таким как 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, сосредоточились на улучшении эффективности, чтобы добиться производительности в реальном времени на более широком диапазоне устройств. Они ввели два ключевых инноваций:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 достигает новых эталонных результатов для детекции объектов в реальном времени.

Эксперименты на наборе данных 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 продвигает детекцию объектов вперед, чтобы удовлетворить разнообразные реальные потребности. Улучшения обеспечивают прочную основу для будущих инноваций в этом важном компьютерном зрении.

Я провел последние пять лет, погружаясь в увлекательный мир Machine Learning и Deep Learning. Моя страсть и экспертиза привели меня к участию в более чем 50 различных проектах по разработке программного обеспечения, с особым акцентом на AI/ML. Мое непрекращающееся любопытство также привело меня к Natural Language Processing, области, которую я с нетерпением жду возможности изучить более подробно.