项目简介
本项目是基于Python和PyTorch实现的NeRF(Neural Radiance Fields)系统。NeRF是用于3D场景重建和渲染的神经网络方法,此项目依据pytorch_template对NeRF代码进行重构,有清晰的目录结构,能从一组2D图像中估计3D场景的几何结构和颜色。
项目的主要特性和功能
- 清晰的目录结构,适用于众多深度学习项目,便于开发与管理。
- 具备实用功能,支持检查点保存和恢复、训练过程日志记录等。
- 支持多GPU训练,可充分利用多GPU资源加速训练。
- 能进行彩色网格重建。
- 包含核心模型与功能模块,实现了NeRF模型,可学习从3D位置和方向预测颜色和不透明度;定义嵌入层处理3D位置和方向的输入;提供渲染函数用于根据NeRF模型渲染图像;定义训练器类管理和控制模型的训练过程;提供可视化工具显示渲染结果和深度信息。
安装使用步骤
1. 准备环境
确保已安装Python和PyTorch。
2. 获取源码
用户已下载本项目的源码文件。
3. 配置数据
配置数据集路径和训练参数。可用训练数据集有Blender(Realistic Synthetic 360)和LLFF(Real Forward - Facing)。
- Blender数据集训练命令:
python train.py \
--dataset_name blender \
--root_dir $BLENDER_DIR \
--N_importance 64 --img_wh 400 400 --noise_std 0 \
--num_epochs 16 --batch_size 1024 \
--optimizer adam --lr 5e-4 \
--lr_scheduler steplr --decay_step 2 4 8 --decay_gamma 0.5 \
--exp_name exp
- LLFF数据集训练命令:
python train.py \
--dataset_name llff \
--root_dir $LLFF_DIR \
--N_importance 64 --img_wh 504 378 \
--num_epochs 30 --batch_size 1024 \
--optimizer adam --lr 5e-4 \
--lr_scheduler steplr --decay_step 10 20 --decay_gamma 0.5 \
--exp_name exp
4. 运行训练
运行训练脚本,开始模型的训练。
5. 测试模型
使用test.py
创建移动视图的完整序列。例如:
python test.py \
--root_dir $BLENDER \
--dataset_name blender --scene_name lego \
--img_wh 400 400 --N_importance 64 --ckpt_path $CKPT_PATH
注意:如果模型是在--spheric
设置下训练的,不要忘记添加--spheric_poses
。测试完成后会创建results/{dataset_name}/{scene_name}
文件夹,对所有测试数据进行推理,最后生成一个动图。
6. 彩色网格重建
使用Mesh_Color.py
来重建彩色网格。
7. 可视化结果
使用提供的可视化工具查看渲染结果和深度信息。
注意事项
- 项目的运行依赖于Python和PyTorch,请确保已经安装这些依赖。
- 在运行训练脚本之前,请确保已配置好数据路径和训练参数。
- 训练过程可能需要较长时间,取决于数据集的大小和模型的复杂性。
- 可以通过修改训练参数来优化模型的训练过程。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】