Модели и платформы ИИ

YOLOv7: Самый Продвинутый Алгоритм Обнаружения Объектов?

mm
Добавьте Unite.AI в избранные источники в Google

6 июля 2022 года будет отмечен как знаменательная дата в истории ИИ, поскольку именно в этот день был выпущен YOLOv7. С момента его запуска YOLOv7 стал самой обсуждаемой темой в сообществе разработчиков компьютерного зрения, и по правильным причинам. YOLOv7 уже считается эталоном в индустрии обнаружения объектов.

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

В этой статье мы попытаемся проанализировать модель YOLOv7 и найти ответ на вопрос, почему YOLOv7 становится отраслевым стандартом. Но прежде чем мы сможем ответить на этот вопрос, нам нужно кратко рассмотреть историю обнаружения объектов.

Что такое Обнаружение Объектов?

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

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

Обнаружение Объектов в Реальном Времени

Чтобы действительно понять, как работает YOLOv7, нам нужно понять основную цель YOLOv7, “Обнаружение Объектов в Реальном Времени”. Обнаружение объектов в реальном времени является ключевым компонентом современного компьютерного зрения. Модели обнаружения объектов в реальном времени пытаются идентифицировать и локализовать объекты интереса в реальном времени.

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

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

Что такое YOLO?

YOLO или “Вы Глянули Только Однажды” – это семейство моделей обнаружения объектов в реальном времени. Концепция YOLO была впервые представлена Джозефом Редмоном в 2016 году, и она сразу же стала популярной, поскольку была намного быстрее и точнее, чем существующие алгоритмы обнаружения объектов. Не прошло много времени, как алгоритм YOLO стал стандартом в индустрии компьютерного зрения.

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

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

Когда сравнивают YOLO с алгоритмами обнаружения объектов того времени, эти модели часто использовали сети предложения регионов для обнаружения возможных регионов интереса. Процесс распознавания затем выполнялся отдельно для каждого региона. В результате эти модели часто выполняли несколько итераций над одним и тем же изображением, что приводило к отсутствию точности и более длительному времени выполнения. С другой стороны, алгоритм YOLO использует один полностью связанный слой для прогнозирования сразу.

Как Работает YOLO?

Существует три шага, которые объясняют, как работает алгоритм YOLO.

Переформулирование Обнаружения Объектов как Одной Регрессионной Задачи

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

Обоснование Изображения Глобально

Кроме того, когда алгоритм YOLO делает прогнозы, он обосновывает изображение глобально. Это отличается от регион-ориентированных и скользящих методов, поскольку алгоритм YOLO видит все изображение во время обучения и тестирования на наборе данных и может закодировать контекстную информацию о классах и том, как они появляются.

До YOLO Fast R-CNN был одним из самых популярных алгоритмов обнаружения объектов, который не мог видеть более широкий контекст в изображении, поскольку он использовал фоновые патчи в изображении как объект. Когда сравнивают с алгоритмом Fast R-CNN, YOLO на 50% более точен при обнаружении фоновых ошибок.

Обобщение Представления Объектов

Наконец, алгоритм YOLO также направлен на обобщение представления объектов в изображении. В результате, когда алгоритм YOLO был запущен на наборе данных с естественными изображениями и протестирован на результатах, YOLO превосходил существующие модели R-CNN на широком отрыве. Это потому, что YOLO высоко обобщаем, шансы того, что он сломается при реализации на неожиданных входных данных или в новых доменах, были минимальными.

YOLOv7: Что Новое?

Теперь, когда у нас есть базовое понимание того, что такое модели обнаружения объектов в реальном времени и что такое алгоритм YOLO, пришло время обсудить алгоритм YOLOv7.

Оптимизация Процесса Обучения

Алгоритм YOLOv7 не только пытается оптимизировать архитектуру модели, но также направлен на оптимизацию процесса обучения. Он направлен на использование модулей оптимизации и методов для улучшения точности обнаружения объектов, укрепления стоимости обучения, сохраняя при этом стоимость помех. Эти модули оптимизации можно назвать “тренируемым мешком бесплатных улучшений”.

Грубая до Тонкой Назначение Меток

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

Перепараметризация Модели

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

Расширение и Составная Масштабирование

Алгоритм YOLOv7 также вводит методы расширения и составного масштабирования для использования и эффективного использования параметров и вычислений для обнаружения объектов в реальном времени.

YOLOv7: Связанная Работа

Обнаружение Объектов в Реальном Времени

YOLO в настоящее время является отраслевым стандартом, и большинство детекторов объектов в реальном времени используют алгоритмы YOLO и FCOS (полностью свёрточные одностадийные детекторы объектов). Детектор объектов в реальном времени обычно имеет следующие характеристики

  • Более сильная и быстрая архитектура сети.
  • Эффективный метод интеграции функций.
  • Точный метод обнаружения объектов.
  • Робустная функция потерь.
  • Эффективный метод назначения меток.
  • Эффективный метод обучения.

Алгоритм YOLOv7 не использует методы самообучения и дистилляции, которые часто требуют больших объемов данных. Напротив, алгоритм YOLOv7 использует метод “тренируемого мешка бесплатных улучшений”.

Перепараметризация Модели

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

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

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

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

Масштабирование Модели

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

Одним из наиболее часто используемых методов масштабирования является NAS (поиск архитектуры сети), который автоматически ищет подходящие факторы масштабирования из поисковых систем без каких-либо сложных правил. Основной недостаток использования NAS заключается в том, что это дорогой подход к поиску подходящих факторов масштабирования.

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

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

Фигура выше сравнивает расширенные эффективные слои агрегации (E-ELAN) разных моделей. Предложенный метод E-ELAN сохраняет путь передачи градиента исходной архитектуры, но направлен на увеличение кардинальности добавленных функций с помощью групповой свертки. Этот процесс может улучшить функции, изученные разными картами, и может сделать использование вычислений и параметров более эффективным.

Архитектура YOLOv7

Модель YOLOv7 использует YOLOv4, YOLO-R и масштабированную YOLOv4 в качестве базовой модели. YOLOv7 является результатом экспериментов, проведенных на этих моделях для улучшения результатов и повышения точности модели.

Расширенная Эффективная Слой Агрегации (E-ELAN)

E-ELAN является основным строительным блоком модели YOLOv7 и является производным от существующих моделей эффективной сети, в основном ELAN.

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

Модель CSPVoNet не только учитывает вышеупомянутые параметры, но также анализирует путь градиента, чтобы изучить более разнообразные функции, включая веса разных слоев. Подход позволяет помехам быть намного быстрее и точнее. Архитектура ELAN направлена на проектирование эффективной сети для контроля самого длинного пути градиента, чтобы сеть могла быть более эффективной в обучении и сходимости.

ELAN уже достигла стабильной стадии, независимо от количества вычислительных блоков и длины пути градиента. Стабильное состояние может быть разрушено, если вычислительные блоки будут бесконечно сложены, и скорость использования параметров будет уменьшена. Предложенная архитектура E-ELAN может решить эту проблему, поскольку она использует расширение, перемешивание и слияние кардинальности для непрерывного улучшения способности сети к обучению, сохраняя при этом исходный путь градиента.

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

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

Масштабирование Модели для Моделей на Основе Конкатенации

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

Фигура выше говорит о масштабировании модели для разных моделей на основе конкатенации. Как можно увидеть на фигуре (а) и (б), ширина выхода вычислительного блока увеличивается с увеличением глубины масштабирования модели. В результате ширина входа слоев передачи увеличивается. Если эти методы применяются к модели на основе конкатенации, процесс масштабирования выполняется по глубине, и это изображено на фигуре (в).

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

Тренируемый Мешок Бесплатных Улучшений

“Тренируемый мешок бесплатных улучшений” – это термин, который разработчики используют для описания набора методов или техник, которые могут изменить стратегию обучения или стоимость в попытке повысить точность модели. Итак, что такое тренируемые мешки бесплатных улучшений в YOLOv7? Давайте посмотрим.

Запланированная Перепараметризация Свертки

Алгоритм YOLOv7 использует пути распространения градиента для определения, как идеально объединить сеть с перепараметризованной сверткой. Этот подход YOLOv7 является попыткой противостоять алгоритму RepConv, который, хотя и показал хорошие результаты на модели VGG, показал плохие результаты при прямом применении к моделям DenseNet и ResNet.

Чтобы определить соединения в сверточном слое, алгоритм RepConv объединяет 3×3 свертку и 1×1 свертку. Если проанализировать алгоритм, его производительность и архитектуру, можно увидеть, что RepConv разрушает конкатенацию в DenseNet и остаток в ResNet.

Изображение выше изображает запланированную перепараметризованную модель. Можно увидеть, что алгоритм YOLov7 обнаружил, что слой в сети с конкатенацией или остаточными соединениями не должен иметь тождественное соединение в алгоритме RepConv. Следовательно, можно переключиться на RepConvN без тождественных соединений.

Грубая для Вспомогательной и Тонкая для Ведущей Потери

Глубокое надзор – это ветвь информатики, которая часто находит применение в процессе обучения глубоких сетей. Основной принцип глубокого надзора заключается в том, что он добавляет дополнительную вспомогательную голову в средних слоях сети вместе с浅окими весами сети с помощью вспомогательной потери в качестве руководства. Алгоритм YOLOv7 называет голову, ответскую за окончательный выход, “ведущей головой”, а вспомогательную голову – “вспомогательной головой”.

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

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

Ведущая Голова, Руководимая Назначением Меток

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

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

Грубая до Тонкой Ведущая Голова, Руководимая Назначением Меток

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

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

Фигура выше объясняет использование тренируемого мешка бесплатных улучшений в YOLOv7. Она изображает грубую для вспомогательной головы и тонкую для ведущей головы. Когда мы сравниваем модель с вспомогательной головой (б) с нормальной моделью (а), мы можем увидеть, что схема в (б) имеет вспомогательную голову, в то время как ее нет в (а).

Фигура (в) изображает общий независимый назначатель меток, в то время как фигура (г) и фигура (д) представляют ведущего назначателя и грубую до тонкой ведущую назначаемую метку, используемую YOLOv7.

Другие Тренируемые Мешки Бесплатных Улучшений

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

  • Нормализация пакетов в технологии Conv-Bn-Activation: Эта стратегия используется для соединения сверточного слоя напрямую с слоем нормализации пакетов.
  • Неявные знания в YOLOR: YOLOv7 объединяет эту стратегию с картой функций свертки.
  • Модель EMA: Модель EMA используется в качестве окончательной модели ссылки в YOLOv7, хотя ее основное использование заключается в методе учителя-среднего.

YOLOv7: Эксперименты

Настройка Эксперимента

Алгоритм YOLOv7 использует набор данных Microsoft (MSFT ) COCO для обучения и проверки своей модели обнаружения объектов, и не все эти эксперименты используют предварительно обученную модель. Разработчики использовали набор данных для обучения 2017 года для обучения и использовали набор данных для проверки 2017 года для выбора гиперпараметров. Наконец, результаты обнаружения объектов YOLOv7 сравниваются с моделями обнаружения объектов на уровне состояния искусства.

Разработчики разработали базовую модель для GPU края (YOLOv7-tiny), нормальной GPU (YOLOv7) и облачной GPU (YOLOv7-W6). Кроме того, алгоритм YOLOv7 также использует базовую модель для масштабирования модели в соответствии с разными требованиями обслуживания и получает разные модели. Для алгоритма YOLOv7 стековое масштабирование выполняется на шее, и предложенные соединения используются для масштабирования глубины и ширины модели.

Базовые Линии

Алгоритм YOLOv7 использует предыдущие модели YOLO и алгоритм обнаружения объектов YOLOR в качестве базовой линии.

Фигура выше сравнивает базовую линию модели YOLOv7 с другими моделями обнаружения объектов, и результаты довольно очевидны. Когда сравнивают с алгоритмом YOLOv4, YOLOv7 использует на 75% меньше параметров, на 15% меньше вычислений и имеет на 0,4% более высокую точность.

Сравнение с Моделями Обнаружения Объектов на Уровне Состояния Искусства

Фигура выше показывает результаты, когда YOLOv7 сравнивается с моделями обнаружения объектов на уровне состояния искусства для мобильных и общих GPU. Можно увидеть, что метод, предложенный алгоритмом YOLOv7, имеет лучший баланс скорости и точности.

Анализ Вариантов: Предложенный Составной Метод Масштабирования

Фигура выше сравнивает результаты использования разных стратегий для масштабирования модели. Стратегия масштабирования в модели YOLOv7 масштабирует глубину вычислительного блока в 1,5 раза и масштабирует ширину в 1,25 раза.

Когда сравнивают с моделью, которая масштабирует только глубину, модель YOLOv7 работает лучше на 0,5%, используя меньше параметров и вычислительной мощности. С другой стороны, когда сравнивают с моделями, которые масштабируют только глубину, точность YOLOv7 улучшается на 0,2%, но количество параметров необходимо масштабировать на 2,9%, а вычисления на 1,2%.

Предложенная Запланированная Перепараметризованная Модель

Чтобы проверить общность предложенной перепараметризованной модели, алгоритм YOLOv7 использует ее на резидуальных и конкатенационных моделях для проверки. Для процесса проверки алгоритм YOLOv7 использует 3-стековый ELAN для модели на основе конкатенации и CSPDarknet для резидуальной модели.

Для модели на основе конкатенации алгоритм заменяет 3×3 сверточные слои в 3-стеком ELAN на RepConv. Фигура ниже показывает подробную конфигурацию запланированного RepConv и 3-стекового ELAN.

Кроме того, при работе с резидуальной моделью алгоритм YOLOv7 использует обратный темный блок, поскольку исходный темный блок не имеет 3×3 сверточного блока. Фигура ниже показывает архитектуру обратного CSPDarknet, который меняет местами 3×3 и 1×1 сверточные слои.

Предложенная Вспомогательная Потеря для Вспомогательной Головы

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

Фигура выше содержит результаты исследования предложенной вспомогательной головы. Можно увидеть, что общая производительность модели увеличивается с увеличением вспомогательной потери. Кроме того, назначение меток, руководимое ведущей головой, предложенное YOLOv7, работает лучше, чем независимые стратегии назначения меток.

Результаты YOLOv7

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

Фигура выше сравнивает модель YOLOv7 с другими алгоритмами обнаружения объектов, и можно четко увидеть, что YOLOv7 превосходит другие модели обнаружения объектов в плане средней точности (AP) и скорости помех.

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

Вот некоторые дополнительные наблюдения из результатов YOLOv7 и производительности.

  1. YOLOv7-Tiny – это самая маленькая модель в семействе YOLO, с более чем 6 миллионами параметров. YOLOv7-Tiny имеет среднюю точность 35,2% и превосходит модель YOLOv4-Tiny с сопоставимыми параметрами.
  2. Модель YOLOv7 имеет более 37 миллионов параметров и превосходит модели с большим количеством параметров, такие как YOLov4.
  3. Модель YOLOv7 имеет самый высокий показатель mAP и FPS в диапазоне от 5 до 160 FPS.

Заключение

YOLO или “Вы Глянули Только Однажды” – это модель обнаружения объектов на уровне состояния искусства в современном компьютерном зрения. Алгоритм YOLO известен своей высокой точностью и эффективностью, и в результате находит широкое применение в индустрии обнаружения объектов в реальном времени. С момента введения первого алгоритма YOLO в 2016 году эксперименты позволили разработчикам непрерывно улучшать модель.

Модель YOLOv7 – это последнее дополнение к семейству YOLO, и это самый мощный алгоритм YOLO на сегодняшний день. В этой статье мы говорили о фундаментальных принципах YOLOv7 и попытались объяснить, что делает YOLOv7 так эффективным.

"Инженер по профессии, писатель по сердцу". Кунал - технический писатель с глубокой любовью и пониманием ИИ и МО, посвященный упрощению сложных концепций в этих областях посредством своей увлекательной и информативной документации.