Нейросеть от Google накладывает на фотографию любой из 32 обученных стилей (здесь показаны пять). Программа нетребовательна к железу и памяти. Код опубликуют в ближайшее времяСинтез текстур с переносом стиля с одного изображения на другое — известная техника, которой 15 лет. Впервые она описана в статье
«» группы исследователей из Microsoft Research для конференции SIGGRAPH 2001, а также в статье
«» от Mitsubishi Electric Research и Калифорнийского университета в Беркли в том же 2001 году. Сейчас трудно сказать, какая из них появилась раньше.
В 2015 году техника получила вторую жизнь, когда к синтезу изображений с переносом стиля подключились нейросети. Это случилось после выхода научной работы
«» Гэтиса, Эккера и Бетге из университета Эберхарда-Карла в Тюбингене, Германия (
). Работа настолько впечатляющая, что описанный алгоритм вскоре реализовали в нескольких компьютерных программах для потребительского рынка, в том числе в мобильных приложениях вроде российского
Prisma (июнь 2016-го).
Работа Гэтиса, Эккера и Бетге хороша тем, что авторы обучили нейросеть на существующих работах известных художников: Винсента Ван Гога, Пабло Пикассо, Эдварда Мунка и других. При этом нейросеть можно продолжить обучать на других наборах данных, так что это универсальный инструмент. Именно такая нейросеть работает на сервере Prisma и других компаний, которые распространяют мобильные приложения для стилизации пользовательских фотографий.
Свёрточная нейросеть Гэтиса, Эккера и Бетге создана на основе
, а обработка исходного изображения происходит в несколько стадий. На каждой стадии в иерархии количество фильтров увеличивается. Стилизация под конкретный стиль происходит на первых этапах «даунсэмплинга» (широкие мазки, кубистские паттерны и т.д.), а последние слои нейросети обрабатывают оригинальное изображение, чтобы объекты оставались узнаваемыми (
d и
e на схеме). Нейросеть начинает работу со случайной позиции (или с исходного изображения) до тех пор, пока результат не удовлетворяет заданным требованиям.

В нейросети разделены друг от друга репрезентации контента и стиля. Таким образом, ими можно управлять независимо друг от друга. Например, взять контент с одного изображения, а стиль — с другого.
Примеры стилизации изображений в нейросети Гэтиса, Эккера и БетгеОригинальное изображение: Старый город в Тюбингене
Образец стиля: картина «Голова клоуна» (1907-1908), Жорж Руо, стиль: экспрессионизм
Результат работы нейросети
Эту работу считают фундаментальным прорывом в технологиях глубинного обучения, потому что это первая концептуальное доказательство передачи художественного стиля через нейросеть. То, что считалось художественным видением, авторским стилем и жанром искусства, успешно поддаётся формализации и усваивается нейросетью. Искусственный интеллект впервые освоил настоящее творчество.
На идее разделения стиля и содержания картины созданы разнообразные нейросети, в том числе для
и для
.
К сожалению, у нейросети Гэтиса, Эккера и Бетге есть недостаток: такая нейросеть слишком требовательна к вычислительным ресурсам. Это стало понятно после выхода первых демо-приложений, которые несколько минут обрабатывались на сервере.
В последующих работах,
, нейросеть была значительно оптимизирована за счёт ограничения функциональности. В итоге, оптимизация дошла до такой степени, что вместо нескольких минут стилизация фотографии стала происходить практически мгновенно. Так что появилась возможность стилизовать
!
Но у подобной стилизации есть обратная сторона медали. Сверхбыстрая стилизация возможна только если за образец берётся
одно изображение. Это ограничение оригинального алгоритма, ведь тот не привязан к одному стилю. Другими словами, если вы хотите сделать систему, способную передавать 100 разных стилей, то вам придётся предварительно обучать 100 разных нейросетей.
Сейчас компания Google внесла свою лепту в эти исследования. 24 октября 2016 года сотрудники Google Brain Team опубликовали
с описанием алгоритма, который работает так же быстро, как и предыдущие, но при этом в единой универсальной нейросети, которая может накладывать любые усвоенные стили.
По
словам разработчиков, их алгоритм прост в реализации и не выдвигает высоких требований к оперативной памяти. Более того, после обучения на нескольких стилях он способен сочетать
несколько стилей одновременно и работает в реальном режиме времени. Например, вот фотография того же Старого города в Тюбингене, на которую наложено
четыре стиля одновременно.

Исследователи считают, что их работа открывает новые возможности по творческому использованию нейросети стилизации. В ближайшее время в
они обещают опубликовать исходный код программы для TensorFlow, так что каждый сможет запустить демо на своём компьютере.
Более подробно о стилизации изображений в нейросети рассказано в научно-популярном
. Его записали две сотрудницы Nat и Lo в 20% своего рабочего времени, которые компания Google выделяет для проектов на свой выбор.