Connect with us

Разработка

Как улучшить графику в 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.

 

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Новости

Интересные материалы: 17.07

В нашей новой подборке визуальный калькулятор, проблемные A/B-тесты и сравнение гибридов.

AppTractor

Опубликовано

/

Автор:

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Медиа

Podlodka #68: Rust

Является ли Rust убийцей С++? Смогут ли мобильные разработчики писать на нём кроссплатформенные библиотеки? Что лучше – Rust или Go? Созрел ли Rust для того, чтобы использоваться в продакшене?

AppTractor

Опубликовано

/

Автор:

Podlodka

Podlodka за фундаментальный подход, и чтобы найти ответы на эти холиварные вопросы мы вместе с энтузиастом Rust Степаном Кольцовым основательно обсудили различные аспекты этого языка программирования. Историческая справка, ключевые фичи языка и его недостатки, особенности синтаксиса, экосистема Rust, возможности его применения во фронтеде и мобильной разработке — благодаря опыту гостя выпуск получился максимально емким и информативным.

Комментарии
Продолжить чтение

Разработка

Дневники разработчиков: Snek Fite — «змейка» с непрямым управлением

Привет, меня зовут Михаил, я разработчик и вообще не занимаюсь приложениями-играми. Snek Fite — это первый опыт (ну, вернее, первый удачный: проект находится в играбельном состоянии и количество игроков понемногу растет).

AppTractor

Опубликовано

/

Автор:

Итак, браузерная игра Snek Fite. С одной стороны, это действительно игра — по клетчатому полю движутся разноцветные змеи, пытаясь укусить друг друга за хвост. Кто стал самым длинным к концу последнего хода — того и тапочки.

Геймплей выглядит так:

С другой стороны, это симуляция программирования. Такая, где не нужно непосредственно писать код, но обучать свою змею придется — в игре нет прямого управления змейкой с клавиатуры, мышки или любого другого контроллера. Вместо этого — экран настроек, который вызывает умиление у любого человека, который пробовал делать свою игру в конструкторе со сценарным программированием (типа Scirra Construct 2, RPG Maker, да хоть Aurora Toolset).

Так выглядит экран настройки змеи. Девять полей, объекты, которые можно расставить по полю, логические операторы (must, must not и optional). Программирование для тех, кто не умеет писать код.

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

А вот такой сложный паттерн (занимает три поля) дает команду твоей змее преследовать чужой хвост, если тот находится на расстоянии максимум в две пустых клетки от головы твоей рептилии.

В общем, это далеко не развлекуха с мобилочки на вечер. По крайней мере, для большинства. Snek Fite — игра по-своему хардкорная, и затягивает избранных. Зато если затянула — то можно стать таким, как наш игрок с никнеймами Zerro/Undefined (у него две змеи). Он сделал иллюстрированное руководство, где разобрал поведение змей, выигрышные тактики, частые вопросы и сделал много другой полезной работы. Руководство на английском.

Сейчас его змеи на первом и втором месте общего топа:

В игре сейчас есть три игровых режима — это Дуэль, Снейкоцид и Батл-рояль. В первом две змеи соревнуются друг с другом, во втором четыре, в третьем сразу девять.

Игра всегда заканчивается по истечении 1000 ходов. То есть примерно за минуту.

Мультиплеер в игре асинхронный, то есть для партии не нужно, чтобы оппонент был в онлайне — его змея будет сражаться сама по себе, согласно заложенному в нее поведению.

Игра — идейный наследник классической Snake Battle, которую российская компания Gamos выпустила в 1992. Геймплей был схожим, только онлайн-баталий не было — всё-таки это была эра MS-DOS и флоппи-дисководов.

Геймплей старой игры:

Сейчас добавляю в игру разные удобства, параллельно привлекаю игроков. Когда-нибудь позже напишу об опыте продвижения.

Монетизации в игре практически нет, играть можно бесплатно. Исключение — PRO-статус для совсем уж упоротых программистов, которые хотят заниматься нейросетями и машинным обучением (да, нейросеть может управлять змеей и корректировать модель ее поведения по ходу обучения).

В общем, если заинтересовал опыт — то пишите в комментариях, о чем хотелось бы почитать (матчмейкинг, разработка на VUE, организация базы данных для игры, выигрышные тактики, опыт продвижения или что-то еще). Сама игра живет по адресу snek.app.

Комментарии
Продолжить чтение

Медиа

Руководство по ориентированному на пользователя проектированию

Ориентированное на пользователя проектирование (User-Centered Design) – далеко не новая концепция.  Это стратегия проектирования и процесс, в котором потребностям, желаниям и ограничениям конечных пользователей продукта уделяется обширное внимание на каждой стадии процесса проектирования.

AppTractor

Опубликовано

/

Автор:

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

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

В этой книге от Appsee вы узнаете, что такое проектирование может дать вашему продукту, как внедрить его, какие инструменты использовать, получите советы и мнение лидеров индустрии о том, как использовать такой подход.

Скачать ее можно на сайте: https://www.appsee.com/ebooks/the-playbook-of-user-centered-app-making.

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.