Использование Deepfake на примере FOMMIA
Deepfake - это метод создания изображений и видео, основанный на искусственном интеллекте. Зачастую, deepfake накладывает существующие изображений и видео на исходные изображения или видео.
В работе 2019 года "First Order Motion Model for Image Animation" Aliaksandr Siarohin, Stéphane Lathuilière, Sergey Tulyakov, Elisa Ricci and Nicu Sebe (для краткости, FOMMIA) показана и объяснена возможность анимирования исходной картинки с помощью ведущего видео. В своей работе они показывают интересные результаты https://aliaksandrsiarohin.github.io/first-order-model-website/ (см. видео по ссылке). Причём для анимирования картинок не требуется никакой дополнительной информации или описания объектов от пользователя. Сама сеть натренирована на распознавание и слежение за ключевыми точками. FOMMIA работает не только с лицами, но и с движениями всем телом, частично с животными и может "обменивать" лица. При тщательной подготовке исходных картинок и видео можно добиться хороших результатов.
Воспользуемся сетью FOMMIA для анимирования случайной фотографии из открытых источников (Байден). В качестве ведущего видео используется отрывок с поющей девушкой.
Не трудно заметить, что на результирующем видео присутствуют артефакты. Поэтому очень важно тщательно подбирать исходные картинки и видео. Вот некоторые правила. Для простоты предполагается, что анимируется только лицо:
1. Ведущее видео в ходе работы скрипта сжимается к 256x256, поэтому желательно, чтобы оно заранее было пропорционально.
2. Ведущее видео должно содержать по большей части только лицо, то есть правильно обрезано.
3. Ведущее видео не должно содержать переходов, изменений фокусного расстояния и т.п.
4. Поворот лица, общий размер глаз сразу должны совпадать на исходной картинке и на ведущем видео.
5. Если лицо движется, то на исходной картинке заранее должно быть достаточно свободного места, чтобы не возникало проблем у края изображения.
Ниже показан пример анимирования изображения 3D модели девушки с помощью того же ведущего видео
Здесь результат уже лучше, но не учтена такая особенность, что исходное положение глаз (открыты-закрыты) немного не совпадают.
Ссылка на гугл-коллаб с пояснениями
https://colab.research.google.com/drive/116whPbijT3V-kMTUaEoIbbzMtaRkVtHy?usp=sharing
Ссылка на гугл-диск с необходимыми данными для работы
https://drive.google.com/drive/folders/1ePTh5qFvttFoOQrLJ6S-xYFgqaJDbUne?usp=sharing
Перед тем, как запускать в гугл-коллабе, убедитесь, что там выставлена настройка Изменить -> Настройки блокнота -> GPU для избежания возможных ошибок при выполнении