1. 环境准备从零搭建3DGS开发环境第一次接触3D Gaussian Splatting3DGS时光是看到那一长串的环境依赖列表就让我头皮发麻。作为一个Windows用户我花了整整三天时间才把环境搭好期间踩过的坑足够写一本《Windows环境配置血泪史》。现在我就把这些经验毫无保留地分享给你让你少走弯路。1.1 项目获取的正确姿势很多人第一步就栽在项目下载上。官方GitHub仓库graphdeco-inria/gaussian-splatting提供了两种下载方式推荐使用git克隆git clone gitgithub.com:graphdeco-inria/gaussian-splatting.git --recursive直接下载zip压缩包不推荐我强烈建议使用git克隆因为那个--recursive参数会同时下载两个关键子模块diff-gaussian-rasterization和simple-knn。有次我偷懒直接下载zip包结果编译时各种报错最后发现是子模块文件缺失不得不重新克隆。1.2 CUDA和cuDNN的版本陷阱NVIDIA的版本兼容性是个大坑。经过多次测试我发现CUDA 11.8是最稳定的选择最新版12.x会有各种奇怪问题cuDNN需要与CUDA版本严格匹配我用的是cudnn8.8.0安装CUDA时有个细节要注意默认安装路径在C盘但CUDA会占用近3GB空间。我的C盘当时只剩5GB安装完直接爆满被迫进行了C盘扩容具体方法见附录。建议安装时选择其他分区或者提前清理C盘空间。验证安装是否成功nvcc -V # 查看CUDA版本 python -c import torch; print(torch.cuda.is_available()) # 检查PyTorch能否识别CUDA2. Python环境配置Anaconda实战指南2.1 创建专属虚拟环境Anaconda是管理Python环境的利器。我建议专门为3DGS创建一个隔离环境conda create -n 3dgs python3.11 -y conda activate 3dgs为什么要用Python 3.11因为这是目前与PyTorch 2.2.0兼容的最新版本。有次我用了3.12结果torchvision死活装不上浪费了两小时排查。2.2 PyTorch安装的曲折之路PyTorch官网给的安装命令看似简单pip3 install torch torchvision torchaudio但实际安装时会遇到两个致命问题下载速度极慢国内用户可能只有几十KB/s默认安装最新版2.3.1存在shm.dll缺失问题我的解决方案是使用清华镜像离线安装前往清华镜像站下载pytorch-2.2.0-py3.11_cuda11.8_cudnn8_0.tar.bz2torchvision-0.17.0-py311_cu118.tar.bz2torchaudio-2.2.0-py311_cu118.tar.bz2本地安装conda install --offline pytorch-2.2.0-py3.11_cuda11.8_cudnn8_0.tar.bz2 conda install --offline torchvision-0.17.0-py311_cu118.tar.bz2 conda install --offline torchaudio-2.2.0-py311_cu118.tar.bz23. 关键依赖库的安装技巧3.1 那些让人头疼的C扩展3DGS有两个需要编译的C扩展diff-gaussian-rasterizationsimple-knn安装时要注意顺序cd submodules/diff-gaussian-rasterization pip install . cd ../simple-knn pip install .常见错误及解决方案如果报错找不到CUDA工具链检查环境变量PATH是否包含CUDA的bin目录如果报错MSVC编译器缺失需要安装Visual Studio的C开发组件如果报错权限不足尝试以管理员身份运行命令提示符3.2 COLMAP的配置要点3DGS依赖COLMAP进行初始点云生成。配置时有三点需要注意下载3.8版本新版可能有兼容性问题解压到项目下的tools文件夹将COLMAP.exe所在目录添加到系统PATH测试是否配置成功colmap -h4. 实战训练从数据准备到可视化4.1 数据准备的两种方案官方提供了预制数据集wget https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/datasets/input/tandt_db.zip如果是自定义图片需要使用COLMAP生成稀疏点云python convert.py -s data/image目录结构应该是data/image/ input/ # 存放原始图片 sparse/ # COLMAP输出4.2 低配设备的训练技巧我的笔记本只有RTX 20606GB显存通过调整参数成功运行python train.py -s data/input -m data/output \ --densify_grad_threshold 0.0005 \ --densification_interval 200 \ --densify_until_iter 10000 \ --test_iterations -1关键参数说明densify_grad_threshold增大可减少高斯分布数量densification_interval增大可降低显存占用test_iterations设为-1禁用测试阶段显存占用4.3 结果可视化实操训练完成后使用内置查看器.\viewers\bin\SIBR_gaussianViewer_app -m data/output操作技巧FPS模式WASD移动UIOJKL旋转Trackball模式鼠标拖拽旋转按P键重置视角5. 常见问题排雷指南5.1 显存不足的终极解决方案除了调整训练参数还可以降低输入图片分辨率使用--resolution参数使用--num_iterations减少总迭代次数启用--reduce_memory选项会降低训练速度5.2 模块导入错误的排查如果遇到ModuleNotFoundError按以下步骤检查确认当前处于3dgs虚拟环境运行conda list查看已安装包检查submodules目录是否完整尝试重新编译C扩展5.3 C盘空间不足的预防措施建议提前做好以下准备将Anaconda安装到其他分区设置conda缓存路径conda config --add pkgs_dirs D:\conda_pkgs定期清理conda缓存conda clean --all6. 效率优化技巧6.1 加速conda安装的配置修改.condarc文件一般在用户目录下channels: - defaults show_channel_urls: true default_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2 custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud6.2 并行编译加速安装ninja加速C扩展编译conda install ninja -y然后在编译时添加python setup.py install --ninja7. 进阶配置建议7.1 使用Docker规避环境问题如果条件允许可以考虑使用DockerFROM nvidia/cuda:11.8.0-devel-ubuntu22.04 RUN git clone --recursive https://github.com/graphdeco-inria/gaussian-splatting WORKDIR /gaussian-splatting7.2 自定义数据集的预处理对于特殊场景数据建议使用COLMAP前先进行图像去畸变对低纹理区域使用--SharedCalibration参数复杂场景可以分区块处理后再合并8. 硬件选购建议根据我的实测经验最低配置RTX 20606GB显存推荐配置RTX 309024GB显存理想配置RTX 409024GB显存DLSS 3笔记本用户特别注意确保电源模式设置为最佳性能使用散热底座避免降频禁用其他占用显存的程序9. 调试技巧分享9.1 日志解读要点训练日志中的关键信息Iteration当前迭代次数Loss损失值理想应持续下降Points高斯点数量增长过快可能溢出9.2 可视化调试工具推荐使用DebugView安装PyTorch的debug版本启用--debug参数使用Nsight或RenderDoc分析显存10. 性能优化实战10.1 训练阶段优化尝试以下参数组合--position_lr_init 0.00016 \ --position_lr_final 0.0000016 \ --feature_lr 0.0025 \ --opacity_lr 0.05 \ --scaling_lr 0.00510.2 推理阶段优化导出时使用--convert_to_ply \ --compress_ply可以大幅减小输出文件体积11. 项目结构深度解析了解关键目录作用input/存放训练数据output/训练结果submodules/核心算法实现viewers/可视化工具12. 扩展学习资源推荐进阶学习路径先掌握原始论文《3D Gaussian Splatting for Real-Time Radiance Field Rendering》阅读diff-gaussian-rasterization的CUDA实现尝试修改simple-knn的k值参数参与GitHub社区的讨论13. 版本升级注意事项当项目更新时先备份当前环境conda env export env.yaml使用git pull更新代码特别注意submodules的更新测试关键功能是否正常14. 跨平台迁移指南从Windows迁移到Linux时注意路径分隔符差异/ vs \重新编译C扩展检查CUDA驱动版本可能需要调整libstdc版本15. 自动化脚本分享我常用的批处理脚本echo off set ENV_NAME3dgs set PROJECT_DIRD:\Projects\gaussian-splatting call conda activate %ENV_NAME% cd %PROJECT_DIR% python train.py -s input -m output16. 环境备份与恢复定期备份环境conda env export 3dgs_env.yaml恢复环境conda env create -f 3dgs_env.yaml17. 多项目环境管理建议使用conda的clone功能conda create --name 3dgs_new --clone 3dgs18. 疑难杂症解决方案遇到奇怪错误时首先检查版本兼容性搜索GitHub Issues尝试干净的conda环境在社区提问时提供完整错误日志19. 实用小工具推荐TreeSize查看磁盘占用Process Explorer监控GPU使用Conda-Pack环境打包工具Cmder替代Windows默认终端20. 学习路线建议从入门到精通的三个阶段基础能成功运行官方示例进阶处理自定义数据集高级修改算法核心逻辑刚开始可能会觉得配置环境很复杂但按照这个指南一步步来其实就像搭积木一样有趣。记得我第一次看到那些彩色的高斯点云在屏幕上绽放时所有的折腾都值得了。现在你可能会遇到各种报错但每个错误都是学习的机会。保持耐心遇到问题时不妨休息一下很多时候答案会在不经意间出现。