Суть проекта в том, чтобы определять использование deepfake в загруженном пользователем видео
Данный сервис может быть использован для анализа видеозаписей в социальных сетях, чтобы предотвратить введение пользователей в заблуждение путем уведомления о наличии deepfake в видео
- Время обработки видео должно составлять не более чем половину его длительности
- Объединение с видеохостингом (н-р: vk видео), внедрение сервиса в экосистему видеохостинга
- Реализация сервиса по подписке для некрупных СМИ, т. к. в скором времени дипфейки будут регулироваться законом Источник 1 Источник 2
- Среднее время проведенное на странице сервиса
- Конверсия из первого использования во второе использование
- Количество использований сервиса за сутки
- Recall, Accuracy, Precision, LogLoss
- Формат: директория с файлами формата .mp4 и файлом metadata.json, следующего вида:
{"filename1.mp4": {"label": "FAKE/REAL"} ... "filenameN.mp4": {"label": "FAKE/REAL"}}
- Необходимый объем: 1300 видеозаписей длительностью от 5 до 15 секунд
- Найдите 650 видеозаписей, на которых различимы лица людей
- Сгенерируйте, используя данные видеозаписи, 650 дипфейк видеозаписей
- Создайте файл metadata.json в соответствие с требованиями
- Разместите все видеозаписи и файл matedata.json в единой директории
1300 * (1 / 12) * (23500 / 168) = 15154 рубля
- 1300 - количество видеозаписей
- 1 / 12 - 5 минут на обработку одной видеозаписи
- 23500 - МРОТ в СПб
- 168 - количество рабочих часов в месяц при 8-часовом рабочем дне
Инициализирована начальная версия (0.1) датасета при помощи ClearML
Тестовая выборка
Тренировочная выборка, содержащая также отдельно кропы, ключевые точки на лицах и ssim diff masks
В проекте используются две модели:
-
MTCNN для обнаружения лиц - выбран, т. к. есть простая в использовании реализация на PyTorch
-
Efficient Net для классификации deepfake лиц
Эксперименты залогированы при помощи ClearML И воспроизводимы
Сравнение с предобученной моделью
Не пришлось подбирать гиперпараметры, с первой попытки удалось получить хорошие метрики на тестовой выборке
- Accuracy
- Fake Recall
Данные метрики выбраны, т. к. они хорошо интерпретируемые и понятные
Разработан сервис с импользованием Streamlit и FastAPI
Окружение зафиксировано с помощью Dockerfile и docker-compose файлов
cd src
- для подключения к s3 положить в директории
client
иserver
файл .env следующего видаSERVICE_ACCOUNT_KEY_ID={ваше значение} SERVICE_ACCOUNT_SECRET={ваше значение}
- в директорию
server/model/weights
положить веса модели docker compose up -d
- сервис доступен по адресу
http://localhost:8501/