1. 复现2DGS及其环境配置
作为一名长期从事3D重建和计算机视觉研究的工程师,我在复现2DGS(2D Gaussian Splatting)项目时积累了一些实用经验。2DGS是一种基于2D高斯分布的3D场景表示方法,相比传统的NeRF,它在渲染速度和内存占用上都有显著优势。
1.1 环境搭建关键步骤
首先需要准备Python环境,我推荐使用conda创建一个独立环境:
bash复制conda create -n 2dgs python=3.9
conda activate 2dgs
然后安装核心依赖项。这里有个细节需要注意 - 必须按照特定顺序安装:
bash复制pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install submodules/diff-surfel-rasterization
pip install submodules/simple-knn
注意:diff-surfel-rasterization和simple-knn这两个子模块必须从源码安装,直接pip安装预编译版本可能会导致兼容性问题。
1.2 数据集准备与处理
我使用的是NeRF Synthetic dataset,这是3D重建领域的标准测试集。下载后需要按以下结构组织:
code复制data/
└── nerf_synthetic/
├── lego/
│ ├── train/
│ ├── test/
│ └── transforms_train.json
└── ...
数据集加载有个小技巧:在首次运行时,程序会自动预处理数据并生成缓存。建议先运行一次view.py生成所有缓存文件,然后再开始训练,这样可以避免训练过程中因数据加载导致的卡顿。
1.3 常见问题解决
在复现过程中,我遇到了几个典型问题:
- gs_monitor自动关闭:这通常是由于段错误(segmentation fault)导致。经过排查,发现主要原因是显存不足。我的解决方案是:
- 降低batch_size
