Поиск по сайту Поиск

Улучшаем графику в старых играх и видео с помощью нейросетей

Бывало ли с вами такое: вы решили скачать любимую компьютерную игру детства и ненадолго погрузиться в счастливые воспоминания. Установили её, запустили, но… Графика 20-летней давности выглядит, мягко говоря, неактуально. Наша новая статья поможет решить эту проблему: мы расскажем, как улучшить текстуры в играх и видео с помощью нейросетей.

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

https://69.media.tumblr.com/6bef021801510314ebc6ebc18259ac45/tumblr_pf9uxzaFQR1xvyxl5o5_r2_640.gif

Что вам понадобится

Многим нейронным сетям для обучения нужны высокопроизводительные видеокарты. Чаще всего для этого не достаточно обычных графических процессоров, установленных в персональных компьютерах. Поэтому лучше всего воспользоваться нашими облачными серверами с мощными GPU NVIDIA Tesla V100, которые в несколько раз ускоряют обучение популярных нейросетей.

Также рекомендуем использовать операционную систему на базе Linux. Это не всегда необходимо, но если вы планируете и дальше осваивать эту область, то можете установить, например, одну из последних версий Ubuntu. Большинство нейросетей и руководств к ним разрабатываются на Linux.

Если вы не готовы устанавливать новую систему, то на облачных серверах уже есть готовое решение на Ubuntu 18.04 с настроенными популярными библиотеками для машинного обучения.

Выбор игры

Лучше выбрать игру начала 2000-х годов и старше, поскольку для более новых предлагаемые методы, скорее всего, окажутся бесполезными. Это может быть 3D или 2D-игра со спрайтами низкого разрешения (спрайт — графический объект в компьютерной графике). Апскейлинг обычно хорошо работает в играх с около-реалистичной графикой (не рисованной), которая не выглядела реалистично из-за аппаратных ограничений того времени. Текстуры таких игр могли содержать много деталей, но из-за маленького разрешения экранов не было смысла делать их более качественными. Современные мониторы имеют высокое разрешение, поэтому мы можем использовать методы машинного обучения для улучшения текстур.

Извлечение текстур (файлов данных)

Если повезёт, файлы текстур будут находиться в отдельной папке в виде обычных изображений. Иногда данные могут иметь формат, специфичный для движка игры. В этом случае они, скорее всего, будут сжаты и собраны в один или несколько файлов. Если выбранная вами игра была достаточно популярна, то фанаты и модеры наверняка уже нашли способы извлечь из неё всё необходимое. Поищите информацию в интернете — там точно найдется подходящее руководство. В Warcraft 3, например, текстуры хранятся в виде .blp-файлов, которые можно сконвертировать в JPG или PNG и обратно.

Выбор модели

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

Waifu2x

Метод использует глубокие свёрточные нейронные сети для масштабирования изображений в 1.6 или 2 раза. Ссылка выше позволит работать прямо в браузере, но вы можете настроить модель, скачав её с GitHub. Нейросеть обучена на изображениях в стиле аниме, поэтому больше подходит для мультипликационных текстур. 

Пример улучшенных с помощью Waifu2x моделей в Morrowind:

https://staticdelivery.nexusmods.com/mods/100/images/45247-1-1508332506.png

ESRGAN

Модель применяет генеративно-состязательные сети для увеличения разрешения изображений в 4 раза. Мы писали о её более ранней версии. Она была создана, чтобы работать на реальных фотографиях, поэтому хорошо подойдёт для детализированных текстур. В этом посте вы найдёте руководство по её использованию в Windows. 

Улучшенные c ESRGAN текстуры Morrowind:

https://staticdelivery.nexusmods.com/mods/100/images/46221/46221-1544880920-600360147.png

GameWorks: Materials & Textures

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

Пример улучшенных с её помощью текстур Doom:

AI Gigapixel

Платный коммерческий продукт. Работает с реальными фотографиями и позволяет выполнять масштабирование до 600%. Если у вас есть деньги и желание поэкспериментировать, то результаты могут оказаться очень хорошими.

Пример улучшения графики в Final Fantasy VII:

Приведённые выше архитектуры можно переобучать, настраивать и даже комбинировать между собой. Например, модификация для Fallout: New Vegas сделана с использованием сразу трёх нейросетей: Waifu2x, ESRGAN и AI Gigapixel.

https://staticdelivery.nexusmods.com/mods/130/images/66368/66368-1555526671-1243585418.png

Повышение качества видео

Нейросети для апскейлинга позволяют улучшить качество кат-сцен в играх или увеличить разрешение старых кинофильмов. Например, не так давно пользователь сайта «Хабрахабр» повысил разрешение мультфильма «Тайна третьей планеты» до 720P. Вы можете попробовать запустить скрипт для покадрового улучшения качества видео с помощью ESRGAN или скачать проект video2x (для Windows), использующий Waifu2x.

Пример работы ESRGAN:

До

После

Пример работы video2x:

preview

Другие полезные инструменты:

AntiDupl — находит дубликаты изображений с разными разрешениями и форматами. Хороший инструмент для предварительной обработки.

Custom Texture Tool PS — помогает конвертировать популярный в играх формат текстур .dds в PNG или JPG и выполнять масштабирование с помощью Waifu2x.

Заключение

Следует учесть, что результаты повышения разрешения могут отличаться у разных моделей. Единственный способ найти лучшее решение — экспериментировать. Возможно, вам придётся изменить изображения до или после обработки, например, вручную исправить некоторые артефакты. Дерзайте и наслаждайтесь красивой графикой!

Материалы для статьи взяты с сайта reddit.com.

Обучаем виртуального дракона фигурам высшего пилотажа

Обучаем виртуального дракона фигурам высшего пилотажа

В наши дни компьютерная графика присутствует во всех популярных видах визуального контента: от видеороликов YouTube-блогеров до полнометражных фильмов. Но проработка...
Read More
Стэнфордский курс: лекция 9. Архитектуры CNN

Стэнфордский курс: лекция 9. Архитектуры CNN

На прошлом уроке мы узнали о наиболее популярных библиотеках и фреймворках для глубокого обучения, рассмотрели их особенности и области применения....
Read More
GPT-2: нейросеть, которая закончит за вас предложение

GPT-2: нейросеть, которая закончит за вас предложение

Встречали ли вы когда-нибудь собеседника, который после нескольких сказанных вами слов заканчивал за вас предложение? GPT-2 умеет и не такое:...
Read More
Жуткие сайты, которые вызовут у вас мурашки

Жуткие сайты, которые вызовут у вас мурашки

Интернет может не только развлекать вас новыми мемами и видеороликами, но и быть по-настоящему пугающим. В честь Хэллоуина представляем несколько...
Read More
10 ингредиентов надёжной инфраструктуры хостинга REG.RU

10 ингредиентов надёжной инфраструктуры хостинга REG.RU

Привет! На связи редакция блога. И сегодня мы расскажем в деталях об одной из сторон инфраструктуры REG.RU, объясним как работает...
Read More
Голосовой помощник Apple, которому можно доверять

Голосовой помощник Apple, которому можно доверять

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

Как организовать техническую поддержку пользователей

Быстрая техподдержка очень важна для клиентов, особенно в критических ситуациях. От скорости и качества решения проблемы зависит лояльность пользователя и...
Read More
Роботы в облаках: совмещение ROS и Jupyter

Роботы в облаках: совмещение ROS и Jupyter

Робототехника — одна из самых популярных и прогрессивно развивающихся отраслей. Ролики Boston Dynamics на YouTube собирают миллионы просмотров. Если вы...
Read More
Стэнфордский курс: лекция 8. ПО для глубокого обучения

Стэнфордский курс: лекция 8. ПО для глубокого обучения

В предыдущих главах мы познакомились с основами обучения нейросетей и выяснили, чему при этом стоит уделять больше внимания. Сегодня вы...
Read More
Анализ производительности нейросетей на GPU с помощью NVIDIA Visual Profiler (часть 1)

Анализ производительности нейросетей на GPU с помощью NVIDIA Visual Profiler (часть 1)

Специалисты Data Science делятся на два лагеря: те, кому кажется, что нейросети обучаются слишком медленно, и те, кому скоро тоже...
Read More