【3DGS】Win11系统下3D Gaussian Splatting从零配置到实战渲染
1. 环境准备:Win11下的3DGS基础配置
最近在折腾3D Gaussian Splatting(简称3DGS)这个酷炫的技术,发现网上教程大多基于Ubuntu系统,对Windows用户不太友好。作为一个常年被Linux环境折磨的Windows党,我决定把在Win11上踩过的坑都记录下来。先说下我的硬件配置:笔记本搭载RTX 3060显卡,CUDA 12.1驱动版本。如果你的显卡是20/30/40系,跟着我的步骤走基本不会翻车。
1.1 显卡驱动与CUDA的相爱相杀
装CUDA前一定要先检查显卡驱动版本!我刚开始直接装了CUDA 12.4,结果发现和驱动不兼容,渲染时疯狂报错。正确姿势是:
- 右键桌面打开NVIDIA控制面板
- 点击"帮助->系统信息"
- 查看"驱动程序版本"和"CUDA版本"的对应关系
建议直接用NVIDIA GeForce Experience更新到最新驱动。我实测发现,驱动版本516.94配合CUDA 11.8最稳定,但如果你用的是40系显卡,必须装CUDA 12.x。有个小技巧:安装CUDA时不要勾选Visual Studio集成,除非你要做二次开发。
1.2 Python环境的玄学问题
强烈建议用Anaconda创建独立环境,我试过直接用系统Python,各种dll报错让人崩溃。具体操作:
conda create -n 3dgs python=3.9 conda activate 3dgs这里有个坑:Python 3.10以上版本可能会和某些依赖冲突,3.9版本亲测最稳。安装完记得先升级pip:
python -m pip install --upgrade pip2. 依赖安装:那些官方没告诉你的细节
2.1 PyTorch的版本迷宫
官方文档只说"安装PyTorch",但没告诉你版本不对会直接导致训练失败。我的血泪教训:
- CUDA 11.x用这个命令:
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116- CUDA 12.x用这个:
pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118安装完一定要验证:
import torch print(torch.cuda.is_available()) # 必须返回True print(torch.version.cuda) # 应该和安装的CUDA版本一致2.2 其他依赖的隐藏关卡
除了基本的requirements.txt,这几个包容易漏装:
pip install plyfile tqdm opencv-python如果遇到"Could not build wheels for..."错误,可能是缺少C++编译环境。去安装Visual Studio 2019的C++生成工具就行。
3. 数据准备:从零开始处理自己的数据集
3.1 官方数据集的正确打开方式
下载官方提供的Truck数据集后,目录结构应该是这样:
data/ └── tandt/ ├── truck/ │ ├── images/ │ ├── sparse/ │ └── cameras.json千万别直接扔到根目录!我一开始没注意,训练时疯狂报"找不到图像"的错误。正确的做法是在项目根目录创建data文件夹,然后把解压后的tandt放进去。
3.2 自定义数据集的预处理
如果你想用自己的照片建模,需要先通过COLMAP生成位姿信息。这里有个Win11下的简化流程:
- 下载COLMAP的Windows版
- 把照片放在一个文件夹内(建议50-100张)
- 运行:
colmap automatic_reconstructor \ --workspace_path ./my_data \ --image_path ./my_data/images生成的sparse文件夹要重命名为sparse/0,否则3DGS会识别失败。
4. 训练与渲染:从代码到3D魔法
4.1 训练参数调优指南
启动训练的命令虽然简单:
python train.py -s data/tandt/truck -m output/truck但有几个关键参数可以大幅提升效果:
--iterations 30000默认值可能不够--resolution 2高清场景用-1--sh_degree 3对复杂光照更友好
训练过程中可以实时查看loss曲线,如果发现PSNR值卡住不动,可能是学习率太高,加个--lr 0.0001试试。
4.2 实时渲染的坑点排查
下载的viewer工具包解压后,要注意:
- 把训练好的output文件夹(包含point_cloud.ply)放到viewer的bin目录下
- 管理员身份运行PowerShell,执行:
.\SIBR_gaussianViewer_app.exe -m output/truck如果闪退,大概率是显卡内存不够。可以加--width 1280 --height 720降低分辨率。
5. 性能优化:让3DGS飞起来
5.1 显卡内存不足的解决方案
我的RTX 3060 6GB跑大场景经常OOM,这几个技巧很管用:
- 训练时加
--densification_interval 1000 - 渲染时加
--reduce_point_size - 编辑viewer的config文件,把"max_splat_size"改小
5.2 多显卡训练的黑科技
如果你有双显卡,可以这样榨干硬件性能:
CUDA_VISIBLE_DEVICES=0,1 python train.py ... --num_gpus 2注意要在代码里修改data_loader的num_workers为0,否则可能死锁。
6. 常见错误大全
6.1 "CUDA out of memory"终极解法
除了降低batch size,还可以:
- 在train.py开头加:
torch.backends.cuda.max_split_size_mb = 128- 设置虚拟内存为物理内存的2倍
- 关闭其他吃显存的程序(比如浏览器)
6.2 模型发黑的秘密
渲染结果像一团黑雾?通常是这些原因:
- 训练数据的光照不均匀 - 重新拍摄时保持光线一致
- SH degree设置过高 - 改成1试试
- 点云密度不够 - 增加densify_until_iter参数
