На этот раз проверяется FSRCNN от CUHK. В этой статье предлагается подход со сверхвысоким разрешением в реальном времени. Быстрая сверточная нейронная сеть сверхвысокого разрешения (FSRCNN) была опубликована в 2016 ECCV с почти 300 цитированием, когда я писал эту статью. (Сик-Хо Цанг @ средний)

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

При сравнении SRCNN и FSRCNN-s, FSRCNN-s (версия FSRCNN с малым размером модели) имеет лучшее PSNR (качество изображения) и гораздо более короткое время работы, при котором достигается 43,5 кадра в секунду.

Сравнивая SRCNN-Ex (лучший SRCNN) и FSRCNN, FSRCNN имеет лучшее PSNR (качество изображения) и гораздо более короткое время работы, при котором достигается 16,4 кадра в секунду.

Итак, давайте посмотрим, как этого добиться.

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

  1. Краткий обзор SRCNN
  2. Сетевая архитектура FSRCNN
  3. Объяснение использования свертки 1 × 1 при сжатии и расширении
  4. Объяснение множественных сверток 3 × 3 в нелинейном отображении
  5. Исследование абляции
  6. Результаты

На приведенном выше рисунке показаны сетевые архитектуры SRCNN и FSRCNN. На рисунке Conv (f, n, c) означает свертку с размером фильтра f × f из количества фильтров n и c количество входных каналов.

1. Краткий обзор SRCNN

В SRCNN шаги следующие:

  1. Сначала выполняется бикубическая интерполяция для повышения разрешения до желаемого разрешения.
  2. Затем выполняются свертки 9 × 9, 1 × 1, 5 × 5 для улучшения качества изображения. Утверждалось, что для конвекции 1 × 1 он используется для нелинейного сопоставления вектора изображения низкого разрешения (LR) и вектора изображения высокого разрешения (HR).

Сложность вычислений:

где он линейно пропорционален размеру изображения HR, SHR. Чем больше изображение HR, тем сложнее.

2. Сетевая архитектура FSRCNN

В FSRCNN задействовано 5 основных шагов, как на рисунке с большим количеством сверток:

  1. Извлечение признаков: бикубическая интерполяция в предыдущем SRCNN заменена на 5 × 5 усл.
  2. Сжатие: преобразование 1 × 1 выполняется для уменьшения количества карт функций с d до s, где s ‹---------------- d.
  3. Нелинейное отображение: несколько слоев 3 × 3 заменяют один широкий.
  4. Расширение: выполняется преобразование 1 × 1 для увеличения количества карт объектов с s до d.
  5. Деконволюция: фильтры 9 × 9 используются для восстановления изображения сердечного ритма.

Общая структура выше называется FSRCNN (d, s, m). А вычислительная сложность:

где он линейно пропорционален размеру изображения LR, SLR, которое намного меньше, чем у SRCNN.

PReLU используется как функция активации. PReLU - это тот, у которого параметрический дырявый ReLU заявлен как лучший, чем ReLU. (Если интересно, прочтите также мой обзор PReLU.)

Функция стоимости - это просто стандартная среднеквадратичная ошибка (MSE):

3. Объяснение использования свертки 1 × 1 при сжатии и расширении

Предположим, нам нужно выполнить свертку 5 × 5 без использования свертки 1 × 1, как показано ниже:

Количество операций = (14 × 14 × 48) × (5 × 5 × 480) = 112,9 млн.

При использовании свертки 1 × 1:

Количество операций для 1 × 1 = (14 × 14 × 16) × (1 × 1 × 480) = 1,5M
Количество операций для 5 × 5 = (14 × 14 × 48) × ( 5 × 5 × 16) = 3,8 млн.

Общее количество операций = 1,5 млн + 3,8 млн = 5,3 млн
, что намного меньше 112,9 млн !!!!! !!!!!!!!!!

Сеть-в-сети (NIN) предложила 1 × 1 усл. привносит большую нелинейность и улучшает производительность , в то время как GoogLeNet предложила 1х1 усл. помогает уменьшить размер модели при сохранении производительности. (Если интересно, прочтите мой обзор GoogLeNet.)

Таким образом, 1 × 1 используется между двумя свертками, чтобы уменьшить количество соединений (параметров). Уменьшая параметры, нам нужно только меньше операций умножения и сложения и, наконец, ускорить работу сети. Вот почему FSRCNN быстрее, чем SRCNN.

4. Объяснение множественных сверток 3 × 3 в нелинейном отображении

Используя 2 слоя фильтров 3x3, он фактически уже покрыл область 5x5 с меньшим количеством параметров, как показано на рисунке выше.

Используя 1 слой фильтра 5 × 5, количество параметров = 5 × 5 = 25
Используя 2 слоя фильтра 3 × 3 , количество параметров = 3 × 3 + 3 × 3 = 18
Количество параметров уменьшено на 28%

Если требуется изучить меньшее количество параметров, это лучше для более быстрой сходимости и уменьшения проблемы переобучения.

Эта проблема решена в VGGNet. (Если интересно, прочтите мой обзор VGGNet.)

5. Исследование абляции

  • SRCNN-Ex: улучшенная версия SRCNN с 57184 параметрами.
  • Состояние перехода 1: используется Deconv с параметрами 58976, получается более высокий PSNR.
  • Переходное состояние 2: в середине используется больше конвенций, с 17088 параметрами, достигается даже более высокий PSNR.
  • FSRCNN (56,12, 4): меньшие размеры фильтра и меньшее количество фильтров, при 12464 параметрах получается даже более высокий PSNR. Улучшение связано с меньшим количеством обучаемых параметров, которые легче сходятся.

Это показывает, что каждый компонент вносит свой вклад.

Чем больше m (m = 4), тем выше PSNR.

При m = 4, d = 56, s = 12 он имеет лучший компромисс между качеством изображения HR (33,16 дБ) и сложностью модели (12464 параметра).

Наконец, мы получили FSRCNN: FSRCNN (56,12,4).
И уменьшенную версию FSRCNN-s: FSRCNN (32,5,1) .

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

  • Обучите сеть с нуля, используя набор данных из 91 изображения с коэффициентом апскейлинга 3, затем выполните точную настройку деконволюционного слоя, только добавив набор данных General-100 с коэффициентом апскейлинга 2 и 4.
  • Увеличение данных с масштабированием: 0,9, 0,8, 0,7, 0,6 и поворотом на 90, 180, 270 градусов.

Из приведенных выше результатов, FSRCNN и FSRCNN хорошо работают для коэффициентов увеличения 2 и 3. Но для коэффициента увеличения 4 FSRCNN и FSRCNN немного хуже, чем SCN.

Из приведенных выше рисунков видно, что FSRCNN имеет гораздо более четкое изображение.

В этой статье с такой неглубокой сетью мы можем многое узнать о влиянии каждого компонента или метода, например свертки 1 × 1 и множественных сверток 3 × 3.

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

  1. [2016 ECCV] [FSRCNN]
    Ускорение сверточной нейронной сети сверхвысокого разрешения

Мои обзоры

[SRCNN] [PReLU-Net] [GoogLeNet] [VGGNet]