Меня зовут Александр Паркин, я руководитель исследовательских проектов в Vision Labs. Сегодня хочу рассказать, какие бывают дипфейки лиц и как их детектировать. Фальшивых лиц становится всё больше и они выглядят всё убедительнее, поэтому без надежных инструментов для их обнаружения сейчас никуда. О том, как определить, что перед вами не настоящий человек и том, как предотвратить манипуляции с вашими фотографиями (да, так тоже можно) — под катом.
Слово «дипфейк» происходит от двух терминов: deep learning, глубокий метод машинного обучения на нейросетях, и fake — подделка. Изначально термин относили только к замене лица человека. Постепенно это понятие расширилось и на другие категории, включая аудио, видео, текст и так далее.
Дипфейки отличаются от других подделок. Если мошенник попытается оплатить покупку, подняв перед камерой платёжного терминала изображение своей жертвы, это не дипфейк. Методы защиты от цифровых и физических подделок тоже отличаются.
В чем разница? Liveness — технология, которая помогает системе отличить живого человека. Она определяет физическую (не цифровую!) маску, даже если она из силикона или латекса, фото, запись голоса или видео.
Алгоритм работает в связке с системой распознавания лиц, но главное отличие в том, что он отвечает не на вопрос «Тот ли это человек?», а на вопрос «Живой ли это человек?».
Liveness — это очень интересная и обширная тема. О ней мы поговорим в другой раз.
Сейчас давайте погрузимся в мир дипфейков и посмотрим на их самые распространенные типы:
Алгоритмы генерации разделяются на два типа:
В реальности типов генерации ещё больше. Я описал два, чтобы показать: защитившись от одних алгоритмов, у нас нет гарантии, что мы защитимся и от других.
При обнаружении фальшивок есть и другие проблемы. По своему опыту я делю их на четыре основные категории:
Простое и рабочее решение. Но лучше взять классификатор, который «заточен» для работы с видео и под дипфейки.
Идея, например, в том, чтобы взять нейронку, обученную понимать, что произносит человек по движению его губ. Взяв за основу эту модель, можно установить реальность ролика, где хорошо видно говорящее лицо.
Что дает такое предобучение? В этом случае нейронка улавливает изменения и лучше адаптируется под новые атаки, чем если бы её обучали дополнительно. На скриншоте ниже — зависимость эффективности работы нейросетей по метрике AUC (сравниваются результаты разных алгоритмов детекции на 4 тестовых датасетах).
Если зафризить и не обучать основную часть сети, а обновлять её последнюю часть, она будет лучше выявлять новые фальшивки, так как не переобучается под артефакты старых видов атак.
Еще один хороший способ детекции дипфейков — обнаружение артефактов на разных кадрах одного и того же видео. Этот метод неплохо работает, поскольку ролики с поддельными лицами в основном генерируются по кадрам. Если артефакты то появляются, то исчезают, нейросеть это заметит и проанализирует.
Теперь про ситуацию, когда кто-то генерирует лицо и накладывает его на голову с видео, размыв края, чтобы скрыть изменения. В этом случае дипфейки отлавливают как раз через поиск краёв добавленного изображения.
В предыдущих способах мы сравнивали фейки с реальными данными, то тут нам придётся синтезировать «ненастоящие» данные и обучить сеть на них. Таким способом можно предсказывать места с изменениями на картинке.
Тут уже есть моменты Adversarial attack. Мы добавляем на изображение лица шум, и при создании дипфейка из-за этого выделяются элементы с искажённым цветом. Например, после замены лица мошенник получит синее изображение, на котором сложно разглядеть человека. Тут уже никого не обманешь!
Метод защиты предполагает использование нейросетей, которые и добавляют шумы в изображения. Берем на входе оригинальное изображение, «шумим» его, пропускаем через специальный алгоритм. Можно даже применять варианты шумов для разных типов атак. Они добавляются на разные части изображения, чтобы не мешать защите.
Для человека картинка выглядит совершенно нормальной, а машина использовать такой снимок не сможет:
![67142e039b4139d7ac4a2b1a072fa894.jpg](https://habrastorage.org/r/w1560/getpro/habr/upload_files/671/42e/039/67142e039b4139d7ac4a2b1a072fa894.jpg)
Что такое дипфейки и какими они бывают?
И термин, и его реализация впервые появились на Reddit в 2017 году: один из пользователей тогда сделал несколько фейковых видео со знаменитостями.Слово «дипфейк» происходит от двух терминов: deep learning, глубокий метод машинного обучения на нейросетях, и fake — подделка. Изначально термин относили только к замене лица человека. Постепенно это понятие расширилось и на другие категории, включая аудио, видео, текст и так далее.
Дипфейки отличаются от других подделок. Если мошенник попытается оплатить покупку, подняв перед камерой платёжного терминала изображение своей жертвы, это не дипфейк. Методы защиты от цифровых и физических подделок тоже отличаются.
В чем разница? Liveness — технология, которая помогает системе отличить живого человека. Она определяет физическую (не цифровую!) маску, даже если она из силикона или латекса, фото, запись голоса или видео.
Алгоритм работает в связке с системой распознавания лиц, но главное отличие в том, что он отвечает не на вопрос «Тот ли это человек?», а на вопрос «Живой ли это человек?».
![92d33b7668fbe6aef8fc35261c6aaef0.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/92d/33b/766/92d33b7668fbe6aef8fc35261c6aaef0.png)
Liveness — это очень интересная и обширная тема. О ней мы поговорим в другой раз.
Сейчас давайте погрузимся в мир дипфейков и посмотрим на их самые распространенные типы:
- перенос лица;
- перенос выражения лица;
- кастомизация атрибутов. Добавление очков, затемнение или осветление кожи, изменение прически и так далее;
- генерация лица с нуля. Создание несуществующих в реальности людей;
- синхронизация губ в ходе разговора.
- рекламная интеграция;
- цифровые аватары;
- дубляж фильмов;
- виртуальная примерочная (макияж, укладка волос и т.п.);
- анонимизация аватара на видео во время конференции;
- цифровые актеры — эта технология становится всё более популярной в Голливуде.
- компрометирующий контент;
- манипуляция общественным мнением;
- реалистичные боты для соцсетей, которые используются для обмана пользователей;
- обход системы аутентификации.
![3d17691af3d1220bd30cbe9056b765a5.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/3d1/769/1af/3d17691af3d1220bd30cbe9056b765a5.png)
Алгоритмы генерации разделяются на два типа:
- Auto-Encoder. Получается очень хорошее качество, но для обучения нейросети нужна база видео.
- ID-Injection. Здесь сохраняются черты оригинального лица. К ним добавляют лицо другого человека и получается нечто среднее между двумя людьми. Вот как это выглядит:
![657a004e3c55fc01b15e4b79d80bb047.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/657/a00/4e3/657a004e3c55fc01b15e4b79d80bb047.png)
В реальности типов генерации ещё больше. Я описал два, чтобы показать: защитившись от одних алгоритмов, у нас нет гарантии, что мы защитимся и от других.
Защита от подделки
Дипфейков огромное количество — как примитивных, так и с трудом поддающихся детекции. Современный человек, находящийся в плотном информационном потоке, частенько даже не успевает задуматься, дипфейк перед ними или нет.При обнаружении фальшивок есть и другие проблемы. По своему опыту я делю их на четыре основные категории:
- очень много трудностей из-за сжатия данных, включая JPEG, H254. Детекторы дипфейков ориентируются на низкоуровневые артефакты, а сжатие часть из них убирает;
- появляются новые виды атак и плохая переносимость детектора дипфейков на новые алгоритмы генерации. Если его не обучали на алгоритме, использовавшемся при создании лица, могут быть ошибки;
- не до конца устоявшиеся тестовые данные. У разных методов детекции нет «золотого стандарта» образцов для проверки данных и из-за этого сложно сравнить результаты разных алгоритмов детекции.;
- хорошей точностью могут похвастаться только модели, в которые встроено много нейросетей с большим количеством параметров. Они почти не ошибаются, но даже на видеокарте работают медленно. Это сильно затрудняет создание real-time дипфейк-детекторов
![0b8c23c6b1a7028b620d5bf7afc92df3.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/0b8/c23/c6b/0b8c23c6b1a7028b620d5bf7afc92df3.png)
Простое и рабочее решение. Но лучше взять классификатор, который «заточен» для работы с видео и под дипфейки.
![4ab197fc8a02625e42c3c197e6aac3c7.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/4ab/197/fc8/4ab197fc8a02625e42c3c197e6aac3c7.png)
Идея, например, в том, чтобы взять нейронку, обученную понимать, что произносит человек по движению его губ. Взяв за основу эту модель, можно установить реальность ролика, где хорошо видно говорящее лицо.
Что дает такое предобучение? В этом случае нейронка улавливает изменения и лучше адаптируется под новые атаки, чем если бы её обучали дополнительно. На скриншоте ниже — зависимость эффективности работы нейросетей по метрике AUC (сравниваются результаты разных алгоритмов детекции на 4 тестовых датасетах).
![7ec34de903a8d8b0fc5d01e11018771b.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/7ec/34d/e90/7ec34de903a8d8b0fc5d01e11018771b.png)
Если зафризить и не обучать основную часть сети, а обновлять её последнюю часть, она будет лучше выявлять новые фальшивки, так как не переобучается под артефакты старых видов атак.
Еще один хороший способ детекции дипфейков — обнаружение артефактов на разных кадрах одного и того же видео. Этот метод неплохо работает, поскольку ролики с поддельными лицами в основном генерируются по кадрам. Если артефакты то появляются, то исчезают, нейросеть это заметит и проанализирует.
![8effb9f501cf8274a2dbe4ef32d88508.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/8ef/fb9/f50/8effb9f501cf8274a2dbe4ef32d88508.png)
Теперь про ситуацию, когда кто-то генерирует лицо и накладывает его на голову с видео, размыв края, чтобы скрыть изменения. В этом случае дипфейки отлавливают как раз через поиск краёв добавленного изображения.
![8105a49de1e801a5a82efc13648f350f.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/810/5a4/9de/8105a49de1e801a5a82efc13648f350f.png)
В предыдущих способах мы сравнивали фейки с реальными данными, то тут нам придётся синтезировать «ненастоящие» данные и обучить сеть на них. Таким способом можно предсказывать места с изменениями на картинке.
Как защитить ваши изображения
Да, фотографии и правда можно защитить, чтобы мошенники не смогли сделать на их основе фальшивку.![67d2ed9a925a15c3db47708beb1828ea.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/67d/2ed/9a9/67d2ed9a925a15c3db47708beb1828ea.png)
Тут уже есть моменты Adversarial attack. Мы добавляем на изображение лица шум, и при создании дипфейка из-за этого выделяются элементы с искажённым цветом. Например, после замены лица мошенник получит синее изображение, на котором сложно разглядеть человека. Тут уже никого не обманешь!
![2cabf7e2be3e3e4047b4ecc89f71ffa1.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/2ca/bf7/e2b/2cabf7e2be3e3e4047b4ecc89f71ffa1.png)
Метод защиты предполагает использование нейросетей, которые и добавляют шумы в изображения. Берем на входе оригинальное изображение, «шумим» его, пропускаем через специальный алгоритм. Можно даже применять варианты шумов для разных типов атак. Они добавляются на разные части изображения, чтобы не мешать защите.
Для человека картинка выглядит совершенно нормальной, а машина использовать такой снимок не сможет:
![d5d1a96fc8929b80a5302decc9ea7fd9.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/d5d/1a9/6fc/d5d1a96fc8929b80a5302decc9ea7fd9.png)
Заключение
Совершенствуются как способы создания дипфейков — появляются всё более комплексные технологии, так и методы защиты. На все 100% не эффективен ни один из методов, так что нужно понимать: дипфейков будет становиться ещё больше.
Для просмотра ссылки необходимо нажать
Вход или Регистрация