Как делают deepfake-видео и почему лучше говорить «face swap»
Рассказываем о работе технологии face swap, создании известных сегодня deepfake-видео, как трансфер лиц поможет медиарынку и в каком направлении развивается эта область машинного обучения.
Каждый день из многочисленных Telegram-каналов, изданий об ИТ прилетают новости о создании алгоритмов, работающих над преобразованием контента.
Недавно компания Тимура Бекмамбетова и разработчики робота «Вера» придумали технологию синтеза голосов знаменитостей. Учёные из МФТИ научили компьютер воспроизводить изображения, которые видит человек в данный момент, а компания OpenAI создала алгоритм, пишущий почти осмысленный текст на основе минимальных исходных данных.
Нейросети оперируют и видеоконтентом: генерируют движущиеся пейзажи, убирают объекты или же заставляют танцевать людей на фото.
Сложнее обстоят дела с трансфером человеческих лиц или тел на изображениях. Эту сферу начинают осваивать стартапы, которые создают продукты для оптимизации процессов производства контента: Dowell (проект компании Everypixel Group, Россия), Synthesia (Великобритания), а также RefaceAI — создатели приложений Doublicat и Reflect (Украина).
Есть несколько сервисов вроде Reflect, Doublicat или Morhine, которые работают в реальном времени со статичным форматами или GIF. Недавно китайские разработчики зашли на поле видеоформата и выпустили приложение Zao, которое встраивает лица пользователей в известные фильмы.
В остальном широкая аудитория остаётся непричастной к созданию такого контента и потребляет deepfake-видео, которые выпускают известные продакшн-студии или свободные художники на YouTube.
Технология face swap в открытом доступе: как она работает
Существуют разные архитектуры алгоритмов, которые переносят лица с видео на видео. Мы расскажем о нескольких самых распространённых.
Autoencoder и decoder
Метод перемещения лица, в основе которого — кодировщик и декодировщик. Работает это так:
- Два видео: донорское (откуда берём лицо) и целевое (куда мы его помещаем, ресивер, реципиент). На них размечаются границы лица. Эти видео с помощью нарезки кадров превращаются в набор фотографий. По ним и будет обучаться модель.
- Кодировщик сжимает изображения (грубо говоря, упрощает до последовательности чисел). Мы получаем latent face (непроявленное лицо), потом оно восстанавливается до оригинального изображения инструментом декодирования. Две нейросети обучаются кодировать и декодировать изображения так, чтобы после восстановления они были максимально похожими на оригинал.
- Кодировщик и для донорского, и для целевого видео один и тот же, благодаря чему изображения 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 нашли человека, очень похожего на Тома Круза, а актёр, играющий в ролике с Киану Ривзом, надел чёрный парик, чтобы воссоздать образ актера.
Во-вторых, если в донорском видео лицо всегда анфас, а в целевом голова поворачивается и виден профиль, алгоритм не перенесёт лицо корректно, потому что не знает, как выглядит человек в профиль. Так же обстоят дела с положением глаз, движением губ, мимикой и эмоциями (смех или плач): оба человека должны побывать в максимально совпадающем диапазоне ситуаций.
После обучения то, что не углядели в начале, и то, в чём оказался бессилен алгоритм, докрашивается на постпродакшене. В ролике с Сергеем Буруновым Андрею пришлось столкнуться с проблемой разной формы лица двух актеров, которую он решал уже на завершающем этапе.
Для YouTube-формата, когда каждый вышедший ролик становится информационным поводом и предполагает вау-реакцию аудитории, такой подход применим. Видео можно долго шлифовать, а потом ещё отдельно описывать процесс, как это часто делают в Corridor Crew.
Очевидно, рынок сервисов для пользователей не предполагает какой-либо постпродакшн: результат нужен сейчас. Того же хочет и профессиональная индустрия (кино и реклама), которая руками переносить лица уже умеет, но сейчас фокусируется на удешевлении и автоматизации процесса.
Спичрайтинг — про текст, face swap — про видео: как технология прорвёт рынок медиа
Монетизируется технология face swap по двум стандартным моделям. Для b2c-аудитории создаются развлекательные приложения вроде Zao или Doublicat. Для b2b-аудитории — продукты, которые используются для оптимизации продакшена, маркетинговых коммуникаций, персонализации брендированного контента или в игровой индустрии.
Среди них Dowell и RefaceAI, создатели которых рассказали, по какой логике работает их продукт и какую нишу на рынке они планируют освоить.
Dowell вырос в офисе компании Everypixel Group, которая занимается производством контента и создаёт продукты на основе искусственного интеллекта. Изучив рынок, создатели стартапа поняли, что развитие продуктов для пользователей и демонстрация deppfake-публикаций на YouTube не их путь, и проработали сценарии использования в киноиндустрии и маркетинге.
Один из кейсов они реализовали с BBDO — рекламный ролик с изображением генерального директора крупного автомобильного бренда, в съёмках которого этот человек не принимал непосредственного участия.
Компания RefaceAI, которая исторически занималась анализом текста и генеративными сетями, связанными с автоматической конвертацией 2D-видео в 3D, video inpainting (удаление или восстановление фрагментов на видео), пришла к технологии face swap случайно, получив запрос на модификацию лиц от одной киностудии.
Тогда они решили протестировать гипотезу: насколько востребованным формат станет для обычных пользователей, и сделали сервис Reflect, который создаёт изображения с заменой лиц.
Сейчас команда выводит на рынок второе приложение, Doublicat. Оно будет менять лица на видео (в бета-версии перенос перенос в формате GIF).
Что касается приоритетов в разработке трансфера лиц в видео, для b2c-модели сейчас главное — максимально быстрое обучение алгоритма, чтобы сервис работал в режиме реального времени и обучение не занимало долгие часы. Китайское приложение Zao сделало это первым.
Но его слабая сторона — алгоритм работает с предобученными данными. Пользователь не может загрузить свой контент, он загружает туда лишь изображение, которое переносится в заданный разработчиками набор видео.
B2b-решения больше сфокусированы на качестве переноса лиц, схожести результата и увеличении разрешения переносимой области, оптимизации времени обучения. Команда RefaceAI планирует, помимо лиц, освоить перенос туловища.
Дипфейки и антидоты
Синхронно с развитием технологии встаёт вопрос о риске распространения ложных новостей и их определения. Разработчики RefaceAI одновременно со своими сервисами создают антидоты, помогающие распознать сгенерированные изображения и видео.
А Facebook недавно объявила конкурс на разработку технологии детекции поддельных видео с призовым фондом $10 млн, что предвосхищает появление большого количества новых методов.
Сейчас подделку можно определить по тем частям тела человека, перенос которых не предусмотрен технологией: уши, волосы, лоб. Если эти части тела особенно выдающиеся, определить можно и невооруженным взглядом, но есть базы данных для распознавания ушей. Но очевидно, что когда-то их тоже станут переносить, и этот способ перестанет работать.
Ещё один распространённый инструмент — бинарный классификатор, который учится определять реальные и поддельные изображения. Однако сама логика работы генеративных сетей подразумевает, что такой классификатор обречён оставаться обманутым.
Интересный подход использовал учёный Хао Ли: у каждого человека есть индивидуальные паттерны мимики и движения лица, которые при переносе наследуются от реципиента. Таким образом можно математическим методом вычислить, что лицо донора ведёт себя неестественным для него образом.
Face swap vs deep fake
У технологии трансфера лиц пока не устоялось одно название, и во многих источниках в пределах одной и той же публикации её могут называть и так, и так (этот текст — не исключение).
Термин «face swap», предположительно, пришёл в язык в 2000-х годах с появлением в графических редакторах функций, которые позволяли пользователям трансформировать лица на изображениях (иногда употребляли термины «face replacement», «face morphing»), а также из научных работ.
Но сфера применения была очень узкой, поэтому в 2017 году, когда интернет взорвали ложные порноролики с участием известных артистов, технологию стали называть deepfake — по нику пользователя Reddit, который эти ролики публиковал. И это слово легко подвинуло термин, которому на тот момент было полтора десятка лет, и стало употребляться наравне с ним.
Противостояние двух определений заключается в том, что первое удобнее для тех, кто стремится вывести технологию в правовое поле и адаптировать к современным реалиям коммуникации. В конце концов спичрайтинг — это тоже своего рода подделка, но никто его так не называет.
Второе — эмоциональнее и хлестче, но оно мешает отделиться от порно, утечек, подделок и прочих ужасов сингулярности. Какое из них победит — кто знает.
лучшие deep fake на pornhub
DeepFake это главная проблема порнхаба сейчас и всех медиа-личностей)) Бэлла Торн например сейчас сотрудничает с pornhub и помогает им в разработке алгоритма для определения deepfake-видео (хз как конечно)
Придумывают очередной трэш для задуривания головы, нет что бы для людей что то полезное сделать.
Офигенная тема! Но вроде сейчас качественную смену лица может сделать даже школьник, при наличии пекарни с мощными видяхами и вообще мощным железом, вроде бы... . Парень который сделал дипфейк видео, с одной из картинок этой статьи (вставил арни, в лицо убийцы ...и ещё рядом 3 лица), ну он вроде как выложил обученную нейросеть в открытый доступ + приложение, и сделал видео туториал как и что, и там нет никаких пост обработок афтэр эфекст или ещё чего... . Ну либо я жёсткую дичь сейчас сморозил не понимая всего процесс, я ж не моушн дизайнер и даже не айтишник )
Dame dane!
спасибо Алина