Как сделать DeepFake в 4K для синтетических медиа: Часть 1

PHYGITALISM
PHYGITALISM
Published in
7 min readNov 25, 2021

Сегодня хотим поделиться с вами нашим опытом создания качественного DeepFake видео в проекте Академия ВХУТЕМАС, который мы реализовывали совместно с RT CREATIVE LAB. В двух частях поговорим о следующем:

  • Что такое DeepFake, какие задачи решает, какие базовые подходы существуют;
  • На примере проекта расскажем, как мы искали оптимальный pipeline работы с технологией, что попробовали, как выглядит итоговое решение;
  • Оставим несколько советов начинающим в этой области специалистам.

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

История DeepFake

Начнем с того, что договоримся об общей терминологии, сделаем краткий исторический экскурс в технологию и составим рекомендации по созданию собственного DeepFake. Итак, история вопроса.

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

General Grant at City Point:композиция из 3 фотографий XIX века — один из первых примеров фото-манипуляций.

1. С появлением аналогового и цифрового видео человечество сразу же попыталась модифицировать кадры в ручную, и таким образом возникла область Analog Image/Video Manipulation.

2. Появляются устройства для цифровой фото и видеосъемки (обзорная статья про развитие цифровой фотографии).

3. Появление первых алгоритмов цифровой обработки изображений и первое применение в кино.

P.S. Минутка полезных ссылок:
Если вас интересует история цифровой фотографии, компьютерной графики и другие связанные темы, то мы настоятельно рекомендуем вам ознакомиться с книгой Mitchell, W.J., 1994. The reconfigured eye: Visual truth in the post-photographic era. Mit Press.

4. Появление Photoshop. Повсеместное распространение технологии.

Пример работы Video Rewrite Program.

5. В 1997 году Кристоф Бреглер, Мишель Коувелл и Малколм Слейн (Google) создали инновационную программу Video Rewrite Program, которая была первым примером автоматического анимирования движения губ относительно нового аудио.

Иллюстрация из статьи A Morphable Model For The Synthesis Of 3D Faces, объясняющая принцип работы модели.

6. В 1999 выходит статья A Morphable Model For The Synthesis Of 3D Faces, в которой изложен способ параметрического моделирования геометрии лица человека.

Иллюстрация из статьи Active appearance models.

7. В 2001 году в самом разгаре вторая зима ИИ, и большинство работ сосредотачиваются на автоматическом обнаружении и распознавании лиц на основе статистических методов. Выходит модель Active appearance models, которая приобретает популярность у исследователей и практиков. Данная модель позволяет ускорить процедуру обнаружения и обработку лиц на изображениях.

8. Появляется термин Face Swap и выходят первые статьи по этому направлению (без использования глубокого обучения).

9. Наступает новая веха в развитии ИИ и машинного обучения — появляются программные, алгоритмические и аппаратные средства (2013 год). Подробнее про главные вехи развития ИИ можно прочитать здесь.

Количество статей по направлению DeepFake с 2016 по 2020 год. Наблюдаем экспоненциальный рост интереса к данной области.

10. В 2017 году возникает сам термин DeepFake (на Reddit) и появляются первые качественные работы в направлении Face Reenactment — Face2Face, и появляются основные библиотеки Face Swapping и Deep Face Lab.

11. Исследователи начинают использовать GAN модели для коррекции DeepFake — пример: FSGAN.

12. DeepFake получают коммерческое распространение в медиа и рекламе. В качестве примера можно рассмотреть кейс с видеороликом Сальвадором Дали для музея во Флориде. Появился термин Синтетические медиа.

13. Появляются one-shot модели. Пример: One Shot Face Swapping on Megapixels.

В целом видна тенденция: от технологической базы к алгоритму и к приложению (и так по кругу). Видимо дальше нас ждет движение в сторону улучшения real-time характеристик и создание DeepFake в более высоком качестве с большими деталями.

Как работает простейший Deep Fake?

Конечно, лучшие и самые современные архитектуры Deep Fake (SOTA) устроены достаточно сложно: специфичные функции ошибки, много сложных операторов, сочетание нескольких архитектур и этапов обучения и пр. В следующей части обсудим архитектуру, которую мы использовали в проекте и почему она такая мощная.

Однако, чтобы понять принцип базовых архитектур, которые, например, реализованы в Face Swap или в Deep Face Lab, нужно лишь понимать устройство автокодировщиков (AE / серия заметок про автокодировщики на хабре) или устройство генеративно-состязательных сетей (GAN / заметка с разбором классики на хабре).

Для того, чтобы решить базовую задачу Face Swapping достаточно воспользоваться следующим принципом. Возьмем исходно две одинаковые сети (например, автокодировщики, как на иллюстрации выше) и каждую из них будем обучать на изображениях лица своего человека (лица человека-“источника” (source) будут подстанавливаться на голову другого человека (target)).

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

Визуальное логирования процесса обучения Face Swap модели в фреймворке Faceswap.

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

Аналогичный обмен можно осуществить между генеративными и дискриминативными сетями в вариации с двумя GAN’ами (иллюстрация ниже).

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

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

Основные задачи и инструменты DeepFake

Теперь давайте поговорим о задачах и о терминологии. DeepFake глобально — это решение любых задач, в которых на фото, видео или аудио относительно человека происходит подмена или изменение частей данных. Более конкретно, задачи здесь можно разделить на три группы:

  1. Swapping: обмен местами двух частей данных. Например, если мы меняем лицо одного человека на лицо другого человека, то это Face Swapping.
  2. Reenactment: управление частями данных за счет явных или неявных сигналов из других данных. Например, если мы хотим чтобы лицо на видео повторяло эмоции и движения губами за другим лицом из другого видео, то это Face to Face video facial reenactment (Face2Face). А если мы хотим чтобы лицо на видео двигало мышцами так, чтобы правдоподобно говорить текст из целевого аудио, то это Voice to Face video reenactment (Synthesizing Obama).
  3. Detection: определение наличия подмены в данных. Например, если мы по видео пытаемся определить было ли получено лицо в видео с помощью deepfake методов, то это DeepFake Face detection (Video Face Manipulation Detection Through Ensemble of CNNs).

Стоит отметить, что все 3 направления, работают как для разных типов данных (фото, видео, аудио, текст) так и для разных типов контентов (лицо, тело).

DeepFake для тела: Everybody Dance Now.

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

В аналитическом исследовании “Nguyen, T.T., Nguyen, C.M., Nguyen, D.T., Nguyen, D.T. and Nahavandi, S., 2019. Deep learning for deepfakes creation and detection: A survey. arXiv preprint arXiv:1909.11573.” авторы делают именно такое разделение и приводят список полезных инструментов и проектов. Для удобства оставим их здесь в виде таблиц и добавим только самые интересные проекты.

Таблица для создания контента

Кстати, эти и многие другие материалы (датасеты, фреймворки, воркшопы и многое другое) можно найти в специальном github list про DeepFake.

Различные подходы в Deep Fake Detection.

Если вас больше интересует тема детекции DeepFake, рекомендуем обратить внимание на этот специализированный github list.

А всем, кого интересуют бизнес аспекты данной технологии (применение в разных областях, аналитика рынка и прочее), мы рекомендуем ознакомиться с подробным и очень понятным отчетом компании SENTINEL: DEEPFAKES 2020: THE TIPPING POINT.

Статистика по распределению задач и областей приложения DeepFake из отчета SENTINEL.

Здесь стоит отметить, что в данном отчете есть одна очень интересная мысль про развитие данной технологии (стр. 35):

  • В 2018 году один человек (специалист) мог создать один Deep Fake (высок порог входа и недостаточно вычислительных мощностей).
  • В 2021 году миллион человек (не специалистов) могут создавать по одному Deep Fake (порог входа снизился, вычислительные мощности стали лучше, появились более быстрые алгоритмы).
  • К 2024 году один человек (не специалист) сможет создавать по миллиону Deep Fake (no code решения при наличии хороших вычислительных мощностей и лучших алгоритмов).

На данном этапе, несмотря на появление более мощных видео-карт и продвинутых алгоритмов, порог входа остается еще достаточно высоким, чтобы технология получила наиболее широкое распространение и заиграла новыми красками. Deep Fake в разных ипостасях — это отличный инструмент в руках творческих людей. Помимо Deep Fake есть еще много других сложных технологий из области 3D ML, но пользоваться ими сейчас могут лишь специалисты, готовые потратить несколько дней своего времени иногда только на настройку окружения.

Для того, чтобы донести технологию качественного Deep Fake и другие 3D ML достижения последних лет, мы решили разработать продукт PHYGITAL+ (вот здесь можно попасть в waitlist), в который поместили тот DeepFake pipeline, про который речь пойдет во второй части заметки, а также много других алгоритмов.

Источники и полезные материалы

  1. История технологии DeepFake [статья].
  2. DeepFake github list [page].
  3. DeepFake detection alternative list [page].
  4. Survey paper for DeepFake 2021 [paper].
  5. SENTINEL’s DEEPFAKES 2020: THE TIPPING POINT [paper]

Автор

Вадим Кондаратцев

vadim@phygitalism.com

R&D engineer in PHYGITALISM

--

--

PHYGITALISM
PHYGITALISM

We are a young technology company founded in 2015 and currently developing Phygital+, a product for creators combining AI, 3D and XR