首先根据配置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)拍摄的物体不能动,移动就会导致糊。