NeRF-ы для VR: что это и как сделать самому

Сразу отметим, что в настоящее время смотреть трехмерные NeRF-ы в VR-гарнитуре можно пока только через приложение Instant-NGP (для Windows).

В скором будущем для этого наверняка придумают еще какие-то программные инструменты, ну а пока так.

Что такое NeRF? Если очень вкратце, то NeRF или Neural Radiance Field (или т.н. «Нейронное поле яркости«) — это нейронная сеть, то бишь ИИ-модель, которая на основе набора изображений умеет воссоздавать различные ракурсы сложных 3D-объектов.

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

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

Не пропустите: НАСТОЯЩИЙ ФОТОПОРТРЕТ БЕЗ ФОТОГРАФА И БЕЗ … НИКОГО: КАК ЭТО ДЕЛАЕТСЯ

Но, повторимся, для этого требуются полнофункциональная AR-или VR-гарнитура (шлем) с поддержкой OpenXR, а также компьютер, а точнее Windows-ПК с видеокартой Nvidia. И не абы какой, а с моделью одной из следующих серий:

  • RTX 3000 или RTX 4000, в частности RTX A4000 — A6000 (или др. модель с чипом Ampere или Ada);
  • RTX 2000, в частн. Titan RTX, Quadro RTX 4000 — 8000 (или др. модель с чипом Turing);
  • GTX 1000, в частн. Titan Xp, Quadro P1000 — P6000 (или др. модель с чипом Pascal).

Ну а если с «железом» всё ОК — гарнитура и комп с правильной видяхой в наличии — то в остальном, как говорится, дело техники.

Как сделать NeRF — ставим и тестируем Instant-NGP

На данном (подготовительном) этапе сделать надо следующее:

  • качаем и приложение Instant-NGP в версии для своей видеокарты — [ССЫЛКА] на страницу проекта на GitHub — т.е. качаем zip-архив, открываем его и запускаем файл instant-ngp
  • далее в распакованном архиве Проводником открываем папку «data«, затем — «nerf«, и перетаскиваем оттуда папку «fox» просто в окно приложения Instant-NGP;
  • немного ждем, пока модель учится, и получаем тестовую 3D-модель головы лисы — дальше её можно осматривать (поворачивать, увеличивать и уменьшать) просто на экране компа;
  • процесс оптимизации качества картинки длится порядка минуты, после чего можно остановить обучение (кнопка «Stop Training«) — качество изображения (fps) сразу же повысится;
  • меню настроек закрывается кнопкой со стрелкой (в левом верхнем углу окна).

Не пропустите: СЪЕМКА ВИДЕО НА ДВЕ КАМЕРЫ IPHONE: КАК ЭТО ДЕЛАЕТСЯ

делаем свой NeRF из видео

Для этого на компе нужен Python. Никаких «кул-хацкерских» навыков от вас не потребуется, так что, просто качаем и ставим прогу.

Еще один важный момент. Этап съемки существенно упрощает iPhone с приложением Record3D (вот [ССЫЛКА] на App Store) — достаточно просто отснять объект и сразу сохранить его как NeRF. На момент публикации данного поста, версии Record3D для Android смартфонов еще не выпустили.

Съемка никаких особых ухищрений не требует: двигаемся плавно, держим объект по центру кадра и снимаем обычный видеоролик (можно ограничиться фотками, но с видео-исходником работать гораздо проще). Исходник сохраняем в R3D, потом переписываем его на комп (в отдельную папку) и далее:

  • на компе перепрописываем формат файла — вместо r3d просто пишем zip — потом кликаем правой кнопкой мыши по названию и жмем «Извлечь все«;
  • система автоматом создаст новую папку с файлом metadata и папкой rgbd;
  • запускаем Python;
  • открываем папку «Instant-NGP«, кликаем правой кнопкой мыши по адресной строке Проводника и в открывшемся меню жмем «Копировать адрес»;
  • открываем Командную строку Windows (меню «Пуск» > в строке поиска пишем cmd и жмем Enter);
  • в окне Командной строки пишем cd, жмем «пробел» и вставляем адрес папки «Instant-NGP» (кликаем тут же право кнопкой мыши и затем «Вставить«);
  • находим и открываем папку «Record3D» и точно так же копируем её адрес из адресной строки Проводника;
  • в окне Командной строки пишем команду python scripts/record3d2nerf.py —scene, вставляем адрес папки Record3D и жмем Enter;
  • Python быстро обработает данные и создаст файл transforms.json
  • запускаем Instant-NGP, перетаскиваем папку «Record3D» в окно приложения и дожидаемся завершения процесса обучения модели.

Как обрезать и настроить NeRF

Обрезка нужна, потому что каждый новый и «сырой» еще NeRF имеет всегда размытые края, который совершенно не обязательно демонстрировать зрителю. С помощью обрезки лишнего объект также можно подвинуть ближе к центру кадра. И самое главное, удаление всего ненужного также заметно повышает частоту (fps), то бишь качество отображения изделия в VR.

Обрезка NeRF-а в приложении Instant-NGP делается следующим образом:

  • в окне приложения находим меню «Options» и кликаем по стрелочке рядом с «World transform & Crop box«;
  • слайдерами выставляем поля изображения (обрезку) так, чтобы все ненужно осталось вне кадра;
  • и, если нужно, поворачиваем NeRf в другое положение:

NeRF-ы для VR: что это и как сделать самому

как смотреть NeRF-ы в VR-гарнитуре

Когда новый NeRF полностью готов (качественный, красивый, правильно отцентрованный и без лишних размытий по краям), то теперь:

  • включаем VR-гарнитуру и контроллеры;
  • в приложении Instant-NGP на компе кликаем «Connect to VR/AR headset«;
  • надеваем гарнитуру и находим NeRF (если не видие изображение сразу, просто оглянитесь);
  • и осматриваем объект, двигаясь вокруг (с помощью контроллеров).

Если гарнитура ничего не показывает, вероятнее всего, она для этого не настроена. А конкретнее, Windows должна видеть её, как устройства OpenXR по умолчанию. Поэтому открываем приложение SteamVR или Oculus (в зависимости от модели гарнитуры) и проверяем соответствующие настройки.

Не пропустите: ОШИБКА OPENXR В BONELAB: УСТРАНЯЕМ БЫСТРО

как сделать NeRF из фоток?

На фотках модель в Instant-NGP учится как бы лучше. По крайней мере, NeRF-ы из статических изображений получаются более точными. Но сама по себе технология их генерации именно из фоток более сложная и занимает больше времени. Нужны фотки хорошие, надо доустанавливать дополнительные программные инструменты и потом все запускать и настраивать через командную строку Windows.

Так что, об этом расскажем как-нибудь в следующий раз. А пока же порекомендуем глянуть пару гайдов, как делать NeRF-ы из фотографий, для предварительного ознакомления с фронтом работ.

Что будем искать? Например,VPN

Мы в социальных сетях