3DGS环境配置
- 欢迎来到3DGS
-
- 一、cuda、python、pytorch,cudatoolkit等环境配置
-
- [3DGS原文章建议使用 cudatoolkit=11.8,并且明确表明==cuda11.6版本==有问题。](#3DGS原文章建议使用 cudatoolkit=11.8,并且明确表明==cuda11.6版本==有问题。)
- 二、代码库克隆
- 三、colmap、imagemagick安装
- 四、ffmpeg安装
- 五、diff-gaussian-rasterization、fused-ssim和simple-knn的配置
- 六、训练
- 七、查看模型
欢迎来到3DGS
同时也欢迎大家评论交流,比如报错信息,看到速回
原文环境配置教程
原文,代码,数据集链接:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/
youtube教程链接:https://pan.baidu.com/s/1g8MeiWmLKCFp1ACjgLFc0A?pwd=3dgs
一、cuda、python、pytorch,cudatoolkit等环境配置
3DGS原文章建议使用 cudatoolkit=11.8,并且明确表明cuda11.6版本有问题。
本文建议采用11.8+(含11.8),以上的版本,来复现3DGS
原文说更完整的运行库,会有更好的运行结果:
- 原文的配置 ,cuda=11.8,python=3.7,pytorch=1.12.1,cudatoolkit=11.8;
javascript
SET DISTUTILS_USE_SDK=1 # Windows only
conda env create --file environment.yml
conda activate gaussian_splatting
- 本机的配置 ,cuda=12.4,python=3.9,pytorch=2.5.1,cudatoolkit=12.4;
- 如果需要自行安装pytorch相应版本请转到链接:https://pytorch.org/get-started/previous-versions/
javascript
conda create -n env1056 python=3.9
conda activate env1056
# 如果是cuda11.8,则采用:
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118
# 如果是cuda12.4,则采用:
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
#不推荐这种安装方法,本人屡试无果,无法正常使用torch,请高手指点:
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
二、代码库克隆
如果能科学上网,建议点击上面原文链接,下载到本地即可,以下步骤省。
需要提前下载并配置好Git环境,本文采用官方推荐的GitHub-cli进行下载,本系统为Linux-Ubuntu
javascript
sudo apt update
sudo apt install git
sudo apt install gh
如果正确安装会有以下提示:
(env1056) root@coo1h1npdmlqb-0:/stu-1064# gh repo clone graphdeco-inria/gaussian-splatting
Welcome to GitHub CLI!
To authenticate, please run `gh auth login`.
(env1056) root@coo1h1npdmlqb-0:/stu-1064# gh auth login #紧跟着下面是认证登录步骤
? What account do you want to log into? GitHub.com
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser
! First copy your one-time code: E23C-85DC
- Press Enter to open github.com in your browser...
! Failed opening a web browser at https://github.com/login/device
exec: "xdg-open,x-www-browser,www-browser,wslview": executable file not found in $PATH
Please try entering the URL in your browser manually
上面的失败原因的解决办法就是手动打开https://github.com/login/device,并输入code: E23C-85DC
三、colmap、imagemagick安装
colmap安装地址,https://anaconda.org/channels/conda-forge/packages/colmap/overview
或者:https://colmap.github.io/install.html

javascript
# 如果时cuda11.8,则采用
conda install conda-forge::colmap==3.8
# 如果时cuda12.4,则采用
conda install conda-forge::colmap==3.13.0
# 验证 COLMAP 版本
conda list | grep "colmap"
colmap 3.13.0 cuda_126h79fc88e_0 conda-forge
# 本机基于ubuntu22.04,安装的imagemagick
# 其它系统请参考https://imagemagick.org/script/download.php#linux
sudo apt install imagemagick libmagickwand-dev libmagickcore-dev
# 查看imagemagick是否安装成功
convert -version
Version: ImageMagick 6.9.11-60 Q16 x86_64 2021-01-25 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP(4.5)
Delegates (built-in): bzlib djvu fftw fontconfig freetype heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff webp wmf x xml zlib
convert.py配置修改
原文章convert.py 脚本用的是 旧版 COLMAP(≤3.5)的参数,--SiftExtraction.use_gpu 在 COLMAP 3.13.0 中已被重命名为 --FeatureExtraction.use_gpu,--SiftMatching.use_gpu 在 COLMAP 3.13.0 中已被重命名为 --FeatureMatching.use_gpu

javascript
# 查看colmap支持哪些命令,可以使用GPU加速
colmap feature_extractor --help | grep -E "use_gpu|GPU"
# 如果你采用的也是colmap3.13.0,则需要对convert.py做一点小修改
--SiftExtraction.use_gpu 修改为 --FeatureExtraction.use_gpu
--SiftMatching.use_gpu 修改为 --FeatureMatching.use_gpu
四、ffmpeg安装
下载安装链接https://launchpad.net/ubuntu/+source/ffmpeg,本机基于Ubuntu22.04,查看Linux系统命令:lsb_release -a

安装成功后解压到3DGS主目录下

进入到ffmpeg,并找到configure文件

javascript
#开始运行编译,基于configure所在当前目录执行以下代码
#configure会根据当前系统环境和指定参数生成makefile文件,为下一步的编译做准备
请执行: ./configure
#编译:根据生成的Makefile文件,指导当前平台的编译器编译所有的源码
请执行: make
#安装: 将编译和配置好了的库文件、头文件等内容统一存储到指定的位置
请执行: sudo make install
#检查是否安装成功
请执行: ffmpeg -version
执行过程中如果出现 nasm/yasm not found or too old. 则执行:
sudo apt-get install yasm
#本次处理,将视频放到了 /stu-1064/gaussian-splatting/data/xiaoyu/input 下面
#采用ffmpeg处理视频文件,本文的视频名称叫3dgs.mp4,质量为720p,目的是压缩训练时间
ffmpeg -i 3dgs.mp4 -vf "setpts=0.2*PTS" %04d.jpg
#处理完视频,把视频删除,仅保留图片即可,如果图片太多建议仅保留200~400张左右图片
#本次处理50秒的视频,生成了1800多张图,采用连续6张图为一组,每组仅保留1张图,最后仅保留300张图
#最后,input文件仅包含300张图
安装成功会有以下信息

处理成功会有以下图片

五、diff-gaussian-rasterization、fused-ssim和simple-knn的配置
如果你需要手动配置diff-gaussian-rasterization、fused-ssim和simple-knn,则看按下面教程走,否则省略
diff-gaussian-rasterization的安装配置
https://github.com/graphdeco-inria/diff-gaussian-rasterization/tree/3dgs_accel
javascript
# 下载到目录 ./gaussian-splatting/submodules 下,**请直接到链接下载!**
https://github.com/graphdeco-inria/diff-gaussian-rasterization/tree/3dgs_accel
# 接下来进入目录
./gaussian-splatting/submodules/diff-gaussian-rasterization/third_party/glm,在此目录下载:
https://github.com/g-truc/glm.git
# 进入目录到./gaussian-splatting/submodules/diff-gaussian-rasterization,执行依赖下载:
apt-get update && apt-get install -y libglm-dev
# 安装,请不要漏了小点
pip install .
#如果pip install .安装过程有cuda_home的报错,请删除原来的cuda和pip环境,使用pip再次安装
pip uninstall torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1
conda uninstall pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu118
#如果与当前系统cuda不匹配,请到pytorch官网安装相应cuda
https://pytorch.org/get-started/previous-versions/
# 验证 diff_gaussian_rasterization 是否正确安装
python # 当前目录输入python
Python 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:57:12)
[GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from diff_gaussian_rasterization import SparseGaussianAdam
>>> print(SparseGaussianAdam)
<class 'diff_gaussian_rasterization.SparseGaussianAdam'>
>>> exit()
以上是diff-gaussian-rasterization的安装配置教程 ,submodules/diff-gaussian-rasterization/diff_gaussian_rasterization/init .py应该有SparseGaussianAdam

fused-ssim和simple-knn的安装配置
javascript
# 分别克隆仓库到目录 ./gaussian-splatting/submodules 下,如果无法克隆,请直接到链接下载
git clone --recursive https://github.com/rahul-goel/fused-ssim.git
git clone --recursive https://github.com/camenduru/simple-knn.git
# 分别进入目录到
./gaussian-splatting/submodules/fused-ssim,
./gaussian-splatting/submodules/simple-knn
# 安装,请不要漏了小点,--no-build-isolation参数可确保正确链接 PyTorch 库
pip install . --no-build-isolation
# 验证 fused_ssim 是否正确安装
(env1056) root@coo1h1npdmlqb-0:/stu-1064/gaussian-splatting/submodules/fused-ssim# python
Python 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:57:12)
[GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from fused_ssim import fused_ssim
>>> print(fused_ssim)
<function fused_ssim at 0x7fc10d5341f0>
# 验证 simple_knn 是否正确安装, 这里需要**返回到主目录验证**
# 原因:在 simple-knn 子模块的源码目录(./simple-knn)下运行 Python,
此时 Python 会优先加载当前目录下的 simple_knn 源码文件夹(未编译的纯 Python 目录),
而非通过 pip install . 安装到 Conda 环境中的「编译后模块」(含 _C 扩展).
(env1056) root@coo1h1npdmlqb-0:/stu-1064/gaussian-splatting# python
Python 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:57:12)
[GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from simple_knn._C import distCUDA2
>>> print(distCUDA2)
<built-in method distCUDA2 of PyCapsule object at 0x7fca442d6d50>
>>> exit()
# 如果出现错误:ImportError: libc10.so: cannot open shared object file: No such file or directory
# 1. 查看当前 Conda 环境根目录(应输出 /opt/conda/envs/env1056)
echo $CONDA_PREFIX
# 2. 拼接 PyTorch 库路径,并用 ls 验证是否存在 libc10.so
PYTORCH_LIB_PATH="$CONDA_PREFIX/lib/python3.9/site-packages/torch/lib"
ls $PYTORCH_LIB_PATH | grep libc10.so
# 如果上面有输出:libc10.so,则临时配置(当前终端生效,快速验证)
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/python3.9/site-packages/torch/lib:$LD_LIBRARY_PATH
六、训练
javascript
# 在训练之前检查是否安装 tensorboard、tqdm、opencv-python、ply-file
(env1056) root@coo1h1npdmlqb-0:/stu-1064/gaussian-splatting/submodules/fused-ssim# python
Python 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:57:12)
[GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from torch.utils.tensorboard import SummaryWriter
>>> from tqdm import tqdm
>>> import cv2
>>> from plyfile import PlyData, PlyElement
>>> print(SummaryWriter)
<class 'torch.utils.tensorboard.writer.SummaryWriter'>
>>> exit()
# 如果没有安装tensorboard ,则执行:
conda install -y tensorboard
pip install tqdm
pip install opencv-python
pip install plyfile
# 训练之前需要用convert出来图片,执行:
python convert.py -s data\xioayu
# 训练代码,请进入到train.py所在目录,执行:
python train.py -s data\xiaoyu --optimizer_type sparse_adam
#如果你没有安装diff-gaussian-rasterization,则执行:
python train.py -s data\xiaoyu

七、查看模型
安装SIBR_viewer,https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip
javascript
<path to trained model>和SIBR_viewer安装目录,不要求同一目录,SIBR_viewer仅提供可视化图形界面,
本质上是用SIBR_viewer查看model,也就意味着你可以采用其它方式查看模型,
那么这个模型路径具体应是什么?如下Linux系统的例子:
(base) root@8n8r06eisffpi-0:/stu-1064/gaussian-splatting# ls
LICENSE.md arguments convert.py ffmpeg kip_matching output scene utils
README.md assets data full_eval.py lpipsPyTorch render.py submodules viewers
SIBR_viewers colmap environment.yml gaussian_renderer metrics.py results.md train.py viewers.zip
(base) root@a9g98eplim9d2-0:/stu-1064/gaussian-splatting/output# ls
70564eb6-a ef599c61-f view_output.zip
(base) root@a9g98eplim9d2-0:/stu-1064/gaussian-splatting/output/ef599c61-f# ls
cameras.json cfg_args events.out.tfevents.1766259067.bgeegjakuk8rm-0.39847.0 exposure.json input.ply point_cloud
# 可以看到有训练完成后生成的 output 文件,output里面的 70564eb6-a 和 ef599c61-f 就是你训练出来的模型
# 上面例子的<path to trained model>为:/stu-1064/gaussian-splatting/output/ef599c61-f
(base) root@a9g98eplim9d2-0:/stu-1064/gaussian-splatting/output/ef599c61-f# pwd
/stu-1064/gaussian-splatting/output/ef599c61-f
javascript
# 上面例子是Linux,下面操作是在window
# SIBR_gaussianViewer_app.exe在.\viewer\bin目录下,cmd进入.\viewer\bin目录下,执行:
SIBR_gaussianViewer_app.exe -m <path to trained model>
如果有报错:cudart64_12缺失,请到链接下载相应版本:
https://www.dllme.com/dll/files/cudart64_12/versions
如果你是直接点上面链接下载的SIBR_viewer,那么应该是在.\viewer\bin目录下,如果不是自行查看viewer的安装目录,cudart64_12具体放哪里,如下图:
