27 октября 2016 в 12:54

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


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

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

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

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

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



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


Примеры стилизации изображений в нейросети Гэтиса, Эккера и Бетге

Оригинальное изображение: Старый город в Тюбингене


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


Результат работы нейросети


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

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

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

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

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

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

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



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

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

Анатолий Ализар @alizar
карма
668,3
рейтинг 742,3
Редактор
Похожие публикации
Самое читаемое

Комментарии (15)

  • 0
    Слишком сильно сохраняется детализация для того чтобы можно было так уж громко говорить об обнозначном успехе формализации авторского стиля и жанра в автоматическом режиме — стиль с головой клоуна наглядно это показывает — в итоге фактически почти ничего общего кроме цветовой гаммы. Но перспективы наверное есть. По качеству до захардкоженных стилей навроде dynamic auto painter имхо пока еще далековато. Это как с процедурной генерацией миров в играх — технически интересно, на практике слишком синтетически.
  • –1
    Не вижу настоящее творчество. Сеть берет готовую палитру и накладывает на готовое изображение. Если это творчество, то таких творцов много в детском саду.
    • +5
      Никто и не говорит, что нейросеть творит. Речь о том, что сеть может отделить стиль от содержимого. Хотя вот если взять девушку в абстактном стиле. Сеть из изходной картины взяла только два цвета и прямые линии и тупо стилизовала портрет девушки, хотя абстрактное искуство это нечто большее. Неопытный не должен был бы распознать в полученной картине девушку, а опытный должен был бы воскликнуть «Клетчатый!».
      • 0
        с клоуном тоже «не то» — там суть (у меня нет худ. образования) в грубых широких мазках, а у нейросети есть тонкие прямые линии…
        Абстракцию я бы вообще не рассматривал — тут нейросеть должна провалиться, т.к. обучается она «логическому» построению, а абстракционизм далек от логики (опять же это мое мнение)
      • 0
        Я думаю многие художники могут нарисовать картину «в стиле» Мунка или Пикассо, и т.п… но это будет ВТОРИЧНО. Также искусствоведы уже сто раз проанализировали из каких именно элементов состоит тот или иной стиль — кроме цветовой гаммы наверняка там есть про ширину мазков, их количество, и т.п… К тому же есть ограничения по технике -используемые кисти, краски, и т.п… Наверное если в нейросеть заложить всё это — т.е. заставить не воспроизводить изображение, а моделировать процесс рисования — результат был бы лучше. (Подкрутив эту ручку, мы увеличиваем дозу абсента которую принял художник в процессе).
        А классифицировать все что угодно — в том числе и картины по стилям — это вообще прямая обязанность нейросетей.
        (При первом просмотре фильма, «Клетчатый» на картине мне показался гораздо более похожим на оригинал чем потом — о настройке собственной нейросети )))
        Всем 3 минуты 45 секунд наслаждения замечательным моментом.
        https://www.youtube.com/watch?v=8DJ6vkGhnKU
    • 0
      Это философский вопрос. Многие художники берут картинку из реальности и накладывают на нее какой-нибудь стиль. Чего не хватает нейронной сети, так это создания собственного стиля, в котором она будет отображать собственное видение увиденного.
  • 0
    Хм, как раз Цукерберг показал свои наработки в нейросетях и стилизации видео…
  • 0
    На первый взгляд кажется, результат не сильно отличается от фильтров в фотошопе… или там тоже какое-то подобие нейросетей используется?

    А нельзя ли обучить нейросеть, чтобы она удаляла шумы на фотографиях (как собственные, так и из-за грязи). или «лишние» объекты — людей, деффекты кожи, провода. Желательно, в виде плагина к фотошопу.
    Вот тогда была бы практическая польза…
    • 0
      Вот вот. Меня все время убивает выбор картин экспессионистов. Все равно у сети не хватит ума передать смысл и пары абсента.

      Практичнее было к примеру взять рекламные фотографии топовых менеджеров, сделать селфи, прогнать через сеть и на выходе получить отличное фото для резюме. Я бы даже заплатил за такую эппку.
    • +1
      С лишними объектами, это работает уже давно в фотошопе «из коробки» https://youtu.be/v91p8upSzH0?t=125
      Для дефектов кожи есть специальные плагины, но если все доверить автоматике, результат не очень хороший.
      Для подавления шумов тоже есть неплохие плагины, в том числе от Nik Collection (которых купил гугл и сделал эти плагины бесплатными)
    • 0

      Лишние объекты фотошоп уже давно удаляет.

  • +1
    Кстати, там где образцом был клоун — нейросеть, похоже, «провалилась»… картинка похожа лишь цветовой гаммой, тогда как смысл, как мне кажется, был был широких грубых мазках…

    (уже не успел дописать в свой комментарий)
  • 0
    Хуже всего сети справляются с небом и другими монотонными зонами. Цвет переносят, а саму идею построения картины мазками кисти они не понимают, из-за чего мазков нет, и небо получается странным.
  • 0
    То, что считалось художественным видением, авторским стилем и жанром искусства, успешно поддаётся формализации и усваивается нейросетью. Искусственный интеллект впервые освоил настоящее творчество.

    Но это всё ещё не творчество. Нейростети такого рода — по сути сложный вариант фильтра из фотошопа, и так можно было бы результат фильтра «размытие» выдать за творчество, если бы в прошлом нашелся художник, основавший стиль блюризма. Суть творчества же не в изменении уже существующего, а в создании нового.
  • 0
    Лучше бы учили сеть на трёх картинках — картинка с художественным стилем, картинка для преобразования и эта же картинка, разрисованная художником в попытке передать художественный стиль.

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