Исследователи из Adobe создали программу, которая позволяет мгновенно переделывать различные компоненты изображений: например, убирать морщины с лица, раскрашивать фон или менять ориентацию головы. Для этого они использовали генеративно-состязательные нейросети и разбили результаты их работы методом главных компонент: так удалось выделить отдельные аспекты изображений и менять их по-отдельности. Препринт с описанием работы алгоритма опубликован на сайте arXiv.org.
Генеративно-состязательные сети сейчас позволяют не только создавать изображения с нуля, руководствуясь тем, как выглядит обучающая выборка, но и менять отдельные параметры изображений. Хороший пример — перенос стилей: год назад компания NVIDIA, к примеру, показала алгоритм, который позволяет менять виды отдельных животных на изображении, не затрачивая на это много данных обучающей выборки.
При этом возможности подобных алгоритмов пока не очень широки: алгоритм NVIDIA работает на основе смены классов объектов на изображении, но вот подправить какие-то небольшие детали (скажем, увеличить объект, сменить фон за ним или немного подправить) уже не может. Теоретически генеративно-состязательные сети все же могут эту задачу решить: для этого необходимо разобрать цикл работы алгоритма на компоненты и вычленить те, которые позволяют менять отдельные аспекты изображений.
Программа, представленная разработчиками из Adobe под руководством Эрика Харкёнена (Erik Härkönen), основана как раз на этом принципе. Для ее разработки авторы рассмотрели два уже обученных алгоритма, основанных на генеративно-состязательных нейросетях: StyleGAN и BigGAN — они используются как раз для переноса стилей.
При анализе нейросетей исследователи разбили пространство скрытых переменных с помощью метода главных компонент, который позволяет сузить набор данных, а в этом случае — выделить те компоненты, которые отвечают за смену каких-то определенных параметров изображения. Зависит это от того, что на картинке изображено: скажем, при смене одного лица на другое в слоях нейросети могут меняться положение головы, цвет волос, выраженные эмоции и морщины — и каждую из этих составляющих можно будет вычленить и настроить отдельно.
На основе этого ученые создали программу, в которой, в зависимости от изображения, можно менять ряд его параметров. Например, убирать морщины на лице, менять фон, удлинять шею животному, изменять фон изображения и тип кузова автомобиля. Каждый параметр в программе можно регулировать с помощью ползунка. Исходный код алгоритма и инструкцию по запуску программы разработчики также выложили в открытый доступ на GitHub.
Еще одно эффективное и полезное применение генеративно-состязательных нейросетей — дорисовывание изображений. Один из таких алгоритмов в сентябре показали разработчики из Google.
Елизавета Ивтушок