Последний месяц для саморазвлечения в качестве сайд-проекта играюсь с neural style transfer - нейронные сети, переносящие стиль с картинки на картинку. Многие знают это как приложение Prisma. Видимо создатели тоже читают блог creativeai :)
Первая реализация появилась больше 8 месяцев назад и доступна на github jcjohnson/neural-style - она написанна на lua, всё замечательно, кроме того что работает она вечность (и жрёт почти бесконечность памяти). На Digital Ocean с 16 swap генерация картинки 450x200 заняла около 2 минут, сейчас уже не помню.
Все поменялось с выходом публикации "Perceptual Losses for Real-Time Style Transfer and Super-Resolution", которая позволила на порядок ускорить время генерации картинок. По этой публикации сделали реализацию на python littlekobe/chainer-fast-neuralstyle. Для сравнения - на том же DigitalOcean так же картинка генерилась всего 8сек и уместилась в 4gb swap.
Мало того, на фоне хайпа пришла идея в голову(не без сторонней помощи) сделать чат бота для фейсбука - совсем недавно они аннонсировали API для этого на своей ежегодной конференции. Если так подумать то приложение Prisma не нужно вообще - всё это можно быть сделанно через бота. Нет смысла ставить ещё один эпп (я так думал). В итоге получилось то что получилось: QuickPrism.com, надеюсь ссылка ещё будет работать). Страница бота facebook.com/quickprisma
Прототип бота сначала написал на nodejs, но потом быстро перенёс на spring boot/kotlin уже с нормальной очередью на mongodb и файлами на s3. Плюс всякие фишки для распознавания текста
Фейсбук хоть и выпустил бот платформу но неудосужился адаптировать мобильный вэб - юзеры из стран третьего мира видят совсем не «карусельку» с кнопками а тупо ненажимающийся блок текста, вместо картинки с кнопкой - кирпич.
В том же проекте откопал скрипт для процессинга видео с камеры в реальном времени, получилось вот забавно. Или вот популярная гифка(один из первых экспериментов) с моделью «Starry Night»:
Используя тот же скрипт я сгенерил видяшку (по сути это видео разложенное на кадры, обработанное и склеенное обратно):
Я неверотяно доволен что удалось поиграть с этой штукой, посути относительно быстро получилось нахакать что то "вау" и конечно же я достаточно много узнал, пока ещё не очень глубоко о нейроных сетях, feature extraction, и прочих штуках.
К сожалению сейчас нет времени и ресурсов(а хорошие машинки тут очень нужны!) этим проектом, хотя есть приминений - дофига - как в b2c так и в b2b