Перейти к основному содержимому

Сеть пирамидальных признаков

Сеть пирамидальных признаков (feature pyramid network, FPN, [1]) - скорее не отдельный метод детектирования объектов, а концепция улучшенного извлечения признаков, показавшая улучшение в моделях Fast/Faster R-CNN.

Ниже показано сравнение архитектур извлечения признаков в архитектурах YOLO (a), SSD (b) и в предложенной архитектуре FPN (c) [1]:

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

В архитектуре YOLO (a) детектор работает на последнем свёрточном слое, что позволяет точно определять тип объекта, но его координаты определяются неточно из-за низкого пространственного разрешения используемых карт признаков (eature maps). Также у YOLO возникают проблемы с детекцией малых объектов, различимых лишь в высоком разрешении.

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

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

Это даёт следующие преимущества:

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

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

В архитектуре FPN предлагалось производить детекцию серией одинаковых (независимо от слоя декодировщика) свёрточных слоёв, настроенных опознавать класс и уточнять координаты выделяющей рамки (bounding box) относительно шаблонных рамок (anchor boxes), использованных в SSD.

В сети FPN в декодировщике пространственное разрешение повышается на каждом слое одним из методов повышения разрешения (в оригинальной статье использовалась интерполяция ближайшим соседом). Для того, чтобы лучше сохранить информацию о расположениях объектов, соответствующее внутреннее представление с кодировочной части прибавлялось к внутреннему представлению декодировочной части, что на рисунке показано горизонтальными связями между слоями. Перед прибавлением внутреннее кодировочное представление обрабатывалось свёртой 1x1, чтобы выходное число каналов совпало с числом каналов представления в декодировщике. В декодировщике на каждом слое использовалось одно и то же число каналов (256), поскольку на каждом слое впоследствии применялась одна и та же модель детекции. Результат суммы представлений в кодировщике и декодировщике обрабатывался свёрткой 3x3, чтобы сгладить артефакты интерполяции при повышении разрешения, после чего результат передавался на следующий слой декодировщика.

Литература

  1. Lin T. Y. et al. Feature pyramid networks for object detection //Proceedings of the IEEE conference on computer vision and pattern recognition. – 2017. – С. 2117-2125.