保姆级避坑指南:在Ubuntu 20.04上从零部署3D Gaussian Splatting(含自采数据集实战)

张开发
2026/5/3 20:53:47 15 分钟阅读
保姆级避坑指南:在Ubuntu 20.04上从零部署3D Gaussian Splatting(含自采数据集实战)
保姆级避坑指南在Ubuntu 20.04上从零部署3D Gaussian Splatting含自采数据集实战当你第一次接触3D Gaussian Splatting3DGS时可能会被它惊艳的实时渲染效果所吸引。但随之而来的部署过程往往会让不少开发者和研究者望而却步。本文将带你一步步避开那些常见的坑从环境配置到自建数据集训练最终实现完整的3D场景重建。1. 环境准备避开依赖地狱在Ubuntu 20.04上部署3DGS环境配置是最容易出问题的环节。以下是经过实战验证的配置方案1.1 CUDA与显卡驱动首先确认你的NVIDIA显卡驱动版本与CUDA兼容性。建议使用CUDA 11.8这是我们在多台机器上验证过的稳定版本# 检查显卡驱动版本 nvidia-smi # 安装CUDA 11.8 wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run注意安装时不要勾选驱动选项避免与现有驱动冲突环境变量配置示例# 添加到~/.bashrc export PATH/usr/local/cuda-11.8/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH1.2 Conda环境优化方案官方推荐的conda环境安装经常因网络问题失败。我们改用mamba加速并调整依赖版本# 安装mamba conda install -n base -c conda-forge mamba # 创建环境修改后的environment.yml mamba env create -f environment_custom.yml修改后的环境文件关键内容name: 3dgs_custom channels: - pytorch - conda-forge dependencies: - python3.7 - cudatoolkit11.6 - pip: - torch1.12.1cu116 - torchvision0.13.1cu116 - opencv-python2. 源码编译解决submodule安装难题官方仓库的submodule经常因网络问题无法完整克隆。这里提供两种解决方案2.1 完整克隆方案# 使用递归克隆推荐网络良好时使用 git clone --recursive https://github.com/graphdeco-inria/gaussian-splatting2.2 手动安装submodules当递归克隆失败时可以单独安装三个关键submodule下载缺失的submodule仓库分别执行本地安装cd submodules/diff-gaussian-rasterization pip install . cd ../simple-knn pip install . cd ../fused-ssim pip install .常见错误解决方案错误类型解决方案Could not find a version检查CUDA与PyTorch版本匹配Permission denied添加--user参数或使用sudoMissing header files安装python3-dev包3. COLMAP编译最棘手的依赖问题COLMAP的源码编译是最大的挑战之一。我们总结了一套稳定方案3.1 基础依赖安装# 必备依赖可能需要多次运行 sudo apt-get install -y \ git cmake ninja-build libboost-all-dev \ libeigen3-dev libfreeimage-dev libgflags-dev \ libglew-dev libqt5opengl5-dev libcgal-dev \ libceres-dev libsuitesparse-dev3.2 针对性解决编译错误问题1std::filesystem缺失# 安装GCC 9并设置默认 sudo apt install g-9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90问题2Eigen3版本冲突# 移除旧版本手动安装Eigen 3.4 wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz tar -xzf eigen-3.4.0.tar.gz cd eigen-3.4.0 mkdir build cd build cmake .. make install3.3 最终编译命令根据你的GPU架构调整# 查询GPU架构 nvidia-smi --query-gpucompute_cap --formatcsv # 编译COLMAP示例为RTX 3090 cd colmap mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease \ -DCUDA_ENABLEDON \ -DCMAKE_CUDA_ARCHITECTURES86 \ -DGUI_ENABLEDOFF make -j$(nproc) sudo make install4. 自建数据集实战全流程4.1 数据准备规范推荐的项目目录结构my_project/ ├── input/ # 原始图像 │ ├── frame_0001.png │ └── ... ├── output/ # 训练输出 └── video.mp4 # 可选源视频视频转图像命令ffmpeg -i video.mp4 -q:v 2 input/frame_%04d.png提示图像数量建议在100-300张之间分辨率不低于1080p4.2 完整处理流水线稀疏重建colmap automatic_reconstructor \ --image_path input \ --workspace_path output \ --dense 1转换数据格式python convert.py -s output/sparse/0 \ -i input \ -o output/processed开始训练python train.py -s output/processed \ -m output/model \ --iterations 30000关键参数优化建议参数推荐值作用--iterations30000训练迭代次数--resolution-1自动选择最佳分辨率--sh_degree3球谐函数阶数4.3 可视化方案虽然官方Viewer仅支持Windows但我们可以在Ubuntu上使用替代方案# 安装MeshLab替代可视化 sudo apt install meshlab # 查看PLY文件 meshlab output/model/point_cloud.ply对于需要远程查看的情况可以考虑使用CloudCompare进行点云分析通过WebGL开发简易查看器将结果导入Blender进行后期处理5. 性能优化与高级技巧5.1 训练加速方案多GPU训练python train.py -s data/input --gpus 0,1混合精度训练 修改train.py添加torch.cuda.amp.autocast(enabledTrue)5.2 质量提升技巧图像预处理使用HDR图像确保曝光一致移除动态物体参数调整# 在create_from_pcd函数中调整 gaussians.create_from_pcd( pcd, density0.01, # 增加点密度 isotropicFalse # 各向异性缩放 )5.3 常见问题速查表现象可能原因解决方案训练崩溃CUDA OOM降低分辨率或batch size点云稀疏特征点不足增加COLMAP特征点数渲染模糊迭代不足增加训练迭代次数颜色失真光照变化使用RAW格式图像在GTX 10系显卡上的特殊配置# 修改submodules/diff-gaussian-rasterization/cuda_rasterizer/config.h #define MIN_GPU_ARCH 60 # 原为70经过这些步骤你应该能成功部署3DGS并处理自建数据集。如果在RTX 40系列显卡上遇到问题可以尝试降低CUDA架构版本到8.9。记住关键一点所有路径不要包含中文或特殊字符这能避免90%的奇怪错误。

更多文章