Rychagov S. AI Кейсы
Face Swap & Deepfake

Face Swap & Deepfake

Замена лиц на видео и с камеры

Где применяется

В своей практике я разработал систему замены лиц (face swap) в реальном времени для развлекательных и интерактивных целей. Система работает как локально на устройстве пользователя, так и на сервере, обрабатывая видеопоток с камеры и заменяя лицо пользователя на другое (лицо знаменитости, вымышленного персонажа, или другого человека). На мероприятиях компании я использовал это как интерактивную развлекательную инсталляцию, где участники могут мгновенно увидеть себя с лицом известных личностей, создав запоминающийся и viral-worthy опыт.

Кому пригодится

Это решение я рекомендую компаниям, проводящим мероприятия, конференции и корпоративные праздники, которые хотят создать интерактивное развлечение для участников. Медиа-компаниям и блогерам для создания контента и развлекательных видео. Компаниям, работающим с видеоконференциями, которые хотят добавить fun элемент (например, встречаться в видеоконференции с изменённым лицом как шутка). Барам, клубам и других местам развлечения для интерактивных фотостоек. Маркетинговым агентствам для создания вирального контента. Образовательным учреждениям для демонстрации возможностей AI технологий.

Технологии

InsightFace как основа для детекции и трансформации лиц

Я использую InsightFace как основной компонент для обнаружения лиц на видео и извлечения их характеристик. Система обнаруживает лицо пользователя в каждом кадре видео, выравнивает его (face alignment) для стандартизации позиции и ориентации, и извлекает детальные ориентиры лица (facial landmarks — позиции глаз, носа, рта и т.д.). На основе этих ориентиров система может трансформировать лицо и подготовить его для замены.

Модели face swap

Для самой замены лиц я использую специализированные модели face swap: DeepFaceLive (основана на autoencoder архитектуре) или SimSwap (более продвинутая архитектура с лучшей сохранностью идентичности целевого лица). Эти модели обучены на огромных датасетах лиц и способны реалистично заменять лицо, сохраняя при этом выражение лица, направление взгляда и движения исходного видео.

Процесс: система извлекает лицо пользователя из видео → находит целевое лицо (знаменитость) → использует модель face swap чтобы заменить лицо пользователя на целевое, сохраняя мимику и движения → синтезирует результат и накладывает на видео.

Обработка видеопотока в реальном времени

Для работы в режиме live я обрабатываю видеопоток с камеры асинхронно: каждый кадр захватывается через OpenCV, обрабатывается (детекция лица, swap), и отправляется обратно на экран. На GPU (NVIDIA CUDA) система способна обрабатывать 20-30 fps (кадров в секунду) в Full HD, что создаёт впечатление live трансляции без видимых задержек.

На практике: пользователь видит себя на экране с другим лицом с задержкой всего 100-200ms, что достаточно для интерактивного опыта.

Локальное развёртывание без облака

Все вычисления выполняются локально на ноутбуке или сервере мероприятия, без отправки видео в облако. Это критично для: конфиденциальности (видео не попадает на внешние серверы), скорости (нет задержек сетевого взаимодействия), надёжности (система работает даже без интернета). На ноутбуке с RTX 3070 я могу обрабатывать несколько потоков одновременно, что позволяет одновременно работать с несколькими участниками мероприятия.

Управление базой целевых лиц

Система работает с галереей целевых лиц (знаменитостей, персонажей и т.д.). Для каждого целевого лица система предварительно извлекает и сохраняет его характеристики (embeddings) для ускорения обработки. Пользователь на мероприятии может выбрать, какое лицо ему нравится ("Лицо Тома Круза", "Лицо Мэрилин Монро", "Лицо Илона Маска"), и видит себя в реальном времени с этим лицом.

Обработка выражений лица и мимики

Система сохраняет мимику исходного лица: если пользователь улыбается, целевое лицо тоже улыбается; если моргает, целевое лицо тоже моргает. Это делает результат намного более реалистичным, чем простая замена лица. На практике: пользователь может улыбаться, моргать, двигать головой, и все эти движения сохраняются в целевом лице, создавая впечатление, что это действительно лицо знаменитости с его мимикой.

Сглаживание и постобработка

После face swap видео проходит постобработку: сглаживание краёв (blending) между заменённым лицом и исходным телом, коррекция освещения для совпадения с фоном, удаление артефактов. Я использую OpenCV и специализированные фильтры для создания гладкого перехода между лицом и телом, чтобы результат выглядел естественно.

Захват видео и экспорт

На мероприятиях я добавил функцию записи видео: пользователь может записать 10-15 секунд видео со своей заменённым лицом, и система сохраняет видео или изображение. Участники могут потом скачать видео, поделиться в социальных сетях, что создаёт вирусный контент для компании. Я использую FFmpeg для кодирования и сжатия видео, что позволяет быстро создавать файлы готовые к загрузке.

Интеграция с видеоконференциями

Для видеоконференций (Zoom, Teams, Google Meet) я создал виртуальную камеру (virtual camera plugin) которая работает как промежуточный слой между реальной камерой и приложением видеоконференции. Пользователь запускает мой плагин, выбирает целевое лицо, и затем участники видеоконференции видят его с заменённым лицом. На практике: это создаёт забавную атмосферу на встречах и позволяет людям встречаться анонимно или в шутку.

Веб-интерфейс для управления

Я создал веб-приложение (Vue.js + FastAPI) для управления системой: загрузка целевых лиц, выбор параметров обработки (интенсивность swap, уровень сглаживания), управление записью видео. Интерфейс интуитивен и не требует технических знаний — участники мероприятия сразу могут начать использовать систему.

GPU CUDA ускорение

Все вычисления используют NVIDIA GPU с CUDA: детекция лиц, извлечение ориентиров, face swap, постобработка. На CPU система была бы слишком медленной (несколько секунд на кадр). На GPU (CUDA) обработка одного кадра Full HD занимает 30-50ms, что позволяет достичь 20-30 fps в реальном времени.

На мероприятии с 4000 участников я использовал машину с RTX 5090, которая позволяла одновременно обслуживать 5-6 участников с live face swap без очередей.

Масштабирование для массовых мероприятий

На больших мероприятиях система должна обслуживать множество пользователей. Я организовал это через: несколько независимых инстансов приложения на разных машинах, балансировка нагрузки (распределение участников по доступным машинам), кэширование результатов (если несколько пользователей хотят одно целевое лицо, результаты могут быть переиспользованы).

Демонстрационная фотостойка на мероприятии

На корпоративном мероприятии я развернул интерактивную инсталляцию: экран с живым видео (лицо участника с face swap), рядом стояли знаменитости в жизнь, участник мог встать рядом с "собой" (в виде знаменитости) и сфотографироваться. Получившиеся фото и видео автоматически выгружались в социальные сети компании, создавая органический viral контент. Участники активно делились результатами, что дало компании огромный охват в социальных сетях.

Этичные и правовые аспекты

Система разработана с явной целью развлечения. Я всегда убеждаюсь, что: система используется только на самом мероприятии в контролируемых условиях, участники знают, что это развлечение (не попытка обмана), видео/изображения сохраняются только с согласия участников, система не используется для создания нелегального контента или обмана третьих лиц.

Технически система может создавать deepfakes, что может быть незаконно в некоторых юрисдикциях. Я всегда консультируюсь с юридическим отделом компании перед развёртыванием на мероприятии.

Важные организационные моменты

Первое — согласие и информирование участников. Перед использованием face swap система должна получить согласие пользователя. Я использую яркий баннер "ЭТО РАЗВЛЕЧЕНИЕ, НЕ РЕАЛЬНО", и участник должен явно согласиться перед тем как видео будет обработано или сохранено.

Второе — выбор целевых лиц. Я всегда выбираю публичные лица знаменитостей, у которых есть явное согласие на использование их изображения (или это уже публичные персоны). Никогда не использую лица приватных людей без их согласия.

Третье — качество GPU и пропускная способность. На мероприятии с большим количеством участников нужна мощная GPU (RTX 3090+ или RTX 5090). Я рекомендую заранее провести load-тестирование, чтобы убедиться, что система справляется с ожидаемым количеством пользователей.

Четвёртое — backup и резервные лица. Если целевое лицо по какой-то причине недоступно или модель даёт плохой результат, система должна иметь fallback. Я всегда готовлю несколько резервных лиц, чтобы участник мог выбрать альтернативу.

Пятое — обработка фото и видео после мероприятия. После получения видео/фото участник обычно хочет его скачать. Я создал простой портал, где участник может скачать свой контент, поделиться в социальных сетях или отправить друзьям.

Шестое — мониторинг и техподдержка на месте. На мероприятии должна быть техподдержка, которая может помочь участникам в случае проблем (камера не работает, система зависла, низкое качество видео). Я всегда готовлю документацию для технического персонала с инструкциями по устранению неполадок.