Сегментация изображения | Контекст До CPNet | CVPR2020

искусственный интеллект
  • Статья перенесена из публичного аккаунта WeChat: «Алхимия машинного обучения».
  • Автор статьи: Brother Alchemy (уполномоченный)
  • Контактная информация автора: cyx645016617
  • Название статьи: «Приоритет контекста для сегментации сцены»

0 Обзор

Во-первых, при рендеринге CPNet показал лучшие результаты для некоторых сложных образцов:

В тексте упоминаются следующие ключевые слова:Строится соответствующая априорная карта (CPmap), затем CPmap интегрируется в сеть через контекстно-приорный уровень (CPLayer), при этом для соответствия CPLayer используется Affinity Loss.

Что касается того, как интерпретировать приведенное выше предложение, я оставляю вопрос.

1 Context Prior

Автор предлагает две концепции:

  • внутриконтекстная: взаимосвязь между пикселями одной категории;
  • межконтекстный: взаимосвязь между пикселями разных классов.

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

В статье автор используетAffinity Loss для явной нормализации сети.

For each pixel in the image, this loss forces the network to consider the pixels of the same category (intra-context) and the pixels among the different categories (inter-context).

Эта потеря позволяет модели учитывать другие пиксели того же класса и другие пиксели другого класса.

2 Создайте идеальную карту близости

Прежде чем использовать Affinity Loss, вам необходимо построить идеальную карту Affinity Map.

  • Теперь у нас есть изображение, изображение, истинное значение GT этого изображения.
  • Изображение проходит через полностью свёрточную сеть, чтобы получить карту объектов размером HxW;
  • GT уменьшен до размера HxW, записанGT~\widetilde{GT}, тогда правильноGT~\widetilde{GT}Сделайте одно горячее кодирование, чтобы получить тензор HxWxC, где C - количество категорий, которые нужно разделить, запишите этот тензор какGT^\widehat{GT}
  • Методом переформирования положитьGT^\widehat{GT}Форма становится NxC, где N=HxW, а затем, вычисливGT^GT^T\widehat{GT}\widehat{GT}^{\mathrm{T}}Получите матрицу NxN, которая обозначается как A;
  • A — идеальная карта сходства, которую мы хотим.

A — это наша желаемая карта идеального сходства размером N × N, которая кодирует, какие пиксели принадлежат к одной и той же категории.Мы используем карту идеального сходства, чтобы контролировать изучение априорной карты контекста.

Каждый 1 в этом A представляет этот пиксель и другие пиксели той же категории, а CPMap обучается с помощью этой идеальной карты сходства.

3 Affinity Loss

Мы используем полностью сверточную сеть для извлечения признаков из изображения и получаем карту признаков размером HxW, о которой мы упомянули выше, но не сказали, сколько каналов у этой карты признаков, см. рисунок ниже:

Количество каналов равно HxW, то есть N, упомянутому выше, поэтому для каждого пикселя его характеристика точно равна 1xN, поэтому соответствует ли она полученной нами карте идеального сходства?

Итак, здесь мы можем использовать простую двоичную перекрестную энтропию для вычисленияПредсказанная априорная карта и идеальная карта близостиПотеря:

Это конец? Нет:

However, such a unary loss only considers the isolated pixel in the prior map ignoring the semantic correlation with other pixels.

Интуитивно, вышеприведенное на самом деле рассматривает только отношения между двумя пикселями, но игнорирует более семантические отношения. Так что нужна еще часть потерь.

a представляет элементы на карте сходства идей, а P представляет собой матрицу NxN, полученную из X. Формула (2) указывает на то, что здесь присутствует вкус обнаружения цели.

В качестве примера предположим, что всего 5 пикселей:

  • a = [0,0,1,0,1], что означает наличие третьего и пятого двух пикселей с одинаковыми пикселями;
  • p = [0,1, 0,2, 0,8, 0,2, 0,9], что указывает на то, что среди предсказанных пикселей первый пиксель имеет вероятность 0,1 быть того же типа, а третий пиксель имеет вероятность 0,8 того же типа тип;
  • apa\frac{ap}{a}, что в точности соответствует количеству истинных положительных результатов/образцов, которые являются истинными, т.е.отзывать;
  • app\frac{ap}{p}, что в точности равно числу истинных срабатываний/прогнозированных истинных, дляточность;

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

Оригинальный текст автора:

Для формулы (4) 1-а просто меняет местами 0 и 1, так что 1 в 1-а представляет два разных пикселя, поэтому он отражает отношения между разными классами между классами.

последний из последних,Affinity Lossза:

4 Context Prior Layer

Структура CPLayer выглядит следующим образом, довольно сложная на первый взгляд:

  • Ввод CPLayer считается X, т.е.shape=H×W×C0shape=H\times W \times C_0;
  • X через модуль агрегации становитсяshape=H×W×C1изX~shape=H\times W \times C_1\widetilde{X};

Вот посмотрите, как модуль агрегации интегрирует пространственную информацию:

Кажется, используются две параллельные свертки 1xk и kx1, хорошо, это место не сложно.

  • X~\widetilde{X}После сверточного слоя 1x1 и сигмовидного слоя он становится нашей предыдущей картой (P), форма этого P=HxWxN;
  • Здесь P тренируется под контролем Affinity Loss. В идеале P отражает взаимосвязь между пикселями.
  • получил раньшеX~\widetilde{X}, переформировать вN×C1N\times C_1форма (здесьC1C_1По сути, это окончательное количество категорий, подлежащих классификации)
  • Здесь вы можете получить внутриклассовую информациюY=PX~Y=P\widetilde{X}
  • Вы также можете получить межклассовую информациюYˉ=(1P)X~\bar{Y}=(1-P)\widetilde{X}

Вот, напомню, как понимать это внутриклассовое? Из P можно найти пиксель и другие пиксели того же класса, изX~\widetilde{X}, можно найти все прогнозируемые вероятности пикселей. Следовательно, предсказанное значение вероятности каждого пикселя в Y на самом деле является результатом объединения предсказанных значений других пикселей той же категории. Так что это всестороннее рассмотрение контекста внутри класса.

  • F=concat(X,Y,Yˉ)F = concat(X,Y,\bar{Y})

5 Детали

Рассчитанный ранее affinity Loss написан в статьеLpL_p,

  • вLuL_uЭто унарная потеря, унарная потеря, то есть бинарная перекрестная энтропия;
  • LgL_gЭто глобальная потеря, потеря целого;

Тогда потери для всей модели:

  • За исключением того, что мы упомянулиLpL_p, потеря сродства, вес 1;

  • LaL_aвспомогательная потеря с весом 0,4

  • LsL_s- основная главная потеря сегментации с весом 1.