Российский разработчик Денис Малимонов сделал Face Depixelizer — программу на базе нейросети PULSE, которая генерирует реалистичное лицо на основе пиксельного изображения на входе. Нейросеть старается подобрать такое лицо в высоком разрешении, чтобы в низком картинка совпадала по пикселям с тем, что подается как исходные данные. Вот краткая иллюстрация того, как она работает, и ссылки на исходники и Colab, чтобы попробовать самостоятельно.
- Тома Харди и Кристина Хемсворт. Как выглядели бы известные актеры, если бы сменили пол
- Ведьмак Геральт, Лара Крофт и Кратос «сменили» пол с помощью FaceApp. Вот что из этого вышло
Практически сразу же люди стали интересоваться, можно ли прогнать через алгоритм лица из старых видеоигр. И да, действительно можно.
Вот, например, Minecraft:
И, конечно, Думгай:
Стоит иметь в виду, что нейросеть создаёт не то же лицо, что было на исходнике, а похожее. Вот, например, Барак Обама.
В комментариях некоторые люди сочли подобные трансформации расизмом. Сам Малимонов рассказал «Канобу», почему нейросеть иногда осветляет лица — все дело в нейросети StyleGAN от NVidia, на которой и основана PULSE.
Как Нейросеть Видит Майнкрафт ?
Когда обучали StyleGAN, то делали это на разных типах лиц. Естественно, можно запихнуть все-все расы разом, но тогда качество будет плохим. Поэтому изначально лица делили на азиатскую, европейскую внешность, чернокожих и так далее. Так результаты получились натуральные. Но конкретно PULSE, которая сделана ради фана, использовала только данные для европеоидных лиц.
Конечно, если подавать на вход чисто чернокожее лицо, то оно останется темным. Но если исходник просто смуглого лица, — вот как у латиносов, например, — то нейросеть почти всегда их делает белыми. Но из-за этого в Twitter начинается: «Какие расисты это делали!». Хотя я даже не создатель нейросети.
Также некоторые пользователи стали писать, что подобные программы могут использоваться полицией для распознавания лиц с камер наблюдения. Но Малимонов подчеркивает, что алгоритм способен подобрать то же самое лицо только случайно, как правило, получается похоже, но не совсем то.
- Галерея дня: «Яндекс» научил «Алису» рисовать картины
- Cyberpunk 2077, God of War, The Witcher 3 и другие в аниме-стилистике — благодаря нейросети
А вот еще несколько интересных результатов напоследок.
Источник: kanobu.ru
Нейросеть от Nvidia генерирует реалистичные трёхмерные миры на основании Minecraft
Nvidia представили GANcraft — нейросеть для создания фотореалистичных изображений на основе трехмерных блочных миров, подобных мирам в Minecraft. GANcraft создаёт визуализацию мира, перенимая его структуру и добавляя фотореализм. Фреймворк, позволяет задать траекторию камеры и стиль выходных изображений. Модель не требует обучения на новых входных данных для генерации кадров.
Как Нейросеть Видит Майнкрафт?
Зачем это нужно
«Представьте себе мир, в котором каждый майнкрафтер — 3D-художник!», — Nvidia
GANcraft упрощает процесс 3D-моделирования сложных сцен с пейзажами, для создания которых могут потребоваться годы опыта. Это имеет применение в сферах, в которых необходима генерация пейзажей.
Нейросеть принимает на вход следующие данные:
- мир, состоящий из блоков с метками, например, «грязь», «трава», «дерево», «песок» или «вода»;
- траекторию камеры;
- изображение или параметры стилизации.
На выходе нейросеть генерирует видеоряд с точки зрения камеры.
Отличие от предыдущих методов
Сравнивая результаты существующих методов решения задачи, авторы указали на наличие проблем:
- MUNIT и SPADE не сохраняют согласованность точек обзора (одни и те же объекты генерируются по-разному с разных точек обзора);
- wc-vid2vid создает видео с согласованными точками обзора, но качество изображения ухудшается со временем из-за накопления ошибок;
- NSVF-W от Nvidia справляется с задачей, однако выходное изображение не содержит мелких деталей и выглядит скучно.
В отличие от них, GANcraft генерирует детализированный видеоряд с согласованными точками обзора.
Как это работает
- В первую очередь каждому углу блока присваивается набор свойств, отвечающих за внешний вид и геометрию.
- Для произвольно выбранных точек обзора камеры производится поиск пересечений лучей обзора с сеткой блоков. Производится трилинейная интерполяция свойств блоков в указанных пересечениях.
- Результат интерполяции попадает на вход многослойному перцептрону, задающему набор свойств для пикселей выходного изображения.
- Последний этап получения кадра — свёрточная нейросеть, выполняющая рендер.
На этапах 3 и 4 выходное изображение подвергается стилизации, которую можно задать картинкой-примером.
Кроме того, для выполнения быстрого и стабильного обучения без учителя используется инструмент SPADE. Он генерирует реалистичные картинки для отдельных кадров, на которые опирается функция потерь свёрточной нейросети. Таким образом достигается близость результата, обладающего согласованным углом обзора, к реалистичной картинке. Также это решает проблему отсутствия пейзажей с подходящими ракурсами, необходимых нейросети в качестве «истинных» изображений.
Источник: neurohive.io
Преобразуем миры Minecraft в трёхмерные фотореалистичные сцены с помощью нейросетей
Мы представляем GANcraft — работающий без участия человека фреймворк нейронного рендеринга для генерации фотореалистичных изображений больших миров из 3D-блоков, например, таких, которые созданы в Minecraft. Наша система получает на входе мир из семантических блоков, в котором каждому блоку назначена метка, например, «земля», «дерево», «трава», «песок» или «вода».
Мы задаём мир как непрерывную объёмную функцию и обучаем нашу модель рендерингу фотореалистичных изображений с сохранением внешнего вида с произвольных точек обзора без наличия реальных изображений блочного мира.
Кроме позиции камеры, GANcraft позволяет пользователю задавать семантику и стиль сцены.
Выходные данные нашей модели. В левом нижнем углу показаны блочные миры, подаваемые на вход.
Видео с кратким описанием
Обзор технологии
Какую конкретно задачу пытается решить GANcraft?
GANcraft нацелен на решение задачи преобразования одного мира в другой мир. Имея семантически размеченный мир, например, такой, который используется в популярной игре Minecraft, GANcraft способен преобразовать его в новый мир, имеющий ту же структуру, но с добавленным фотореализмом. После этого новый мир можно рендерить с произвольных точек обзора, получая фотореалистичные видео и изображения, сохраняющие внешний вид при смене точек обзора. GANcraft упрощает процесc 3D-моделирования сложных ландшафтных сцен, на создание которых потребовались бы многие годы практики.
По сути, GANcraft превращает любого игрока Minecraft в 3D-художника!
Вопрос: «Почему просто не использовать преобразование im2im?»
Так как исходных истинных фотореалистичных рендеров для созданного пользователем блочного мира не существует, нам приходится обучать модели при помощи непрямого контроля.
Хорошими кандидатами являются некоторые уже существующие решения. Например, можно использовать методики преобразования «изображение-изображение» (image-to-image, im2im), в частности, MUNIT and SPADE, изначально обучавшуюся только на 2D-данных, чтобы конвертировать покадровые маски сегментации, спроецированные из блочного мира, в реалистично выглядящие изображения.
Также можно использовать wc-vid2vid — методику, учитывающую 3D-объём, для генерации изображений с постоянным внешним видом при помощи 2D-ретуширования и 3D-искажений, применяя в качестве 3D-геометрии поверхности вокселей.
Эти модели нужно обучать на преобразовании реальных карт сегментации в реальные изображения, а затем применить в Minecraft.
В качестве ещё одной альтернативы можно обучить NeRF-W, изучающую поле 3D-излучения от нефотометрической, но позиционированной и 3D-неизменной коллекции изображений. Её можно обучить по прогнозируемым изображениям из методики im2im (псевдоистинных данных, о которых будет рассказано в следующем разделе), то есть данных, которые максимально близки к требованиям.
Слева направо: MUNIT, SPADE, wc-vid2vid, NSVF-W (NSVF + NeRF-W), GANcraft(наша методика)
Сравнивая результаты различных методик, мы сразу же можем заменить некоторые проблемы:
- Методики im2im наподобие MUNIT и SPADE не сохраняют внешний вид объектов вне зависимости от точки обзора, потому что они не имеют знаний о 3D-геометрии и каждый кадр генерируется отдельно.
- wc-vid2vid создаёт видео с постоянным внешним видом объектов, но со временем качество изображения быстро портится из-за накопления погрешностей блочной геометрии и недостаточного количества данных для тестового обучения.
- NSVF-W (наша реализация NeRF-W с добавленной воксельной подготовкой в стиле NSVF) тоже создаёт результаты с постоянным внешним видом объектов, но результат выглядит скучным и ему не хватает мелких деталей.
Несовпадение распределения и псевдоистинные данные
Допустим, у нас есть подходящая модель нейронного рендеринга с воксельной подготовкой, способная создавать фотореалистичный мир. Нам всё равно нужен какой-то способ её обучения без истинных изображений с указанным расположением камеры.
Adversarial training достигло определённого успеха на задачах нейронного рендеринга малого размера без условий, когда изображения с указанием их позиции недоступны. Однако для GANcraft проблема ещё более сложна. В отличие от реального мира, блочные миры из Minecraft обычно имеют гораздо более разнообразное распределение меток.
Например, некоторые сцены могут быть полностью покрыты снегом, песком или водой. Существуют также сцены, в которых на небольшой площади пересекается множество биомов. Кроме того, невозможно сопоставить сэмплируемое распределение камер с распределением на фотографиями из Интернета при случайном сэмплировании точек обзора из модели нейронного рендеринга.
Примеры изображений, сгенерированных без псевдоистинных данных:
Примеры изображений, сгенерированных с псевдоистинными данными:
Как видно на первых примерах, adversarial training с помощью фотографий из Интернета из-за сложности задачи приводит к нереалистичным результатам.
Создание и использование псевдоистинных данных для обучения стало одним из самых важных вкладов нашей работы и значительно улучшило результаты (вторые примеры).
Генерирование псевдоистинных данных
Псевдоистинные данные — это фотореалистичные изображения, сгенерированные из масок сегментации с помощью предварительно обученной модели SPADE. Так как маски сегментации сэмплируются из блочного мира, псевдоистинные данные имеют те же метки и позиции камер, что и изображения, сгенерированные для тех же точек обзора. Это не только снижает рассогласование распределения меток и камер, но и позволяет нам использовать более сильные потери, например, функции перцептуальных потерь и L2, для более быстрого и стабильного обучения.
Гибридный нейронный рендеринг, ограниченный вокселами
В GANcraft мы задаём фотореалистичную сцену сочетанием объёмного 3D-рендерера и рендерера изображений 2D-пространства. Мы задаём нейронное поле свечения, ограниченное вокселями: имея данные блочного мира, мы назначаем каждому углу блоков вектор характеристик, и используем трилинейную интерполяцию для задания кода расположения в произвольных местах внутри вокселя. Благодаря этому можно задать поле излучения при помощи MLP, получающего на входе код локации, семантическую метку и код общего стиля, а на выходе создающего точечный объект (схожий с данными излучения) и плотность его объёма. Зная параметры камеры, мы рендерим поле излучения для получения карты 2D-характеристик, которая при помощи CNN преобразуется в изображение.
Полная архитектура GANcraft
Такая двухэтапная архитектура значительно улучшает качество изображений, сокращая при этом объёмы вычислений и занимаемой памяти, потому что поле излучения можно смоделировать более простым MLP. Предложенная нами архитектура способна обрабатывать очень большие миры. В своих экспериментах мы использовали воксельные сетки размером 512×512×256, что эквивалентно 0,26 квадратным километрам.
Нейронный купол неба
Старые методики нейронного рендеринга на основе вокселей не могли моделировать бесконечно удалённое от сцены небо. Однако небо является неотъемлемым ингредиентом фотореалистичности. Для добавления неба мы используем в GANcraft дополнительный MLP. MLP преобразует направление луча камеры в вектор характеристик, имеющий тот же размер, что и точечные объекты из поля излучения. Этот вектор характеристик используется в качестве полностью непрозрачного окончательного сэмпла луча, смешивающего характеристики пикселя в соответствии с оставшейся пропускаемостью луча.
Генерация изображений с разнообразным внешним видом
Процесс генерации GANcraft является условным и зависит от задающего стиль изображения. Во время обучения мы используем в качестве задающего стиль изображения псевдоистинные данные, что позволяет объяснить несоответствие между сгенерированным изображением и псевдоистинными данными потерями при реконструкции. Во время вычислений мы можем управлять стилем выходных данных, передавая GANcraft различные изображения, задающие стиль. В примере ниже мы линейно интерполируем стиль между шестью различными изображениями стиля.
Интерполяция между несколькими стилями
Источник: habr.com