Американские исследователи создали нейросетевой алгоритм, способный переносить движения людей между двумя видеороликами. Для обучения ему необходимо предоставить записи человека с целевого видео длиной в несколько минут, после чего ему можно дать новое видео, движения из которого алгоритм перенесет на целевой ролик. Статья с описанием разработки опубликована на arXiv.org.

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

Группа исследователей из Университета Калифорнии в Беркли под руководством Алексея Эфроса (Alexei Efros) создали алгоритм, который также переносит движения людей между двумя видеороликами, но делает это для всего тела. Разработчики применили не прямой перенос, а перенос через промежуточные модели тела. Они выбрали такой способ по нескольким причинам. Главная из них заключается в том, что достаточно сложно собрать такой набор кадров, чтобы каждое изображение из него в точности отражало движения из исходного видео. Кроме того, даже при полном совпадении расположений частей тела на кадрах могут присутствовать сильные стилистические различия, мешающие переносу, например, разная одежда.

Вместо этого исследователи применили трехстадийную схему. Сначала открытый алгоритм OpenPose превращает исходное видео в упрощенную модель человеческого тела, состоящую из ключевых точек, соединенных линиями. После этого движения исходной модели передаются на целевую модель, причем они проходят нормализацию, потому что разные люди могут иметь разные пропорции тела и прямой перенос может привести к нереалистичным изменениям тела человека. Затем алгоритм pix2pixHD, разработанный в 2017 году другой группой исследователей из Университета Калифорнии в Беркли и NVIDIA, превращает движения модели в фотореалистичный видеоролик, на котором человек повторяет движения из исходного ролика:

Схема работы алгоритмов
Схема работы алгоритмов

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

Исследователи доработали алгоритм pix2pixHD для своей задачи таким образом, что при создании каждого следующего кадра алгоритм учитывает предыдущий кадр и модель тела, благодаря чему кадры видео становятся более согласованными между собой. Кроме того, исследователи использовали дополнительную нейросеть, отвечающую за отрисовку лица.

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