GPS-Gaussian:用于实时人体新视角合成的可泛化像素级3D高斯散射
郑舜元†,1,周博瑶2,邵瑞智2,刘博宁2,张胜平*,1,3,聂礼强1,刘烨斌2
1哈尔滨工业大学 2清华大学 3鹏城实验室
*通讯作者 †在清华大学实习期间完成的工作
项目主页 · 视频 · 论文 · 补充材料
简介
我们提出了GPS-Gaussian,一种可泛化的像素级3D高斯表示方法,用于即时合成任何未见过角色的新视角,无需任何微调或优化。
https://github.com/ShunyuanZheng/GPS-Gaussian/assets/33752042/54a253ad-012a-448f-8303-168d80d3f594
安装
要部署和运行GPS-Gaussian,请执行以下脚本:
conda env create --file environment.yml
conda activate gps_gaussian
然后,编译3DGS仓库中的diff-gaussian-rasterization
:
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
cd gaussian-splatting/
pip install -e submodules/diff-gaussian-rasterization
cd ..
(可选)RAFT-Stereo提供了更快的CUDA实现的相关性采样器,可以加速模型而不影响性能:
git clone https://github.com/princeton-vl/RAFT-Stereo.git
cd RAFT-Stereo/sampler && python setup.py install && cd ../..
如果编译了这个CUDA实现,在config/stereo_human_config.py中设置corr_implementation='reg_cuda'
,否则设置为corr_implementation='reg'
。
在合成人体数据集上运行
数据集准备
- 我们提供了用于GPS-Gaussian训练的16相机设置下的THuman2.0渲染数据集,从百度网盘或OneDrive下载
render_data
并解压。由于我们建议离线校正源图像并确定视差,保存的文件和下载的数据需要大约50GB的可用存储空间。 - 为了训练更加鲁棒的模型,我们建议收集更多的人体扫描数据用于训练(例如 Twindom,Render People,2K2K)。然后,按照目标场景渲染训练数据,包括相机数量和场景半径。我们提供了从人体扫描数据生成训练数据的渲染代码,详见数据文档。
训练
注意:在首次训练时,我们会离线进行立体校正和确定视差,处理后的数据将保存在render_data/rectified_local
。这个过程需要几个小时,但可以极大地加速后续的训练方案。如果你想跳过这个预处理步骤,在stage1.yaml和stage2.yaml中设置use_processed_data=False
。
- 第一阶段:预训练深度预测模型。在stage1.yaml中将
data_root
设置为解压后的render_data
文件夹路径。
python train_stage1.py
- 第二阶段:训练完整模型。在stage2.yaml中将
data_root
设置为解压后的render_data
文件夹路径,并在stage2.yaml中设置正确的预训练第一阶段模型路径stage1_ckpt
。
python train_stage2.py
测试
python test_real_data.py \
--test_data_root 'PATH/TO/REAL_DATA' \
--ckpt_path 'PATH/TO/GPS-GS_stage2_final.pth' \
--src_view 0 1 \
--ratio=0.5
- 自由视角渲染:运行以下代码在源视图之间插值自由视角,并修改
novel_view_nums
以设置特定数量的新视角。
python test_view_interp.py \
--test_data_root 'PATH/TO/RENDER_DATA/val' \
--ckpt_path 'PATH/TO/GPS-GS_stage2_final.pth' \
--novel_view_nums 5
引用
如果你发现这个代码对你的研究有用,请考虑引用:
@inproceedings{zheng2024gpsgaussian,
title={GPS-Gaussian: Generalizable Pixel-wise 3D Gaussian Splatting for Real-time Human Novel View Synthesis},
author={Zheng, Shunyuan and Zhou, Boyao and Shao, Ruizhi and Liu, Boning and Zhang, Shengping and Nie, Liqiang and Liu, Yebin},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2024}
}