安装
先上github安装链接,感谢大佬,所有操作均按照链接进行,需要注意的是,要跟着youtube或者b站视频来安装,视频时长20min左右。需要提醒的点有以下几点:
- 所有安装包的版本均按照视频里的来。
- 关于git命名报错
fatal: unable to access 'https://github.com/nvlabs/instant-ngp/': Failed to connect to ...
的问题。
因为instant-ngp需要在dependencies目录下安装很多新东西,直接下载的话,这些依赖是无法安装的,所以必须要使用Git命令,但Git命令又不稳定(或许还有其他移动要使用git的原因)。总之,装子模块时总是会报错,于是就去每个模块下下载对应的文件,在移至dependencies下就可以了。
可能还需要以下配置:
git config --global http.proxy http://127.0.0.1:10809
git config --global https.proxy http://127.0.0.1:10809
git submodule update --init --recursive
总之先使用git命令下载一部分(这一部分也会随机报错,多尝试求好运吧),然后等子模块报错时再一个个去denpendencies下载。
- 数据集的路径问题,可以看transform.json里的路径到底是什么。找不到路径会报以下错误
Uncaught exception: Cannot load NeRF data from an empty set of paths.
,若严格按照视频中的路径操作就不会报错。
- 最后一步把testbed.exe改为instant-ngp.exe
E:\test\ngp\instant-ngp\build\instant-ngp.exe --scene data/flower
运行
生成数据集
可修改参数 –aabb_scale 值越大占显存越小,但一定要是2的次方。
命令行记录
conda activate ngp
e:
cd E:\test\ngp\instant-ngp
# 生成transforms.json文件,此处数据必须放在ngp目录下
python scripts/colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 16 --images E:\test\ngp\instant-ngp\data\ship
# 运行ngp,运行前记得新建data文件夹,运行目录是 data\flower,总目是flower\data\flower\transformer.json & flower
E:\test\ngp\instant-ngp\build\instant-ngp.exe --scene data/nerf/fox
一些问题
这里的colmap在处理合成数据集时(如:nerf官方提供的合成数据集)可能会存在无法匹配的问题,导致最后输出的transforms.json只有一部分关键帧,emmmm这里我直接用了官方提供的transforms_train.json(这与视频里的不同)。
视频渲染
这里的base.ingp需要自己适用GUI界面中的save按钮保存,base_cam.jso也是使用GUI界面中的add camera按钮(这个确实不好找)。
python scripts/run.py --load_snapshot data/toy_truck1/base_100.ingp --video_camera_path data/toy_truck1/base_cam.json --video_fps 30 --video_n_seconds 10 --video_output render1.mp4
记录命令行
train --scene 设置训练集,–load_snapshot 接着上一次的训练, --n_steps 设置训练次数
python scripts/run.py --scene E:/test/ngp/instant-ngp/data/toy_truck1/transforms_all.json --save_snapshot "E:/test/ngp/instant-ngp/data/toy_truck1/lego.ingp" --load_snapshot "E:/test/ngp/instant-ngp/data/toy_truck1/base_100.ingp" --n_steps 2000
获得gt图像并保存在ref文件夹中
python scripts/run.py --load_snapshot "E:/test/ngp/instant-ngp/data/toy_truck1/base_random.ingp" --test_transforms "E:\test\ngp\instant-ngp\data\toy_truck1\transforms_test.json"
获得渲染后的图像并保存到img文件夹中,以上顺序不能变。
python scripts/run.py --load_snapshot "base_select1.ingp" --screenshot_transforms "E:/test/ngp/instant-ngp/data/toy_truck1/transforms_test.json" --screenshot_dir "E:\test\ngp\instant-ngp\data\toy_truck1\img" --screenshot_spp 8 --screenshot_w 800 --screenshot_h 800