«ДЕЛАЙ КАК Я!» — ИЗУЧАЕМ ИМПЕРСОНАТОР

от автора

Самые интересные и перспективные разработки в области AI связаны с нейронными сетями. Сегодня рассмотрим Impersonator++ для накопления опыта в области Deep fake.

В настоящее время самые интересные и перспективные разработки в области AI связаны с нейронными сетями.

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

Широкую известность в интернете получили видео, созданные с помощью технологий Deep fake, в которых лица людей заменяются на совершенно другие. Иногда такие работы выглядят очень правдоподобно.

Однако помимо развлекательного характера эти технологии могут быть использованы в корыстных (даже преступных) целях. Если заменить лицо преступника, попавшего под объектив камеры наблюдения на совершенно другое, то у невиновного человека, как минимум может появится много проблем.

В ноябре 2020 года технологии Deep fake получили «долгожданное» продолжение: группа разработчиков из Китая создала инструмент, с помощью которого можно наложить заданные движения на любую личность с сохранением фона.

Чтобы успешно бороться с цифровым мошенничеством следует хорошо знать своего потенциального «врага». Поэтому предлагаем ознакомиться с функционалом Impersonator++. На вход он получает фото личности, которую будут «оживлять», и референсное видео с заданным движением. А на выход подаёт итоговое видео:

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

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

Чтобы установить Impersonator++ на ПК необходим либо Linux либо Windows, CUDA, gcc 7.5+, ffmpeg (ffprobe). Прочие технические требования можете прочитать на ресурсе проекта: https://www.impersonator.org. Также по этой ссылке можно найти статью разработчиков, которая раскрывает технологию работы Impersonator++.

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

Важным является формат и синтаксис обращения к инструменту. Для установки и настройки следует выполнить несколько команд.

!apt-get install ffmpeg # установка ffmpeg import os os.environ["CUDA_HOME"] = "/usr/local/cuda-10.1" # задаём CUDA_HOME !echo $CUDA_HOME

Для установки клонируем репозиторий с github и устанавливаем:

!git clone https://github.com/iPERDance/iPERCore.git cd /content/iPERCore/ !python setup.py develop

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

!wget -O assets/checkpoints.zip "https://download.impersonator.org/iper_plus_plus_latest_checkpoints.zip" !unzip -o assets/checkpoints.zip -d assets/ !rm assets/checkpoints.zip !wget -O assets/samples.zip  "https://download.impersonator.org/iper_plus_plus_latest_samples.zip" !unzip -o assets/samples.zip -d  assets !rm assets/samples.zip

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

import os import os.path as osp import platform import argparse import time import sys import subprocess from IPython.display import HTML from base64 import b64encode

далее задаём директории и значения по умолчанию для параметров:

gpu_ids = "0"  # размер изображения image_size = 512 # число картинок-источников изображения по умолчанию считается 2, но значение обновится, если фактическое окажется меньше num_source num_source = 2 # директория с ресурсами, моделями и исполняемыми файлами, которые прежде необходимо скачать assets_dir = "/content/iPERCore/assets"  # директория для сохранения результатов output_dir = "./results"  # символическая ссылка с актуальной директории с ресурсами на текущую директорию work_assets_dir = os.path.join("./assets")  if not os.path.exists(work_asserts_dir):     os.symlink(osp.abspath(assets_dir), osp.abspath(work_assets_dir),                target_is_directory=(platform.system() == "Windows"))  cfg_path = osp.join(work_assets_dir, "configs", "deploy.toml")

И, наконец, формируем имитацию движения на основе разных фото:

model_id = “ident_remove_mask_multi”  # путь к картинке, которая ляжет в основу src_path = “\”path?=/persons/person1.png\””  # путь к видео с референсным, интересующим нас, движением ref_path = "\"path?=/movement/remove_the_mask/act1.mp4\""  !python -m iPERCore.services.run_imitator  \   --gpu_ids     $gpu_ids       \   --num_source  $num_source    \   --image_size  $image_size    \   --output_dir  $output_dir    \   --model_id    $model_id      \   --cfg_path    $cfg_path      \   --src_path    $src_path      \   --ref_path    $ref_path

В папке, которую мы указали для сохранения результата, мы получим файл mp4 с названием модели. Проба пера получилась такой:

Слева расположена исходная фотография, посередине – кадр из референсного видео, справа – кадр из итогового видео.

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

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

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

ссылка на оригинал статьи https://habr.com/ru/post/546334/


Комментарии

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

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