目录
- 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环境
安装必要的库和依赖
操作系统可以使用 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
复制代码 列出驱动的各个版本选择需要的版本安装, 例如 对应CUDA12.4是nvidia-driver-550- sudo apt install nvidia-driver-XXX
复制代码 (选项2)使用 nvidia 的驱动仓库(cuda开头)
安装说明: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/index.html
先下载对应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使用率, 显存使用率等安装 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
复制代码 来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |