Введение в SSD

Single-shot MultiBox Detector - это одноэтапный алгоритм обнаружения объектов. Это означает, что, в отличие от двухэтапных моделей, твердотельные накопители не нуждаются в этапе генерации первоначальных предложений объекта. Это, как правило, делает его более быстрым и эффективным, чем двухэтапные подходы, такие как Faster R-CNN, хотя он жертвует производительностью при обнаружении небольших объектов для увеличения скорости.

В исходной статье для SSD авторы предложили использовать предустановленные якорные блоки, чтобы заменить создание региональных предложений. Кроме того, для учета объектов разного размера SSD использует более одной карты функций для обнаружения. На диаграмме, показанной выше, используются 6 карт функций: Conv4_3, Conv7, Conv8_2, Conv9_2, Conv10_2 и Conv11_2.

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

Деконволюционный детектор одиночных импульсов (DSSD)

SSD состоит из функции извлечения и обнаружения. Чтобы добиться большей производительности, был предложен деконволюционный детектор одиночных импульсов для улучшения обеих частей. Во-первых, авторы вводят использование ResNet-101, современного классификатора того времени, в качестве средства извлечения функций вместо VGGNet, как это было в исходной статье. Кроме того, деконволюционные слои используются в части обнаружения для увеличения разрешения карт признаков, создаваемых экстрактором признаков. Теоретически это позволит лучше обнаруживать мелкие объекты, обеспечивая дополнительный крупномасштабный контекст.

Однако авторы отметили, что «наивная реализация не увенчалась успехом». Чтобы решить эту проблему, они создали модуль деконволюции и модуль прогнозирования, что позволило эффективно использовать деконволюционные слои и ResNet-101.

ResNet-101 против VGG-19

Доказано, что в задачах классификации изображений остаточные сети лучше, чем VGG, поскольку они обеспечивают пропускные соединения между сверточными блоками, тем самым уменьшая эффекты исчезающего градиента, позволяя сетям идти глубже. Фактически, ResNets обычно могут доходить до 101 уровня, тогда как сети VGG могут доходить только до 19. Поскольку более глубокие сети обычно лучше подходят для классификации изображений, ResNets обычно более точны, чем VGG.

Однако простая замена экстрактора функций на основе VGG в SSD на ResNet-101 не приводит к повышению производительности. Следовательно, необходим специальный модуль прогнозирования.

Модуль прогнозирования

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

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

Как показано в исследовании абляции на Pascal VOC 2007, проведенном авторами, SSD с вариантом модуля прогнозирования C дает более высокий MAP 77,1 по сравнению с Vanilla SSD (вариант модуля прогнозирования A) с MAP 76,9, тем самым доказывая, что PM помогают увеличить представление.

Модуль деконволюции

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

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

Общая архитектура

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

Следует отметить, что DSSD ужасно похож на архитектуру автокодировщика. Фактически, авторы упомянули, что они черпали вдохновение из модели Stacked Hourglass Model, которая имеет архитектуру, аналогичную автокодировщику. Однако этап декодирования короче, чем часть кодировщика, из-за соображений скорости обнаружения, вычислительных ресурсов и отсутствия существующих моделей для декодеров, обученных задаче классификации изображений.

Обучение

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

Для якорных боксов авторы предложили добавить другое соотношение сторон. Первоначально используя кластеризацию K-средних на обучающих блоках с двумя кластерами, авторы добавляют еще один кластер, если ошибка может быть улучшена более чем на 20%. Результат показывает, что есть 7 кластеров для ограничивающих рамок. Следовательно, используется дополнительное соотношение сторон 1,6.

Результаты

  1. Для небольшого размера входного изображения (около 300x300) использование ResNet-101 не увеличивает производительность. Предполагается, что, поскольку ResNet-101 очень глубокий, размер входного изображения должен быть достаточно большим, чтобы пространственная информация сохранялась после тщательной обработки.
  2. Использование предложенных модулей приводит к большей точности
  3. DSSD-513 работает лучше, чем (тогда) современный детектор R-FCN на 1%

Ссылки

Fu, C.Y. и др .: Dssd: Деконволюционный детектор одиночного выстрела. Препринт arXiv arXiv: 1701.06659 (2017)

Лю В., Ангелов Д., Эрхан Д., Сегеди К., Рид С., Фу К. и Берг А. (2018). SSD: детектор Single Shot MultiBox.

А. Ньюэлл, К. Ян и Дж. Денг, Наборные сети песочных часов для оценки позы человека, Arxiv.org, 2018. [Онлайн]. Доступно: https://arxiv.org/abs/1603.06937.