Как работает перенос стиля в приложениях вроде Prisma
После того, как Prisma взорвала интернет, вышло немало подобных приложений - технология переноса стиля на самом деле не нова и легко воспроизводится при наличии ресурсов. Теперь фильтры аля Prisma есть даже в ICQ.
Технологии, которые стоят за этими приложениями, очень интересны в том плане, что на них хорошо разбираться, как работают нейросети. Я читал оригинальную работу исследователей, которые первыми придумали использовать нейросети для переноса стиля (Гатис и команда), переписывался с ними, и с российскими исследователями из Яндекса, которые усовершенствовали этот метод, и с разработчиками разных приложений. Писал текст для одного издания, но некоторые авторы слишком долго отвечали, а потом хайп прошёл и черновик пришлось отложить в долгий ящик.
Если вы интересуетесь нейросетями, я советую вам почитать вот это объяснение от Google. Там ребята научили нейросети не просто переносить стили изображений, но и смешивать стили с разных изображений, причём делать это на лету. Ссылки для более подробного изучения - в конце текста.
https://research.googleblog.com/2016/10/supercharging-style-transfer.html
А здесь ещё более простое и понятное объяснение в формате видео: https://youtu.be/WHmp26bh0tI
Если совсем на пальцах, то глубокие нейросети при распознавании картинок пропускают их через много слоёв "нейронов". Самые низкие слои - самые тупые, они видят простые линии и формы. Чем выше слой, тем больше уровень абстракции. Последние слои уже могут распознавать сложные объекты, особенности рисунка (например, мазок художника) и стиль рисунка в целом.
Перенос стиля работает так: программа берёт за основу картинку чёрно-белого шума и начинает модифицировать её так, чтобы нижние слои нейросети начали распознавать в ней контент исходной фотографии, а верхние - стиль заданного рисунка. После каждой итерации программа оценивает ошибку (насколько полученный рисунок отличается от заданного) и корректирует коэффициенты для следующей итерации. После большого количества итераций результатом будет картинка с содержанием заданной фотографии и стилем заданного рисунка.
Если что-то напутал, поправьте.
Post #642
9.56K