Российские разработчики представили алгоритм на основе сверточной нейросети, который умеет превращать статичные портреты в анимированное изображение. Их система снимает маску с лица человека на отдельных кадрах из видео, после чего переносит их на отдельные изображения лиц, причем алгоритм может работать даже с одиночным изображением, в том числе с портретами. Описание работы алгоритма доступно в препринте, опубликованном на arXiv.org.
Перенос информации между двумя изображениями или видео — задача не из простых. Например, при наложении стороннего аудиоряда на видео с говорящим человеком необходимо точно проследить за тем, чтобы мимика говорящего соответствовала тому, что он произносит. Здесь разработчики уже добились значительных успехов, во многом благодаря большому количеству собранных и размеченных для обучения данных и построенных на них моделях. Проблема состоит в том, что очень частно за основу берутся несколько тысяч целевых изображений (например, кадров из видео) какого-то конкретного предмета или человека, что позволяет «настроить» изображение-источник только на основе его. В идеале подобные системы не должны быть ориентированы на какой-то конкретный объект и должны быть способны использовать в качестве цели (то есть тех изображений, информацию с которых необходимо перенести) минимальное количество кадров.
Упростить задачу переноса информации с видео на статичное изображение решили разработчики из Samsung и «Сколково» под руководством Егора Захарова. В основе их подхода — алгоритм, который обучен на большом количестве кадров, содержащих лица людей. На каждое лицо на таком кадре наложена специальная маска, которая обозначает границы и базовую мимику. То, как такая маска соотносится с исходным кадром, хранится в виде вектора, данные из которого используются для того, чтобы наложить отдельную маску на изображение человека, после чего готовое изображение сравнивается с ground truth.
Такая модель в итоге позволила разработчикам переносить информацию между двумя объектами с помощью всего одного или нескольких кадров: для конечного продукта берется изображение-источник и изображение-цель, из которого формируется маска, которая затем накладывается на источник, причем необходимо для этого всего несколько кадров. Интересно, что таким образом можно не только изменить мимику человека на портрете, но и превратить его в анимированное изображение.
В результате у разработчиков получился алгоритм, который может достоверно переносить информацию между изображениями, создавая в итоге «говорящие головы»: при этом для этого не нужно использовать большое количество примеров изображения-источника и изображения-цели.
Что-то похожее на новый алгоритм в декабре представили американские разработчики: их модель может оживлять статичные изображения человека целиком, заставляя его выбегать за пределы кадра.
Елизавета Ивтушок Источник
Читать первым в Telegram-канале «Код Дурова»