Использование однократных детекторов объектов считается более быстрой и эффективной альтернативой двухступенчатым детекторам, таким как Faster R-CNN. Полное удаление предложений объектов в одноступенчатых детекторах позволяет достичь высоких скоростей за счет точности. Deeply Supervised Object Detector (DSOD), вариант оригинального Single Shot MultiBox Detector (SSD), пытается смягчить эту проблему.

Принципы и интуиция

Авторы документа DSOD исходили из следующих принципов разработки детектора объектов:

Предложение бесплатно

В целом существует три типа детекторов объектов. Во-первых, R-CNN и Fast R-CNN, которые используют внешний генератор предложений, например, алгоритм выборочного поиска, для предложения объектов. Во-вторых, Faster R-CNN и R-FPN, которые используют интегрированный генератор предложений, такой как региональная сеть предложений (RPN), для создания предложений. Наконец, SSD и YOLO, которые не требуют предложений, превращая локализацию в проблему регрессии, то есть предсказывая смещения якорных рамок от фактической ограничивающей рамки объектов.

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

Глубокий надзор

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

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

Мы видим, как это может превратиться в проблему: умножьте 0,9 на 0,8, и вы получите 0,72, число меньше начальных значений. По мере того, как сети становятся глубже, все больше и больше, возможно, небольших чисел умножаются вместе. Таким образом, окончательный градиент становится настолько малым, что более ранние части модели не могут ничему научиться.

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

В то время как DS изначально выполнялся явно путем присоединения вспомогательных потерь, например, в Inception v4, существуют реализации, которые применяют DS неявно, например, предлагаемая архитектура DenseNet. Таким образом, DSOD использует неявный DS, такой как DenseNet, для смягчения исчезающих градиентов.

Переход без объединения

Переход без объединения слоев — это слои между плотными блоками. Слой выполняет операцию пакетной нормализации, за которой следует свертка 1x1.

Как следует из названия, в этом слое отсутствует слой среднего пула 2x2 по сравнению с переходным слоем, используемым в DenseNet.

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

Стволовой блок

Базовый блок используется для изменения исходной архитектуры DenseNet. Вместо использования слоя свертки 7x7 с шагом 2, за которым следует операция MaxPooling 3x3 с шагом 2, DSOD использует стек слоев свертки 3x3, за которым следует MaxPooling 2x2. Первый слой свертки имеет шаг 2, тогда как остальные используют шаг 1. Это сделано для минимизации потери информации из необработанного входного изображения, поскольку меньшие размеры фильтра и шага, как правило, сохраняют информацию.

Плотная структура предсказания

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

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

Операция понижения частоты дискретизации выполняется с использованием максимального объединяющего слоя 2x2 с шагом 2, за которым следует слой свертки 1x1 с шагом 1. Эта операция предоставляет каждой шкале карты признаков с пониженной частотой дискретизации из всех предыдущих шкал, что по сути то же самое, что и плотное послойное соединение, представленное в DenseNet, отсюда и его название.

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

Из-за использования архитектуры, подобной DenseNet, DSOD имеет несколько дополнительных гиперпараметров для настройки. К ним относятся:

Каналы в первом сверточном слое

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

Каналы в слое узкого места

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

Скорость роста

Предполагая, что каждый слой создает K карт объектов, тогда n-й слой будет иметь K₀ + K ×(n-1 ) карты характеристик в качестве входных данных из-за плотных соединений внутри плотного блока, где K₀ — изначальное количество каналов (для изображений RGB K₀ = 3). Таким образом, K называется скоростью роста. Для DSOD чем выше скорость роста, тем выше точность. Фактически, при использовании K = 48 вместо K = 16 в наборе данных Pascal VOC наблюдалось увеличение средней точности (mAP) на 4,8%.

Коэффициент сжатия в переходных слоях

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

Входные данные n-го слоя = K₀ + K ×(n-1)

Следовательно, между плотными блоками переходные слои уменьшают количество карт признаков. Если плотный блок выводит M карту объектов, то переходные слои будут принимать все m карт объектов в качестве входных данных и создавать пол(W×M) карты характеристик. Например, если W = 0,5 и M = 45, то переходный слой выдаст пол (0,5 × 45) = 22 карты объектов.

Однако DSOD использует W = 1, что означает, что сжатие не выполняется, т. е. количество карт объектов после слоя перехода останется прежним. W= 1 приводит к повышению mAP на 2,9%, чем W= 0,5.

Детали обучения

Стратегия обучения DSOD во многом аналогична стратегии SSD с точки зрения увеличения данных. Основное отличие заключается в регуляризации. Нормализация L2 используется для масштабирования нормы признака до 20 на всех выходных данных. Это отличается от использования нормализации L2 в SSD, которая применяется только к первой шкале.

Результаты

Для проверки архитектурных изменений было проведено несколько тестов на следующих наборах данных.

  1. PASCAL VOC 2007: mAP 77,7%
  2. PASCAL VOC 2012: mAP 76,3%
  3. MS COCO + PASCAL VOC 2007: mAP 81,7%

Для сравнения: эти показатели выше менее чем на 1% по сравнению с моделями SSD и немного хуже, менее чем на процентиль, по сравнению с полностью сверточной сетью на основе регионов (R-FCN).

Заключение и размышления

DSOD — одноступенчатый детектор. Таким образом, он меньше и быстрее по сравнению с двухступенчатыми детекторами, такими как Faster R-CNN. Это достигается за счет использования стратегий, повышающих эффективность сети. Тем не менее, есть некоторые углы, которые нельзя срезать. Например, коэффициент сжатия и скорость роста должны были быть большими для работы детектора.

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