Метод предложения сегмента экземпляра, управляемый сверточными нейронными сетями

На этот раз рассматривается DeepMask от Facebook AI Research (FAIR). Начиная с AlexNet, высокая точность достигается за счет сверточной нейронной сети (CNN) для классификации изображений, многочисленные подходы CNN разработаны для других задач, таких как обнаружение объектов, семантическая сегментация и сегментация экземпляров. DeepMask - это подход CNN, например, сегментация.

  • Классификация изображения: классифицируйте основную категорию объекта в изображении.
  • Обнаружение объекта: определите категорию объекта и определите положение, используя ограничивающую рамку для каждого известного объекта на изображении.
  • Семантическая сегментация. Определите категорию объекта каждого пикселя для каждого известного объекта в изображении. Ярлыки учитывают классы.
  • Сегментация экземпляров: идентифицируйте каждый экземпляр объекта каждого пикселя для каждого известного объекта в изображении. Ярлыки зависят от экземпляра.

Некоторые отличия от семантической сегментации

  • Больше понимания об экземплярах.
  • Рассуждения о прикусе.
  • Незаменим для таких задач, как подсчет количества объектов.

Некоторые отличия от обнаружения объектов

  • Ограничивающая рамка - это очень грубая граница объекта, многие пиксели, не относящиеся к обнаруженному объекту, также включаются в ограничивающую рамку.
  • А Non Maximum Suppression (NMS) будет подавлять закрытые или наклонные объекты.

Таким образом, Сегментация экземпляров - это повышение сложности на один уровень !!!

А DeepMask - это статья NIPS за 2015 год, получившая более 300 цитирований. Хотя это статья, опубликованная в 2015 году, это одна из первых статей, использующих, например, сегментацию CNN. Стоит изучить его, чтобы узнать о развитии сегментации экземпляров на основе глубокого обучения. (Сик-Хо Цанг @ средний)

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

Что покрывается

  1. Модельная архитектура
  2. Совместное обучение
  3. Вывод полной сцены
  4. Результаты

1. Модельная архитектура

Слева внизу: положительные образцы

Метка yk = 1 дается для k -го положительного образца. Чтобы образец был положительным, необходимо соответствие двум критериям:

  • Патч содержит объект примерно по центру входного патча.
  • Объект полностью содержится в патче и находится в заданном диапазоне масштабов.

Когда yk = 1, основная маска истинности mk имеет положительные значения для пикселей, принадлежащих одиночному объекту. расположен в центре патча изображения.

Справа внизу: отрицательные образцы

В противном случае метка yk = -1 дается для отрицательного образца, даже если объект присутствует частично. Когда yk = -1, маска не используется.

Вверху, Модельная архитектура: основная ветвь

Модель, как показано выше, с учетом патча входного изображения x, после извлечения признаков с помощью VGGNet, полностью связанные (FC) слои, созданные в VGGNet, удаляются. Последний максимальный уровень пула в VGGNet также удаляется, поэтому размер выходных данных перед разделением на два пути составляет 1/16 входных данных. Например, как указано выше, вход составляет 224 × 224 (3 - это количество каналов во входном изображении, то есть RGB), выход в конце основной ветви равен (224/16) × (224/16) = 14 × 14. (512 - количество карт признаков после свертки.)

После VGGNet есть два пути:

  • Первый путь - прогнозировать маску сегментации, не зависящую от класса, т. е. fsegm (x).
  • Второй путь - присвоить оценку, соответствующую вероятности того, что патч содержит объект, например fscore (x) .

Вверху, первый путь: прогнозирование карты сегментации

Сначала выполняется свертка 1 × 1 без изменения количества карт характеристик, здесь выполняется нелинейное сопоставление без уменьшения размеров. После этого выполняются два слоя FC. (Обратите внимание, что между этими двумя уровнями FC нет никакого ReLU!)

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

Наконец, создается карта сегментации 56 × 56. А простая билинейная интерполяция позволяет повысить разрешение карты сегментации до 224 × 224.

Вверху, второй путь: прогнозирование оценки объекта

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

2. Совместное обучение

2.1. Функция потерь

Сеть обучается совместно изучать карту пиксельной сегментации fsegm (xk) в каждом месте (i, j) и прогнозируемом объекте. оценка fscore (xk). Функция потерь показана ниже:

Короче говоря, функция потерь представляет собой сумму потерь двоичной логистической регрессии, по одной для каждого местоположения сети сегментации fsegm (xk) и один для оценки объекта fscore (xk). Первый термин подразумевает, что мы только путь сегментации, если yk = 1.

Если yk = -1, то есть отрицательная выборка, первый член становится 0 и не будет способствовать потере. Только второй член вносит вклад в убыток.

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

2.2. Другие детали

Используется размер пакета 32. Используется предварительно обученная модель ImageNet. Всего имеется 75 миллионов параметров. Обучение модели на Nvidia Tesla K40m занимает около 5 дней.

3. Полный вывод сцены

3.1. Множество локаций и весов

Во время вывода (тестирования) модель применяется плотно в нескольких местах с шагом 16 пикселей и в нескольких масштабах от 1/4 до 2 с размером шага квадратного корня 2 . Это гарантирует, что существует по крайней мере один тестируемый фрагмент изображения, который полностью содержит каждый объект на изображении.

3.2. Максимальное объединение мелкого шага

Поскольку входное тестовое изображение больше, чем размер обучающего входного патча, нам нужна соответствующая 2D карта оценок в качестве выходных данных, а не одно единственное значение оценки. Уловка с чередованием используется перед последним максимальным уровнем объединения для ветви оценки, то есть Fine Stride Max Pooling, предложенная в OverFeat.

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

4. Результаты

4.1. MS COCO (коробки и маски сегментации)

Для обучения используются 80 000 изображений и в общей сложности почти 500 000 сегментированных объектов. И первые 5000 изображений MS COCO 2014 используются для проверки.

  • DeepMask20: обучение только с объектами, принадлежащими к одной из 20 категорий PASCAL. AR низкий по сравнению с DeepMask, что означает, что сеть не обобщается на невидимые классы. (низкие баллы для невидимых классов.)
  • DeepMask20 *: аналогично DeepMask, но для скоринга используется исходная DeepMask.
  • DeepMaskZoom: дополнительный меньший масштаб для усиления AR, но за счет увеличения времени вывода.
  • DeepMaskFull: два слоя FC на пути для прогнозирования маски сегментации заменяются одним слоем FC, непосредственно отображаемым из карт функций 512 × 14 × 14 в карты сегментации 56 × 56. Вся архитектура имеет более 300 миллионов параметров. Он немного уступает DeepMask и намного медленнее.

4.2. PASCAL VOC 2007 (коробки)

  • Предложения по регионам генерируются на основе прогнозируемых масок сегментации, которые можно использовать в качестве первого шага задачи обнаружения объектов.
  • Fast R-CNN с использованием DeepMask превосходит оригинальный Fast R-CNN с использованием выборочного поиска, а также других современных подходов.

4.3. Время вывода

  • Время вывода в MS COCO составляет 1,6 секунды на изображение.
  • Время вывода в PASCAL VOC 2007 составляет 1,2 секунды на изображение.
  • Время вывода можно дополнительно сократить примерно на 30% за счет распараллеливания всех масштабов в одном пакете.

4.4. Качественные результаты

DeepMask обновлен: в GitHub магистраль VGGNet заменена на ResNet.

После DeepMask компания FAIR также изобрела SharpMask. Надеюсь, я смогу рассказать об этом позже.

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

[2015 NIPS] [DeepMask]
Обучение сегментации объектов-кандидатов

Мои похожие обзоры

Классификация изображений
[LeNet] [AlexNet] [ZFNet] [VGGNet] [SPPNet] [PReLU-Net] [DeepImage] [GoogLeNet / Inception-v1] [BN-Inception / Inception-v2] [Inception-v3] [Inception-v4] [Xception] [MobileNetV1] [ResNet] [ Pre-Activation ResNet] [RiR] [RoR] [Stochastic Depth] [WRN] [FractalNet] [Trimps-Soushen] [PolyNet] [ResNeXt] [DenseNet]

Обнаружение объектов
[OverFeat] [R-CNN] [Fast R-CNN] [Faster R-CNN] [DeepID-Net] [ R-FCN ] [ YOLOv1 ] [ SSD ] [ YOLOv2 / YOLO9000 ]

Семантическая сегментация
[FCN] [DeconvNet] [DeepLabv1 & DeepLabv2] [ParseNet] [DilatedNet] [PSPNet]

Сегментация биомедицинских изображений
[CUMedVision1] [CUMedVision2 / DCAN] [U-Net] [CFS-FCN]