本文基于github仓库-gaussian-splatting-Windows,分享本地实现3D高斯溅射的流程经验,包含遇到的问题和解决方案

环境配置

原文内容:

硬件要求:英伟达GPU,显存VRAM不低于24GB。最好是RTX 3090或更好

查看显存:

Win + R打开运行对话框,输入dxdiag,回车,选择显示选项卡。

image-20240805114911771

可以看到我这里是8GB的vram,但是问题不大,后面流程也可以正常实现,训练时间也没有过长训练前7000次时间没有过长,训练到30000次还是有点长!

接下来是软件环境配置,请按照本文提到的顺序依次配置。

Git,Conda是比较友好的,按照视频教程即可,只需要注意一下环境变量。

需要特别注意的有三个问题:

Visual Studio

一定要安装旧版本VS!项目的要求版本是 2017-2022,但并没有说明小版本号,2024年8月5日亲测最新版本的 VS 2022不兼容。

如何安装旧版本 VS

网上各种教程提供的旧版本都是2019或者2017版本,但是如果没有订阅则无法安装,并且版本过旧。所以我的解决方案是安装 VS 2022的旧版,即安装LTSC(长期服务)版本。

访问地址 https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-history

我这里选择的是17.8版本,没有社区版直接选择专业版,没有要求付费。

建议访问英文版本的网页,中文由于排版问题可能会导致内容显示不全,例如:

image-20240805120321620

image-20240805120332083

Cuda Toolkit

安装完 VS就可以顺利安装 Cuda Toolkit了。Github明确说明了不兼容 11.612以上的版本,所以我们选择 11.8即可。

下载链接: https://developer.nvidia.com/cuda-toolkit-archive

安装 Cuda Toolkit时会提示选择精简安装还是自定义安装。其实这里是翻译问题,精简安装的意思是安装所有组件,下方解释中有说明。

其中某个组件涉及 VS,所以一定要先安装 VS,再安装 Cuda Toolkit精简安装,就可以成功安装了。

cl.exe

这是一个 Cuda需要的编译器,安装 VS时已经自动安装到了本地,但是没有添加到环境变量,需要手动添加一下。位置在 C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64

添加环境变量之后可以重启生效,也可以打开终端使用命令

echo %PATH%

输出环境变量使其更新,这样就不需要重启电脑了。

处理上述事项之后,才可以正确创建 conda环境。

跑算法

数据准备

可以自己拍摄一段视频,使用 ffmpegconvert.py处理成符合输入要求的数据。

ffmpeg用于从视频提取图像,在终端中运行:

FFMPEG -i {path to video} -qscale:v 1 -qmin 1 -vf fps=${frame extraction rate} %04d.jpg

其中 ${frame extraction rate}为每秒钟提取出的图片数量。例如设置成2,一分钟的视频就会提取出120张图像。

convert.py用于从原始图片生成未失真的图像和SfM信息

python convert.py -s ${path to data}

可以

也可以直接使用 hugging face提供的数据:

https://huggingface.co/camenduru/gaussian-splatting/resolve/main/tandt_db.zip

参考自colab实现gaussian-splatting

运行脚本

python train.py -s ${path to data}

我的笔记本4060上跑数据集中的 train火车模型全程耗时30分钟左右。但后续训练发现速度会变得很慢甚至停滞,原因未知

脚本会存储训练到7000轮和30000轮的两个数据,算力资源有限情况下可以只训练到7000轮,因为到30000轮提升不大且耗时过长,指定训练次数:

python train.py -s ${path to data} --iterations 7000

输出结果会存储在 train.py同位置下 output文件夹中, 随机命名

展示结果

在Github仓库可以找到 pre-built的查看器,下载到本地,通过命令行运行并且指定目标路径即可。

SIBR_gaussianViewer_app -m ${path to output}

通过colab训练:

colab实现gaussian-splatting

训练完成后将结果保存到谷歌云盘,方便下载到本地:

from google.colab import drive
drive.mount('/content/drive')
!tar -czvf output.tar.gz output
!cp output.tar.gz ../content/drive/MyDrive
最后修改:2024 年 08 月 08 日
如果觉得我的文章对你有用,请随意赞赏