Американские исследователи разработали нейросеть, позволяющую кодировать растровое (дискретное) изображение, состоящее из отдельных пикселей, в непрерывное изображение. Это позволяет приближать изображение с небольшой воспринимаемой потерей качества. Ранее уже существовали алгоритмы, увеличивающие разрешение изображения при приближении, однако они адаптированы для работы с фиксированным разрешением, тогда как новый алгоритм может работать с разными масштабами, рассказывают авторы в статье на arXiv.org.
У нейросетей для работы с изображениями есть много практических применений, одно из которых — увеличение разрешения. В отличие от классических методов, таких как интерполяция, нейросеть «дорисовывает» детали на изображении большего разрешения и позволяет получать качество, почти не уступающее настоящим снимкам c более близкого расстояния. Разные реализации таких алгоритмов уже используются в популярных устройствах. К примеру, алгоритм DLSS позволяет занижать разрешение рендеринга в играх и в реальном времени повышать разрешение уже отрисованного изображения до исходного, тем самым позволяя тратить меньше ресурсов на получение изображения сравнимого качества. Кроме того, во многих смартфонах камеры увеличивают качество зума, совмещая несколько снимков и увеличивая разрешение при помощи нейросети.
Подобные алгоритмы в некотором смысле размывают понятие «разрешение», потому что позволяют менять его, но при этом они все равно взаимодействуют с дискретными изображениями и выдают дискретные изображения, пускай и лучшего качества. Одно из ограничений такого подхода заключается в том, что при обучении нейросети изображения из обучающей выборки приходится приводить к одному фиксированному разрешению, что приводит к потере качества для некоторых из них.
Исследователи из Калифорнийского университета в Сан-Диего и NVIDIA под руководством Сяолуна Вана (Xiaolong Wang) разработали алгоритм, позволяющий переводить исходное растровое изображение, состоящее из отдельных пикселей, в непрерывное представление без разрешения. По принципу работы алгоритм похож на недавние алгоритмы для 3D-моделирования с использованием неявно заданных поверхностей и нейросетевые алгоритмы для описания 2D-изображений с использованием неявно заданных функций. Во время работы они берут исходный объект в дискретном представлении и подбирают для него функцию, которая бы максимально точно описывала его и позволяла восстановить исходное изображение. Этот метод уже работает с простыми изображениями, например, с цифрами, однако чем больше деталей на изображении, тем сложнее подобрать качественно описывающую его функцию, поэтому на фотографиях он дает слабые результаты.
Главное новшество алгоритма, описанного в статье, заключается в том, что авторы предложили перейти от единой функции для описания всего изображения к набору локальных функций, описывающих его фрагменты. Изначально изображение переводится в карту признаков. Получая координаты места на изображении соответствующая локальная функция берет кодированное представление признаков на окружающей области изображения и возвращает предсказанные параметры пикселя. Это позволяет рендерить изображение произвольного разрешения.
Авторы обучали нейросеть на датасете DIV2K, предназначенном для обучения алгоритмов, увеличивающих разрешение. Он состоит из тысячи фотографий в разрешении 2K и их версий, уменьшенных в два, три и четыре раза. Задача алгоритма при обучении заключалась в том, чтобы, получив изображение с низким разрешением, создать локальные функции, позволяющие максимально точно восстановить изображение в полном разрешении.
После обучения авторы сравнили результаты нового алгоритма с аналогами на тестовой части DIV2K и четырех стандартных датасетах Set5, Set14, B100 и Urban100. Они провели качественно сравнение, показав результаты разных алгоритмов:
Также они провели количественное сравнение, измерив соотношение сигнала к шуму на изображениях, полученных разными алгоритмами. Результаты показали, что новый алгоритм дает более высокое значение отношения сигнала к шуму, причем отрыв новой нейросети увеличивался по мере возрастания кратности увеличения:
Недавно NVIDIA предложила новый метод сжатия видео для сервисов видеосвязи. Новый алгоритм периодически пересылает основной кадр с человеком, но основная часть данных, пересылаемая непрерывно, представляет собой карту частей лица, которая затем позволяет анимировать основной кадр при помощи нейросети.
Григорий Копиев