【三维重建】【深度学习】instant-nsr-pl代码Pytorch实现–训练自己的数据集
基于Instant-NGP的神经表面重建:该存储库包含 NeRF 和 NeuS 的简洁且可扩展的实现,用于基于 Instant-NGP 和 Pytorch-Lightning 框架的神经表面重建,旨在为基于 NeRF 或 NeuS 的研究项目提供高效且可定制的样板。
文章目录
- 【三维重建】【深度学习】instant-nsr-pl代码Pytorch实现--训练自己的数据集
- 前言
- 制作数据集
- 训练自己的数据集
- 总结
前言
在详细解析NeuS网络之前,首要任务是搭建instant-nsr-pl【win10下参考教程】所需的运行环境,并完成模型的训练和测试,展开后续工作才有意义。
本博文是对instant-nsr-pl网络训练自己的数据集的流程进行讲解,详细代码会在后续的博文中陆续讲解。
博主将各功能模块的代码在不同的博文中进行了详细的解析,点击【win10下参考教程】,博文的目录链接放在前言部分。
制作数据集
关于个人数据集的制作详细流程,感兴趣的可以参考博主的另一篇博文【基于COLMAP制作自己的NeRF(LLFF格式)数据集】。instant-nsr-pl源码有自己的制作的方式:
-
下载COLMAP软件,选择合适的版本下载后解压,将bin和lib的文件夹内所有文件都放到同一目录下。
-
配置colmap的环境变量,并在cmd中输入“colmap”验证是否生效。
-
转化数据的格式,giraffe目录下有images放置所有图片,sparse\0(自己创建)则会保存colmap输出的结果。
activate instant-nsr-pl python scripts/imgs2poses.py ./load/unbounded360/giraffe
到这里完成了数据格式的转化:
训练自己的数据集
还是强调一下 要注意内存,不够的话扩大虚拟内存
# nerf
python launch.py --config configs/nerf-colmap.yaml --gpu 0 --train dataset.scene=giraffe tag=giraffe
# neus带有mask
python launch.py --config configs/neus-colmap.yaml --gpu 0 --train dataset.scene=giraffe tag=giraffe
# neus没有mask
python launch.py --config configs/neus-colmap.yaml --gpu 0 --train dataset.scene=giraffe tag=giraffe dataset.use_mask=false
这里源码作者的代码存在巨大的BUG,也可能是我本身的原因,反正训练自己的数据集训练的一团糟!!!!有知道的朋友在评论区告诉一下怎么处理。后续有解决方式我会更新!!!
总结
尽可能简单、详细的介绍instant-nsr-pl训练自己的数据集的流程。后续会根据自己学到的知识结合个人理解讲解instant-nsr-pl的原理和代码。