Принцип серии Deeplab

алгоритм

Серия Deeplab

Серия моделей Deeplab претерпела четыре улучшения: Deeplabv1 был предложен в 2015 году, Deeplabv2 — в 2017 году, Deeplabv3 — в том же году в 2017 году и Deeplabv3+ — в 2018 году. моделей решить и как их решить.

Ссылка для скачивания бумаги:

Deeplabv1: АР Вест V.org/PDF/1412.70…

Deeplabv2: АР Вест V.org/PDF/1606.00…

Deeplabv3: АР Вест V.org/PDF/1706.05…

Deeplabv3+: АР Вест V.org/PDF/1802.02…

Deeplabv1

Когда мы используем CNN для решения проблемы сегментации изображения, часто возникают две проблемы: одна заключается в том, что понижение дискретизации приведет к потере подробной информации; другая заключается в том, что CNN обладает пространственной инвариантностью, то есть пространственным преобразованием (таким как перевод, вращения) результаты классификации изображений не изменяются, но для задач сегментации изображений результаты меняются

Для первой проблемы Deeplabv1 использует для ее решения свертка отверстий, для второй проблемы автор использует DenseCRF для ее решения.

Понятие атральной свертки:

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

Ссылка на ссылку:

zhuanlan.zhihu.com/p/113285797

blog.CSDN.net/QQ_30159015…

Концепция DenseCRF:

Ссылка на ссылку:

zhuanlan.zhihu.com/p/22464586

zhuanlan.zhihu.com/p/22464569

Структура Deeplabv1:

В основном, в исходную сеть VGG вносятся некоторые преобразования:

  1. Реализуйте исходный полносвязный слой через сверточный слой
  2. Изначально в сети VGG имеется 5 максимальных слоев пула.Во-первых, последние два максимальных слоя пула удаляются, что эквивалентно только 8-кратному понижению дискретизации, а затем обычные слои свертки после того, как последние два максимальных слоя пула заменяются на дырку сверточные слои.
  3. Чтобы уменьшить объем вычислений, первый сверточный слой 7 * 7 в VGG заменен на сверточный слой.
  4. Функция потерь, сумма перекрестной энтропии

Deeplabv2

Deeplabv2 подчеркивает использование сложной свертки и предлагает пирамиду объединения сложной пространственной свертки (ASPP) для получения лучших результатов сегментации с многомасштабной информацией. По сравнению с deeplabv1, deeplabv2 использует сеть Resnet для замены сети VGG и предлагает ASPP для решения проблемы объектов в разных масштабах.

ASPP

Deeplabv3

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

Для первой задачи автор использует для ее решения дырочную свертку, для второй задачи автор дорабатывает модуль ASPP, комбинирует дырочную свертку с разными коэффициентами расширения и добавляет слой BN.Автор также обнаружил, что большее расширение коэффициент 3x3 Свертка с отверстиями потеряет информацию о большом расстоянии из-за эффекта границы изображения, поэтому она вырождается в свертку 1x1 и интегрирует функции уровня изображения в модуль ASPP.

Deeplabv3

Deeplabv3+

Проблемы Deeplabv3+: во-первых, это проблема многомасштабности объектов, автор считает, что структура ASPP, разработанная Deeplabv3, решила эту проблему, во-вторых, потому что глубокая сеть имеет слой шага = 2, что приведет к уменьшению в разрешении признаков, таким образом, точность прогнозирования снижается, а информация о границах теряется.

Автор акцентирует внимание на решении второй проблемы, и разработанная структура кодека выглядит следующим образом:

编解码结构

Deeplabv3+

Кодер принимает deeplabv3.

Часть декодера: сначала выберите функцию низкого уровня и сожмите функцию низкого уровня с помощью свертки 1 * 1 (исходные 256 каналов или 512 каналов), чтобы уменьшить долю низкого уровня. Автор считает, что признаки, полученные кодировщиком, содержат более богатую информацию, поэтому признаки кодировщика должны иметь более высокую долю. Это хорошо для тренировки.

Затем выходной сигнал кодера подвергается повышающей дискретизации, чтобы его разрешение было таким же, как у функции низкого уровня. Например, если используется функция вывода resnet conv2, то здесь требуется 4-кратный апсэмплинг. После соединения двух функций выполните свертку 3x3 (уточнение), а затем снова повышайте дискретизацию, чтобы получить прогнозы на уровне пикселей. Более поздние экспериментальные результаты показывают, что эта структура имеет как высокую точность, так и высокую скорость при шаге = 16. stride=8 относительно немного улучшает точность, но добавляет много вычислений