УДК 004

Использование комбинации сверточной и генеративно-состязательной сетей для повышения качества изображений

Дьяконов Валерий Юрьевич – студент магистратуры Самарского национального исследовательского университета им. академика С.П. Королева

Лезин Илья Александрович – кандидат технических наук, доцент Самарского национального исследовательского университета им. академика С.П. Королева

Аннотация: Целью данной работы является исследования эффективности использования комбинации сверточной и генеративно-состязательной сетей для повышения качества изображений. Данное исследование проводилось на разработанной автоматизированной системе повышения качества изображений, предоставляющей возможность конфигурирования исследуемых сетей в необходимом порядке с дополнительной настройкой набора данных для тестирования и параметров обучения. Результаты полученных исследований сравнивались с результатами работы сверточной и генеративно-состязательной сетей по отдельности, которые являются одними из распространенных существующих решений поставленной задачи.

Ключевые слова: CNN, SRGAN, сверточная сеть, генеративно-состязательная сеть, нейронные сети, повышение качества изображений, повышение четкости изображений.

В настоящее время объемы цифровой информации, включая изображения, растут с каждым годом, делая анализ и обработку изображений все более актуальным и важным. Одним из главных факторов, которые влияют на эффективность анализа, является качество изображения. Низкое качество изображения может привести к неверным результатам и неверным выводам из анализа [1].

Для решения задачи повышения качества изображений существует множество архитектур сетей:

  1. Предварительное увеличение разрешения изображений.
  2. Пост-увеличение разрешения изображений.
  3. Остаточные сети.
  4. Рекурсивные сети.
  5. Сети прогрессивной реконструкции.
  6. Разветвленные сети.
  7. Сети с механизмом внимания.
  8. Генеративные сети.

В данной работе рассматривается сверточная нейронная сеть (CNN) и генеративно-состязательная сеть (SRGAN).

Сверточная нейронная сеть (CNN) – это нейронная сеть, специально разработанная для данных с сетчатой структурой. CNN может использовать отношение пространственной структуры, чтобы уменьшить количество параметров, которые необходимо изучить, тем самым повысив эффективность обучения алгоритма обратного распространения. Сверточный слой, слой объединения и слой нелинейной активации являются основными компонентами CNN [2].

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

Слой объединения является одним из часто используемых компонентов в сверточной нейронной сети. Он имитирует зрительную систему человека, чтобы уменьшить размерность данных, и использует более продвинутые функции для представления изображения. Объединение позволяет уменьшить избыточность информации, улучшить масштабную инвариантность модели и предотвратить переоснащение. Чтобы решить проблему неразделимой нелинейности, сверточная нейронная сеть обычно вводит слой функции активации, чтобы сеть обладала способностью к обучению нелинейному отображению. 

В данной работе используется разновидность сети CNN, а именно SRCNN.

SRCNN – это простая архитектура сверточной нейронной сети, состоящая из трех уровней: один для извлечения и отображения признаков, нелинейного отображения и реконструкции [4]. Первый слой используется для извлечения плотных признаков из входных данных и их представления с помощью сверточных фильтров. Второй слой состоит из сверточных фильтров 1x1, используемых для изменения количества каналов и добавления нелинейности. Последний слой реконструирует изображение в более высоком разрешении. Архитектура сети представлена на рисунке 1.

image001

Рисунок 1. Архитектура SRCNN сети.

Генеративно-состязательная сеть – это генеративная модель, разработанная в последние годы, и она присутствует во многих приложениях, таких как генерация изображений и генерация текста. Модель имеет две основные характеристики. Во-первых, модель не требует никаких предварительных предположений. Во-вторых, модель полагается на прямое распространение своего генератора для создания реальных выборок, что очень просто.

В генеративно-состязательной сети есть две части, а именно генератор и дискриминатор [5]. В течение всего процесса генератор заставляет само изображение генерироваться как можно больше в соответствии с реальным изображением, чтобы обмануть дискриминатор, в то время как дискриминатор как раз наоборот, он изо всех сил старается отличить истинное от ложного в образе. Постоянная игра между ними в конце концов достигает динамического равновесия. В это время изображение, сгенерированное генератором, может быть ложным и истинным, но дискриминатор не может определить подлинность изображения, и истинная или ложная оценка изображения составляет примерно 0,5. Архитектура сетей генератора и дискриминатора изображены на рисунке 2.

image002

Рисунок 2. Архитектура сетей генератора и дискриминатора.

Обучение и тестирование моделей происходило с использованием следующих наборов данных: DIV2K, Set5, Set14, BSD100. Все проводимые эксперименты обучения проводились в течении 100 эпох. Размер батча – 8, скорость обучения – 0.05.

Важным этапом в создании любого алгоритма является процесс оценки его эффективности. При работе с обработкой изображений нейронными сетями существует ряд метрик для определения этой эффективности:

  1. PSNR – пиковое отношение сигнала к шуму, позволяющее оценить уровень искажения при сжатии изображения, а также включает в себя подсчет среднеквадратичной ошибки (MSE). Его можно рассчитать непосредственно из MSE, используя приведенную формулу:

image003(1)

где image004– среднеквадратическая ошибка, image005– матрица исходного изображения, image006– матрица полученного изображения, image007– индекс строки изображения, image008– индекс столбца изображения, image009– количество строк пикселей, image010– количество столбцов пикселей.

image011(2)

где image012– максимальное значение, принимаемое пикселем изображения.

  1. SSIM (Structural Similarity Index) – метрика, которая используется для измерения сходства между двумя изображениями. SSIM-индекс можно вычислить по формуле:

image013(3)

где image014– среднее значение выборки пикселей image015, image016– среднее значение выборки пикселей image017, image018– дисперсия image015, image019– дисперсия image017, image020– ковариация image015и image017, image021– две переменные для стабилизации деления со слабым знаменателем, image012– динамический диапазон пикселей (обычно это image022), image023– по умолчанию.

Проведем исследование мер 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-подобными сетями, а сочетание данных сетей слегка нивелирует эту разницу между ними.

image024

Рисунок 3. Визуальные результаты работы SRGAN-CNN сети.

Список литературы

  1. Гонсалес Р. Цифровая обработка изображений [Текст] / Р. Гонсалес, Р. Вудс. – 3-е изд. – 2019. – 1104 с.
  2. Гудфеллоу Я. Глубокое обучение [Текст] / Я. Гудфеллоу, И. Бенджио, А. Курвилль. – 2017. – 654 с.
  3. Франсуа Ш. Глубокое обучение на Python [Текст] / Ш. Франсуа. – 2023. – 576 с.
  4. Enhancement of Anime Imaging Enlargement using Modified Super-Resolution CNN // arXiv [Электронный ресурс]. – URL: https://arxiv.org/pdf/2110.02321.pdf (дата обращения: 02.05.2023).
  5. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network // arXiv [Электронный ресурс]. – URL: https://arxiv.org/pdf/1609.04802.pdf (дата обращения: 02.05.2023).

Интересная статья? Поделись ей с другими: