Сразу отметим, что в настоящее время смотреть трехмерные 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
- если Защитник Windows ругается, в табличке «Система Windows защитила ваш компьютер» жмем «Подробнее» и потом кнопку — «Выполнить в любом случае«;
- далее в распакованном архиве Проводником открываем папку «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-гарнитуру и контроллеры;
- в приложении Instant-NGP на компе кликаем «Connect to VR/AR headset«;
- надеваем гарнитуру и находим NeRF (если не видие изображение сразу, просто оглянитесь);
- и осматриваем объект, двигаясь вокруг (с помощью контроллеров).
Если гарнитура ничего не показывает, вероятнее всего, она для этого не настроена. А конкретнее, Windows должна видеть её, как устройства OpenXR по умолчанию. Поэтому открываем приложение SteamVR или Oculus (в зависимости от модели гарнитуры) и проверяем соответствующие настройки.
Не пропустите: ОШИБКА OPENXR В BONELAB: УСТРАНЯЕМ БЫСТРО
как сделать NeRF из фоток?
На фотках модель в Instant-NGP учится как бы лучше. По крайней мере, NeRF-ы из статических изображений получаются более точными. Но сама по себе технология их генерации именно из фоток более сложная и занимает больше времени. Нужны фотки хорошие, надо доустанавливать дополнительные программные инструменты и потом все запускать и настраивать через командную строку Windows.
Так что, об этом расскажем как-нибудь в следующий раз. А пока же порекомендуем глянуть пару гайдов, как делать NeRF-ы из фотографий, для предварительного ознакомления с фронтом работ.