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

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

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

Как продавать представителям разных поколений

Рассказываем, как работает теория поколений и чем она оказывается полезной для маркетинга в малом и среднем бизнесе.
Read More

Как привлечь новую аудиторию и победить конкурентов. 3 кейса-стратегии

На примере трёх кейсов разбираем трансформацию продуктов на основе методологии jobs-to-be-done.
Read More

Что стоит автоматизировать в бизнесе с самого начала

Бизнес – во многом рутина, и увязнуть в ней достаточно просто. Самоотверженно делать руками то, что можно поручить машине –...
Read More

Как составить бизнес-план: пошаговая инструкция

Бизнес-план — стратегия развития проекта, без которой не стоит начинать ни один бизнес. Рассказываем, как правильно его составить.
Read More

Сильная презентация для инвесторов: от содержания до выступления

Презентация поможет структурировать данные и представить идею потенциальным инвесторам. Как сделать качественный документ – разбираемся вместе с основателем REC’s GROUP...
Read More

Дёшево и эффективно: как малому бизнесу продвигать свой сайт

Как выделиться среди конкурентов и получить внимание потенциальных клиентов. Бюджетные методы продвижения сайта – в этом обзоре.  
Read More

Как перевести бизнес в онлайн: 7 шагов

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

Кризис как точка роста для бизнеса

Когда бизнес развивается слабо, на помощь приходит… кризис. Рассказываем, как не испугаться перемен и открыть офис в другой стране, чем отличается построение бизнеса в Москве и Алматы.
Read More

Миллион на подтяжках для собак

Как придумать и монетизировать идею для бизнеса Нет смысла терять время и усложнять, когда бизнес-идеи витают в воздухе. Как понять...
Read More

Нейросети в помощь бизнесу: на что способен искусственный интеллект

Развитие нейросетей стало для россиян главным научным событием 2023 года. Бизнес активно внедряет искусственный интеллект, чтобы создавать контент, лучше понимать...
Read More