УДК 004
Использование комбинации сверточной и генеративно-состязательной сетей для повышения качества изображений
Дьяконов Валерий Юрьевич – студент магистратуры Самарского национального исследовательского университета им. академика С.П. Королева
Лезин Илья Александрович – кандидат технических наук, доцент Самарского национального исследовательского университета им. академика С.П. Королева
Аннотация: Целью данной работы является исследования эффективности использования комбинации сверточной и генеративно-состязательной сетей для повышения качества изображений. Данное исследование проводилось на разработанной автоматизированной системе повышения качества изображений, предоставляющей возможность конфигурирования исследуемых сетей в необходимом порядке с дополнительной настройкой набора данных для тестирования и параметров обучения. Результаты полученных исследований сравнивались с результатами работы сверточной и генеративно-состязательной сетей по отдельности, которые являются одними из распространенных существующих решений поставленной задачи.
Ключевые слова: CNN, SRGAN, сверточная сеть, генеративно-состязательная сеть, нейронные сети, повышение качества изображений, повышение четкости изображений.
В настоящее время объемы цифровой информации, включая изображения, растут с каждым годом, делая анализ и обработку изображений все более актуальным и важным. Одним из главных факторов, которые влияют на эффективность анализа, является качество изображения. Низкое качество изображения может привести к неверным результатам и неверным выводам из анализа [1].
Для решения задачи повышения качества изображений существует множество архитектур сетей:
- Предварительное увеличение разрешения изображений.
- Пост-увеличение разрешения изображений.
- Остаточные сети.
- Рекурсивные сети.
- Сети прогрессивной реконструкции.
- Разветвленные сети.
- Сети с механизмом внимания.
- Генеративные сети.
В данной работе рассматривается сверточная нейронная сеть (CNN) и генеративно-состязательная сеть (SRGAN).
Сверточная нейронная сеть (CNN) – это нейронная сеть, специально разработанная для данных с сетчатой структурой. CNN может использовать отношение пространственной структуры, чтобы уменьшить количество параметров, которые необходимо изучить, тем самым повысив эффективность обучения алгоритма обратного распространения. Сверточный слой, слой объединения и слой нелинейной активации являются основными компонентами CNN [2].
Сверточный слой CNN состоит из множества нейронов, и между каждыми двумя сверточными слоями используются общие веса среди трех методов подключения к сети. При обработке изображений операция свертки обычно состоит из нескольких ядер свертки, которые используются для извлечения различных признаков изображения, таких как горизонтальные, вертикальные и диагональные края, и чем глубже слой свертки, тем выше уровень извлекаемых признаков. CNN извлекает признаки, автоматически изучая веса ядер свертки во время обучения, а признаки, извлеченные различными ядрами свертки, будут объединены во входные данные следующего слоя, поэтому можно получить более продвинутые признаки [3].
Слой объединения является одним из часто используемых компонентов в сверточной нейронной сети. Он имитирует зрительную систему человека, чтобы уменьшить размерность данных, и использует более продвинутые функции для представления изображения. Объединение позволяет уменьшить избыточность информации, улучшить масштабную инвариантность модели и предотвратить переоснащение. Чтобы решить проблему неразделимой нелинейности, сверточная нейронная сеть обычно вводит слой функции активации, чтобы сеть обладала способностью к обучению нелинейному отображению.
В данной работе используется разновидность сети CNN, а именно SRCNN.
SRCNN – это простая архитектура сверточной нейронной сети, состоящая из трех уровней: один для извлечения и отображения признаков, нелинейного отображения и реконструкции [4]. Первый слой используется для извлечения плотных признаков из входных данных и их представления с помощью сверточных фильтров. Второй слой состоит из сверточных фильтров 1x1, используемых для изменения количества каналов и добавления нелинейности. Последний слой реконструирует изображение в более высоком разрешении. Архитектура сети представлена на рисунке 1.
Рисунок 1. Архитектура SRCNN сети.
Генеративно-состязательная сеть – это генеративная модель, разработанная в последние годы, и она присутствует во многих приложениях, таких как генерация изображений и генерация текста. Модель имеет две основные характеристики. Во-первых, модель не требует никаких предварительных предположений. Во-вторых, модель полагается на прямое распространение своего генератора для создания реальных выборок, что очень просто.
В генеративно-состязательной сети есть две части, а именно генератор и дискриминатор [5]. В течение всего процесса генератор заставляет само изображение генерироваться как можно больше в соответствии с реальным изображением, чтобы обмануть дискриминатор, в то время как дискриминатор как раз наоборот, он изо всех сил старается отличить истинное от ложного в образе. Постоянная игра между ними в конце концов достигает динамического равновесия. В это время изображение, сгенерированное генератором, может быть ложным и истинным, но дискриминатор не может определить подлинность изображения, и истинная или ложная оценка изображения составляет примерно 0,5. Архитектура сетей генератора и дискриминатора изображены на рисунке 2.
Рисунок 2. Архитектура сетей генератора и дискриминатора.
Обучение и тестирование моделей происходило с использованием следующих наборов данных: DIV2K, Set5, Set14, BSD100. Все проводимые эксперименты обучения проводились в течении 100 эпох. Размер батча – 8, скорость обучения – 0.05.
Важным этапом в создании любого алгоритма является процесс оценки его эффективности. При работе с обработкой изображений нейронными сетями существует ряд метрик для определения этой эффективности:
- PSNR – пиковое отношение сигнала к шуму, позволяющее оценить уровень искажения при сжатии изображения, а также включает в себя подсчет среднеквадратичной ошибки (MSE). Его можно рассчитать непосредственно из MSE, используя приведенную формулу:
(1)
где – среднеквадратическая ошибка, – матрица исходного изображения, – матрица полученного изображения, – индекс строки изображения, – индекс столбца изображения, – количество строк пикселей, – количество столбцов пикселей.
(2)
где – максимальное значение, принимаемое пикселем изображения.
- SSIM (Structural Similarity Index) – метрика, которая используется для измерения сходства между двумя изображениями. SSIM-индекс можно вычислить по формуле:
(3)
где – среднее значение выборки пикселей , – среднее значение выборки пикселей , – дисперсия , – дисперсия , – ковариация и , – две переменные для стабилизации деления со слабым знаменателем, – динамический диапазон пикселей (обычно это ), – по умолчанию.
Проведем исследование мер PSNR и SSIM ряда архитектур сетей, обученных на наборе данных DIV2K. Вычислим данную меру, тестируя на следующих наборах данных: Set5, Set14 и BSD100.
Зависимость PSNR от архитектуры сети представлена в таблице 1. Зависимость SSIM от архитектуры сети представлена в таблице 2.
Таблица 1. Зависимость PSNR от архитектуры сети.
Архитектура сети, обученная на наборе данных DIV2K |
Set5 |
Set14 |
BSD100 |
SRCNN |
30,48 |
27,50 |
26,90 |
SRGAN (MSE) |
30,64 |
26,92 |
25,32 |
SRGAN (VGG19) |
30,21 |
26,69 |
25,16 |
SRGAN (VGG22) |
29,84 |
26,44 |
24,94 |
SRGAN (VGG54) |
29,40 |
26,02 |
24,72 |
SRGAN-CNN (MSE) |
30,78 |
27,16 |
25,52 |
SRGAN-CNN (VGG19) |
30,43 |
26,91 |
25,38 |
SRGAN-CNN (VGG22) |
30,12 |
26,63 |
25,11 |
SRGAN-CNN (VGG54) |
29,77 |
26,29 |
24,94 |
Таблица 2. Зависимость SSIM от архитектуры сети.
Архитектура сети, обученная на наборе данных DIV2K |
Set5 |
Set14 |
BSD100 |
SRCNN |
0,8628 |
0,7513 |
0,7101 |
SRGAN (MSE) |
0,8701 |
0,7611 |
0,6823 |
SRGAN (VGG19) |
0,8512 |
0,7592 |
0,6803 |
SRGAN (VGG22) |
0,8468 |
0,7518 |
0,6732 |
SRGAN (VGG54) |
0,8472 |
0,7397 |
0,6799 |
SRGAN-CNN (MSE) |
0,8723 |
0,7631 |
0,6848 |
SRGAN-CNN (VGG19) |
0,8536 |
0,7615 |
0,6833 |
SRGAN-CNN (VGG22) |
0,8487 |
0,7541 |
0,6761 |
SRGAN-CNN (VGG54) |
0,8494 |
0,7423 |
0,6819 |
Размеры исходного изображения – 339х510, размеры обработанного изображения – 1356х2040. Визуальные результаты представлены на рисунке 3.
Проанализировав все результаты, можно сделать следующие вывод о том, что сочетание сетей SRGAN и SRCNN дают лучший результат в сравнении с одиночным применением SRGAN. Сверточная сеть увеличивает четкость мелких деталей, что влияет на общее восприятие человеком конечного изображения. Исходя из исследований PSNR и SSIM, сеть SRCNN дает лучшие значения особенно с увеличением количества фильтров, но по метрике MOS дает худший результат в сравнении с GAN-подобными сетями, а сочетание данных сетей слегка нивелирует эту разницу между ними.
Рисунок 3. Визуальные результаты работы SRGAN-CNN сети.
Список литературы
- Гонсалес Р. Цифровая обработка изображений [Текст] / Р. Гонсалес, Р. Вудс. – 3-е изд. – 2019. – 1104 с.
- Гудфеллоу Я. Глубокое обучение [Текст] / Я. Гудфеллоу, И. Бенджио, А. Курвилль. – 2017. – 654 с.
- Франсуа Ш. Глубокое обучение на Python [Текст] / Ш. Франсуа. – 2023. – 576 с.
- Enhancement of Anime Imaging Enlargement using Modified Super-Resolution CNN // arXiv [Электронный ресурс]. – URL: https://arxiv.org/pdf/2110.02321.pdf (дата обращения: 02.05.2023).
- Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network // arXiv [Электронный ресурс]. – URL: https://arxiv.org/pdf/1609.04802.pdf (дата обращения: 02.05.2023).