Нейросеть 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 выделяет для проектов на свой выбор.

    Метки:
    Поделиться публикацией
    Похожие публикации
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Комментарии 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
                            Лучше бы учили сеть на трёх картинках — картинка с художественным стилем, картинка для преобразования и эта же картинка, разрисованная художником в попытке передать художественный стиль.

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