- PVSM.RU - https://www.pvsm.ru -

Нейросеть Google произвольно стилизует изображения в реальном времени

Нейросеть Google произвольно стилизует изображения в реальном времени - 1
Нейросеть от Google накладывает на фотографию любой из 32 обученных стилей (здесь показаны пять). Программа нетребовательна к железу и памяти. Код опубликуют в ближайшее время

Синтез текстур с переносом стиля с одного изображения на другое — известная техника, которой 15 лет. Впервые она описана в статье «Аналогии по изображению [1]» группы исследователей из Microsoft Research для конференции SIGGRAPH 2001, а также в статье «Подбивка изображения для текстурного синтеза и переноса [1]» от Mitsubishi Electric Research и Калифорнийского университета в Беркли в том же 2001 году. Сейчас трудно сказать, какая из них появилась раньше.

В 2015 году техника получила вторую жизнь, когда к синтезу изображений с переносом стиля подключились нейросети. Это случилось после выхода научной работы «Нейроалгоритм художественного стиля [2]» Гэтиса, Эккера и Бетге из университета Эберхарда-Карла в Тюбингене, Германия (статья на Geektimes [3]). Работа настолько впечатляющая, что описанный алгоритм вскоре реализовали в нескольких компьютерных программах для потребительского рынка, в том числе в мобильных приложениях вроде российского Prisma [4] (июнь 2016-го).

Работа Гэтиса, Эккера и Бетге хороша тем, что авторы обучили нейросеть на существующих работах известных художников: Винсента Ван Гога, Пабло Пикассо, Эдварда Мунка и других. При этом нейросеть можно продолжить обучать на других наборах данных, так что это универсальный инструмент. Именно такая нейросеть работает на сервере Prisma и других компаний, которые распространяют мобильные приложения для стилизации пользовательских фотографий.

Свёрточная нейросеть Гэтиса, Эккера и Бетге создана на основе 19-слойной VGG-нейросети Симоняна и Зиссермана [5], а обработка исходного изображения происходит в несколько стадий. На каждой стадии в иерархии количество фильтров увеличивается. Стилизация под конкретный стиль происходит на первых этапах «даунсэмплинга» (широкие мазки, кубистские паттерны и т.д.), а последние слои нейросети обрабатывают оригинальное изображение, чтобы объекты оставались узнаваемыми (d и e на схеме). Нейросеть начинает работу со случайной позиции (или с исходного изображения) до тех пор, пока результат не удовлетворяет заданным требованиям.

Нейросеть Google произвольно стилизует изображения в реальном времени - 2

В нейросети разделены друг от друга репрезентации контента и стиля. Таким образом, ими можно управлять независимо друг от друга. Например, взять контент с одного изображения, а стиль — с другого.

Нейросеть Google произвольно стилизует изображения в реальном времени - 3
Примеры стилизации изображений в нейросети Гэтиса, Эккера и Бетге

Оригинальное изображение: Старый город в Тюбингене
Нейросеть Google произвольно стилизует изображения в реальном времени - 4

Образец стиля: картина «Голова клоуна» [6] (1907-1908), Жорж Руо, стиль: экспрессионизм
Нейросеть Google произвольно стилизует изображения в реальном времени - 5

Результат работы нейросети
Нейросеть Google произвольно стилизует изображения в реальном времени - 6

Эту работу считают фундаментальным прорывом в технологиях глубинного обучения, потому что это первая концептуальное доказательство передачи художественного стиля через нейросеть. То, что считалось художественным видением, авторским стилем и жанром искусства, успешно поддаётся формализации и усваивается нейросетью. Искусственный интеллект впервые освоил настоящее творчество.

На идее разделения стиля и содержания картины созданы разнообразные нейросети, в том числе для генерации пугающих изображений [7] и для генерации порнокартинок [8].

К сожалению, у нейросети Гэтиса, Эккера и Бетге есть недостаток: такая нейросеть слишком требовательна к вычислительным ресурсам. Это стало понятно после выхода первых демо-приложений, которые несколько минут обрабатывались на сервере.

В последующих работах, в том числе российских специалистов [9], нейросеть была значительно оптимизирована за счёт ограничения функциональности. В итоге, оптимизация дошла до такой степени, что вместо нескольких минут стилизация фотографии стала происходить практически мгновенно. Так что появилась возможность стилизовать даже видео в реальном времени [10]!

Но у подобной стилизации есть обратная сторона медали. Сверхбыстрая стилизация возможна только если за образец берётся одно изображение. Это ограничение оригинального алгоритма, ведь тот не привязан к одному стилю. Другими словами, если вы хотите сделать систему, способную передавать 100 разных стилей, то вам придётся предварительно обучать 100 разных нейросетей.

Сейчас компания Google внесла свою лепту в эти исследования. 24 октября 2016 года сотрудники Google Brain Team опубликовали статью [11] с описанием алгоритма, который работает так же быстро, как и предыдущие, но при этом в единой универсальной нейросети, которая может накладывать любые усвоенные стили.

По словам [12] разработчиков, их алгоритм прост в реализации и не выдвигает высоких требований к оперативной памяти. Более того, после обучения на нескольких стилях он способен сочетать несколько стилей одновременно и работает в реальном режиме времени. Например, вот фотография того же Старого города в Тюбингене, на которую наложено четыре стиля одновременно.

Нейросеть Google произвольно стилизует изображения в реальном времени - 7

Исследователи считают, что их работа открывает новые возможности по творческому использованию нейросети стилизации. В ближайшее время в блоге Magenta [13] они обещают опубликовать исходный код программы для TensorFlow, так что каждый сможет запустить демо на своём компьютере.

Более подробно о стилизации изображений в нейросети рассказано в научно-популярном видео [14]. Его записали две сотрудницы Nat и Lo в 20% своего рабочего времени, которые компания Google выделяет для проектов на свой выбор.

Автор: alizar

Источник [15]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/203408

Ссылки в тексте:

[1] Аналогии по изображению: http://mrl.nyu.edu/publications/image-analogies/

[2] Нейроалгоритм художественного стиля: https://arxiv.org/abs/1508.06576

[3] статья на Geektimes: https://geektimes.ru/post/261116/

[4] Prisma: https://ru.wikipedia.org/wiki/Prisma

[5] 19-слойной VGG-нейросети Симоняна и Зиссермана: https://arxiv.org/abs/1409.1556

[6] картина «Голова клоуна»: https://www.google.com/culturalinstitute/beta/u/0/asset/head-of-a-clown/CQHMqKf7DRo76w

[7] генерации пугающих изображений: https://geektimes.ru/post/281826/

[8] генерации порнокартинок: https://geektimes.ru/post/281714/

[9] в том числе российских специалистов: https://arxiv.org/abs/1603.03417

[10] даже видео в реальном времени: https://geektimes.ru/post/275788/

[11] статью: https://arxiv.org/abs/1610.07629

[12] словам: https://research.googleblog.com/2016/10/supercharging-style-transfer.html

[13] блоге Magenta: https://magenta.tensorflow.org/

[14] видео: https://www.youtube.com/watch?v=WHmp26bh0tI

[15] Источник: https://geektimes.ru/post/281922/