АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1 ПОВЫШЕНИЕ РАЗРЕШЕНИЯ ИЗОБРАЖЕНИЙ БЕЗ ПОТЕРИ
КАЧЕСТВА 9
1.1 Методы повышения разрешения изображений 9
1.1.1 Интерполяционные методы 9
1.1.2 Нейросетевые методы 18
1.2 Сервисы повышения разрешения изображений 24
1.2.1 Онлайн-сервис bigjpg.com 24
1.2.2 Онлайн-сервис Let’s Enhance 26
1.2.3 Онлайн-сервис pichance.com 27
1.2.4 Онлайн-сервис Waifu2x 28
1.3 Выводы по первому разделу 29
2 СВЕРХРАЗРЕШЕНИЕ ИЗОБРАЖЕНИЙ 30
2.1 Постановка задачи сверхразрешения изображений 30
2.2 Исходные данные и их подготовка 30
2.3 Архитектура нейронной сети 31
2.3.1 Пакетная нормализация 32
2.3.2 Остаточный блок 33
2.4 Функции потерь 35
2.4.1 Функция потерь восприятия 35
2.4.2 Функция потерь контента 35
2.4.3 Состязательная функция потерь 36
2.4.4 Среднеквадратичная ошибка 36
2.5 Обучение сети 36
2.6 Оптимизатор Adam 39
2.7 Метрики качества 42
2.7.1 Метрика PSNR 42
2.7.2 Метрика SSIM 44
2.8 Функции активации 46
2.8.1 Функция активации ReLU 46
2.8.2 Функция активации LeakyReLU 47
2.8.3 Функция активации Tanh 48
2.8.4 Функция активации Sigmoid 49
2.9 Выводы по разделу 50
3 РЕАЛИЗАЦИЯ СЕТИ И ПРОВЕРКА НА ТЕСТОВЫХ ДАННЫХ ... 51
3.1 Архитектура сети 51
3.1.1 Архитектура генератора 51
3.1.2 Архитектура дискриминатора 54
3.2 Обучение сети 57
3.3 Результаты обучения 60
3.4 Проверка на тестовых данных 61
3.5 Сравнительный анализ 62
3.6 Выводы по разделу 62
ЗАКЛЮЧЕНИЕ 64
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 65
ПРИЛОЖЕНИЯ 70
ПРИЛОЖЕНИЕ 1 Код для подсчета метрик качества 70
ПРИЛОЖЕНИЕ 2 Код программы 71
В современное время качество цифровой фотографии с каждым годом становится всё лучше и лучше. Разрешением фотографии называется величина, которая равна количеству всех пикселей изображения, деленное на единицу площади. Чем выше разрешение изображения, тем больше деталей на изображении можно различить, а, соответственно, из такого изображения можно извлечь больше полезной информации.
В большинстве задач, решаемых с помощью искусственных нейронных сетей, подразумевается, что в качестве данных для обучения используется набор изображений в высоком разрешении. Примером может послужить задача классификации изображений, при решении которой алгоритмы компьютерного зрения будут работать гораздо лучше, получая на вход изображения в высоком разрешении. Таким образом, одним из вариантов улучшения работы нейронной сети может быть предобработка набора данных для обучения путем повышения разрешения изображений, из которых он состоит.
С одной стороны, проблему можно решить аппаратным путем, то есть отснять фотографии, используя фотоаппарат, обладающий более высокой разрешающей способностью, но стоит учесть, что такой процесс может оказаться дорогостоящим и трудоемким. С другой стороны, когда уже имеется какой-то набор фотографий, может возникнуть ситуация, в которой использование такого метода в принципе невозможно. В таком случае разумно прибегнуть к программным методам решения, например, к нейросетевым методам, позволяющим добиться лучшего качества среди существующих решений. Подобные алгоритмы повышают разрешение изображения за счет дополнительной информации, которую они получают во время процесса обучения на большом количестве изображений в высоком разрешении либо получают, используя информацию о соседних пикселях.
Благодаря такому подходу к подготовке данных перед подачей на вход сети, можно заметно улучшить эффективность работы многих алгоритмов компьютерного зрения, повысив разрешение изображений, используемых для обучения этих алгоритмов.
Целью данной работы является разработка искусственной нейронной сети для повышения разрешения изображений без потери качества.
Для достижения данной цели необходимо решить следующие задачи:
1) исследование существующих методов для решения задачи повышения разрешения изображения без потери качества;
2) сбор и подготовка данных для обучения нейронной сети;
3) разработка математической модели искусственной нейронной сети;
4) обучение сети и оценка качества модели на экспериментальных данных.
Цель данной работы состояла в разработке нейронной сети для решения задачи повышения разрешения изображения без потери качества.
В соответствии с целью, в первом разделе был проведен обзор существующих методов и приложений для решения поставленной задачи. Рассмотрены их преимущества и недостатки. Также был сделан вывод о выборе эффективного метода решения - генеративно-состязательной нейронной сети.
Во втором разделе была рассмотрена математическая модель разрабатываемой нейронной сети, в том числе слои и функции активации, из которых строится архитектура модели. Для обучения сети использовался метод обратного распространения ошибки и оптимизатор Адам, а в качестве функции потерь использовалась функция потерь восприятия. Для оценки качества работы сети и сравнительного анализа использовались метрики PSNR и SSIM.
В третьем разделе была описана архитектура используемой нейронной сети, а также схемы алгоритма работы программы. В данном разделе была реализована модель нейронной сети и проверена на тестовых данных.
В результате работы, была получена обученная модель нейронной сети, решающая поставленную задачу.
В ходе работы были решены следующие задачи:
1) исследованы существующие методы для решения задачи повышения разрешения изображения без потери качества;
2) проведен сбор и подготовка данных для обучения нейронной сети;
3) разработана математическая модель искусственной нейронной сети;
4) проведено обучение сети и оценка качества ее модели на экспериментальных данных.
Таким образом, все поставленные задачи полностью решены, а цель достигнута. В дальнейшем планируется применение нейронной сети в задачах повышения разрешения видео.