Удалённая идентификация по видеосвязи — привычный для бизнеса сценарий: клиент подключается к оператору, подтверждает личность и получает доступ к операциям.
Но современные дипфейки уже достаточно убедительны и «проверка на глаз» перестаёт работать: оператору становится сложнее принять решение. А пользователю — пройти проверку, например, его попросят помахать рукой перед лицом, чтобы ошибки в real-time подмене стали заметны.
Чтобы снизить риск мошенничества и убрать лишнюю нагрузку с участников процесса, мы обучили детектор, который в реальном времени подсказывает оператору: «перед вами, вероятно, дипфейк». Для обучения такой модели нужен набор данных с примерами реальных и сгенерированных видео, максимально близких к условиям ВКС.

Мы собрали собственный датасет и использовали его для обучения детектора, ориентированного на работу в сценариях видеосвязи. В статье расскажем, откуда брали материалы, как организовали сбор и тегирование, как генерировали фейки и почему важно заранее продумывать систему тегов. Датасет открыт для сообщества, ссылки оставили в конце статьи.
Как мы собирали данные
Чтобы сгенерировать дипфейк, нужны две составляющие: видео-таргет (куда «вклеивается» лицо) и источник — фото с лицом, которое будет подставлено. Данные собирали наши асессоры.
Видео
Сценарий: аналогичный видеоконференцсвязи — в кадре один человек, фронтально к камере; без смен сцен; без объектов между камерой и головой; тестовые плашки и логотипы допускаются только если они не закрывают человека.
Качество и длительность: разрешение не ниже 720p; фрагменты длиной 10–30 секунд (из одного ролика допускалось брать несколько, если в них разные люди).
Повороты головы: вправо/влево в пределах ~±30°, вверх/вниз ~±20°; голова целиком в кадре на всём протяжении фрагмента.
Лицензия: обязательно Creative Commons Attribution; на YouTube в поиске есть удобный фильтр «Особенности → Creative Commons».
Для качественной генерации нам было важно, чтобы голова человека была постоянно в кадре и без существенных поворотов, иначе качество дипфейка его легко выдаст. Но, как оказалось, не так-то просто найти подходящие видео — люди не сидят неподвижно, они постоянно двигаются и меняют положение.
Отзывы наших асессоров:


Асессоры выбрали 2500 видео. Часть из них мы отсекли из-за несоответствия требованиям или подозрений, что видео может кого-то оскорбить. Еще 24% не удалось скачать из-за ошибок на этапе автоматической выгрузки.
В результате у нас получилось 1636 релевантных видео.
Лайфхак: Для выгрузки фрагментов видео с YouTube мы применяли yt-dlp, в нём можно задать секунды старта/окончания фрагмента. Но автоматическая загрузка с YouTube не идеальна: часть роликов недоступна/обрывается.
Фото
Сценарий: цветное фото одного человека, лицом к камере; взгляд в камеру или с небольшим отклонением. В кадре — только этот человек, нет посторонних объектов между камерой и головой.
Требования к изображению: лицо занимает не менее 30% кадра; отсутствуют аксессуары, закрывающие лицо (например, очки); желательно минимальное количество постобработки.
Лицензия: Creative Commons с возможностью использования и модификации. Для поиска использовали Flickr (фильтр «Commercial use & mods allowed») и Pexels, где подходящая лицензия установлена по умолчанию.
Всего асессоры собрали 2000 фото.
Теги – фундамент управляемости датасета
Теги назначались и для видео, и для фото – это критично для генерации дипфейков (женское лицо на мужском теле легко определить как дипфейк), и важно для конечной цели дообучения модели определения дипфейков на этом датасете.
Теги для видео (всегда): пол (man/woman), освещение (dark/average/bright), локация (indoor/outdoor).
Теги при наличии: hat/headphones/glasses, beard/mustache/piercing, gesticulation (активная жестикуляция), head rotation, child, chair/armchair/sofa.Теги для фото (всегда): пол, освещение, локация.
Теги при наличии: hat/headphones, beard/mustache/piercing, child.
Мы продумали чёткую и понятную систему тегирования. Как нам казалось :) На практике задача быстро превратилась в исследование границ восприятия: интерпретация тегов очень субъективна и спорные случаи приходилось постоянно согласовывать. Ниже — несколько характерных примеров.
Пол: когда контекст мешает определённости
Пример: Человек в женской одежде, но с мужским голосом или мужскими чертами лица — какой тег? По визуальным признакам или по предполагаемому физиологическому полу?
Решение: Используем визуальные признаки как основу, но фантазийные образы не используем в датасете (для сценария идентификации по видеосвязи они и не подходят). Если для асессора нет явной определённости по полу, то не используем фото/видео.-
Освещение: градации между dark/average/bright
Примеры: Человек в интерьере помещения с окнами, но в пасмурный день. Это dark или average? Объект на улицах ночного города с яркой подсветкой — dark (по времени) или bright (по уровню света)?Решение: Уровень освещения договорились определять по видимости деталей лица и окружающих объектов, а не по окружению.
Сделали коллекцию примеров‑эталонов. Аксессуары: функция или форма?
Примеры: Наушники на шее — это headphones или уже нет? Большой ободок на голове — это headphones? Чёлка — это hat?
Решение: Тег hat и headphones применяем только если аксессуары непосредственно на голове человека, закрывают часть лица (чёлка), или изменяют форму головы (наушники, ободок и тд).-
Особенности лица: минимальные пороги
Примеры: Редкая щетина — это beard? Колечко в брови, но не в носу — считать ли piercing?
Решение: Установили пороги видимости: например, beard — если волосы покрывают более 50% подбородка; piercing — если украшение явно видно в области лица. Child: возраст и контекст
Пример: Подросток 12 лет — child или adult?
Решение: child — человек младше 12 лет, визуально узнаваемый как ребёнок.
Дополнительные плюсы комьюнити YouTube от нашей работы:

Как мы генерировали дипфейки
Модели для генерации дипфейков. Наша задача — распознавать ситуации, когда человек во время онлайн видеосвязи пытается выдавать себя за другого. Поэтому и для генерации нам нужны были генераторы, способные работать в реальном времени.
Также есть важная особенность: каждая модель генерации оставляет свои характерные артефакты, которые могут быть незаметны человеку. Но детектор, обученный на одном типе фейков, обычно лучше ловит именно их и заметно хуже — фейки, созданные моделями, чьих примеров работ он не видел. Поэтому мы сначала составили список из четырех кандидатов (inswapper, uniface, mobilefaceswap, simswap) которые могут генерировать дипфейки «на лету» и из них выбрали две модели для генерации датасета.
Комбинирование. Для каждого видео случайно выбиралась подходящая по полу фотография. Ещё нам пришлось для целевых видео мужчин с бородой ограничить источники только с бородой, потому что борода часто «пробивается» через генерацию.
Описание датасета
В датасете три ключевых части: исходные видео, исходные фотографии и набор сгенерированных дипфейк-роликов, метаданные к ним лежат в CSV-файлах.
Исходные видео. После отбора и очистки в датасет вошли 1636 коротких клипов из YouTube-роликов. Метаданные в файле full_csv_videos.csv: одна строка — один клип. В нём хранятся:
идентификатор видео на YouTube,
время начала и конца клипа в секундах,
имя файла,
размер видео,
строка с тегами, разделёнными точкой с запятой,
ссылка на оригинал на YouTube (для соблюдения лицензии).
Теги описывают то, как выглядит сцена и человек в кадре: освещение (average, dark, bright), место съёмки (в помещении или на улице), есть ли активные повороты головы или жестикуляция, присутствуют ли наушники или головные уборы, а также какой тип кресла виден в кадре.
Исходные фотографии. В фотоколлекции 2000 изображений. Метаданные в файле full_csv_photos.csv. В нём для каждой фотографии указаны:
имя файла,
строка с тегами,
ссылка на источник.
Набор тегов пересекается с видеочастью, кроме тегов движения — жестикуляции и поворотов головы.
Сгенерированные видео. Третья часть датасета — результаты дипфейк-генерации с помощью генераторов inswapper (4875 видео) и uniface (4897 видео). Метаданные в файле generations_info.csv описывают связку «исходное фото → целевое видео»:
какое исходное видео использовано как таргет,
какое фото подставлено,
имя итогового файла,
название генератора, которым сделан дипфейк,
отметка об использовании faceenhancer.
Подводные камни и уроки
Сбор данных с YouTube. Фильтр лицензии Creative Commons на этапе поиска — очень удобно; Есть утилита для автоматического скачивания yt-dlp, но при потоковой выгрузке часть роликов не скачивается – закладывайте ретраи и запас источников.
Теги. Согласованные пороги и эталонные примеры резко уменьшают разброс интерпретаций. Но реальность всё равно окажется сложнее и придётся уточнять сложные вопросы по ходу.
Заключение
Наш датасет подходит для обучения и валидации детекторов реал-тайм генерации дипфейков, а также может быть полезен разметкой фото и видео по тегам.
Все данные выложили в открытый доступ, ссылки ниже. Датасет распространяется лицензией Creative Commons BY-SA. Будем признательны за обратную связь.
MxMaks
Так доучат на вашем датасете генератор, чтобы не снова не определялось.
starikovplusplus Автор
Добрый день!
Модели для генерации дипфейков учатся несколько иначе. Наши данные не помогут доучить генератор так, чтобы он перестал определяться детектором.