Instant-NGP (только NERF) в Pytorch+CUDA, обученном с помощью питор-флинина ( высокое качество с высокой скоростью ). Этот репо направляется на предоставление краткого интерфейса Pytorch для облегчения будущих исследований, и я благодарен, если вы можете поделиться им (и цитирование высоко ценится)!
Другие представительные видео в Gallery.md
Эта реализация имеет строгие требования из -за зависимости от других библиотек, если вы столкнетесь с проблемой установки из -за несоответствия аппаратного/программного обеспечения, я боюсь, что нет намерения поддерживать различные платформы (вы можете внести свой вклад).
Клонировать это репо от git clone https://github.com/kwea123/ngp_pl
Python> = 3,8 (рекомендуется установка через Anaconda, используйте conda create -n ngp_pl python=3.8 для создания среды Conda и активации ее с помощью conda activate ngp_pl )
Библиотеки Python
pip install torch==1.11.0 --extra-index-url https://download.pytorch.org/whl/cu113torch-scatter после их инструкцииtinycudann после их инструкции (расширение Pytorch)apex после их инструкцииpip install -r requirements.txt Расширение CUDA: обновите pip до> = 22.1 и запустите pip install models/csrc/ (Пожалуйста, запустите это каждый раз, когда вы pull код)
Загрузите предварительные наборы данных ( Synthetic_NeRF , Synthetic_NSVF , BlendedMVS , TanksAndTemples ) из NSVF. Не меняйте имена папок , так как в моем DataLoader есть какое-то твердое исправление.
Загрузите данные отсюда.
Для пользовательских данных запустите colmap и получите папку sparse/0 в соответствии с которыми есть cameras.bin , images.bin и points3D.bin . Также поддерживаются следующие данные с форматом Colmap:
Загрузите данные отсюда. Чтобы преобразовать изображения HDR в изображения LDR для обучения, запустите python misc/prepare_rtmv.py <path/to/RTMV> , он будет создавать images/ папки в каждой папке сцены и будет использовать эти изображения для обучения (и тестирования).
QuickStart: python train.py --root_dir <path/to/lego> --exp_name Lego
Он будет обучать сцену LEGO для 30K шагов (каждый шаг с 8192 лучами) и выполнит одно тестирование в конце. Процесс обучения должен закончиться в течение примерно 5 минут (сохранение изображения тестирования является медленным, добавить --no_save_test , чтобы отключить). Тестирование PSNR будет показано в конце.
Больше вариантов можно найти в Opt.py.
Для других общедоступных наборов данных, пожалуйста, обратитесь к сценариям в соответствии с benchmarking .
Используйте test.ipynb для генерации изображений. Предварительная модель LEGO доступна здесь
dataset_name графического интерфейса root_dir запустите python show_gui.py --ckpt_path <path/to/.ckpt> .
Я сравнил качество (среднее тестирование PSNR на Synthetic-NeRF ) и скорость вывода (на сцене Lego ) с одновременной работой Torch-NGP (настройки по умолчанию) и бумаги, все обучены около 5 минут:
| Метод | AVG PSNR | Кадр | Графический процессор |
|---|---|---|---|
| факел-нг | 31.46 | 18.2 | 2080 Ti |
| мой | 32,96 | 36.2 | 2080 Ti |
| Мгновенная бумага | 33,18 | 60 | 3090 |
Что касается качества, моя немного лучше, чем Torch-NGP, но результат может колебаться в разных пробегах.
Что касается скорости, шахта быстрее, чем Torch-NGP, но все еще наполовину быстро, как мгновенный NGP. Скорость зависит от сцены (если большая часть сцены пуста, скорость будет быстрее).




Слева: факел-нг. Справа: мой.
Чтобы запустить тесты, используйте сценарии под benchmarking .
Последования - мои результаты, обученные с использованием 1 RTX 2080 TI (качественные результаты здесь):
| Микрофон | Фикус | Стул | Хот-дог | Материалы | Барабаны | Корабль | Лего | Ав | |
|---|---|---|---|---|---|---|---|---|---|
| PSNR | 35,59 | 34.13 | 35,28 | 37.35 | 29,46 | 25,81 | 30.32 | 35,76 | 32,96 |
| SSIM | 0,988 | 0,982 | 0,984 | 0,980 | 0,944 | 0,933 | 0,890 | 0,979 | 0,960 |
| Lpips | 0,017 | 0,024 | 0,025 | 0,038 | 0,070 | 0,076 | 0,133 | 0,022 | 0,051 |
| Кадр | 40.81 | 34.02 | 49,80 | 25.06 | 20.08 | 37.77 | 15.77 | 36.20 | 32.44 |
| Время обучения | 3M9S | 3M12S | 4m17s | 5m53s | 4m55s | 4M7S | 9m20S | 5m5s | 5m00s |
| Владелец вина | Пароход | Жаба | Робот | Велосипед | Дворец | Космический корабль | Образ жизни | Ав | |
|---|---|---|---|---|---|---|---|---|---|
| PSNR | 31.64 | 36.47 | 35,57 | 37.10 | 37.87 | 37.41 | 35,58 | 34,76 | 35,80 |
| SSIM | 0,962 | 0,987 | 0,980 | 0,994 | 0,990 | 0,977 | 0,980 | 0,967 | 0,980 |
| Lpips | 0,047 | 0,023 | 0,024 | 0,010 | 0,015 | 0,021 | 0,029 | 0,044 | 0,027 |
| Кадр | 47.07 | 75,17 | 50.42 | 64,87 | 66.88 | 28.62 | 35,55 | 22.84 | 48.93 |
| Время обучения | 3M58S | 3M44S | 7m22s | 3M25S | 3M11S | 6m45s | 3M25S | 4m56s | 4m36s |
| Игнатий | Грузовик | Сарай | Caterpillar | Семья | Ав | |
|---|---|---|---|---|---|---|
| PSNR | 28.30 | 27.67 | 28.00 | 26.16 | 34,27 | 28,78 |
| *Fps | 10.04 | 7,99 | 16.14 | 10.91 | 6.16 | 10.25 |
*Оценивается на test-traj
| *Джейд | *Фонтан | Характер | Статуи | Ав | |
|---|---|---|---|---|---|
| PSNR | 25.43 | 26.82 | 30.43 | 26.79 | 27.38 |
| ** fps | 26.02 | 21.24 | 35,99 | 19.22 | 25.61 |
| Время обучения | 6m31s | 7m15s | 4m50s | 5m57s | 6m48s |
*Я вручную переключаю фон с черного на белый, поэтому число не сопоставимо с тем, что в бумагах.
** Оценивается на test-traj