NVIDIA Instant NeRF WIN10安装过程记录
安装详细步骤参考以下两个链接, 主要按照链接1的步骤进行安装,全部安装完之后运行阶段本文后面有详细记录,
https://vincentqin.tech/posts/instant-ngp/ (链接1)
https://blog.csdn.net/m0_72572968/article/details/126687224 (链接2)
https://blog.csdn.net/liferecords/article/details/127528193(CUDA和CUDA Toolkit版本对应)
https://blog.csdn.net/m0_58658712/article/details/125716901(运行过程参考)
1. 安装Windows: Visual Studio 2019
另外还需要勾选以下内容,不然在cmake阶段容易报错:
如果安装过程中有漏选,也可再找到installer, 点击修改再次安装
2. 安装CUDA和CUDA Toolkit
CUDA Toolkit在我PC上是要装的, 其他博主有跳过该选项, 也有安装CUDA Toolkit, 在我PC上不安装在cmake阶段会报错, 提示找不到对应cuda。
CUDA Toolkit安装默认路径安装,安装选项选择精简就可以,当然也可以自己更改安装目录,但是加环境变量的时候要注意换成自己的安装目录,以下两个路径要添加到环境变量Path
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\libnvvp
重启系统之后,打开命令行输入nvcc --verison ,返回如下:
检验CUDA是否可以正常使用:
cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite
输入deviceQuery.exe,返回Result =PASS
再输入bandwidthTest.exe, 返回Result =PASS
经过如上两步,CUDA Toolkit安装通过。
3. 安装OPTIX(optional)
按照(链接1中给出的方式安装即可)
4. 下载+编译程序
下载链接可以直接根据链接1给出的网盘链接下载,在对源码进行编译的时候很容出现问题。如果出现编译报错的情况,可以参照以下链接。
cmake . -B build
cmake --build build --config RelWithDebInfo -j 16
如果编译的时候出现【CUDA】No CUDA toolset found,查看这个链接。
如果编译的时候报错,Win10 conda ERROR conda.core.link:_execute(481): An error occurred while uninstalling package,查看这个链接。
如果编译还有问题,Google搜一下。
5. colmap的安装(简单)
https://blog.csdn.net/m0_37605642/article/details/115915248
下载完成后,解压instant-ngp根目录下,并重命名为COLMAP
并将其添加到环境变量Path(这里是自己的路径)中去:
D:\instant-ngp-release\COLMAP
6. anaconda虚拟环境
anaconda自己安装, 注意利用anaconda创建的环境python版本是要3.9的版本,在创建过程中经常会遇到卡在Solving environment:, 那可能是安装的源需要更换,可以参考这个链接和这个链接
conda create -n ngp python=3.9
conda activate ngp
pip install -r requirements.txt
如果出现SSLError(MaxRetryError('HTTPSConnectionPool(host=‘mirrors.tuna.tsinghua.edu.cn’,问题,可以参考这个链接
最后安装的时候还需要安装OpenEXR, 具体可以参考 链接1。
7. 运行
先看一下git拉下来的代码里面的run.bat
第1步 即下划线是对视频进行转换截取得到对应的图片, 具体代码可以查看convert_video.py, 主要实现部分如下:
在安装20帧截取一次之后,会对截取到的图像做转换,会按照原始宽高除以scale的方式做尺寸缩放。提取之后会在data文件夹中。如果自己拍的视频要进行渲染,可以从这一步截取视频的关键帧开始, 进入之前创建的虚拟环境,并且切换到instant-ngp所在的路径, 注意修改对应路径, 然后将下面指令(修改过自己路径的指令)复制到刚才打开路径的cmd中运行。
python .\scripts\convert_video.py --input E:\NeRF\real_data\data\tussock\tussock.MOV --output E:\NeRF\real_data\data\tussock\data\ --show_image 1 --scale 1
第2步是利用colmap重建操作,打开之前下载的colmap文件夹,找到COLMAP.bat, 以管理员的身份运行,运行之后出现GUI界面,在File里面新建工程,具体操作顺序: new project–>
在弹出的窗口里面点击new,选择存放的路径,这里选择与照片data同一个路径下,然后Image再选择刚才生成的data路径, 之后点击save
下面开始进行processing–> feature extraction 特征提取、feature–>matching特征匹配(这一步用了我去节水的时间,稍微有点长)、3D重建等操作,分别点击以下按钮:
再特征点匹配之后,还没进行三维重建之前在processing–>Database management查看的图像能看到坐标点是nan,但是点开对图像能够看到对应的特征点。点击Overlapping Images, 再选择列表中的某一行,点击show matchs
最后进行三维重建,Reconstruction --> start Reconstruction
利用作者给的数据集一共提取了10w个特征点。
之后将这些数据导出file–> export model as text,导出的时候最好新建一个文件夹保存, 生成的内容如下,这些数据用于nerf渲染。
第3步 需要生成transform.json文件
这一步要再回到run.bat,之前由视频转成图像那一步没有操作,直接使用链接中作者的数据,所以跳过了那一步,在生成transform.json文件的时候,需要将文件中下划线那一步复制到进入ngp虚拟环境的cmd里面运行, 要注意修改对应的路径, 这里将路径换成了本机的路径。
python scripts/colmap2nerf.py --aabb_scale 1 --images D:\Nerf\datasets\tussock_tiny\data --text D:\Nerf\datasets\tussock_tiny\sparse --out D:\Nerf\datasets\tussock_tiny\transform.json
对应目录文件夹:
复制到CMD中直接运行,就能生成对应的transform.json文件。
第4步, 进行nerf渲染,注意修改路径,只需要修改后面图片文件夹路径:
前面的exe是再前面cmake编译生成的exe,在build文件夹中,一般不需要修改。
.\build\testbed.exe --scene D:\Nerf\datasets\tussock_tiny
整个过程要持续一段时间,在运行一段时间以后能看到渲染图像再变清晰: