Sparse Voxels Rasterizer 使用教程
【免费下载链接】svraster 项目地址: https://gitcode.com/gh_mirrors/sv/svraster
1. 项目介绍
Sparse Voxels Rasterizer 是由 NVlabs 开发的一种高效的光场渲染算法。该算法在自适应稀疏体素上进行光栅化处理,无需使用神经网络或 3D 高斯函数。其主要贡献包括:一是能够自适应地为场景中的不同细节级别分配稀疏体素,以 65536^3 网格分辨率忠实地再现场景细节,同时实现高渲染帧率;二是定制了一个光栅化器,用于高效的稀疏体素渲染。通过使用射线方向依赖的 Morton 排序,该方法避免了 Gaussian Splatting 中的著名弹出伪影。Sparse Voxels Rasterizer 相较于之前的无神经网络体素模型,在 PSNR 上提高了超过 4dB,并且速度提升了超过 10 倍,达到了与最先进的 novel-view synthesis 结果相当的水平。
2. 项目快速启动
环境安装
首先,确保安装了 Pytorch。经过测试的版本为 1.13.1+cu117 和 2.5.0+cu124。根据安装的 Pytorch 版本,可能需要为虚拟环境安装对应的 cuda-toolkit:
conda install -y -c "nvidia/label/cuda-11.7.0" cuda-toolkit
# 或者
conda install -y -c "nvidia/label/cuda-12.4.0" cuda-toolkit
然后安装项目所需的其他包:
pip install -r requirements.txt
接着安装稀疏体素 CUDA 光栅化器和一些工具:
pip install -e cuda/
数据准备
建议遵循 InstantNGP 的视频或图像处理步骤,使用 COLMAP 提取相机参数。NerfStudio 也可以使用。目前只支持针孔相机模式。请使用 InstantNGP 脚本中的 --colmap_camera_model PINHOLE 选项或 NerfStudio 脚本中的 --camera-type pinhole 选项进行预处理。
场景优化
运行以下命令进行场景优化:
python train.py --eval --source_path $DATA_PATH --model_path $OUTPUT_PATH
所有结果将保存到指定的 $OUTPUT_PATH 中,包括以下内容:
config.yaml:用于重现的配置文件。pg_view/:训练进度的可视化,有助于调试。test_stat/:训练过程中的统计数据。test_view/:训练过程中的可视化。
渲染和可视化
渲染训练视图:
python render.py $OUTPUT_PATH --skip_test --rgb_only --use_jpg
渲染测试视图并评估结果:
python render.py $OUTPUT_PATH --skip_train
python eval.py $OUTPUT_PATH
渲染飞行视频:
python render_fly_through.py $OUTPUT_PATH
使用交互式查看器:
python viz.py $OUTPUT_PATH
然后在网页浏览器中导航训练后的场景。
3. 应用案例和最佳实践
- 在实际应用中,根据场景特点选择合适的边界模式和超参数是非常重要的。
- 使用
--lambda_T_inside和--lambda_T_concen超参数可以优化射线终止和透射度。 - 对于几何优化,可以使用
--lambda_normal_dmean、--lambda_normal_dmed和--lambda_ascending等超参数。 - 使用 COLMAP 稀疏点损失 (
--lambda_sparse_depth) 和 depthanythingv2 损失 (--lambda_depthanythingv2) 可以指导渲染深度。
4. 典型生态项目
Sparse Voxels Rasterizer 可以与多种 3D 处理技术无缝配合,如 Volume Fusion、Voxel Pooling 和 Marching Cubes,从而拓展到更广泛的应用和场景中。
【免费下载链接】svraster 项目地址: https://gitcode.com/gh_mirrors/sv/svraster
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



