Linux如何使用Instant-ngp

2024-01-23  本文已影响0人  小黄不头秃

首先根据配置Instant环境的教程,我们git clone了instant-ngp的官方代码。

如果我们需要使用自己的数据及训练NeRF神经网络的话,我们还需要安装一个Colmap用来做图像的位姿处理。

git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
sudo cmake .. -D CMAKE_CUDA_COMPILER="/usr/local/cuda/bin/nvcc" CMAKE_CUDA_ARCHITECTURES='native'
make -j4
sudo make install

注意:如果报了错误:CMake Error at CMakeLists.txt:255 (message): You must set CMAKE_CUDA_ARCHITECTURES to e.g. 'native', 'all-major', '70', etc. More information at

我们可以在CMAKELIST.txt文件的第253行前加入一行:

set(CMAKE_CUDA_ARCHITECTURES 52 60 61 75 86) 

构建自己的数据集

第一步:准备环境和数据,可以是一段视频或者是一些图片

我们在某一个目录下创建一个文件夹用来存放这个视屏或者图片,例如:我在test文件夹下,放入了test.mp4;

pip install -r requirements.txt

第二步:****使用instant-ngp自带的脚本去进行位姿恢复

python ./scripts/colmap2nerf.py --video_in ./test/test.mp4 --video_fps 2 --run_colmap --aabb_scale 32

其中video_fps设置的是,每一秒截取多少帧,我们可以根据视频的长度,大概能够估计会产生多少张图片

第三步:切换到test文件夹下,进行特征提取和特征匹配将colmap数据格式转换为nerf数据格式

如果数据格式是图片的话,从这里开始。

python ../scripts/colmap2nerf.py --colmap_matcher exhaustive --run_colmap --aabb_scale 32

第四步:切换到根目录下,运行instant-ngp 进行nerf模型的训练和nerf模型转3D模型的输出

instant-ngp ./test

输出结果:

总结数据要求:

(1)像素尽量高
(2)尽量不要有反光,或者很高的亮度
(3)instant-ngp训练出的模型可能需要裁剪
(4)拍摄的物体不能动,移动就会导致糊。

上一篇下一篇

猜你喜欢

热点阅读