- BrainTools - https://www.braintools.ru -
Удалённая идентификация по видеосвязи – привычный для бизнеса сценарий: клиент подключается к оператору, подтверждает личность и получает доступ к операциям.
Но современные дипфейки уже достаточно убедительны и «проверка на глаз» перестаёт работать: оператору становится сложнее принять решение. А пользователю – пройти проверку, например, его попросят помахать рукой перед лицом, чтобы ошибки [1] в real-time подмене стали заметны.
Чтобы снизить риск мошенничества и убрать лишнюю нагрузку с участников процесса, мы обучили детектор, который в реальном времени подсказывает оператору: «перед вами, вероятно, дипфейк». Для обучения [2] такой модели нужен набор данных с примерами реальных и сгенерированных видео, максимально близких к условиям ВКС.

Мы собрали собственный датасет и использовали его для обучения детектора, ориентированного на работу в сценариях видеосвязи. В статье расскажем, откуда брали материалы, как организовали сбор и тегирование, как генерировали фейки и почему важно заранее продумывать систему тегов. Датасет открыт для сообщества, ссылки оставили в конце статьи.
Чтобы сгенерировать дипфейк, нужны две составляющие: видео-таргет (куда «вклеивается» лицо) и источник – фото с лицом, которое будет подставлено. Данные собирали наши асессоры.
Сценарий: аналогичный видеоконференцсвязи – в кадре один человек, фронтально к камере; без смен сцен; без объектов между камерой и головой; тестовые плашки и логотипы допускаются только если они не закрывают человека.
Качество и длительность: разрешение не ниже 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.
Мы продумали чёткую и понятную систему тегирования. Как нам казалось :) На практике задача быстро превратилась в исследование границ восприятия [3]: интерпретация тегов очень субъективна и спорные случаи приходилось постоянно согласовывать. Ниже – несколько характерных примеров.
Пол: когда контекст мешает определённости
Пример: Человек в женской одежде, но с мужским голосом или мужскими чертами лица – какой тег? По визуальным признакам или по предполагаемому физиологическому полу?
Решение: Используем визуальные признаки как основу, но фантазийные образы не используем в датасете (для сценария идентификации по видеосвязи они и не подходят). Если для асессора нет явной определённости по полу, то не используем фото/видео.
Освещение: градации между 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 [4]. Будем признательны за обратную связь.
Kaggle Dataset [5]
Автор: starikovplusplus
Источник [7]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/23518
URLs in this post:
[1] ошибки: http://www.braintools.ru/article/4192
[2] обучения: http://www.braintools.ru/article/5125
[3] восприятия: http://www.braintools.ru/article/7534
[4] Creative Commons BY-SA: https://creativecommons.org/licenses/by-sa/4.0/
[5] Kaggle Dataset: https://www.kaggle.com/datasets/stplusplus/rtfs-10k
[6] Hugging Face Dataset: https://huggingface.co/datasets/kontur-ai/rtfs-10k
[7] Источник: https://habr.com/ru/companies/skbkontur/articles/977798/?utm_source=habrahabr&utm_medium=rss&utm_campaign=977798
Нажмите здесь для печати.