В последнее время с развитием технологий глубокого обучения и, в частности, сверточных нейронных сетей, появилась возможность конструировать различные методы удаления шума с изображений, показывающие высокие результаты [2]. Нейронные сети, в отличие от прежних технологий, дают выигрыш в качестве получаемых изображений, в частности, уменьшают «замыленность» изображения.
В основе этой работы лежит предположение о том, что качество шумоподавления напрямую зависит от характера шума изображений, на которых обучается нейронная сеть.
Архитектура сети
Архитектура нейронной сети для решения данной задачи, была предложена в [1] (Рис. 1). Идея состоит в следующем:
- Вместо того чтобы строить сеть, которая очищает изображение от шума, необходимо построить сеть, выход которой будет равен чистому шуму, отделенному от изображения.
- Входом нейронной сети является блок (часть изображения, patch) размера 64×64.
- Первый слой состоит из 64 фильтров, которые генерируют соответственно 64 карты признаков. Каждый фильтр имеет размерность 3×3×3 (для каждого цветового канала строится отдельный фильтр 3×3 субпикселя).
- К признакам, полученными фильтрами, применяется функция активации ReLU.
- Внутренние слои аналогичны первому слою за исключением того, что дополнительно применяется алгоритм пакетной нормализации. Количество слоев: 19.
- Последний слой представляет из себя свертку, выходом которой является изображение шума.
Рис. 1: Архитектура нейронной сети
Построение датасета
В работе [1] датасет составлен следующим образом. Были взяты изображения из общедоступной библиотеки [3] BSD68, с некоторыми другими изображениями, которые применяются для демонстрации работы метода. Для формирования изображений, используемых в качестве обучающего множества, на каждое изображение выборки был нанесен аддитивный гауссовский шум. Этот подход широко распространен в работах посвященных задаче удаления шума. Но было решено применить другой подход.
На самом деле производительность сетей, направленных на удаление аддитивного гауссовского шума, остается ограниченной на реальных шумных фотографиях. Основная причина заключается в том, гауссовский шум сильно отличается от сложной модели реального шума (Рис. 3). Чтобы улучшить обобщающую способность сверточных нейронных сетей, решающих исследуемую задачу, было предложено тренировать сверточную шумоподавляющую сеть на более реалистичной модели шума.
Рис. 2: Гауссовский шум (слева), реальный шум (справа)
Датасет был построен следующим образом. За основу были взяты все те же изображения с библиотеки BSD68, так как изображения из этой библиотеки обладают большой вариативностью и, соответственно, отличной репрезентативностью. Накладываемый шум был получен с камеры Canon EOS600D, по следующей методике: настройки были выставлены таким образом, чтобы матрица генерировала максимальное количество шума (максимальное значение светочувствительности, ISO=6400, выдержка в пределах одной секунды). Были сделаны несколько фотографий с закрытой крышкой объектива. Контраст и яркость на полученных снимках были усилены с помощью гамма преобразования по формуле:
Полученный шум был наложен на изображения из используемой библиотеки следующим образом: для каждого изображения из библиотеки случайным образом выбирается один из полученных снимков шума, далее к снимку шума применяется гамма преобразование, со случайным значением гамма в пределах от 0,3 до 0,4, затем полученный шум накладывается на исходное изображение. Такой подход (фотографирование с закрытым объективом), обусловлен тем, что получить качественные пары реальных снимков с низким и с высоким уровнем шума (например, с ISO=80 и ISO=6400 соответственно) невозможно. Основная проблема заключается в том, что на таких парах снимков будет разная яркость, цветопередача и детализация. Снимки всегда будут иметь небольшой сдвиг. Подвижный объект на таких парах снимков без сдвига объекта снять невозможно в принципе.
Варьируя значение гамма, был получен датасет с различной характеристикой шума. Пример изображений из датасета (Рис. 3)
Рис. 3: Изображения с наложенным шумом (слева) и исходные изображения (справа)
Эксперимент
Ниже продемонстрированы результаты работы построенной нейронной сети, рис. 4. Пример состоит из трех изображений: случайное исходное изображение с шумом, изображение, очищенное сетью, обученной на гауссовом шуме, и изображение, очищенное сетью, обученной на предложенном датасете.
Рис. 4: Исходное изображение с шумом (справа), изображение, очищенное сетью, обученной на гауссовом шуме (по центру), и изображение очищенное сетью, обученной на предложенном датасете (слева)
Как видно на Рис. 4, сеть достаточно эффективно удаляет шум (PSNR > 32). При этом хорошо сохраняет мелкие детали и не размывает изображения, что показывает состоятельность данного подхода.
Однако, сеть, обученная на белом аддитивном гауссовом шуме, не смогла достаточно эффективно произвести удаление шума, наложенного предложенным выше методом (PSNR: 28,19). Это связано с тем, что, как показано ранее, шум данного типа сильно отличается от реального шума с матриц фотокамер.
Заключение
В данной работе рассмотрен алгоритм шумоподавления основанный на сверточных нейронных сетях, архитектура такой нейронной сети, а также предложен новый подход к построению датасета.
Сеть, построенная по такому принципу, не уменьшает четкости изображения и не размывает его, а также достаточно эффективно удаляет шум. Тем не менее, данный подход необходимо усовершенствовать, чтобы повысить его универсальность.
Литература:
- Kai Zhang, Wangmeng Zuo, Yunjin Chen, Deyu Meng, Lei Zhang Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising // IEEE Transactions on Image Processing. 2017. Vol. 26, No 7, P. 3142–3155.
- Методы удаления шумов на изображениях на основе применения искусственных нейронных сетей [Электронный ресурс] URL:https://www.lib.tpu.ru/fulltext/c/2010/C01/V2/170.pdf (дата обращения: 13.05.2019).
- Roth S., Black M. J. Fields of experts // International Journal of Computer Vision. 2009. Vol. 82, No 2, P. 205–229.