Привет, Хабр! Меня зовут Александр Паркин, я руководитель исследовательских проектов в Vision Labs. Сегодня хочу рассказать, какие бывают дипфейки лиц и как их детектировать. Фальшивых лиц становится всё больше и они выглядят всё убедительнее, поэтому без надежных инструментов для их обнаружения сейчас никуда. О том, как определить, что перед вами не настоящий человек и том, как предотвратить манипуляции с вашими фотографиями (да, так тоже можно) — под катом.

Что такое дипфейки и какими они бывают?

И термин, и его реализация впервые появились на Reddit в 2017 году: один из пользователей тогда сделал несколько фейковых видео со знаменитостями.

Слово «дипфейк» происходит от двух терминов: deep learning, глубокий метод машинного обучения на нейросетях, и fake — подделка. Изначально термин относили только к замене лица человека. Постепенно это понятие расширилось и на другие категории, включая аудио, видео, текст и так далее.

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

В чем разница? Liveness — технология, которая помогает системе отличить живого человека. Она определяет физическую (не цифровую!) маску, даже если она из силикона или латекса, фото, запись голоса или видео.

Алгоритм работает в связке с системой распознавания лиц, но главное отличие в том, что он отвечает не на вопрос «Тот ли это человек?», а на вопрос «Живой ли это человек?».

Liveness — это очень интересная и обширная тема. О ней мы поговорим в другой раз.

Сейчас давайте погрузимся в мир дипфейов и посмотрим на их самые распространенные типы:

  • перенос лица;

  • перенос выражения лица;

  • кастомизация атрибутов. Добавление очков, затемнение или осветление кожи, изменение прически и так далее;

  • генерация лица с нуля. Создание несуществующих в реальности людей;

  • синхронизация губ в ходе разговора.

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

  • рекламная интеграция;

  • цифровые аватары;

  • дубляж фильмов;

  • виртуальная примерочная (макияж, укладка волос и т.п.);

  • анонимизация аватара на видео во время конференции;

  • цифровые актеры — эта технология становится всё более популярной в Голливуде.

Теперь — о незаконном использовании дипфейков:

  • компрометирующий контент;

  • манипуляция общественным мнением;

  • реалистичные боты для соцсетей, которые используются для обмана пользователей;

  • обход системы аутентификации.

Один из наиболее популярных разновидностей дипфейков — Face Swap. Такие фальшивки сложнее всего обнаружить. Особенно когда их много, а найти подделку нужно быстро.

Алгоритмы генерации разделяются на два типа:

  1. Auto-Encoder. Получается очень хорошее качество, но для обучения нейросети нужна база видео.

  2. ID-Injection. Здесь сохраняются черты оригинального лица. К ним добавляют лицо другого человека и получается нечто среднее между двумя людьми. Вот как это выглядит:

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

Защита от подделки

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

При обнаружении фальшивок есть и другие проблемы. По своему опыту я делю их на четыре основные категории:

  • очень много трудностей из-за сжатия данных, включая JPEG, H254. Детекторы дипфейков ориентируются на низкоуровневые артефакты, а сжатие часть из них убирает;

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

  • не до конца устоявшиеся тестовые данные. У разных методов детекции нет «золотого стандарта» образцов для проверки данных и из-за этого сложно сравнить результаты разных алгоритмов детекции.;

  • хорошей точностью могут похвастаться только модели, в которые встроено много нейросетей с большим количеством параметров. Они почти не ошибаются, но  даже на видеокарте работают медленно. Это сильно затрудняет создание real-time дипфейк-детекторов

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

Простое и рабочее решение. Но лучше взять классификатор, который «заточен» для работы с видео и под дипфейки.

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

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

Если зафризить и не обучать основную часть сети, а обновлять её последнюю часть, она будет лучше выявлять новые фальшивки, так как не переобучается под артефакты старых видов атак.

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

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

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

Как защитить ваши изображения

Да, фотографии и правда можно защитить, чтобы мошенники не смогли сделать на их основе фальшивку.

Тут уже есть моменты Adversarial attack. Мы добавляем на изображение лица шум, и при создании дипфейка из-за этого выделяются элементы с искажённым цветом. Например, после замены лица мошенник получит синее изображение, на котором сложно разглядеть человека. Тут уже никого не обманешь!

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

Для человека картинка выглядит совершенно нормальной, а машина использовать такой снимок не сможет:

Заключение

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

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

Комментарии (5)


  1. punhin
    06.12.2023 15:47
    +1

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

    2. Можно ли внедрить подобный алгоритм на уровне какой-либо платформы, где пользователи размещают свои рисунки, фотографии и подобные работы и не хотели бы, чтобы их фото, например, использовались для обучения нейросетей? Какими будут в этом случае издержки на выполнение обработки изображений?

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

    К пункту 2: вспомнился конфликт с Артстейшн. Мне кажется, появись альтернативная платформа, которая защищала бы всё, что на неё загружается, от использования в дальнейшем нейросетями, то она могла бы стать весьма популярной.


    1. Parkin Автор
      06.12.2023 15:47

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

      2. Для эффективности подобной платформы как минимум надо, чтобы поддерживалась защита против open-source дипфейк методов, чтобы быть готовыми к ним, помимо них есть еще закрытые методы, на которых не гарантируется защита. + все же видный шум, поэтому таких платформ еще нет, думаю, но мне было интересно показать про такое ресерч направление, как альтернатива C2PA по предварительной защите контента.


    1. Sap_ru
      06.12.2023 15:47

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


  1. IZh
    06.12.2023 15:47

    Интересное развитие прогресса. С одной стороны, разрешение изображений всё росло. С другой — вместо того, чтобы наслаждаться идеальным качеством, получаем всюду добавленные водяные знаки против пиратства. А теперь ещё могут быть и шумы против нейросетей.


  1. Tyusha
    06.12.2023 15:47

    Думаю, всё это ненадолго, всё это бесполезно. Какие-то мелкие дефекты и уязвимости дипфейков пофиксят если не через год, то через два. В общем конечная точка, к которой всё идёт понятна заранее — ничего отличить будет нельзя.