Глубокие нейронные сети не только впечатляют людей своими способностями к искусственному интеллекту, но и своими художественными способностями. Последняя работа может взять стиль любого художника и преобразовать существующее видео в этот стиль. Вы должны увидеть это, чтобы поверить в это.
Нейронные сети хорошо умеют обобщать. Например, вы можете использовать обученную сеть для преобразования входного изображения в нечто, имеющее стиль эталонной картины. В результате фотография выглядит так, как будто ее нарисовал художник.
Звездные войны в стиле Кандинского.
Процесс немного сложнее, чем это, потому что нейронные сети изучают функции, которые касаются содержания изображения, а не информации о стиле. Разумно предположить, что информация о стиле находится в корреляциях между функциями. Стилизованное изображение вводится в сеть, и его пиксели настраиваются таким образом, чтобы минимизировать функцию потерь, которая включает в себя его функции и меру того, насколько далеко корреляции функций находятся от изображения, используемого в качестве примера стиля. Обратите внимание, что это не простое использование нейронной сети в том смысле, что сеть не изучает стиль художника — она просто предоставляет функции, которые используются для характеристики стиля.
Пока все хорошо, но как насчет создания фильма в стиле художника, использующего ту же технику? Если вы попробуете очевидный подход и примените сеть и оптимизацию к каждому кадру по очереди, то результат будет не очень хорошим, потому что все скачет — нет временной согласованности. Чтобы сделать хороший фильм в стиле художника, вы должны преобразовать каждый кадр с временными ограничениями на то, как все меняется.
Именно этот метод исследовала команда из Университета Фрайбурга. Они использовали подход глубокой нейронной сети для оценки оптического потока от одного кадра к следующему Оптическому потоку, который дает вам представление о том, как вещи перемещаются и меняются между кадрами. Идея состоит в том, чтобы сравнить оптический поток между исходным и рестайлинговым изображением и включить разницу в функцию потерь, используемую при оптимизации. Таким образом, теперь оптимизация пытается сохранить изменения между кадрами одинаковыми, а также исходные функции и корреляции в изображении стиля.
Точные детали того, как запустить такую оптимизацию, сложны, и вы можете прочитать о них в статье. Однако стоит сказать, что он был реализован на графическом процессоре Nvidia Titan X и занимал от восьми до десяти минут для каждого кадра 1024×436.
Теперь, когда вы знаете, как это работает, посмотрите видео, в котором объясняются различные применяемые ограничения. Обратите внимание на неограниченный пример в начале, где применяемые стили прыгают повсюду.
Существует также менее техническое видео, которое стоит посмотреть, чтобы оценить, насколько хорошо оно работает.
Так что это весело, но полезно ли это?
Возможно, вы не захотите переделывать существующий фильм, скажем, в стиле Пикассо или «Крика», но это открывает возможность создания новых фильмов в стиле…