FPN был предложен в 2017 году в документе под названием «Пирамидные сети признаков для обнаружения объектов». Feature Pyramid Network, или FPN, представляет собой средство извлечения признаков, которое берет одномасштабное изображение произвольного размера в качестве входных данных и выводит карты признаков пропорционального размера на нескольких уровнях полностью сверточным способом. Этот процесс не зависит от базовых сверточных архитектур. Таким образом, он действует как универсальное решение для построения пирамид признаков внутри глубоких сверточных сетей для использования в таких задачах, как обнаружение объектов.

АРХИТЕКТУРА:

Цель состоит в том, чтобы использовать пирамидальную иерархию функций ConvNet и построить пирамиду функций с семантикой высокого уровня. Мы фокусируемся на предложениях со скользящим окном (RPN) и детекторах на основе регионов (Fast R-CNN). Наш метод берет изображение в одном масштабе и выводит карты объектов пропорционального размера на нескольких уровнях, независимо от сверточной архитектуры магистрали. Построение нашей пирамиды включает путь «снизу вверх», путь «сверху вниз» и боковые связи. В этой статье мы представили результаты с использованием ResNets.

  1. Путь снизу вверх

Путь «снизу вверх» — это расчет с прямой связью магистральных сверточных сетей, который вычисляет иерархию объектов, состоящую из карт объектов в нескольких масштабах с шагом масштабирования 2. Для пирамиды объектов для каждого этапа определяется один уровень пирамиды. Выходные данные последнего слоя каждого этапа используются в качестве эталонного набора карт объектов.

В частности, для ResNets мы используем активацию функций, выводимую последним остаточным блоком каждого этапа. Мы обозначаем выход этих последних остаточных блоков как {C2, C3, C4, C5} для выходов conv2, conv3, conv4 и conv5 и отмечаем, что они имеют шаги {4, 8, 16, 32} пикселей по отношению к входное изображение. Мы не включаем conv1 в пирамиду из-за большого объема памяти.

2. Путь сверху вниз и боковое соединение

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

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

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

Затем карта объединяется с соответствующей восходящей картой (которая подвергается сверточному слою 1 × 1 для уменьшения размеров канала) путем поэлементного добавления. Этот процесс повторяется до тех пор, пока не будет сгенерирована карта наилучшего разрешения. Чтобы начать итерацию, мы просто присоединяем сверточный слой 1 × 1 к C5, чтобы создать карту большего разрешения.

Наконец, мы добавляем свертку 3×3 к каждой объединенной карте, чтобы сгенерировать окончательную карту объектов, которая должна уменьшить эффект алиасинга при повышении дискретизации. Этот окончательный набор карт признаков называется {P2, P3, P4, P5}, что соответствует {C2, C3, C4, C5}, которые соответственно имеют одинаковые пространственные размеры.

В этой статье они установили d = 256, и, таким образом, все дополнительные сверточные слои имеют 256-канальные выходные данные. В этих дополнительных слоях нет нелинейностей, которые, как мы эмпирически обнаружили, оказывают незначительное влияние.

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

Полученные результаты :

Результаты RPN

Размещение FPN в RPN улучшает AR (среднее запоминание: способность захватывать объекты) до 56,3, что на 8,0 пунктов выше базового уровня RPN. Производительность на мелких объектах увеличена с большим отрывом на 12,9 балла.

Результаты Faster R-CNN

Faster R-CNN на основе FPN обеспечивает время вывода 0,148 секунды на изображение на одном графическом процессоре NVIDIA M40 для ResNet-50, в то время как базовый показатель ResNet-50 с одним масштабом работает за 0,32 секунды. Базовое сравнение для FPN с использованием Faster R-CNN. (FPN вводит небольшую дополнительную плату за эти дополнительные уровни в FPN, но имеет меньший вес в реализации FPN.)

Результаты по набору данных COCO

FPN вполне может конкурировать с самыми современными детекторами. Фактически, он побеждает победителей конкурса COCO 2016 и 2015.

ЗАКЛЮЧЕНИЕ :

  1. FPN сам по себе не является детектором объектов. Это средство извлечения признаков, которое работает с детекторами объектов.
  2. FPN стремится решить проблему повторного использования функций и ухудшения разрешения с помощью нисходящей архитектуры, которая сочетает в себе высокоуровневые, семантически богатые функции с низкоуровневыми, семантически плохими функциями.
  3. FPN вводит латеральные соединения, которые позволяют комбинировать признаки пути «снизу вверх» с признаками пути «сверху вниз», что позволяет создать пирамиду признаков, которая поддерживает как разрешение, так и семантическую информацию.
  4. FPN эффективен в вычислительном отношении и может быть обучен от начала до конца с помощью стандартных алгоритмов обратного распространения.
  5. Было показано, что FPN улучшает производительность моделей обнаружения объектов, особенно на небольших объектах и ​​при низком разрешении.
  6. FPN был принят в нескольких современных моделях обнаружения объектов, включая Faster R-CNN, RetinaNet и Mask R-CNN.
  7. FPN также можно использовать в других задачах компьютерного зрения, таких как семантическая сегментация и сегментация экземпляров.

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

Ссылка на документ FPN: https://arxiv.org/abs/1612.03144

Ссылка на документ ResNet: https://arxiv.org/abs/1512.03385

Реализация в Pytorch

Блокнот Kaggle: https://www.kaggle.com/code/qdpatidar687/fpn-on-resnet18