DevGang
Авторизоваться

Задача сверхвысокого разрешения для одного изображения 

Цель этой мини-задачи - увеличить разрешение отдельного изображения (в четыре раза). Данные для этой задачи взяты из набора данных DIV2K [1]. Для этой задачи мы подготовили мини-набор данных, который состоит из 500 обучающих и 80 проверочных пар изображений, где изображения HR имеют разрешение 2K, а изображения LR субдискретизированы в четыре раза.

Для каждого изображения LR алгоритмы увеличат разрешение изображений. Качество вывода будет оцениваться на основе PSNR между выводом и изображениями HR. Идея состоит в том, чтобы позволить алгоритму выявить больше деталей, незаметных на изображении LR.

Предварительная обработка данных

Набор данных DIV2K [1] состоит из 500 обучающих и 80 проверочных пар изображений, где изображения HR имеют разрешение 2K, а изображения LR подвергаются понижающей дискретизации в четыре раза. Хотя DIV2K имеет изображения с высоким разрешением, обучающие патчи обычно небольшие. Если вы читаете все изображение целиком, используя только очень маленькую его часть, это будет напрасно. Чтобы увеличить скорость ввода-вывода во время обучения, изображения с разрешением 2K можно обрезать до под-изображений (480x480 под-изображений) с помощью скрипта extract_subimages.py из кодовой базы BasicSR [2]

Увеличение данных

Совместные разнообразные методы увеличения могут использоваться для частичного блокирования или сбивания с толку обучающего сигнала, чтобы модель приобрела большую обобщающую способность. Производительность можно еще больше повысить, применив несколько тщательно отобранных методов увеличения данных на этапе обучения.

Cutout

Cutout [2] может стирать (обнулять) случайно выбранные пиксели с вероятностью α. Вырезанные пиксели отбрасываются при вычислении потерь путем маскирования удаленных пикселей. При настройке по умолчанию, отбрасывание 25% пикселей прямоугольной формы может ухудшить исходную производительность. Однако это даст положительный эффект при применении с соотношением 0,1% и стиранием случайных пикселей вместо прямоугольной области.

CutMix и Mixup

CutMix [3] может заменить случайно выбранную область квадратной формы на фрагмент из другого изображения. Mixup [4] может смешивать два случайно выбранных изображения. CutMix можно соединить с изображением Mixuped.

CutBlur

CutBlur [5] вырезает фрагмент с низким разрешением и вставляет его в соответствующую область изображения с высоким разрешением и наоборот. Имея частично LR и частично HR распределения пикселей со случайным соотношением в одном изображении, CutBlur пользуется эффектом регуляризации, побуждая модель изучать и «how», и «where» для сверхразрешения изображения. Поступая таким образом, модель может понять, «how much», вместо того, чтобы слепо учиться применять сверхвысокое разрешение к каждому заданному пикселю.

Flip and Rotate

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

Перестановка RGB

Перестановка RGB заключается в случайном изменении каналов RGB, которые не вызывают каких-либо структурных изменений в изображении.

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

Архитектура EDSR (рис.2)
Архитектура EDSR (рис.2)
Сравнение остаточных блоков в исходных ResNet, SRResNet и MSRResNet(рис.3)
Сравнение остаточных блоков в исходных ResNet, SRResNet и MSRResNet(рис.3)

Магистралью сети является MSRResNet, которая модифицирована из EDSR [6], как показано на рисунке 2. Из рисунка 3 видно, что по сравнению с ResNet [7], SRResNet [8], уровни пакетной нормализации удалены из сети.  Поскольку уровни пакетной нормализации нормализуют функции, они избавляют сети от гибкости диапазона за счет нормализации функций, и поэтому их лучше удалить. После удаления этого шага сеть может складывать больше сетевых уровней или извлекать больше функций из каждого уровня в рамках тех же вычислительных проблемных ресурсов с лучшей производительностью. Сеть использует потерянную функцию L1 нормы для оптимизации сетевой модели. При обучении сначала обучается модель выборки с малым увеличением, а затем параметры модели выборки с низким увеличением мощности обучаются для инициализации модели выборки с высоким увеличением,

Сетевая архитектура состоит из нескольких остаточных блоков. По умолчанию количество остаточных блоков равно 16, и его увеличивают до 20, чтобы создать более глубокую модель в рамках ограничения параметра. В каждом блоке res за сверточным слоем 3x3 следуют слой BN и слой Relu. Leaky Relu наносится после первого сверточного слоя и соединяет последние четыре сверточных слоя. Он вводит обучаемый параметр, который помогает адаптивно запоминать некоторые отрицательные коэффициенты.

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

Функция потерь сохраняется с использованием функции потерь L1, поскольку она уже обсуждалась в [8], которая доказывает, что потеря L1 обеспечивает лучшую сходимость, чем L2.

Измененные параметры и гиперпараметры

(1) num_block установлен от 16 до 20

Номер блока увеличен на 20, чтобы получить более глубокую модель. В результате параметр модели увеличен с 1 517 571 до 1812 995.

(2) total_iter устанавливается в одну десятую от оригинала от 1 000 000 до 100 000

Общее количество итераций для обучения сокращено для более быстрого обучения.

(3) периоды скорости обучения устанавливаются в одну десятую от оригинала от [250000, 250000, 250000, 250000] до [25000, 25000, 25000, 25000]

Косинусный отжиг - это тип графика скорости обучения, который имеет эффект начала с большой скорости обучения, которая относительно быстро снижается до минимального значения, а затем снова быстро увеличивается. Поскольку total_iter устанавливается в одну десятую от оригинала, периоды отжига косинуса также должны быть установлены на одну десятую от оригинала.

Результат

PSNR модели в наборе данных проверки и количество параметров модели. показаны в Таблице 1 ниже.

PSNR и параметры модели
PSNR и параметры модели

Заключение

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

Источник:

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

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

Попробовать

В подарок 100$ на счет при регистрации

Получить