目录
- 3D Gaussian splatting 01: 环境搭建
- 3D Gaussian splatting 02: 快速评估
- 3D Gaussian splatting 03: 用户数据训练和结果查看
- 3D Gaussian splatting 04: 代码阅读-提取相机位姿和稀疏点云
- 3D Gaussian splatting 05: 代码阅读-训练整体流程
- 3D Gaussian splatting 06: 代码阅读-训练参数
- 3D Gaussian splatting 07: 代码阅读-训练载入数据和保存结果
- 3D Gaussian splatting 08: 代码阅读-渲染
3D Gaussian splatting
3D Gaussian splatting 是一种新的渲染技术, 使用 3D Gaussian 表示3D场景, 通过 Splatting 技术渲染, 能使用较少的训练时间实现高还原度的视觉效果. 其论文 3D Gaussian Splatting for Real-Time Radiance Field Rendering 由 Inria 发布于 SIGGRAPH 2023. 本系列的内容主要说明如何搭建环境运行其演示项目 gaussian-splatting, 并基于此分析其技术原理和运行机制.
相关链接
- 项目 https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
- 论文 https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_low.pdf
- GitHub https://github.com/graphdeco-inria/gaussian-splatting
环境准备
因为转换和训练涉及到CUDA, 硬件上需要支持CUDA的显卡, 并且对显存有一定要求, 建议使用显存8GB及以上的显卡.
下面以Ubuntu22.04/24.04为例说明如何安装环境. 安装涉及到如下几个方面
- CUDA驱动
- CUDA Toolkit
- Colmap
- Python环境
- Conda/Miniconda
- Pytorch
安装必要的库和依赖
操作系统可以使用 Ubuntu 22.04 或 24.04
apt update
apt install build-essential ninja-build
Ubuntu 22.04 默认的 GCC 版本是 11, Ubuntu 24.04 默认的 GCC 版本是 13, 因为 gaussian-splatting 这个项目在 GCC 13 下 pip install submodules 时会报编译错误, 如果用 24.04 需要使用 update-alternatives 将系统 GCC 版本换成 11.
安装显卡CUDA驱动
如果已经安装好合适版本的驱动可以跳过这部分.
查看硬件信息, 检查显卡是否已经被检测到
# PCI设备
lspci -v | grep -i nvidia
# 或者查看显示设备
sudo lshw -C display
(如果原先使用了开源仓库驱动或版本不对) 删除原有的 nvidia 驱动
sudo apt purge 'nvidia-*'
sudo apt autoremove --purge
sudo apt clean
驱动有两种安装方式
(选项1)使用 ubuntu 仓库的 nvidia 驱动(nvidia开头)
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
列出驱动的各个版本
ubuntu-drivers devices
选择需要的版本安装, 例如 对应CUDA12.4是nvidia-driver-550
sudo apt install nvidia-driver-XXX
(选项2)使用 nvidia 的驱动仓库(cuda开头)
先下载对应Ubuntu版本的 cuda-keyring
- Ubuntu22.04 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
- Ubuntu24.04 https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
用dpkg安装, 然后apt update一下
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt update
这时候可以查询到能安装的版本
apt-cache search cuda-drivers-*
挑选自己需要的版本安装, 例如 cuda-drivers-550对应CUDA12.4, cuda-drivers-570对应CUDA12.8, 如果直接安装 cuda-drivers, 会默认安装当前稳定版的最高版本
sudo apt install cuda-drivers-550
检查驱动安装结果
用nvidia-smi
查看CUDA版本
(base) root@ubuntu22:~# nvidia-smi
Sun Mar 30 17:21:08 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.78 Driver Version: 550.78 CUDA Version: 12.4 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
安装 CUDA Toolkit
从 cuda-toolkit-archive, 选择安装对应当前CUDA版本的 CUDA Toolkit, 对应上面的 CUDA 版本为12.4, 因此下载 Cuda Toolkit 12.4.1
用 deb(local) 的方式安装
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
dpkg -i cuda-repo-ubuntu2204-12-4-local_12.4.1-550.54.15-1_amd64.deb
cp /var/cuda-repo-ubuntu2204-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/
apt update
apt install cuda-toolkit-12-4
检查安装结果
(base) root@ubuntu22:~/Download# /usr/local/cuda/bin/nvcc -V
安装完成后, 需要将CUDA 可执行文件加入系统路径, 将CUDA链接库加入系统链接库. 编辑 ~/bashrc, 在最后添加
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
export PATH=$PATH:$CUDA_HOME/bin
退出后重新进入命令行, 执行nvcc -V检查环境是否生效
(可选)安装 nvtop
nvtop可以用于在命令行实时监控nvidia显卡运行时状态, 显示GPU温度, GPU使用率, 显存使用率等
sudo apt install nvtop
安装 Colmap
Colmap用于处理输入的图片集, 生成相机参数和稀疏3D点云. 如果仅使用 gaussian-splatting 提供的测试数据集进行评估, 可以跳过此安装. 如果打算用自己的数据集创建3D场景, 则需要安装colmap.
- https://github.com/colmap/colmap
- https://colmap.github.io/
在 Ubuntu 22.04 下通过apt install colmap
直接安装的不支持 CUDA 加速, 需要通过编译安装
- https://github.com/colmap/colmap/issues/2366
- https://github.com/dberga/nerfstudio/blob/main/INSTALL.md
- https://blog.csdn.net/Gloamirror/article/details/132426070 问题处理
Make sure you configure and compile from a consistent dev environment. It seems you are using anaconda. You probably want to start from a clean build folder and make sure you are not in a virtual anaconda environment.
编译步骤 (参考 https://github.com/dberga/nerfstudio/blob/main/INSTALL.md )
# 安装依赖
sudo apt-get install \
git \
cmake \
ninja-build \
build-essential \
libboost-program-options-dev \
libboost-filesystem-dev \
libboost-graph-dev \
libboost-system-dev \
libeigen3-dev \
libflann-dev \
libfreeimage-dev \
libmetis-dev \
libgoogle-glog-dev \
libgtest-dev \
libsqlite3-dev \
libglew-dev \
qtbase5-dev \
libqt5opengl5-dev \
libcgal-dev \
libceres-dev
git clone https://github.com/colmap/colmap.git
cd colmap
mkdir build
cd build
# 修改为对应显卡的架构, p104-100对应61, rtx2080ti 对应75, rtx4060ti 对应89
cmake .. -GNinja -DCMAKE_CUDA_ARCHITECTURES=75
sudo chown -R $(whoami) .
ninja -j1
sudo ninja install
Colmap的使用
- https://www.youtube.com/watch?v=pvvnPib4lFA
- https://www.youtube.com/watch?v=mUDzWCuopBo
- https://www.youtube.com/watch?v=Zm1mkOi9_1c&pp=ygUGY29sbWFw
- https://zxl19.github.io/colmap-note/
Pythohn环境准备
安装 Conda
Conda 是 Python 版本环境管理工具, 安装 Conda 的简化版 Miniconda, 安装说明: https://www.cnblogs.com/milton/p/18023969
启用conda, 可以将下面的命令存为env文件, 每次通过source
命令加载
eval "$(/home/milton/miniconda3/bin/conda shell.bash hook)"
创建一个conda环境, python版本为 3.10.12
conda create --name 3dgs python=3.10.12
conda activate 3dgs
安装 Pytorch
使用 conda 启用上面建立的 3dgs 环境, 在这个环境里安装 Pytorch. 访问 Pytorch 官网 https://pytorch.org/
从 2.6 开始, conda 方式安装不再可用, 并且 2.6 只支持 11.8 和 12.4, 安装命令会随版本变化, 所以请以网站上生成的命令为准. 如果直接使用官方源很慢, 可以在安装命令最后添加-i
参数指定使用国内源
# 清华:https://pypi.tuna.tsinghua.edu.cn/simple
# 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple
pip3 install torch torchvision torchaudio -i https://pypi.mirrors.ustc.edu.cn/simple
安装其它Python组件
pip install plyfile tqdm tensorboard six opencv-python
安装项目模块
导出项目
git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
保持 conda 启用上面建立的 3dgs 环境, 在此环境下安装项目核心模块
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
问题处理
we could not find ninja or g++
没安装编译需要的依赖
sudo apt-get update
sudo apt install build-essential
sudo apt-get install ninja-build
No such file or directory: ‘:/usr/local/cuda-11.8/bin/nvcc
没有设置 CUDA_HOME
export CUDA_HOME=/usr/local/cuda