Prisma что за программа

Вся правда о Prisma, самом обсуждаемом приложении недели

Вас озадачивают странные фотографии, стилизованные под картины художников, которые постят ваши друзья в «Фейсбуке»? Во всём «виновата» Prisma, российское приложение для обработки фото. За девять дней программу скачали 650 тыс. раз, а в десяти странах (в основном, СНГ) она стала хитом.

Зачем это вообще всё?

Каждый из нас время от времени постит в социальных сетях фотографии, претендующие на художественность. Это нормально. Чтобы притязания на эту художественность хоть как-то подкрепить, люди обрабатывают фотографии. В 2012-м всем хватало встроенных фильтров в «Инстаграме», потом подтянулись VSCO, Snapseed, и прочие, прочие, прочие. Квадратные картинки становились всё выразительнее.

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

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Последним приложением для обработки фотографий, которое более-менее пошумело, был уже позабытый всеми dergradr Павла Косенко. Главной его фишкой была «интеллектуальная обработка» изображения под легендарную плёнку «КодакХром». Результат никому, кроме фанатов, не нравился, но все его обсуждали из-за известности в фотографических кругах самого Павла.

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

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

Почему именно Prisma?

Prisma популярна потому, что про неё пишут журналисты. Сама популярность приложения на данный момент является уже отдельным мемом. Просто потому что она уже популярна и все обсуждают собственно её популярность, она становится ещё популярней. Всё просто.

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

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

Аналогичный по функциональности Brushstroke гораздо сложнее устроен. Сначала приложение пытает тебя 70 фильтрами, потом десятком холстов и, в конце концов, настройкой контраста и всем остальным. Вариантов обработки в итоге тысячи против 20 конкретных в Prisma. Результат в первом случае получается вроде как более вменяемый, но многим нравится необычность результата во втором.

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Brushstore делает классические акварельные открытки, а при попытке дать Ван Гога ведёт себя очень неуклюже. Prisma при этом может выдать что-то такое, что больше никто не выдаёт.

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

А как же нейросети?

Это очень модное слово: «нейросеть». Никто не понимает, что это такое, но все знают, что при помощи этой штуки обыграли чемпиона по Го, а значит, она очень крутая.

С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения, обучение нейронных сетей — это многопараметрическая задача нелинейной оптимизации.

Да, мы только что процитировали Википедию. Но понятней выразиться невозможно. Поэтому и звучит так научно и впечатляюще.

На самом деле, в таком распознавании образов нет ничего не особенного: Google умеет отличать собаку от дерева уже довольно давно и без проблем расставляет автоматические теги на youtube. Это всего лишь механизм распознавания образов и нет никаких оснований утверждать, что раньше такое приложение сделать было невозможно.

Так когда же все успокоятся?

Главное, что стоит понять про Prisma, — это всё-таки не приложение для обработки фотографий. Это всё тот же MSQRD, только вы издеваетесь в данном случае не над своим лицом, а над своими фотографиями. Прикиньте, сколько времени ваша лента в «Инстаграме» была воспалена забавными видео с участием Джигурды и белых медведей, разделите на два (всё-таки Prisma не такая крутая) и получите примерно представление о том, сколько всё это будет продолжаться.

Вряд ли это приложение будет вечнозелёным, как VSCO, Snapseed или тот же Brushstroke. Игрушки быстро выходят из моды. Как вы там, Flappy Bird, 2048 и Draw Something? То-то и оно.

Источник

Новости Барнаула

Опросы

Спецпроекты

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Прямой эфир

Что такое приложение Prisma и как им пользоваться?

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Новое приложение для редактирования фотографий Prisma, разработанное в России, стало одним из самых скачиваемых в 10 странах мира. Что это за сервис и почему он пользуется бешеной популярностью, читайте в нашей постоянной рубрике «Вопрос-Ответ».

Разработанное в России приложение для iOS Prisma стало доступным для скачивания в AppStore 11 июня. Данная программа предназначена для обработки фотографий. Отличительной ее особенностью стало то, что фильтр на изображение не накладывается, фото получает новую жизнь с помощью нейросетей.

Благодаря Prisma самые обычные фотографии можно стилизовать под картины известных художников. На данный момент пользователям доступно 20 фильтров для обработки фото. Пользователи могут преобразить свое фото под стиль Мунка, Ван Гога, Марка Шагала, Кандинского, Роя Лихтенштейна, а также под другие художественные стили.

Увидев ошеломительный успех нового приложения, Mail.ru Group решило стать инвестором Prisma. Размер инвестиций и полученная в проекте доля не раскрываются. Инвесторами проекта также выступили компания XBT Holding и фонд Gagarin Capital.

Всего за 10 дней с момента запуска его установили более миллиона пользователей. За это время Prisma также стало лидером по количеству скачиваний в десяти странах — России, Белоруссии, Украине, Эстонии, Молдавии, Киргизии, Узбекистане, Казахстане, Латвии и Армении. Приложение получило такую популярность, что пользователи социальных сетей начали жаловаться на засилье однотипно обработанных снимков в Instagram.

Источник

Prisma

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Операционная система:ANDROID, IOS, Windows 7, Windows 8, Windows 8.1, Windows 10, Vista, Windows XPРазработчик:Prisma Labs, inc.Распространяется:бесплатноРазмер:7 МбИнтерфейс:русский, английский и др.Установок: 6 778Как скачать Prisma и установить на ПК и ноутбук с ОС Windows 11 / 10 / 8 / 7 расскажем в этом обзоре. Инструкция по установке, системные требования для установки.

Особенности программы

Что вы узнаете из статьи:

Упоминая про фоторедакторы, способные работать не только на компьютерах, но и на мобильных устройствах, стоит назвать еще одну программу — Prisma. Данный софт был разработан в 2016 году Андреем Усольцевым, Олегом Поягановым, Алексеем Моисеенковым и Ильей Фроловым.

В связи с тем, что разрабатывался он именно для мобильных устройств, то те, кто решит скачать Prisma для Windows 7, 8, 10, могут столкнуться с некоторыми трудностями. Но и их можно легко побороть. Как это сделать — расскажем ниже. А пока давайте познакомится с этим, безусловно, полезным софтом.

Функционал

Главные возможности, ради которых многие используют эту утилиту, похожи на функции других фоторедакторов. Среди них обработка фото с помощью стандартных инструментов и фотофильтров. Правда, есть и ряд особенностей:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Интерфейс

Данный софт идеально подойдет тем, кто только делает первые шаги в фоторедактировании. Понятный интерфейс позволит работать с комфортом.

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

После этого вы можете выбрать нужный вам шаблон или фильтр для обработки фото и подтвердить свой выбор.

Осталось лишь немного подождать, пока обработка закончится — и можно наслаждаться результатом. Как правило, на весь этот процесс у вас уйдет не более 15 секунд.

Однако если вы хотите более точные настройки и расширенные возможности по редактированию снимка, то вам стоит скачать Prisma бесплатно на русском языке, выбрав более поздние версии.

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

Если вы следите за всеми новинками и хотите знать все новости программы, то можно включить опцию push-уведомлений.

Программа Prisma для Windows

С учетом того, что Призма создавалась для мобильных платформ, то для загрузки ее на компьютер вам потребуется специальная программа-эмулятор. Она является условно бесплатной. То есть для того, чтобы иметь возможность запустить и в дальнейшем работать на компьютере с утилитами, разработанными для Андроид, вам надо установить эмуляторы (например, BlueStacks или Droid4X и т.п.).

Программа создает на ПК среду, аналогичную Андроид.

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

Для того, чтобы установить программу, достаточно ее скачать и запустить процесс инсталляции. Пошагово надо будет ознакомиться и согласиться с лицензионным соглашением, выбрать место для установки.

Главное, что надо еще сделать, — это синхронизировать эмулятор с мобильным устройством. И в таком случае вы сможете работать с популярными магазинами, где представлен качественный контент, в числе которого игры, утилиты, музыка, фильмы.

После установки эмулятора вы можете в таком магазине найти, в том числе, и Призму и, кликнув на «Установить», провести инсталляцию фоторедактора. Таким образом, удастся вам скачать Prisma на компьютер.

Источник

Киберпанк, который мы заслужили, или как Prisma превращает ваши селфи в произведение искусства

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Привет, Хабр! Я Миша, R&D инженер в Prisma Labs. Наш отдел занимается разработкой новых фичей для мобильных приложений Prisma и Lensa. Prisma это AI-based фоторедактор, который по нажатию одной кнопки всего за пару секунд переносит художественный стиль с картин на ваши фотографии. Недавно мы решили расширить его функционал и дать пользователям возможность переносить стиль с портретов, нарисованных художниками, на свои селфи. В этом посте я расскажу про особенности задачи портретного Style Transfer, о существующих методах, которые мы попробовали, и о том, как адаптировали их под смартфоны.

Кто такой этот ваш Style Transfer?!

Чтобы мы с вами были на одной волне, я начну свой рассказ с небольшого описания задачи Style Transfer (ST) и обзора наиболее популярных подходов к её решению.

В общем случае, задача ST формулируется так: у нас есть фотография C и стилевое изображение S (например, это может быть картина маслом, диджитал арт и др.); мы хотим получить изображение, в котором “контент” из C (под контентом подразумевается всё что изображено на фотографии) будет нарисован в том же “стиле”, что и S (более строгое определение контента и стиля изображений можно найти тут).

Исследователи занимаются этой задачей уже давно, но широкую известность она получила в 2015 году, когда вышла статья Л. Гатиса, и др., в которой предложили ST на основе нейронных сетей (они на тот момент были на вершине своего хайпа). Вот так выглядит пайплайн метода:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаПайплайн гатисовского ST [1]

Верхнеуровнево этот метод можно описать так: значения пикселей картинки с шумом итеративно изменяются так, чтобы её дескрипторы (фичи) после каждой итерации приближались к дескрипторам стилевой и контентной картинок в терминах L2 нормы. На современных GPU весь процесс обычно занимает несколько минут.

Если вас не интересуют детали этого метода или вы уже знакомы с ним, можете смело читать дальше, остальным же – велкам под кат

До запуска итерационного процесса стилизации извлекаются дескрипторы контентного p и стилевого a изображений (для данной пары изображений это делается один раз). В качестве дескрипторов используются фичемапы (aka карты признаков) с разных слоёв свёрточной нейросети VGG-19, предобученной на датасете ImageNet.

Фичемапа на L-ом слое сети представляет собой тензор размерности Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа, где Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа,Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа,Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– количество фичемап, их высота и ширина соответственно. Фичемапы изображения сами по себе являются хорошими дескрипторами контента на изображении, но при этом они не подходят в качестве дескрипторов стиля. Поэтому фичемапы стилевого изображения сначала преобразуются в матрицы размерности Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа, а затем для каждой такой матрицы рассчитывается матрица Грама Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– матрица кросс-корреляций фичемап в слое L. Эти матрицы каким-то магическим образом содержат в себе всю необходимую информацию о стиле (на самом деле, существует объяснение, почему матрица Грама является хорошим дескриптором стиля).

Перед началом первой итерации x (результат стилизации) инициализируется шумом. На каждом последующем шаге извлекаются его дескрипторы контента F и стиля G, рассчитываются расстояния от них до дескрипторов контентного и стилевого изображений соответственно:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа, Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

где Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаиPrisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– дескрипторы контента и стиля, извлечённые из x с k-ого слоя сети, Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаиPrisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– дескрипторы контента и стиля, извлечённые из p и a соответственно. Целевой функцией будет взвешенная сумма таких расстояний:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Методом обратного распространения ошибки (backpropagation) находим градиенты этой функции по значениям пикселей x, и “двигаем” значения х в направлении, противоположном найденному градиенту.

Повторяем эти шаги заданное количество итераций, или пока лосс не упадет ниже заданного значения. Силу наложения стиля можно регулировать, изменяя веса лоссов: хотим больше стиля – уменьшаем вес Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаили увеличиваем вес Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа.

При удачном подборе контентного и стилевого изображений, а также весов лоссов, можно получить впечатляющие результаты:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаГатисовский Style Transfer в действии

Несмотря на это, гатисовский ST работает очень медленно – на GeForce GTX 1080 стилизация изображения в разрешении 1024х1024 занимает в среднем около минуты.

В 2016 году вышла работа Д. Джонсона и др., в которой предлагается первый real-time Style Transfer на нейросетях. Основная идея метода заключается в обучении под каждый стиль свёрточной нейронной сети с архитектурой вида энкодер-декодер с использованием функции потерь, предложенной Гатисом: Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаСхема обучения нейросети для real-time Style Transfer [3]

Этот подход явно уступает гатисовскому ST в качестве, но по скорости заметно превосходит его (стилизация одного изображения занимает сотни миллисекунд), а значит, хорошо подходит для запуска на смартфонах. Именно этот метод и стал основой для нашего приложения Prisma.

В последующие годы вышло много работ, в которых предлагались те или иные улучшения метода Джонсона. Под катом перечислено несколько из них:

[AdaIN] – предлагают метод для “arbitrary style transfer” – это когда одна нейросеть умеет делать style transfer с произвольным стилем в real-time;

[WCT] – это тоже разновидность arbitrary style transfer, отличительной особенностью которого является улучшенное качество стилизаций и возможность регулировать силу переноса стиля даже после обучения сети;

[D&R] – по аналогии с Laplacian Pyramid авторы предложили многоуровневую архитектуру, состоящую из Drafting блока, который осуществляет стилизацию в низком разрешении 128х128, и нескольких Refinement блоков, последовательно увеличивающих разрешение до 512х512. По качеству стилизаций и времени инференса есть существенный буст по сравнению с AdaIn и WCT;

[UltraST] – в этой статье авторы оптимизировали AdaIN и WCT с помощью Knowledge Distillation, что позволило делать arbitraty style transfer в разрешении 10240 х 4096 (!).

Зачем нужно придумывать что-то ещё для портретов?

В процессе написания портрета художник обычно использует различные типы мазков и композиции цветов для лица, глаз и волос. От портретного Style Transfer пользователь, скорее всего, ожидает такого же локального переноса: чтобы кожа/глаза/губы на лице были нарисованы так же, как соответствующие им части на стилевом портрете. Однако, методы, про которые я рассказал, в большинстве случаев выдают совсем не то, что мы ожидаем:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаОжидание vs. Реальность

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

Попытки установить такое соответствие по фичемапам нейросети (например, посчитав для каждой фичемапы 4D тензор корреляций) в большинстве случаев не приводят к желаемому эффекту. Одна из потенциальных причин кроется в том, что используемая нейросеть обучалась на задаче классификации, и поэтому она извлекает те признаки изображения, по которым его можно отнести к одному из классов. Кроме того, при обучении использовался датасет ImageNet, в котором нет ни человеческих лиц, ни тем более художественных портретов. Поэтому нет каких-либо гарантий, что извлекаемые нейросетью признаки будут содержать информацию о семантических частях лица, которая нам нужна для установления соответствия между контентным и стилевым лицами.

Может возникнуть резонный вопрос: а что будет, если мы обучим сетку для face segmentation/face recognition, возьмём её энкодер и заменим им VGG в гатисовском ST? На самом деле, этот вопрос открытый, я лично пока не видел ни одной работы, в которой это исследовали.

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

Кодируем информацию о стиле в фичемапах контентного изображения

В статье авторы предлагают модифицировать гатисовский метод для работы с портретами. Их пайплайн выглядит так:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаПайплайн описанного метода [6]

Алгоритм состоит из двух этапов – генерация (Stage A) и опциональный пост-процессинг стилизованного изображения (Stage B).

Отличие от гатисовского ST заключается в следующем. В предложенном пайплайне фичи контентного изображения преобразуются так, чтобы в них помимо информации о контентном изображении также содержалась информация о локальном распределении цвета и текстур в стилевой картинке. С таким подходом Content Loss форсит не только сохранение контента, но и локальный перенос стиля:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаЛокальный перенос стиля на пальцах: мы хотим, чтобы правая часть лица девушки была нарисована в светлых тонах, а левая – в темных, так же как на стилевом портрете [6] Более подробное описание метода

Формально преобразование фичей контентного изображения можно записать так:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа,

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа,

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа,

где Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа, Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– фичемапы контентного и стилевого изображений на L-ом слое, Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– модифицированные фичемапы, Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– “gain map”, который показывает, как соотносятся активации стилевой и контентной фичемап.

Пример визуализации исходных и преобразованных фичемап, а также gain maps:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

В описанном выше преобразовании фичемап предполагается, что лица на контентном и стилевом изображениях выровнены. Реальные же фотографии могут отличаться от стилевой картинки ракурсом и углом поворота головы, поэтому до начала процесса стилизации стилевое и контентное изображения выравниваются – текстура лица на стилевом изображении “натягивается” на лицо c контентного изображения. Авторы предлагают делать выравнивание по 68 лендмаркам лица комбинацией методов Image Morphing и SIFT-Flow.

Инсайд про более простой и быстрый подход к выравниванию

В своей реализации мы использовали альтернативный, более быстрый подход:

Считаем векторы смещений между соответствующими лендмарками стилевого и контентного изображений;

Значения сдвигов для остальных точек сетки находим путём интерполяции, получаем flow field F, в котором F(x, y) – вектор, показывающий откуда взять пиксель (x, y) в стилевом изображении;

Делаем warping стилевого изображения по F.

Результат выравнивания выглядит немного крипово:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаРезультат выравнивания стилевого изображения по контентному

Вот так выглядят фотографии, стилизованные нашей реализацией этого метода:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаНаши результаты

При сравнении полученных стилизаций с результатами гатисовского ST становится особенно заметно, что рассматриваемый метод более “осознанно” и натурально переносит стиль в области лица (на первом и третьем стилях это видно невооружённым глазом):

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаСравнение портретного ST (первая строка) с гатисовским ST (вторая строка) на одном контентном изображении

Теперь перейдем к недостаткам этого метода. Прежде всего, есть проблема с переносом высокочастотных стилевых деталей. Например, здесь алгоритм не смог перенести текстуру полотна:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

В данном случае, конечно, эту проблему можно решить блендингом результата с похожей текстурой, но если у нас какой-нибудь карандашный стиль, это не поможет.

На фотографиях с сильно повёрнутыми лицами алгоритм выравнивания работает плохо, отчего появляются нежелательные артефакты:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Ещё одна проблема этого метода заключается в том, что на одних фотографиях он может выдавать хорошие результаты, а на других артефачить (при одинаковых гиперпараметрах):

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Если есть сильные отличия по размеру лица, причёске и другим атрибутам между лицами на контентном и стилевом изображениях, возникает ghosting артефакт (когда часть стилевого изображения попадает на результат):

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаПример ghosting артефакта – в данном случае плечо и волосы со стилевого портрета попали на задний фон стилизованного [6] Последнюю проблему авторы предлагают фиксить пост-процессингом (Stage B):

Генерируем фоновое изображение

Вычисляем маску маттинга фигуры человека на контентном изображении

По найденной маске вставляем стилизованное изображение на сгенерированный фон

В целом, это решает проблему, но в этом случае мы полностью теряем фон, что может не понравиться нашим пользователям.

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

Нейросети? Не, не слышали!

Наверняка у многих, кто дочитал до этих строк, сложилось впечатление, что придумать что-то лучше нейронок для задачи портретного ST нельзя. Поспешу вас в этом разубедить.

В 2001 году придумали метод Image Analogies, который с данной пары изображений “до/после применения фильтров” умеет переносить эффект наложенных фильтров (по аналогии с имеющимся примером “до/после” наложения фильтра) на любое другое изображение:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаВизуализация концепта Image Analogies. A и A’ исходное изображение до и после наложения фильтра (в данном случае фильтр представляет собой эффект акварели), B – изображение, на которое будет перенесён эффект фильтра, B’ – результат переноса [7]

Image Analogies работает примерно так:

Строится NNF(A, B) (Nearest Neighbour Field) – маппинг Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа, который каждому пикселю q из B ставит в соответствие ближайший (в терминах некоторого функционала) пиксель p из A; так как между A и A’, B и B’ есть прямое соответствие, можно положить NNF(A’, B’) = NNF(A, B);

Для построения NNF нужно уметь сравнивать пиксели изображений A и B между собой. Для этого используются различные дескрипторы пикселей. В самом простом случае, дескриптором пикселя могут быть его RGB значения, но из-за своей “низкоуровневости” такой дескриптор малоинформативен и чаще всего его использование приводит к плохому NNF. Поэтому авторы предложили помимо RGB значений использовать результаты применения steerable фильтров к изображениям A и B. По извлеченным дескрипторам близость двух пикселей из A и B (а, следовательно, и из A’ и B’) оценивается как L2 норма разницы соответствующих дескрипторов. Чтобы ускорить поиск ближайшего соседа для каждого пикселя, можно использовать приближенные методы поиска ближайших соседей.

Более подробное описание алгоритма Image Analogies

На вход алгоритму даются дескрипторы двух изображений A и B, а также стилизованная версия первого изображения, A’. Дескрипторы представляют из себя трёхмерные тензоры размерности H x W x C, где H, W – высота и ширина изображения, а C – размерность дескриптора. Таким образом, любой пиксель с координатой u изображения I будет описываться вектором I'[u] размерности C, а патч радиуса r с центром в u – сконкатенированными дескрипторами соседей u в радиусе r.

Для каждого дескриптора обоих изображений вычисляется Гауссовская пирамида.

Стилизация начинается с самого высокого уровня Гауссовской пирамиды. На уровне L дескрипторами пикселя u выступают дескрипторы соответствующего патча размером 5х5, а также дескрипторы патча u размера 3х3 с предыдущего уровня L-1. Последующие шаги описаны для одного уровня.

Для каждого пикселя q в B’ ищется ближайший ему пиксель p в A’. В качестве меры близости патчей p и q используется следующий функционал:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

где Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– составляющая, которая минимизируется на более согласованных патчах p и q (то есть когда у патчей близкие RGB значения), а Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа– составляющая, которая минимизируется на пикселях с похожими дескрипторами. Стоит отметить, что Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программана уровне L рассчитывается только по уже сгенерированным пикселям B’.

Таким образом, ближайший сосед пикселя q из B’, p* находится как:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа

Шаг 4 повторяется до тех пор, пока для всех пикселей в B’ не будут найдены соседи. В конце этого шага получаем NNF.

По полученному NNF восстанавливается B’.

Шаги 3-6 повторяются на следующем скейле.

Пример кода на Python :

В последующие годы появилось много работ, в которых предлагались различные варианты улучшения дескрипторов и методов построения NNF. Из них хотелось бы выделить работу StyLit, в которой авторы применяют Image Analogies для стилизации трёхмерных моделей. В качестве дескрипторов предлагается использовать RGB и LPE (Light Paths Expressions) тензоры. LPE описывают распространение света в данной 3D сцене и за счёт этого позволяют получить более реалистичную стилизацию, которая больше похожа на рисунок от руки художника.

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаВот так выглядит StyLit в терминах Image Analogies [8] Также в этой работе предложили улучшение алгоритма расчёта NNF, использовавшегося в Image Analogies

В Image Analogies используется жадный алгоритм, который плохо справляется со стилизацией высокоуровневых структур. Поэтому в StyLit предложили минимизировать Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программа, делая несколько итераций EM алгоритма:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаПсевдокод одной итерации EM алгоритма [8]

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

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

В 2017 StyLit был адаптирован для задачи портретного ST и переименован в FaceStyle. В FaceStyle предложили использовать специфичные для лиц дескрипторы:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаДескрипторы FaceStyle [9]

Расскажу о них подробнее. Gseg (segmentation guidance) задает соответствие между семантическими участками лиц на контентном и стилевом изображениях. Иными словами, не даёт алгоритму стилизации копировать патчи с бровей стилевого лица и вставлять их на лоб контентного лица. Для получения маски лица и волос авторы используют аналитический маттинг со своими модификациями (подробности в статье). Маски бровей, глаз, носа, губ и рта рисуют по 68 лендмаркам лица. Дескриптор Gseg представляет из себя RGB картинку, в котором каждая семантическая часть лица закодирована своим цветом.

На первый взгляд может показаться, что одного Gseg может быть вполне достаточно, чтобы получить хорошую стилизацию, но это не так. Например, по Gseg нельзя отличить правую часть лица от левой, а иногда это может быть полезным. Для того чтобы локализовать перенос, авторы предлагают использовать Gpos (positional guidance) – для контентного изображения это по сути грубый NNF, построенный по лицевым лендмаркам, для стилевого – identity NNF (в каждом пикселе закодированы координаты этого пикселя). Для расчёта Gpos авторы используют метод Moving Least Squares Deformation, натравленный на лендмарки. Мы в своей реализации для получения этого дескриптора использовали подход к выравниванию лиц, описанный в предыдущей главе.

Ни Gseg, ни Gpos никак не форсят сохранение контента на стилизованной фотографии, поэтому нужен ещё один дескриптор – Gapp (appearence guidance). Gapp стиля – это просто стилевое изображение, преобразованное в grayscale. Сделать то же самое для контентного изображения нельзя, потому что, если на нем будет присутствовать тень/блик, это обязательно проявится в виде артефакта на стилизованном изображении. Поэтому авторы сначала выравнивают локальный контраст и интенсивность контентного и стилевого изображений, используя метод переноса стиля с одного портретного фото на другое – ST for Headshot Portraits, а уже затем используют полученное контентное изображение с выровненным контрастом в качестве дескриптора. Существует и более быстрый способ получения этого дескриптора:

посчитать первый уровень Laplacian Pyramid (LP) для контента и стиля;

выровнять гистограмму полученного LP контента по LP стиля;

полученные LP использовать в качестве Gapp.

Если визулизировать FaceStyle в концепции Image Analogies, получится что-то такое:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаВизуализация FaceStyle как разновидности метода Image Analogies. Здесь A и B – извлечённые дескрипторы (Gapp, Gseg, Gpos) со стилевого (source) и контентного (target) изображений

Стилизации, которые мы получили, этим методом, лишены недостатков предыдущего метода портретного ST и выглядят без преувеличения очень круто:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаРезультаты FaceStyle

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаФейл кейсы FaceStyle

Также можно заметить, что FaceStyle не использует дескрипторы для чего-то кроме лица. Соответственно, всё, что находится вне маски лица, стилизуется не так, как мы ожидаем. Мы решили расширить дескриптор Gseg, путем добавления маски шеи и тела, при этом нам на сдачу добавилась маска бэкграунда. Но это не всегда даёт хорошие результаты (примеры в первых двух столбцах на картинке выше). Придумать тут что-то более умное довольно-таки трудно, хотя попытки предпринимались.

Ещё одна слабая сторона FaceStyle – это длительность стилизации. При условии, что все дескрипторы предпосчитаны, стилизация одного изображения в разрешении 1024х1024 у нас занимает около 25с на Intel(R) Xeon(R) CPU E5-2620. На смартфоне, соответственно, будет ещё дольше (помним, что нам нужно будет также считать дескрипторы).

Distillation is my profession

Все рассмотренные выше методы ST для портретов итеративные и далеки от real-time даже на современных десктопных CPU/GPU. Как же ускорить медленный итеративный алгоритм, который умеет генерировать пары source-stylized images хорошего качества? Правильно, дистиллировать его нейросетями!

Генерируем датасет пар изображений в выбранном стиле;

Учим на полученном датасете image-to-image сетку;

Сейчас этот подход довольно-таки популярный, особенно среди любителей StyleGAN (вот, например, статья с ECCV 2020). Есть даже работа, в которой авторы дистиллировали FaceStyle. Далее расскажу вкратце про основные идеи из неё.

В качестве генератора использовали нейросеть архитектуры энкодер-декодер из работы Real-time Style Transfer, модифицировав её следующим образом:

добавили skip connections с выходов слоёв энкодера к соответствующим слоям декодера;

увеличили количество residual блоков;

добавили дополнительный свёрточный слой на выходе декодера.

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаАрхитектура генератора для дистилляции FaceStyle (слева – исходная архитектура, справа – после модификаций) [12]

В качестве лосса использовали взвешенную сумму:

adversarial лосса на основе PatchGAN

попиксельного L1 лосса между выходом сети и ground truth

На Nvidia RTX 2080 Ti такой генератор работает под 15 FPS на изображениях 512х512, что вполне можно считать real-time. Помимо прироста в скорости, на сдачу сетка ещё и бустанула качество стилизаций на сложных кейсах – генератор неплохо справляется там, где косячил FaceStyle:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаПримеры кейсов, на которых дистилляция фиксит проблемы FaceStyle [12]

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

На простых кейсах стилизации FaceStyle выглядят более чётко по сравнению с результатами дистилляции – в первом случае стилизованное изображение “собирается” из патчей стилевого, что позволяет сохранить все художественные детали; нейросеть же – параметрическая модель, которая ввиду ограниченного количества параметров может лишь аппроксимировать маппинг между исходными изображениями и таргетами:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаСравнение качества детализации. Слева направо: результат дистилляции, результат FaceStyle, стилевое изображение [12]

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

Как мы затаскивали это всё на смартфон

Нам предстояло решить две задачи:

оптимизировать архитектуру генератора так, чтобы он отрабатывал на смартфонах за адекватное время;

увеличить разрешение до 1024х1024.

С одной стороны, нужно было сделать генератор более mobile-friendly, и при этом сохранить совместимость с фреймворками инференса нейросетей на смартфонах (CoreML, ONNX, TFLite); c другой – сохранить качество результатов на уровне большого генератора. Мы решили взять за основу архитектуру нейросети, которая раньше использовалась у нас в сегментации фона на портретных фотографиях:

Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаАрхитектура нейросети для сегментации бэкграунда на портретных фото

По сути, это всё тот же энкодер-декодер со skip-connections, что использовали авторы для дистилляции FaceStyle, но со следующими модификациями:

В residual блоках используются separable свёрточные слои вместо обычных – они выполняют практически ту же работу, что и обычные свёртки, только за меньшее количество операций и требуют меньше памяти.

В качестве basic блока используется не Conv + ReLU слой, а целый residual блок.

Вместо конкатенации выходов слоёв энкодера с выходами слоёв декодера используется поэлементное сложение – это ускоряет сходимость и улучшает качество результатов.

Мы адаптировали эту архитектуру под нашу задачу следующим образом:

Сделали энкодер более глубоким;

Увеличили разрешение входного изображения до 512х512;

Добавили Instance Normalization слои (без них сетка сильно артефачит);

Сделали энкодер и декодер симметричными (одинаковое количество residual блоков на соответствующих слоях);

Заменили Transposed Conv слои на Upsample + Conv (про мотивацию можно почитать тут).

При обучении мы так же использовали PatchGAN лосс, поэтому нужно было ещё и правильно подобрать дискриминатор к оптимизированному генератору. Для этого мы уменьшили количество фичемап в исходном дискриминаторе и добавили Spectral Normalization во все свёрточные слои.

С тяжелым генератором разобрались, осталось решить проблему с разрешением. Для этого мы использовали модифицированный ESRGAN, увеличивающий разрешение входного изображения в 2 раза. Учили его на кропах изображений, стилизованных обученной ST сеткой, в качестве ground truth использовались результаты FaceStyle.

В итоге весь пайплайн получился довольно-таки лёгким ( Prisma что за программа. Смотреть фото Prisma что за программа. Смотреть картинку Prisma что за программа. Картинка про Prisma что за программа. Фото Prisma что за программаPortrait ST в нашем приложении

Сейчас у нас в проде есть четыре портретных ST фильтра: Leya, Aqua, Michael и Arturo, с которыми вы можете поиграться. На этом мы решили не останавливаться, поэтому в ближайшее время подъедет ещё больше фильтров. Следите за апдейтами;)

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *