SA-GS部署及训练过程

SA-GS,无需训练,直接鲁棒提升3D高斯抗锯齿能力

介绍

3DGS以其高质量的视图渲染和快速的速度而受到业界的关注。但是,渲染过程中可能会发生视图质量下降,具体取决于分辨率、距离和焦距等设置。现有方法通过在训练期间向 3D 和 2D 空间中的高斯基元添加规律性来解决这个问题。然而,这些方法忽略了 3DGS 在与不同渲染设置一起使用时的一个显着缺点:比例模糊问题。这个问题直接导致 3DGS 无法利用传统的抗锯齿技术。我们首次提出并分析了这个问题,并仅使用二维尺度自适应滤波器来纠正这一缺点。基于此,我们采用积分、超级采样等常规抗混叠方法来解决采样频率不足导致的混叠效应。值得注意的是,我们的方法是第一个不需要训练的高斯抗锯齿技术。因此,它可以直接集成到现有的3DGS模型中,以增强其抗锯齿能力。该方法在有界和无界场景下都得到了验证,实验结果表明,该方法以最有效的方式实现了稳健的抗锯齿性能增强,超过或等于当前的最优设置。

代码拉取和部署

1
git clone https://github.com/zsy1987/SA-GS.git
1
2
3
4
5
6
cd SA-GS
conda create -n SA-GS python=3.10(注意,原作者推荐3.9版本,实测3.9版本一堆报错)
conda activate SA-GS
pip install -r requirements.txt -f https://download.pytorch.org/whl/torch_stable.html
pip install submodules/simple-knn/
pip install submodules/diff-gaussian-rasterization_new/

数据集下载和处理

Blender:下载并解压缩nerf_synthetic.zip:https://drive.google.com/drive/folders/128yBriW1IG_3NJ5Rp7APSTZsJqdJdfc1

1
python convert_blender_data.py --blender_dir nerf_synthetic/ --out_dir multi-scale

这一步是将数据集处理为程序可以识别的训练数据

Mip-NeRF 360 数据集:请从 Mip-NeRF 360 下载数据,并要求作者提供树丘和花朵场景。

训练

1
2
3
4
5
6
7
8
# single-scale training on NeRF-Synthetic dataset
python train.py -s /your/dataset/scene/path -m /your/output/path --save_iterations 30000 -r 1

# multi-scale training on NeRF-Synthetic dataset
python train.py -s /your/dataset/scene/path -m /your/output/path --save_iterations 30000 --load_allres

# single-scale training on Mip-NeRF 360 dataset
python train.py -s /your/dataset/scene/path -m /your/output/path --save_iterations 30000 -r 1

渲染

使用我们的方法进行渲染。有四种模式可供选择:源-GS、仅滤波器、积分和超级采样:

1
2
3
4
5
6
7
8
9
# Multi-scale testing on NeRF-synthetic dataset
python render_blender.py -s /your/data/path -m /your/model/path --save_name OUTPUT --load_allres --mode integration --resolution_train 1 --eval

# Single-scale testing on NeRF-synthetic dataset
# -r "your render resolution" --resolution_train "your train resolution"
python render_blender.py -s /your/data/path -m /your/model/path --save_name OUTPUT -r 8 --mode integration --resolution_train 1 --eval

# Single-scale testing on Mip-NeRF 360 dataset
python render_360.py -s /your/data/path -m /your/model/path --save_name OUTPUT -r 8 --mode integration --resolution_train 1

自定义摄像机轨迹参数

1
python render_custom.py -s /your/data/path -m /your/model/path --save_name OUTPUT --mode integration