Функционирует при финансовой поддержке Федерального агентства по печати и массовым коммуникациям (Роспечать)

Черный квадрат на лице предложили заменить «дипфейками»

Håkon Hukkelås et al. / ISVC 2019

Норвежские разработчики предложили использовать технологию замены лиц, известную также как «дипфейки», для сохранения приватности пользователей при обработке изображений. Они создали нейросеть, качественно заменяющую настоящие лица на другие, что позволяет сохранить распределение данных на изображении — обычно для этих целей лицо размывают или закрывают черным прямоугольником. Кроме того, генеративная нейросеть, отвечающая за синтез области с лицом, не получает исходного лица, что позволяет обходить европейский Общий регламент по защите данных (GDPR), отмечают авторы статьи, опубликованной на arXiv.org и представленной на конференции ISVC 2019. Исходный код и документация опубликованы на GitHub.

Уже несколько лет назад существовали алгоритмы, способные проводить реалистичные манипуляции с видеозаписями лиц. Например, в 2016 году немецкие и американские исследователи создали алгоритм, способный качественно переводить мимику одного человека на видео с другим. Однако наибольшую популярность они обрели сравнительно недавно, когда в декабре 2017 года пользователь Reddit под ником deepfakes опубликовал порнографические ролики, в которых лица оригинальных актрис были заменены на лица Галь Гадот, Скарлетт Йохансен и других знаменитостей.

Вскоре проблема таких роликов со знаменитостями и политиками стала набирать обороты и многие технологические компании стали бороться с технологией подмены лиц. Например, Reddit, Twitter и другие популярные сервисы запретили размещать «дипфейки» на своих сайтах, а Facebook и Microsoft объявили конкурс по разработке алгоритмов для распознавания таких роликов.

Разработчики под руководством Франка Линдсета (Frank Lindseth) из Норвежского университета естественных наук и технологий показали, что подмену лиц можно использовать и во благо, создавая анонимизированные видео и фотографии для последующего анализа. Разработчики использовали связку из нескольких популярных в области обработки изображений алгоритмов. Сначала исходный снимок с человеком или несколькими людьми подается на нейросеть S3FD, размечающую на снимке прямоугольные области с лицами. Затем нейросеть Mask R-CNN размечает для обнаруженных лиц ключевые точки: глаза, уши, плечи и нос.

Вычисление параметров лица необходимо для того, чтобы наложенное лицо имело реалистичное положение относительно тела, повторяющее оригинал. После того, как Mask R-CNN рассчитала ключевые точки, эти параметры кодируются в небольшое изображение. Затем области с лицами на исходном кадре закрашиваются серым цветом, а потом пиксели в нем меняют на случайные цвета. После этого такое анонимизированное изображение, не позволяющее однозначно идентифицировать человека, подается на генератор нейросети U-Net. В процессе работы нейросети на одном из слоев к основному изображению добавляется изображение, созданное из ключевых точек лица, что позволяет алгоритму точно и реалистично разместить новое лицо в кадре.

Разработчики создали собственный датасет на основе датасета различных снимков YFCC-100M. В новый датасет входят 1,47 миллиона снимков, содержащий лица людей, причем они сняты в обычных условиях и расположены под разными углами к камере, а иногда и частично закрыты другими объектами. Каждое лицо в датасете выделено прямоугольной обводкой, а также на нем выделены ключевые точки. Авторы обучали нейросетевую модель на 40 миллионах снимков, полученных на основе датасета, в течение 17 дней.

В последнее время технологии замены лиц становятся гораздо доступнее обычному человеку и уже не требуют самостоятельно обучать нейросетевую модель и устанавливать ее на компьютере. Например, в прошлом году пользователь Reddit запустил сайт, позволяющий создавать «дипфейки» прямо в браузере, а в начале сентября 2019 года в Китайском App Store опубликовали приложение Zao, позволяющее быстро создавать подобные ролики на смартфоне.

Григорий Копиев

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.