3D高斯溅射

复现 github 项目时踩了很多的坑,大概耗时 2 天时间完成了工具的运行。

本次试验使用了 76 张照片使用 16GB 的 4060TI 训练大概需要 1 个小时左右

一、准备工作

1、基本环境

2、克隆 3D Gaussian Splatting 库和用到的Module的库

根据官方库的文档,需要使用 --recursive ​命令克隆引用的其他库,实际使用下来发现实际引用的版本不正确,需要手工下载正确的版本

将官方库和需要引用的模块库分别下载后,将引用的库复制到官方库的 submodules ​文件夹下,然后将 glm 库复制到 diff-gaussian-rasterization 的 third_party ​目录下

至此所需要的所有环境都下载完成

二、环境的创建

1、各个工具的安装

  • conda 直接安装最新版本即可

    Anaconda 安装后需要注意要添加环境变量,如果不乐意终端一直显示一个(base)在每行开头的话可以选择使用 Anaconda Compos 的命令行进行

  • 其中 Colmap、FFMpeg 直接是编译好的文件解压到任意位置将 bin 目录添加到环境变量

    通过 colmap ​及 ffmpeg ​命令验证环境变量是否正常

  • ImageMagic 是一个安装程序,安装后执行:

    magick logo: logo.gif
    magick identify logo.gif

    正常回显则安装成功

  • CUDA 按照官方指引安装 11.8 版本(官方有说明在 12.X 环境下也可以运行),如果已经安装了高版本无法运行的话可以尝试并行安装 11.8 版本修改环境变量为 11.8

    通过 nvcc -V ​查看 conda 版本

  • VS2019 及 MSVC 的安装(这一步很重要)

    安装好 VS2019(安装 VS2019 生产工具亦可,主要是需要 2019 环境下的 MSVC2019 版本)后,在 Visual Studio Installer 中点击修改

9ff74c8cad744c462f819d22566f187c.png

然后安装 MSVC V142 版本

19480035f957cd9de0d4fd97b5d44042.png

安装好后将路劲添加到环境变量 C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64

在 cmd 执行 cl ​命令有回显表示环境正常

至此环境部分配置完成

2、创建 Conda 虚拟环境

# Win平台需要执行这行命令
SET DISTUTILS_USE_SDK=1
# 根据配置文件创建虚拟环境
conda env create --file environment.yml
# 执行完成后激活环境
conda activate gaussian_splatting

如果在创建环境步骤没有任何报错的情况下可以执行 第三步

三、训练和推理

1、训练图片集

准备图片集,将图片集放到示意的位置

图片集需要连续,最好是能够覆盖扫描物体全部的连续命名的照片

数据结构为(win11 下):

|---Gaussian Splatting

|---data  
    |---input  
        |---<image 0>  
        |---<image 1>  
        |---...
  • 图像栅格化处理

    python convert.py -s <location> [--resize] #If not resizing, ImageMagick is not needed

    其中为我们图片数据的位置,即data​文件夹

    --resize 是调整图片大小

    即运行python convert.py -s data​即可

    其他参数可自行探索

  • 训练

    python train.py -s <path to COLMAP or NeRF Synthetic dataset>

    <path to COLMAP or NeRF Synthetic dataset>​为栅格化后的图片地址,我们仍然填data

    执行python train.py -s data​即可开始训练

训练完成后会产生一个output​文件夹,如果训练时没有指定output的模型名称则为随机的字符在output​目录

2、通过官方提供的 WindowsViewer 推理和查看训练好的模型

根据官方文档,有一个针对win平台的编译好的二进制版本 viewers ⬅️点这里可以下载

将下载好的viewer解压后,进入bin​目录在此打开终端,执行.\SIBR_gaussianViewer_app.exe -m D:\3D\gaussian-splatting-main\output\2a4756d3-7​ 后边的地址为训练好的模型地址

然后就可以看到训练好的模型了!!

结尾

坑:

个人跑下来主要的坑有2个

  • Visual Studio版本的问题

    • 必须使用VS2019版本及对应的MVCC环境,用VS2022的与VS2019相同版本MVCC环境同样会报错
    • 安装好后报错cl.exe未找到等问题 需要添加环境变量
  • submodules​文件夹下的三个module的问题

    • 个人部署时,其中simple-knn已经不存在了,从github上找到该库完成的build
    • diff-gaussian-rasterization库与其使用的GLM库的版本问题

还有几个比较容易解决的问题是

  • CV2不存在,此问题可以尝试安装 opencv库解决

引用

高斯溅射流程_哔哩哔哩_bilibili 这位UP讲的非常详细,但还是踩了不少坑

记录:3DGS中submodules/diff-gaussian-rasterization安装和训练报错问题-CSDN博客

最后修改:2025 年 06 月 07 日
如果觉得我的文章对你有用,请随意赞赏