Вокруг темы дипфейков множество слухов и домыслов. Cам стараюсь не попасть впросак, когда комментирую для журналистов эту тему. Например. Можно ли подделать голос в телефонном разговоре, то есть налету? (пока нет) Увеличивается ли число мошенничеств с дипфейками? (Достаточной статистики нет. Если неаккуратно оценивать ситуацию, можно тысячи процентов насчитать, всё ж пока исчисляется «от плинтуса»). Можно ли создать дипфейк дендрофекальным способом, работая только с тем, что есть в открытом доступе?
А вот тут надо проверять, потому что однозначного ответа без дополнительных «но» нет. В качестве начальных условий поставил такие: можно ли сделать качественный дипфейк (видео и аудио), не особо вникая в вопрос? Результаты под катом.
А еще бонусом, на основе полученных результатов, – разобрал ролик под названием «10 лучших Дипфейк видео». На их примере предлагаю и вам поупражняться в поиске признаков подделки.
Disclaimer! Понятно, что актуальность этой статьи будет утрачиваться очень быстро. Поэтому не стесняйтесь делиться в комментах ссылками на новые инструменты и сервисы. Ещё заранее прошу прощения за качество некоторых гифок. Т.к. у Хабра есть ограничение на размер картинок, пришлось в некоторых ухудшить качество.
Актуальность
Кто-то радуется развитию технологий, а у меня взгляд с другой стороны – для «ибэшников» это риски. Массового применения дипфейков в корпоративном секторе, к счастью, пока не видно. Но риски точечных атак очень вероятны. Вот несколько примеров использования дипфейков для обмана и мошенничества.
Раз
Начнём с безобидного. Популярная японская байкерша-блогер оказалась 50-летним мужчиной — он притворялся девушкой с помощью фильтров FaceApp. Обман раскрылся случайно: подписчики увидели отражение в боковом зеркале мотоцикла на одном из снимков, где вместо молодой девушки было лицо взрослого мужчины. А до этого их смутила волосатая мужская рука на фото.
Цзунгу (так на самом деле зовут блогера) рассказал журналистам, что для перевоплощения использовал фильтры приложения FaceApp: помимо настроек «красоты», они позволяют поменять пол и возраст на фото.
По его словам, он просто хотел почувствовать себя интернет-знаменитостью, но решил, что в сети все хотят видеть «красивую девушку, а не пожилого дядю».
Два
В марте 2019 управляющий директор британской энергетической компании был ограблен на €220 000 (около $240 000). Он отправил эти деньги фирме-поставщику из Венгрии, потому что его босс, глава материнской фирмы в Германии, несколько раз подтвердил ему такую инструкцию. Но на самом деле какой-то хитрый злоумышленник просто использовал софт с AI-технологиями, чтобы в режиме реального времени заменять лицо и голос руководителя, и требовать, чтобы тот заплатил ему в течение часа.
Сообщение исходило с адреса босса в Германии, в подтверждение британскому директору был направлен e-mail с контактами. Предположить, что что-то идёт не так, можно было разве что по требованию босса провести всю сделку как можно быстрее, но это далеко не первый аврал, который случался в их бизнесе.
Три
Китай. Мошенники покупали на чёрном рынке фотографии людей в высоком разрешении и их персональные данные ($5-38 за комплект). Покупали «специально подготовленные» смартфоны ($250), которые умели имитировать работу фронтальной камеры, на самом деле адресату (госведомству) передавалось сгенерированное дипфейк-видео.
Схема позволила мужчинам создавать от лица ненастоящих людей компании-пустышки и выдавать своим клиентам поддельные налоговые накладные. Таким образом им удалось за два года украсть $76,2 млн.
Четыре
Индия. С мужчинами в социальных сетях связываются женщины с фейковых аккаунтов, а затем звонят по видео, общаются с пользователем и производят действия сексуального характера. После такого разговора мужчины получают угрозы разослать записанное видео знакомым и родственникам жертвы, если тот не перечислит определённую сумму на счёт шантажистов. И если в такой схеме раньше участвовали настоящие женщины, то сейчас мошенники используют deepfake, а также технологию преобразования текста в звук, которая помогает в создании речи фальшивых девушек на видео. Некоторые из жертв мошенников перечисляют крупные суммы денег, которые доходят до миллионов рупий, а некоторые не ведутся на провокации.
Это далеко не все новости. Регулярно всплывает что-то ещё. То исследование выйдет, что тесты банков для проверки личности «чрезвычайно уязвимы» для deepfake-атак. То банки просят ЦБ провести эксперимент по использованию видеозвонков для удалённого открытия счетов новым клиентам.
Тем не менее можно сделать вывод, что на данный момент качественные дипфейки используются чаще как элемент большой сложной кампании. Простыми же, которые легко тиражировать (например, deepnude), бьют по площадям.
Подделка видео
Начнем с теории. В этом вопросе я опирался на работу «Deepfakes Generation and Detection: State-of-the-art, open challenges, countermeasures, and way forward. В ней авторы выделяют 5 техник:
Face-swapping. «Пересадка» лиц. Чаще всего дипфейками именуют ролики, созданные с помощью этой техники.
Lip syncing. Буквально «синхронизация губ». Здесь пересадок не происходит. Губы «жертвы» на видео двигаются синхронно с подменённой аудиодорожкой. Как дубляж.
Puppet master. Буквально «кукловод». В идеале, полная передача характеристик лица «донора» на лицо «жертвы». Как делали «людей» из племени Нави в Аватаре Джеймса Кэмерона.
Face Synthesis and Attribute Editing. Буквально «синтез лиц и редактирование атрибутов». В отличие от Puppet Master, здесь идёт работа с одним лицом. Его можно состарить, омолодить, изменить цвет, причёску, дорисовать очки, шляпу и т.п. Из относительно свежих ярких представителей я бы сюда отнёс фоторедактор Lensa, хотя понятней иллюстрирует идею Snapchat со своими фильтрами.
Audio deepfakes. Авторы работы к этому разделу отнесли всё, что связано с аудио, хотя лично я бы разделил на 3 категории: искажение голоса, синтезаторы, клонировщики.
Также все инструменты можно разделить на 2 большие группы: те, которые осуществляют подмену в режиме реального времени и те, кто генерирует результат постфактум.
Проще познакомиться с плюсами и минусами каждой техники на конкретных примерах. Разберем несколько приложений/сервисов. Какие-то пробежим, на некоторых остановимся подробнее.
MSQRD
Несмотря на множество аналогичных по идее приложений (например, Reface), начать хочется с MSQRD, потому что на моей памяти, это первая программа для создания дипфейков, которая появилась в публичном доступе. Белорусский стартап, который за 1 миллиард долларов был куплен потом ТемиКогоВРоссииНельзяБезЗвёздочкиНаписать.
В примере ниже MSQRD использует Face-swapping\Face Synthesis and Attribute Editing.
Плюсы подобных инструментов:
Низкий порог вхождения по знаниям. Не нужно дополнительно штудировать мануалы.
Низкий порог вхождения по технике. Обработка происходит на стороне сервиса.
Низкий порог вхождения по затраченному времени. Результат получаем практически мгновенно.
Бесплатно.
Минусы подобных инструментов:
Нет свободы воли. Перечень сцен и героев для подмены ограничен создателями приложения.
Цифровой след. Регистрация, водяные знаки и т.п.
DeepFaceLab
Пожалуй, самый известный, самый замануаленный, самый проработанный и прочие «самый» инструмент. Яркий представитель техники Face-swapping, обойти вниманием который было нельзя.
Инструкции есть на многих языках как в формате текста, так и в видео-гайдах. Обработку и обучение нейронки можно запустить даже на CPU, поэтому решено было проверить на себе. Результат:
Мда…Совсем не то, что ожидал. Почему? А потому что решено ведь было следовать принципу, вынесенному в начало статьи: сделать качественный дипфейк (видео и аудио), не особо вникая в вопрос. В случае с DeepFaceLab это явно не получится. Нужно учитывать довольно много нюансов. Перед обучением нейронки нужно как минимум учесть:
качество видео «донора» и «жертвы» (свет, цвет и т.д.);
масштаб пересаживаемых лиц (чтоб не получилось, как у меня, когда маленькая картинка растягивается и мылит);
наличие в обоих видео всех положений головы (особенно, если собираетесь сильно ею вертеть);
необходимость удалить «плохие» кадры из наборов данных перед началом обучения (кадры без лица, размытые кадры, кадры с посторонними предметами, перекрывающими лицо и т.п.).
После обучения работы тоже хватает. Внутри DeepFaceLab есть встроенный инструмент Merger, с помощью которого можно осуществлять покадровую подгонку пересаженного лица.
Именно в нём регулируется размытие, размер маски, её положение, цвет и т.д.
Если же подходить к вопросу в стиле «Далее-Далее-Готово», то результат получится, как у меня.
Плюсы подобных инструментов:
Свобода воли. Можно создавать произвольный контент.
Низкий порог вхождения по технике. Но стоит отметить, что чем слабее железо, тем дольше будет проходить обучение нейросети и прочая обработка.
Минимальный цифровой след.
Бесплатно.
Минусы:
Высокий порог вхождения по знаниям.
Высокий порог вхождения по затраченному времени.
Нельзя сделать подмену в режиме реального времени.
Wav2Lip
Настала пора инструмента, который использует технику Lip syncing. И хоть подходящего железа под рукой не было, проект позволял поиграться с помощью Google Colab. Вооружившись инструкцией, получил результаты:
Показалось, что инструмент довольно чувствителен к посторонним шумам и может принять их за речь. В итоге, в видео есть участки тишины, на которых видно, как шевелятся губы. Возможно, избежать ложных сработок позволит предварительное редактирование аудио с вставкой полной тишины между словами. Проверять я это, конечно же, не буду ©
Кстати, с русской речью тоже всё получается неплохо.
Плюсы подобных инструментов:
Свобода воли. Можно создавать произвольный контент.
Меньше возни с предварительной подготовкой данных, если сравнивать с DeepFaceLab.
Больше достоверности, так как вместо «полной пересадки» искажается небольшой участок рта.
Минимальный цифровой след (если не работать через Colab).
Бесплатно.
Минусы:
Высокий порог вхождения по знаниям.
Высокий порог вхождения по технике (если не работать через Colab).
Высокий порог вхождения по затраченному времени.
Нельзя сделать подмену в режиме реального времени.
А ещё желательно избегать неоднотонных фонов. В противном случае область подмены будет бросаться в глаза.
Avatarify
Программа использует технику Puppet master и позволяет в режиме реального времени «оживить» какое-нибудь фото. Есть известный ролик, который показывает возможности этого решения: «Илон Маск» вошел в конференцию в зуме». Обратите внимание, «Илон Маск» почти не шевелит головой. Только глазами. Он как восковая фигура. Но некоторые и в жизни не демонстрируют живость мимики или пребывают в разных состояниях, так что вполне можно и обмануться. Голос, понятно, совсем не подделан – подробнее о синтезе речи в режиме реального времени поговорим ниже.
Потенциал здесь определённо есть, но пока всё же этот проект не рассматриваю, как серьёзную угрозу. Уж слишком много факторов должны сойтись, чтобы на выходе получился приемлемый результат. К примеру, требуется определённый перечень софта и железа. Причём, подозреваю, что в ряде случаев нужно будет точное попадание в версию, а не «от 3.5 и выше». У меня так и не получилось запустить проект (хотя может дело в руках).
Если посмотреть на успехи тех, кто смог стартануть, выяснится, что нужно подбирать подходящую позу, угол и т.п., чтобы аватар не пучило. Смотрите сами:
Но если глянуть в сторону коммерческих проектов, результаты будут более впечатляющими.
Плюсы подобных инструментов:
Подмена в режиме реального времени.
Свобода воли. Перечень сцен и героев для подмены не ограничен.
Минимальный цифровой след (для некоммерческих инструментов).
Бесплатно (для некоммерческих инструментов).
Низкий порог вхождения по знаниям (для коммерческих инструментов).
Минусы:
Высокий порог вхождения по знаниям (для некоммерческих инструментов).
Высокий порог вхождения по технике (для некоммерческих инструментов).
Платно (для коммерческих инструментов).
Цифровой след (для коммерческих инструментов).
Что до Face Synthesis and Attribute Editing, то в части создания дипфейков я склонен рассматривать эту технику как продолжение Puppet Master с аналогичными преимуществами, ограничениями и выводами.
Подделка аудио
Настало время попробовать подделать голос. По одной из версий, которые читал про первый в мире инцидент с применением deepfake, голос жертвы не клонировали. Был найден пародист с изначально похожим на жертву голосом, который затем сымитировал акцент, манеру речи и прочее. Чтобы было ещё более похоже, голос дополнительно искажали в момент разговора. С этого и начнём.
«Искажатели»
Они часто используются в игровой индустрии – например, если игрокам важно, чтобы по голосу их не узнали. Искажатели работают в режиме реального времени и меняют голос на лету.
Плюсы подобных инструментов:
Можно найти бесплатные.
Работа в режиме реального времени.
Низкий порог вхождения по технике.
Низкий порог вхождения по знаниям.
Минусы:
Вряд ли получится сымитировать любой голос.
В теории, подделанный голос можно преобразовать обратно и получить изначальный голос говорящего.
Синтезаторы речи
Принцип работы для пользователя прост: вводим текст – нам его озвучивает голос. Часто такие инструменты представлены в виде сервисов.
Как видите, есть опции по выбору языка, скорости, «актёра» и тона речи. Некоторые сервисы предлагают синтезировать актёра под заказ.
Плюсы подобных инструментов:
Можно найти бесплатные.
Низкий порог вхождения по знаниям.
Низкий порог вхождения по технике.
Низкий порог вхождения по времени.
Минусы:
Свобода воли. Произвольный голос не подделать.
Ограничения инструмента (не во всех сервисах даже есть возможность изменять ударение).
Цифровой след.
Не работает в режиме реального времени.
Клонирование голоса + синтезаторы речи
Логичным развитием синтеза речи является синтез речи конкретного человека. Из бесплатных инструментов я попробовал этот.
Упрощённо логику работы можно описать так:
Добываем аудио «жертвы», чей голос будем поддерживать. Чем выше качество записи, тем лучше. В идеале wav, на котором только голос человека без посторонних шумов.
Готовим набор данных. Нарезаем аудио на отдельные фразы, транскрибируем и всё это дело сохраняем определённым образом.
ВЖУХ (запускается обучение нейросети).
Пишем текст, синтезатор его озвучивает подделанным голосом.
Хватает инструкций, где подробно показан каждый этап. Результатом, к сожалению, поделиться не могу, т.к. действовал через Colab и добиться чего-либо приемлемого на выходе не получилось. В основном из-за того, что если оставить обучаться нейронку надолго, то что-то шло не так и валилось с ошибкой. Если же обучение шло недолго, сгенерированный голос был не особо похож на «жертву».
Плюсы подобных инструментов:
Бесплатно.
Свобода воли. Можно подделывать любой голос.
Минимальный цифровой след (если запускать на своей технике, естественно).
Минусы:
Высокий порог вхождения по знаниям.
Высокий порог вхождения по технике.
Высокий порог вхождения по времени.
Ограничения инструмента (ударения, интонации и т.п.).
Не работает в режиме реального времени.
Клонирование + синтез. Всё в режиме реального времени.
Логичное развитие логичного развития. Пока сказать об эффективности такого подхода мне нечего, не дошли руки (и техника) попробовать. Но различные инструменты, как коммерческие, так и бесплатные, уже есть. Вот для видео, вот для аудио. Наверняка кто-то в скором времени и вместе соберёт, если уже не собрал. Как минимум, на поверхности лежит идея запуска Real-Time-Voice-Cloning в паре с Avatarify.
Кстати, в задаче повышения достоверности дипфейков есть не одно направление. Параллельно, идя по пути улучшения подделки, можно идти по пути внесения осознанных ухудшений. Например, чтобы скрыть неидеальный фейк при звонке можно вносить на лету различные помехи в видео и аудио: посторонние шумы, пикселизацию, прерывание сигнала и прочее.
Как выявлять дипфейки без специализированных инструментов и сервисов. Практика.
Итак, нагрузившись теорией по самое горлышко, пора сформулировать не просто списки признаков, а понятную инструкцию. Поясню мысль. Выкатить кучу «сигнатур» дипфейков любой может. И нельзя сказать, что это ложная информация. Вот, например, мой список, на что стоит обращать внимание для аудио:
Выразительность;
Одышка;
Эмоции;
Ударения;
Слова-паразиты;
Специфические дефекты;
Темп.
А ведь в реальности у каждого инструмента, с помощью которого создаётся подделка, есть свои ограничения.
Но запомнить, а главное, вспомнить в нужный момент, всё это человек вряд ли сможет. Поэтому предлагаю такую инструкцию по выявлению дипфейков:
Контекст.
Определить технику.
Вспомнить ограничения.
Искать артефакты в местах, которые следуют из п.2.
Проиллюстрирую на примерах, о которых упоминал в самом начале статьи (ролик под названием «10 лучших Дипфейк видео»). В качестве дополнительных инструментов будет задействован любой проигрыватель, который способен воспроизводить видео покадрово.
Пример 1
Тут, как и во многих других подделках, нет смысла идти дальше шага Контекст. Тем не менее, пройдёмся по алгоритму:
Используется техника Face Swapping.
Ограничения касаются положения головы при поворотах на большие углы.
Нейронка просто не знает, как нарисовать правильно, пытается до последнего показывать оба глаза. В итоге лицо получается похожим на блин. Как такое произошло? Когда готовили дата-сет изображений Стива Бушеми, скорее всего не «скормили» нейронке фото в нужном ракурсе.
Пример 2
Если уменьшить скорость воспроизведения или смотреть покадрово, можно сразу увидеть несколько артефактов. Например, несовпадение текстуры кожи.
Ещё переборщили с размытием. Во время движения весьма бросается в глаза.
На крупных планах «мыло» видно ещё больше.
На одном кадре нейросеть даже перестаралась и попыталась нарисовать лицо там, где его не должно быть.
Также на крупных планах вы сможете найти эффекты «дрожания» наложенного лица. А пока пройдёмся по алгоритму:
Используется Face-swapping.
Если не попали с размерами лиц «донора» и «жертвы», лицо донора будет мылить. Для более качественной «пересадки» используется размытие границ, но с ним можно переборщить. Лицо в каждом кадре накладывается без оглядки на прошлое и будущее. Как следствие, лицо может «дрожать».
Удалось с лихвой найти артефакты:
Лоб выделяется, он блестит, а другие части лица нет.
Очень хорошо видно размытие по границе «маски».
На крупных планах видно, как отличается текстура кожи.
Есть моменты, когда голова (лоб, шея, уши) «жертвы» не двигается, а лицо «донора» немного смещается. Дрожание.
Пример 3
Используется Face-swapping.
У подобных инструментов наблюдаются проблемы с отрисовкой «артефактов» (очки, пирсинг, татуировки и т.п.). Часто проблемы при поворотах головы. А ещё при изменении дистанции до камеры (ближе-дальше).
Покажу на конкретных кадрах.
Во-первых, очки. Дужек вы не найдёте на протяжении всего видео.
Во-вторых, при резких поворотах головы пропадают не только очки, но и само наложенное лицо. Фрагмент ниже длится всего 1 секунду, поэтому замедлил его в 4 раза и добавил стоп-кадр на 2 секунды.
В-третьих, при изменении расстояния от объекта до камеры можно увидеть, как заменённое лицо дрожит, «бликует» и, в конце концов, вовсе исчезает в мучениях. Последние кадры остановил, чтобы лучше был виден момент перехода.
Пример 4
Таким бы мог быть Николас Кейдж (если бы захотел).
Это довольно качественная подделка, поддельное лицо почти всегда в порядке. Даже когда разлетаются волосы и частично его перекрывают. Если смотреть в динамике – полный порядок. Но если вспомнить про технику (face-swapping) и ограничения, то снова надо обратить внимание на повороты головы. При покадровом просмотре на предельных углах лицо снова становится как блин. Но главное – есть явное место, где нейросеть не справилась.
Пример 5
Бывает так, что всё сделано настолько качественно, что подкопаться можно чуть ли не к паре кадров. В приведённом примере я нашёл только 1 огрех (нос убежал в самом конце ролика). А вы заметили ещё что-нибудь?
Пример 6
И ещё один сложный, на мой взгляд, пример, где зацепиться было практически не за что. Обратите внимание на то, как раздувается щека.
Эффект будет более заметен, если открыть видео в видеоредакторе и зациклить момент, добавив реверс.
Пример 7
Теперь пример с использованием другой техники.
Puppet Master или Lip Syncing. Обратите внимание на то, как у поддельной Ким Кардашьян ведёт себя нос.
В видеоредакторе на реверсе эффект ещё больше выражен.
Пример 8
И, пожалуй, последний пример. Тоже представитель Puppet Master\Lip Syncing.
При всей красоте и качественности ролика, подделку можно заметить. Есть один явный момент, когда на картинку напал паралич, а двигается только рот.
Кстати, здесь нет стоп-кадра, всего лишь замедлил фрагмент в 3 раза.
Выводы
Основываясь на том, до чего дотянулись руки, и что разглядели глаза, осмелюсь утверждать, что в ближайшее время эпидемия дипфейков нам не грозит. Но утверждение будет справедливо при нескольких «если»:
Если по-прежнему будут высокие пороги входа по технике, времени, знаниям или деньгам.
Если не появится «профит», который будет перекрывать понесённые затраты на создание дипфейка.
Если не только появятся, но и будут использоваться инструменты для выявления подделок.
Пока же общая рекомендация по выявлению дипфейка такая: думайте головой. Не переставая этого делать, следуйте алгоритму:
Контекст.
Определить технику (для видео их всего-то 4).
Вспомнить ограничения.
Искать артефакты в местах, которые следуют из п.2.