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

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

Бывало ли с вами такое: вы решили скачать любимую компьютерную игру детства и ненадолго погрузиться в счастливые воспоминания. Установили её, запустили, но… Графика 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.

Стэнфордский курс: лекция 4. Введение в нейронные сети

Стэнфордский курс: лекция 4. Введение в нейронные сети

В прошлый раз мы выяснили, как работает функция потерь и оптимизация, а также рассказали о пользе градиента и градиентного спуска....
Read More
Данные на замке: как двухфакторная аутентификация поможет обезопасить сайт

Данные на замке: как двухфакторная аутентификация поможет обезопасить сайт

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

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

Бывало ли с вами такое: вы решили скачать любимую компьютерную игру детства и ненадолго погрузиться в счастливые воспоминания. Установили её,...
Read More
Как создать сайт-портфолио для творческого проекта

Как создать сайт-портфолио для творческого проекта

Резьба по книгам, money art, тканевые скульптуры — искусство может принимать самые разные формы. А благодаря Интернету современные художники могут...
Read More
Нейросеть описывает мир незрячим людям

Нейросеть описывает мир незрячим людям

Голосовые ассистенты могут не только играть в «города» и рассказывать о погоде — они способны на гораздо большее! Например, помогать...
Read More
Экскурсии в дата-центр: как мы провели 300 человек на закрытый объект и почему нас уже не остановить

Экскурсии в дата-центр: как мы провели 300 человек на закрытый объект и почему нас уже не остановить

Отвлекитесь немного от экрана и посмотрите на вещи, которые вас окружают. Стол, кружка, лампа, смартфон, клавиатура — всё это материальные...
Read More
Стэнфордский курс: лекция 3. Функция потерь и оптимизация

Стэнфордский курс: лекция 3. Функция потерь и оптимизация

На прошлой лекции мы разобрались, как работает классификация изображений. Что же может «потеряться» в процессе и можно ли этого избежать?...
Read More
Как ИИ отслеживает небезопасное поведение водителей

Как ИИ отслеживает небезопасное поведение водителей

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

Многозначная классификация с помощью Keras

Можно ли обучить нейросеть делать не один, а сразу несколько прогнозов? Этот вопрос возникает, когда нам необходимо классифицировать изображения по...
Read More
Большая игра, или Загадочная история домена SEX.COM

Большая игра, или Загадочная история домена SEX.COM

“The Internet is for porn” — так пелось в бродвейском мюзикле Avenue Q (пародия на «Улицу Сезам»). И, несмотря на то,...
Read More