Как делают deepfake-видео и почему лучше говорить «face swap»

Рассказываем о работе технологии face swap, создании известных сегодня deepfake-видео, как трансфер лиц поможет медиарынку и в каком направлении развивается эта область машинного обучения.

Как делают deepfake-видео и почему лучше говорить «face swap»

Каждый день из многочисленных Telegram-каналов, изданий об ИТ прилетают новости о создании алгоритмов, работающих над преобразованием контента.

Недавно компания Тимура Бекмамбетова и разработчики робота «Вера» придумали технологию синтеза голосов знаменитостей. Учёные из МФТИ научили компьютер воспроизводить изображения, которые видит человек в данный момент, а компания OpenAI создала алгоритм, пишущий почти осмысленный текст на основе минимальных исходных данных.

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

Сложнее обстоят дела с трансфером человеческих лиц или тел на изображениях. Эту сферу начинают осваивать стартапы, которые создают продукты для оптимизации процессов производства контента: Dowell (проект компании Everypixel Group, Россия), Synthesia (Великобритания), а также RefaceAI — создатели приложений Doublicat и Reflect (Украина).

Есть несколько сервисов вроде Reflect, Doublicat или Morhine, которые работают в реальном времени со статичным форматами или GIF. Недавно китайские разработчики зашли на поле видеоформата и выпустили приложение Zao, которое встраивает лица пользователей в известные фильмы.

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

Технология face swap в открытом доступе: как она работает

Существуют разные архитектуры алгоритмов, которые переносят лица с видео на видео. Мы расскажем о нескольких самых распространённых.

Autoencoder и decoder

Метод перемещения лица, в основе которого — кодировщик и декодировщик. Работает это так:

  • Два видео: донорское (откуда берём лицо) и целевое (куда мы его помещаем, ресивер, реципиент). На них размечаются границы лица. Эти видео с помощью нарезки кадров превращаются в набор фотографий. По ним и будет обучаться модель.
  • Кодировщик сжимает изображения (грубо говоря, упрощает до последовательности чисел). Мы получаем latent face (непроявленное лицо), потом оно восстанавливается до оригинального изображения инструментом декодирования. Две нейросети обучаются кодировать и декодировать изображения так, чтобы после восстановления они были максимально похожими на оригинал.
Процесс кодирования и декодирования <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fassets.publishing.service.gov.uk%2Fgovernment%2Fuploads%2Fsystem%2Fuploads%2Fattachment_data%2Ffile%2F831179%2FSnapshot_Paper_-_Deepfakes_and_Audiovisual_Disinformation.pdf&postId=94457" rel="nofollow noreferrer noopener" target="_blank">Centre for Data Ethics and Innovation</a>
Процесс кодирования и декодирования Centre for Data Ethics and Innovation
  • Кодировщик и для донорского, и для целевого видео один и тот же, благодаря чему изображения latent face у обоих видео схожи. А вот декодировщики разные, и здесь начинается магия: как только нейросети обучились, декодировщики меняют местами, донорское изображение восстанавливается с использованием декодировщика целевого видео. Получается, что лицо донорского видео пришивается к лицу целевого видео, перенимая выражение лица, мимику и эмоции реципиента.

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

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

Поэтому всё чаще в архитектуру с кодировщиком и декодировщиком вплетаются генеративно-состязательные сети. Их суть заключается в соревновании генератора и дискриминатора (отсюда — GAN, Generative Adversarial Network, генеративно-состязательная сеть).

GAN

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

Таким образом, кодировщик и декодировщик отвечают за перенос изображения, а дискриминатор от генеративных сетей — за улучшение результата. По этой логике работает архитектура Face Swap GAN, созданная японским разработчиком Shaoanlu.

Ещё один подход — архитектуры с использованием нескольких генеративно-состязательных сетей. Каждая сеть отвечает за свою операцию, что сводит к минимуму количество этапов с применением ручного труда.

Чтобы обучить такую нейросеть, требуется несколько суток и мощный кластер видеокарт. Несмотря на это, такой подход является наиболее перспективным, потому что даёт лучший результат.

Одно из решений, созданных по этой технологии, — FSGAN, которое в скором времени обещает опубликовать в открытом доступе его создатель, израильский исследователь Юваль Ниркин.

Здесь одна нейросеть учится подгонять лицо донора под параметры целевого видео (поворот головы, наклон вбок или вперёд), вторая переносит черты лица, а третья делает image blending (слияние изображений), чтобы картинка была более реалистичной, без разрывов или артефактов.

Сегодня перенос лиц, если он выполняется исключительно алгоритмами, всё ещё заметен человеческом глазу: выдают либо визуальные артефакты, например мимика или положение глаз, либо непохожесть нового лица ни на реципиента, ни на донора — в результате получается третья сущность.

Гладкий трансфер лиц всё ещё обеспечивают не нейросети, а навыки в CGI (многие широко известные сегодня создатели deepfake-видео вроде Corridor Crew и Ctrl Shift Face правят работу алгоритмов вручную на постпродакшене или же совершают манипуляции перед самим обучением).

Чего не может нейросеть: препродакшн и постпродакшн

Как правится контент до или после обучения нейросети, нам рассказал моушн-дизайнер студии Clan Андрей Чаушеску, который несколько месяцев назад создал нашумевший в России ролик с актёром Михаилом Ефремовым в трейлере фильма «Ангелы Чарли».

Недавно он опубликовал новую работу, поместив в фильм «Великий Гэтсби» изображение актёра Сергея Бурунова, который обычно озвучивает Леонардо Ди Каприо в русском дубляже. Свои проекты Андрей делает в программе DeepFaceLab, поэтому мы будем говорить о правках, которые требуются для работы именно с этим алгоритмом.

На этапе препродакшена проводится работа с данными перед началом обучения нейросети. Когда два видео разложены на наборы кадров, нужно отсмотреть эти базы и обратить внимание на несколько моментов.

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

Некоторые студии, делая поддельные видео с известными артистами, ищут максимально похожих на них людей: ребята из Corridor нашли человека, очень похожего на Тома Круза, а актёр, играющий в ролике с Киану Ривзом, надел чёрный парик, чтобы воссоздать образ актера.

Ctrl Shift Face недавно выпустил три ролика с разными актёрами в одной сцене из фильма «Старикам здесь не место». Лучше всего получился Арнольд Шварценеггер, так как форма его головы больше всего подходит под форму актёра Хавьера Бардема, в отличие от Дефо и Ди Каприо.

Андрей Чаушеску, моушн-дизайнер
​Слева направо: Леонардо Ди Каприо, Уиллем Дефо и Арнольд Шварценеггер в роли Хавьера Бардема
​Слева направо: Леонардо Ди Каприо, Уиллем Дефо и Арнольд Шварценеггер в роли Хавьера Бардема

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

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

Андрей Чаушеску, моушн-дизайнер
Перенос, полученный с помощью алгоритма в чистом виде (1 — целевое видео, 2 — результат). Видно, что модель неверно распознала положение глаз Ди Каприо: он смотрит в одну сторону, Бурунов — в другую
Перенос, полученный с помощью алгоритма в чистом виде (1 — целевое видео, 2 — результат). Видно, что модель неверно распознала положение глаз Ди Каприо: он смотрит в одну сторону, Бурунов — в другую
​Перенос, полученный с использованием прорисовки глаз в базе данных (3 — целевое видео, 4 — результат). Положение глаз в финальном видео стало больше похоже на их положение в оригинале у Ди Каприо
​Перенос, полученный с использованием прорисовки глаз в базе данных (3 — целевое видео, 4 — результат). Положение глаз в финальном видео стало больше похоже на их положение в оригинале у Ди Каприо

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

Самый быстрый способ сделать поддельный ролик — наложить лицо, не выходя за рамки головы человека с целевого видео (в данном случае — Ди Каприо). Лицо Бурунова шире, и, как мне кажется, сходство терялось, поэтому приходилось вручную масками прорисовывать его овал.

Андрей Чаушеску, моушн-дизайнер
Изображение Сергея Бурунова до и после прорисовки масками
Изображение Сергея Бурунова до и после прорисовки масками

Основная программа, которой я пользуюсь на постпродакшене, — Adobe After Effects. Я делаю цветокоррекцию, добавляю размытие для имитации движения камеры и шум для эффекта кинопленки.

Андрей Чаушеску, моушн-дизайнер
​Изображение Сергея Бурунова до и после цветокоррекции
​Изображение Сергея Бурунова до и после цветокоррекции

Отдельная история — работа с изображениями, в которых перед лицом есть искажающая преграда: скафандр, искривлённое зеркало или очки. Тут единственный выход — ПО вроде After Effects, Cinema 4D.

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

Андрей Чаушеску, моушн-дизайнер

Для YouTube-формата, когда каждый вышедший ролик становится информационным поводом и предполагает вау-реакцию аудитории, такой подход применим. Видео можно долго шлифовать, а потом ещё отдельно описывать процесс, как это часто делают в Corridor Crew.

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

Ролик с переносом лица Киану Ривза от Corridor

Спичрайтинг — про текст, face swap — про видео: как технология прорвёт рынок медиа

Монетизируется технология face swap по двум стандартным моделям. Для b2c-аудитории создаются развлекательные приложения вроде Zao или Doublicat. Для b2b-аудитории — продукты, которые используются для оптимизации продакшена, маркетинговых коммуникаций, персонализации брендированного контента или в игровой индустрии.

Среди них Dowell и RefaceAI, создатели которых рассказали, по какой логике работает их продукт и какую нишу на рынке они планируют освоить.

Dowell вырос в офисе компании Everypixel Group, которая занимается производством контента и создаёт продукты на основе искусственного интеллекта. Изучив рынок, создатели стартапа поняли, что развитие продуктов для пользователей и демонстрация deppfake-публикаций на YouTube не их путь, и проработали сценарии использования в киноиндустрии и маркетинге.

Один из кейсов они реализовали с BBDO — рекламный ролик с изображением генерального директора крупного автомобильного бренда, в съёмках которого этот человек не принимал непосредственного участия.

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

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

Во-вторых, решаем проблему увеличения доходности агентств, работающих со звёздами, их клиентов. Представьте, что Джордж Клуни одновременно снимается в голливудском фильме, рекламном ролике Nespresso и проводит презентацию нового Mercedes в Штутгарте.

В таком формате доступ к «телу» звёзд появится у тех брендов и организаций (вроде благотворительных фондов), которые никогда не могли себе позволить пригласить звезду живьём.

Мария Чмир, генеральный директор компании Dowell

На старте разработки продукта изучение алгоритмов, находящихся в открытом доступе, помогло нам понять логику работы, увидеть слабые места, но зависеть от чужого кода — тупиковый путь. Это чёрный ящик, содержание которого слабо можно представить, результат будет непредсказуемым.

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

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

Чем страдают все открытые алгоритмы, так это маленьким разрешением переносимой области — 256 на 256 пикселей. Продакшн-студии работают с более качественными изображениями, и здесь мы задались целью увеличить область до стороны в 1024 пикселей.

Проблему можно решить, обучив нейросеть наращивать разрешение с 256 до 1024 пикселей и с помощью дискриминатора оценивать, насколько хорошо это получилось сделать. По такому же принципу можно «деблюрить» изображения, делая из размытых чёткие.

Александр Широносов, руководитель R&D компании Dowell
Это видео создано искусственным интеллектом. Использовались только общедоступные данные и материалы

Компания RefaceAI, которая исторически занималась анализом текста и генеративными сетями, связанными с автоматической конвертацией 2D-видео в 3D, video inpainting (удаление или восстановление фрагментов на видео), пришла к технологии face swap случайно, получив запрос на модификацию лиц от одной киностудии.

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

Сейчас команда выводит на рынок второе приложение, Doublicat. Оно будет менять лица на видео (в бета-версии перенос перенос в формате GIF).

Как делают deepfake-видео и почему лучше говорить «face swap»

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

Сейчас для тренировки сетей мы используем существующие фреймворки машинного обучения (PyTorch), но основной код полностью создан нашей командой.

Использование нейросетей позволяет нам работать в более абстрактном пространстве, чем пиксели. Мы не занимаемся вырезанием и вставкой лиц, а затем гармонизацией результата, что требует много ручной работы.

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

Олесь Петрив, CTO компании RefaceAI

Что касается приоритетов в разработке трансфера лиц в видео, для b2c-модели сейчас главное — максимально быстрое обучение алгоритма, чтобы сервис работал в режиме реального времени и обучение не занимало долгие часы. Китайское приложение Zao сделало это первым.

Но его слабая сторона — алгоритм работает с предобученными данными. Пользователь не может загрузить свой контент, он загружает туда лишь изображение, которое переносится в заданный разработчиками набор видео.

B2b-решения больше сфокусированы на качестве переноса лиц, схожести результата и увеличении разрешения переносимой области, оптимизации времени обучения. Команда RefaceAI планирует, помимо лиц, освоить перенос туловища.

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

Дмитрий Швец, CBO компании RefaceAI

Дипфейки и антидоты

Синхронно с развитием технологии встаёт вопрос о риске распространения ложных новостей и их определения. Разработчики RefaceAI одновременно со своими сервисами создают антидоты, помогающие распознать сгенерированные изображения и видео.

А Facebook недавно объявила конкурс на разработку технологии детекции поддельных видео с призовым фондом $10 млн, что предвосхищает появление большого количества новых методов.

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

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

Интересный подход использовал учёный Хао Ли: у каждого человека есть индивидуальные паттерны мимики и движения лица, которые при переносе наследуются от реципиента. Таким образом можно математическим методом вычислить, что лицо донора ведёт себя неестественным для него образом.

Face swap vs deep fake

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

Термин «face swap», предположительно, пришёл в язык в 2000-х годах с появлением в графических редакторах функций, которые позволяли пользователям трансформировать лица на изображениях (иногда употребляли термины «face replacement», «face morphing»), а также из научных работ.

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

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

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

2424
6 комментариев

лучшие deep fake на pornhub

3

DeepFake это главная проблема порнхаба сейчас и всех медиа-личностей)) Бэлла Торн например сейчас сотрудничает с pornhub и помогает им в разработке алгоритма для определения deepfake-видео (хз как конечно)

1

Придумывают очередной трэш для задуривания головы, нет что бы для людей что то полезное сделать. 

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