Разработка
Как улучшить графику в FIFA 18 при помощи глубокого обучения
Создание реалистичных лиц при помощи нашумевшего алгоритма deepfakes.
Игровые студии тратят миллионы долларов и тысячи часов на создание графики, максимально приближенной к реальности. Хотя за последние годы она и стала намного реалистичнее, её по-прежнему легко отличить от настоящей съемки. Однако обработка изображений значительно продвинулась вперед благодаря сетям глубокого обучения. Можем ли мы применять эту технологию для улучшения графики и сокращения требуемых на её создание усилий?
Проверим это на FIFA 18
Футбол — это мой любимый спорт, поэтому я выбрал FIFA для экспериментов с глубоким обучением. Чтобы понять, помогут ли недавние улучшения в глубоком обучении ответить на мой вопрос, я попытался улучшить лица игроков, используя нашумевший алгоритм deepfakes. Это сеть глубокого обучения, которая может создавать очень реалистичные лица людей. В этом проекте я хочу воссоздать лица игроков в игре и улучшить их, чтобы они выглядели, как настоящие.
Примечание: вот отличное объяснение того, как работает алгоритм.
Сбор данных для обучения
Начнем с одного из наиболее качественно созданного игрока в FIFA 18 — Криштиану Роналду. Чтобы получить данные для алгоритма, я просто записал видео с моментом из игры. Теперь мы хотим заменить это лицо настоящим лицом Роналду. Для этого я скачал несколько изображений, которые показывают его лицо с разных углов. Это все, что нужно для обучения модели.
Архитектура и обучение модели
Алгоритм deepfakes включает обучение сетей глубокого обучения под названием автокодировщики. Эти сети используются для самообучения, и в них есть шифратор, который может зашифровать входные данные в компактном виде, и дешифратор, который может восстанавливать оригинальные данные. Благодаря этой архитектуре сеть может не просто копировать входные данные, а учиться на принципе их распределения. Для изображений в качестве шифратора мы используем сверточную сеть, а в качестве дешифратора — разверточную сеть. Эта архитектура нужна, чтобы минимизировать ошибку реконструирования для самообучения.
В нашем случае мы обучаем две сети одновременно. Одна сеть учится воссоздавать лицо Роналду на основе графики FIFA 18. Другая сеть учится воссоздавать лицо на основе фотографий Роналду. В deepfakes обе сети пользуются одним шифратором, но обучаются на разных дешифраторах. Итак, у нас есть две сети, которые изучили, как Роналду выглядит в игре и в реальности.
При тренировке уже обученной модели на других лицах total loss снижается с 0,06 до 0,02 за четыре часа обучения на GTX 1070. Я проводил обучение на основе оригинальной модели CageNet, которая была обучена для генерирования лица Николаса Кейджа.
Использование модели для обмена лицами
Теперь веселая часть. Алгоритм может менять лица местами при помощи хитрого трюка. Мы загружаем во вторую сеть входные данные первой сети. Так шифратор получить зашифрованные данные от лица из игры, но дешифратор реконструирует настоящее лицо при помощи этих данных. Вуаля, сеть конвертировала лицо из FIFA в настоящее лицо Роналду.
Результаты
GIF ниже показывает результаты запуска этого алгоритма на лицах других игроков. Я думаю, что результат получился удивительным.
Больше результатов можно найти на моем YouTube-канале.
Можем ли мы использовать алгоритм, чтобы поместить себя в игру?
Что если вы сможете поиграть в режим “История” со своим лицом вместо Алекса Хантера? Вам нужно всего лишь загрузить минутное видео со своим лицом и скачать обученную модель. Теперь вы можете пройти историю с собой в качестве персонажа.
Сильные и слабые стороны
Самое большое преимущество этого подхода — это создание удивительно реалистичных лиц и графики, которую сложно отличить от реальности. Всего этого можно достичь за несколько часов обучения. Сравните это с годами, которые дизайнеры игр тратят на это сейчас. Это означает, что издатели могут выпускать игры гораздо быстрее, а студии могут сэкономить миллионы долларов, которые можно потратить на создание самой истории.
Но есть и ограничение — эти лица генерируются постфактум, как CGI в фильмах, а игра требует генерирования лиц в реальном времени. Но этот подход не требует человеческого вмешательства для генерирования результатов, как только модель обучена, и единственный сдерживающий фактор — это время, требуемое на создание изображения. Я думаю, что скоро у нас будут более легкие модели, которые будут работать быстро и качественно, потому что сейчас у нас уже есть YOLO и SSD MobileNets для обнаружения объектов в реальном времени, что было невозможно с более ранними моделями вроде RCNN.
-
Видео и подкасты для разработчиков1 месяц назад
Lua – идеальный встраиваемый язык
-
Новости1 месяц назад
Poolside, занимающийся ИИ-программированием, привлек $500 млн
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.40
-
Новости1 месяц назад
Видео и подкасты о мобильной разработке 2024.41