Как сделать выборы грязнее
О Deepfakes стало известно в конце 2017 года, и практически сразу же эта программа вызвала огромное количество обсуждений в англоязычном интернете. У нас о ней пока что мало говорят, а зря — создание поддельных видео имеет огромный потенциал. Вполне возможно, что сейчас кому-то в одном из избирательных штабов придёт в голову мысль организовать провокацию, на фоне которой скандал с Голубаном покажется детской шалостью. Как мне кажется, только широкое распространение информации об этих возможностях может предотвратить такие вещи. В принципе, на сегодня большинство людей уже знают, что скриншотам и фотографиям нельзя доверять; теперь пора осознать, что видео тоже не всегда бывают настоящими.
Итак, deepfakes — это технология, которая позволяет «взять лицо» одного человека и «перенести» его на персонажа другого видео. Например, можно сделать прикольный мем, наложив лицо Мистера Бина поверх Трампа. Или совместить Дженнифер Лоуренс и Стива Бушеми, как на картинке ниже. Название происходит от имени пользователя, впервые описавшего программу на Reddit; оно, в свою очередь, происходит от термина deep leaning (глубокое обучение).
Как известно, internet is for porn, поэтому сразу после появления темы на реддите пользователи ринулись генерировать порнографические ролики с использованием физиономий звёзд. Что ещё хуже, стали появляться видео с использованием детских лиц (например, Эммы Ватсон из серии фильмов о Гарри Поттере). Не дожидаясь судебных исков, порносайты (тот же PornHub) ввели явный запрет на размещение такого контента и попросили пользователей жаловаться на обнаруженные ролики. Социальные сети тоже присоединились к запрету и даже исходная тема на Reddit была удалена. Но исходники программы всё ещё доступны на гитхабе, энтузиасты продолжают разработку и даже делают готовые «упрощённые» сборки.
Теоретически, в далёком будущем замена лиц окажет огромное влияние на процесс создания фильмов. Какой-то группе фанатов показалось, что выбранная актриса не соответствует роли? Актёра внезапно обвинили в сексуальных домогательствах? Никаких проблем, студия сгенерирует ещё один вариант фильма с другим кастингом. Впрочем, текущее состояние deepfakes напоминает Google Translate — в большинстве случаев удаётся получить вполне приемлемый результат, но ошибки случаются слишком часто, чтобы полностью на него положиться.
Как оно работает? Если очень упрощённо, то нейронная сеть — это такая магическая штука, которая может преобразовать один массив данных в другой, причём для похожих наборов данных результат тоже будет похожим. Последнее очень важно: именно благодаря этой особенности получается применить нейросеть для распознавания символов, формирования медицинских диагнозов и решения других задач. Например, на отсканированном изображении символы, соответствующие определённой букве, будут выглядеть немного по-разному, но правильно обученная сеть справится с распознаванием.
В основе Deepfakes лежит использование специальной разновидности нейронных сетей — автокодировщика. Процесс проходит в два этапа:
- сначала сеть обучается преобразовывать входящее изображение в какое-то кодированное промежуточное представление. Такое представление занимает намного меньше места, фактически происходит архивация с потерей информации
- на втором этапе нейросеть обучают восстанавливать исходное изображение на основе промежуточного представления. Точнее, речь идёт о том, чтобы сгенерировать новое изображение, как можно более похожее на исходное. Поскольку в промежуточном представлении просто недостаточно информации, сеть вынуждена «восстанавливать» (то есть придумывать) недостающие детали.
Гениальность идеи Deepfakes заключается в том, что перед вторым этапом нейронную сеть подменяют, используя ту, что была обучена под другого персонажа. Кодированное представление при этом используется от «старого» изображения. В результате появляется смесь: положение лица приходит из кодированного представления, а особенности дорисовываются вторым декодером.
Чтобы создать своё собственное фальшивое видео, не нужно ничего особенного. Главное — компьютер с хорошей видеокартой NVidia; ATI тоже может подойти, но будет немного сложнее. Можно попробовать обойтись и без использования видеокарты, но тогда на генерацию роликов понадобится намного больше времени. Кроме того, понадобятся навыки редактирования видео и поточного изменения изображений. Ну и, конечно, много свободного времени.
Процесс состоит из таких этапов:
- Подготовка картинок для обучения. Нужно как минимум 300-400 изображений модели, но лучше иметь около 1000. Если собирать из ролика по несколько фреймов в секунду, понадобится минимум пару минут видео. Кадры передаются скрипту, который их анализирует, выбирает лица и формирует модель для обучения. Модель нужно проверять, самостоятельно просматривая изображения, и на это уходит довольно много времени. В среднем, за полчаса-час можно справиться.
- После того как две модели сформированы, запускается процесс обучения нейронной сети. Он занимает основную часть времени, но при этом не требует человеческого участия. Для генерации очень качественного, практически идеального, видео понадобится несколько суток обучения. С другой стороны, для более-менее похожего ролика со средним, как для youtube, качеством, понадобится не меньше пяти часов.
- Получив обученную сеть, можно генерировать кадры для фейкового видео. Этот этап тоже не требует человеческого присутствия и займёт не больше часа для нескольких минут видео.
Таким образом, если есть необходимые навыки и вся система уже настроена, то процесс создания поддельного видео может занять 6-8 часов. Если попытаться получить лучшее качество (как в этой статье), нужно будет намного больше времени — счёт пойдёт на дни.
Далеко не каждый ролик можно взять за основу фейкового видео; он должен соответствовать нескольким требованиям:
- Персонаж должен быть один. Не то чтобы обязательно, но наличие в кадре других лиц очень осложняет генерацию подделки
- Персонаж должен быть снят анфас. Допускаются небольшие повороты головы в стороны, но изображение в профиль программа сгенерировать не может.
- Цвет кожи обоих моделей должен совпадать. Понятно, что для Украины это не так актуально, поскольку у нас пока что нет политиков-негров, но даже небольшая разница в оттенках явно бросается в глаза. Например, во второй половине видео с Зеленским девушка делает всего один шаг к оператору, и этого уже достаточно, чтобы освещение изменилось и перестало совпадать.
- Ролик должен быть качественным. Удивительно, но старые телевизионные шоу, снятые несколько лет назад, настолько плохи, что с трудом могут обрабатываться.
- Жесты. Например, Гнап во многих видео довольно сильно машет руками; теоретически, если взять такое видео за основу, в момент перекрывания лица рукой возникнут помехи явные.
- Очки и бороды сильно затрудняют процесс. Теперешний образ ЮВТ неплохо защищает её в этом смысле.
Фон ролика может быть каким угодно: уличное движение, экран в студии — алгоритмы достаточно надёжно отслеживают лица практически во всех ситуациях. Персонаж может двигаться и перемещаться — главное, чтобы он оставался в кадре.
Знание таких особенностей поможет понять, какие видео стоит считать подозрительными. Например:
- Записи разговора Зеленского с толпой во Львове являются настоящими, потому что там на видео много людей и оно снято с разных ракурсов.
- Ролики в стиле «обращение блоггера» или «выступление политика на телешоу» стоит проверять. Если бы видео с Добкиным и Кернесом появилось сейчас, они запросто могли бы назвать его подделкой, и это стало бы очень правдоподобным объяснением.
Универсального способа доказать, что видео сгенерировано с помощью deepfakes, не существует. Можно встретить статьи, в которых советуют проверять, мигает ли персонаж на видео. Этот способ уже не актуален, потому что если основывать обучение на кадрах из видео, там наверняка найдутся и такие, на которых глаза персонажа закрыты.
Тем не менее, подозрительные видео действительно стоит просмотреть с пониженной скоростью (или вообще покадрово) и обратить внимание на такие моменты:
- Не кажется ли область лица более размытой по сравнению с остальной частью кадра?
- Не появляется ли «мерцание»? deepfakes готовит кадры по отдельности, так что они могут оказаться не связанными между собой. Кроме того, иногда алгоритм обнаружения лица может дать сбой и, буквально на одном кадре может появиться странный артефакт
- Не появляется ли чёткая граница вокруг лица?
- Не появляются ли какие-нибудь артефакты или размывание в момент, когда лицо перекрывается руками или уходит из кадра?
Некоторые из этих проблем можно заменить на видео с Зеленским выше. Ещё для тренировки можно попробовать внимательно рассмотреть вот этот ролик:
В итоге получается, что создание поддельного ролика, который сможет пройти более-менее тщательную проверку — задача непростая. Даже невыполнимая, если судить по нашим народным депутатам, которые не могут вордовский файл отредактировать и не знают, какие розетки стоят в их офисе. С другой стороны, электорат тоже склонен верить во всё подряд, так что даже не очень качественное видео может широко распространиться.
У самурая нет цели, есть только путь. Мы боремся за объективную информацию.
Поддержите? Кнопки под статьей.