RealTime FaceSwap-10k — датасет для задачи детекции real-time дипфейков. computer vision.. computer vision. IT-компании.. computer vision. IT-компании. machine learning.. computer vision. IT-компании. machine learning. Блог компании Контур.. computer vision. IT-компании. machine learning. Блог компании Контур. видео.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет. дипфейк.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет. дипфейк. ИИ.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет. дипфейк. ИИ. искусственный интеллект.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет. дипфейк. ИИ. искусственный интеллект. Машинное обучение.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет. дипфейк. ИИ. искусственный интеллект. Машинное обучение. Обработка изображений.. computer vision. IT-компании. machine learning. Блог компании Контур. видео. датасет. дипфейк. ИИ. искусственный интеллект. Машинное обучение. Обработка изображений. сезон ии в разработке.

Удалённая идентификация по видеосвязи – привычный для бизнеса сценарий: клиент подключается к оператору, подтверждает личность и получает доступ к операциям. 

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

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

RealTime FaceSwap-10k — датасет для задачи детекции real-time дипфейков - 1

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

Как мы собирали данные

Чтобы сгенерировать дипфейк, нужны две составляющие: видео-таргет (куда «вклеивается» лицо) и источник – фото с лицом, которое будет подставлено. Данные собирали наши асессоры.

Видео

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

  • Качество и длительность: разрешение не ниже 720p; фрагменты длиной 10–30 секунд (из одного ролика допускалось брать несколько, если в них разные люди).

  • Повороты головы: вправо/влево в пределах ~±30°, вверх/вниз ~±20°; голова целиком в кадре на всём протяжении фрагмента.

  • Лицензия: обязательно Creative Commons Attribution; на YouTube в поиске есть удобный фильтр «Особенности → Creative Commons».

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

Отзывы наших асессоров:

RealTime FaceSwap-10k — датасет для задачи детекции real-time дипфейков - 2
RealTime FaceSwap-10k — датасет для задачи детекции real-time дипфейков - 3

Асессоры выбрали 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 от нашей работы:

RealTime FaceSwap-10k — датасет для задачи детекции real-time дипфейков - 4

Как мы генерировали дипфейки

Модели для генерации дипфейков. Наша задача – распознавать ситуации, когда человек во время онлайн видеосвязи  пытается выдавать себя за другого. Поэтому и для генерации нам нужны были генераторы, способные работать в реальном времени.

Также есть важная особенность: каждая модель генерации оставляет свои характерные артефакты, которые могут быть незаметны человеку. Но детектор, обученный на одном типе фейков, обычно лучше ловит именно их и заметно хуже – фейки, созданные моделями, чьих примеров работ он не видел. Поэтому мы сначала составили список из четырех кандидатов (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. Будем признательны за обратную связь.

Ссылки

Автор: starikovplusplus

Источник