Вводное руководство по основам и алгоритмам работы детектора объектов YOLOv4

Добро пожаловать в мини-сериал о YOLOv4. В этой статье будет рассмотрен общий алгоритм и основные компоненты, предложенные в окончательной разработке Yolov4, что обеспечивает оптимальную сходимость между скоростью и точностью.

YOLOv4 - Версия 0: Введение

YOLOv4 - Версия 1: Мешок халявы

YOLOv4 - Версия 2: Мешок со скидками

YOLOv4 - версия 3: предлагаемый рабочий процесс

YOLOv4 - Версия 4: окончательный вердикт

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

Не жертвуя ни тем, ни другим, ему удается превзойти yolov3 и другие детекторы объектов в реальном времени, используя оптимальное сочетание методов из BoF (Bag of Freebies) и BoS (сумка со специальными предложениями) вместе с архитектурным дизайном, который обеспечивает эффективный детектор объектов в реальном времени.

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

Я считаю, что это шаг в правильном направлении, поскольку иногда исследователи настолько увлечены своей идеей, что они вообще забывают о массовой применимости своей работы.

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

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

Задача автора - найти оптимальный баланс между

  • Разрешение входной сети,
  • Номер сверточного слоя,
  • Номер параметра (размер_фильтра² * фильтры * канал / группы),
  • Количество выходов слоя (фильтров).

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

  • CSPDarknet53 [9]
  • CSPResNext50 [9]

Главный результат этих исследований показал превосходство CSPDarknet53 в задачах обнаружения объектов COCO, а CSPResNext50 - в классификации объектов на ILSVRC2012 (ImageNet) и, следовательно, выбранный в качестве основы для yolov4.

В архитектуре yolov4 есть два основных компонента.

  1. Плотные блоки
  2. Межэтапные частичные сети (CSP)
  3. Сеть агрегации путей (PANet)
  4. Объединение пространственных пирамид (SPP)

Для более подробного объяснения вышеупомянутых компонентов перейдите по ссылке. Мы рассмотрели это в версии этого мини-сериала, посвященной специальной сумке.

Плотные блоки

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

Вместо использования вывода только последнего слоя, Hi принимает в качестве входных данных вывод всех предыдущих слоев, а также оригинал. т.е. x ₀, x ₁,… и xᵢ ₋₁. Каждый Hi ниже выводит четыре карты функций. Следовательно, на каждом слое количество карт признаков увеличивается на четыре - скорость роста. [13]

Межэтапные частичные сети (CSP)

CSPNet разделяет входные карты функций DenseBlock на две части.

  • Первая часть x₀ ’ обходит DenseBlock и становится частью ввода для следующего слоя перехода.
  • Вторая часть x₀ ’’ будет проходить через блок Dense, как показано ниже.

Этот новый дизайн снижает вычислительную сложность за счет разделения входных данных на две части - только одна проходит через плотный блок.

CSPDarknet53

YOLOv4 использует соединения CSP, указанные выше, с Darknet-53 ниже в качестве основы для извлечения функций.

В структуре магистрали Yolov4 приоритет отдавался более крупным восприимчивым полям и лучшим методам агрегирования функций.

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

Агрегирование функций - это объединение функций с разных уровней в основу для учета объектов различного масштаба на сцене.

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

Более высокий размер входной сети (разрешение) для обнаружения нескольких объектов небольшого размера.

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

Результаты абляции на рис. 2 ясно показывают, что CSPDarknet53 [9] превосходит остальные, когда дело касается задачи обнаружения объектов. У него больше параметров (27,6M) и больший размер воспринимающего поля (725x725).

Подробные сведения об архитектуре и предварительно обученные версии CSPDarknet53 см. по ссылке

Блок SPP (Spatial Pyramid Matching) [10] по сравнению с CSPDarknet53 имеет три основных преимущества

  • Значительно увеличивает рецептивное поле,
  • Выделяет наиболее важные особенности контекста и
  • Практически не вызывает снижения скорости работы сети.

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

В YOLO SPP модифицируется для сохранения выходного пространственного измерения. Максимальный пул применяется к скользящему ядру размером, скажем, 1 × 1, 5 × 5, 9 × 9, 13 × 13. Пространственное измерение сохраняется. Карты функций из разных размеров ядра затем объединяются вместе в качестве выходных данных. [12]

На диаграмме ниже показано, как SPP интегрирован в YOLO. [12]

PANet [8] используется для агрегирования параметров с разных уровней магистрали для разных масштабов вместо FPN, используемого в YOLOv3.

Авторы воздержались от использования пакетной нормализации между графическими процессорами (CGBNor SyncBN) или дорогостоящих специализированных устройств. Благодаря такой воспроизводимости результатов yolov4 на обычном графическом процессоре, например GTX 1080Ti или RTX2080Ti становится возможным.

Выбор BoF и BoS

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

Краткое описание кандидатов, рассматриваемых для архитектуры Yolov4, выглядит следующим образом: -

  • Активации: ReLU, Leaky-ReLU, параметрический-ReLU, ReLU6, SELU, Swish или Mish.
  • Потеря регрессии ограничивающего прямоугольника: MSE, IoU, GIoU, CIoU, DIoU
  • Увеличение объема данных: CutOut, MixUp, CutMix.
  • Метод регуляризации: DropOut, DropPath, Spatial DropOut или DropBlock.
  • Нормализация сетевых активаций по их среднему значению и дисперсии: пакетная нормализация (BN), пакетная нормализация между GPU (CGBN или SyncBN), нормализация отклика фильтра (FRN) или кросс-итерационная пакетная нормализация (CBN). )
  • Пропускаемые соединения: остаточные соединения, взвешенные остаточные соединения, взвешенные остаточные соединения с несколькими входами или кросс-этапные частичные соединения (CSP) [9].

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

PReLU и SELU сложно обучить, а ReLU6 специально разработан для сети квантования, поэтому не используется для обучения.

В статье Drop-Block были подробные сравнения и лучшие результаты по сравнению с другими аналогами, поэтому она была выбрана в качестве метода регуляризации.

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

Дополнительные улучшения

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

Они представляют новый метод увеличения данных - Mosaic.

Мозаика

  • Mosaic - это новая стратегия увеличения данных, которая объединяет части из 4 обучающих изображений в одно обучающее изображение для изучения различного контекста.
  • CutMix [3] смешивает только 2 входных изображения.
  • Это побуждает модель локализовать различные типы сцен с объектами в разных частях кадра. [5]
  • Кроме того, пакетная нормализация вычисляет статистику активации для 4 разных изображений на каждом слое. Это значительно снижает потребность в большом размере мини-партии.
  • Это важно, поскольку увеличение размера пакета при высоком разрешении ввода для задач обнаружения объектов с имеющимися на рынке графическими процессорами невозможно.

Также рассматривались другие стратегии увеличения, такие как MixUp, CutOut и CutMix.

Самостоятельное обучение (SAT)

Самостоятельное обучение (SAT) также представляет собой новую технику увеличения данных, которая работает в 2 этапа вперед-назад.

Этот метод использует состояние модели для информирования об уязвимостях путем преобразования входного изображения. [5] Он атакует, чем протак: P

  • На 1-м этапе нейронная сеть изменяет исходное изображение вместо веса сети. Таким образом, нейронная сеть выполняет враждебную атаку на себя, искажая исходный сигнал, чтобы создать обман, что на изображении нет желаемого объекта.
  • Первый этап можно представить как преобразование исходного сигнала в его твердую форму.
  • На 2-м этапе нейронная сеть обучается обнаруживать объект на этом измененном изображении (жесткий образец) обычным способом.

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

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

Перекрестная мини-пакетная нормализация (CmBN)

  • Модифицированная версия CBN (Cross Batch Normalization) [6].
  • С CBN эффективное количество примеров, используемых для вычисления статистики для текущей итерации, в k раз больше, чем для исходной BN.
  • При обучении градиенты потерь передаются обратно к сетевым весам и активациям на текущей итерации. Те из предыдущих итераций являются фиксированными и не получают градиентов. Следовательно, вычислительная стоимость CBN при обратном распространении такая же, как и для BN.
  • Основное отличие перекрестной мини-пакетной нормализации заключается в сборе статистики внутри всего пакета вместо сбора статистики внутри одного мини-пакета.

Модифицированный SAM

  • Преобразует схему пространственного внимания в схему точечного внимания, удаляя операции объединения в прежнюю [7].

Измененная PAN

  • Заменить ярлык соединения PAN [8] на конкатенацию.

Предлагаемая архитектура

После тщательного изучения методов автор разработал следующую архитектуру для Yolov4.

YOLOv4 состоит из

  • Магистраль: CSPDarknet53 [9]
  • Шея: SPP [10], PAN [8]
  • Голова: YOLOv3 [63]

YOLO v4 использует

  • Пакет бесплатных услуг (BoF) для магистрали: увеличение данных CutMix и Mosaic, регуляризация DropBlock, сглаживание меток классов.
  • Пакет специальных предложений (BoS) для магистрали: активация Mish, частичные межэтапные соединения (CSP), взвешенные остаточные соединения с несколькими входами (MiWRC)
  • Мешок халявы (BoF) для детектора: потеря CIoU, CmBN, регуляризация DropBlock, увеличение данных мозаики, самосостязательное обучение, устранение чувствительности сетки, использование нескольких якорей для единой наземной истины, планировщик косинусного отжига , Оптимальные гиперпараметры, Случайные формы обучения
  • Пакет специальных предложений (BoS) для детектора: активация мишени, блок SPP, блок SAM, блок агрегации путей PAN, DIoU-NMS

Следующая статья: YOLOv4 - Версия 4: окончательный вердикт

Следите за обновлениями :)



Пожалуйста, ознакомьтесь с остальными частями всей нашей серии о Yolov4 на нашей странице VisionWizard.

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

Спасибо за уделенное время. Оставайтесь в безопасности :)

использованная литература

[1] YOLOv4: Оптимальная скорость и точность обнаружения объектов CVPR 2020

[2] Пополнение данных со случайным стиранием. 2017 г.

[3] CutMix: стратегия регуляризации для обучения сильных классификаторов с локализуемыми функциями Международная конференция IEEE / CVF по компьютерному зрению (ICCV) 2019

[4] DropBlock: метод регуляризации сверточных сетей NeurIPS2018

[5] Статья об увеличении данных в Yolov4

[6] Cross-Iteration Batch Normalization

[7] Санхён У, Чончан Пак, Джун-Ён Ли и ИнСоквеон. CBAM: модуль сверточного блока внимания. В трудах Европейской конференции по компьютерному зрению (ECCV), страницы 3–19, 2018

[8] Шу Лю, Лу Ци, Хайфан Цинь, Цзяньпин Ши и Цзяя Цзя. Сеть агрегации пути, например сегментация. В материалах конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), страницы 8759–8768, 2018 г.

[9] Цзянь-Яо Ван, Хун-Юань Марк Ляо, Юэ-Хуа Ву, Пин-Ян Чен, Цзюнь-Вэй Се и И-Хау Йе. CSPNet: новая магистраль, которая может улучшить возможности обучения cnn. Труды семинара конференции IEEE по компьютерному зрению и распознаванию образов (CVPR Workshop), 2020

[10] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Объединение пространственных пирамид в глубоких сверточных сетях для визуального распознавания. IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), 37 (9): 1904–1916,2015

[11] Джозеф Редмон и Али Фархади. YOLOv3: постепенное улучшение, 2018

[12] Статья о yolov4

[13] Гао Хуан, Чжуан Лю, Лоренс Ван Дер Маатен и Килиан К. Вайнбергер. Плотно связанные сверточные сети. Материалы конференции IEEE по компьютерному зрению и распознаванию образов (CVPR), страницы 4700–4708, 2017

[14] DC-SPP-YOLO: YOLO на основе плотного соединения и пространственной пирамиды для обнаружения объектов