На этот раз проверяется 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 кадра в секунду.
Итак, давайте посмотрим, как этого добиться.
Что покрывается
- Краткий обзор SRCNN
- Сетевая архитектура FSRCNN
- Объяснение использования свертки 1 × 1 при сжатии и расширении
- Объяснение множественных сверток 3 × 3 в нелинейном отображении
- Исследование абляции
- Результаты
На приведенном выше рисунке показаны сетевые архитектуры SRCNN и FSRCNN. На рисунке Conv (f, n, c) означает свертку с размером фильтра f × f из количества фильтров n и c количество входных каналов.
1. Краткий обзор SRCNN
В SRCNN шаги следующие:
- Сначала выполняется бикубическая интерполяция для повышения разрешения до желаемого разрешения.
- Затем выполняются свертки 9 × 9, 1 × 1, 5 × 5 для улучшения качества изображения. Утверждалось, что для конвекции 1 × 1 он используется для нелинейного сопоставления вектора изображения низкого разрешения (LR) и вектора изображения высокого разрешения (HR).
Сложность вычислений:
где он линейно пропорционален размеру изображения HR, SHR. Чем больше изображение HR, тем сложнее.
2. Сетевая архитектура FSRCNN
В FSRCNN задействовано 5 основных шагов, как на рисунке с большим количеством сверток:
- Извлечение признаков: бикубическая интерполяция в предыдущем SRCNN заменена на 5 × 5 усл.
- Сжатие: преобразование 1 × 1 выполняется для уменьшения количества карт функций с d до s, где s ‹---------------- d.
- Нелинейное отображение: несколько слоев 3 × 3 заменяют один широкий.
- Расширение: выполняется преобразование 1 × 1 для увеличения количества карт объектов с s до d.
- Деконволюция: фильтры 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.
использованная литература
- [2016 ECCV] [FSRCNN]
Ускорение сверточной нейронной сети сверхвысокого разрешения