前言

复现的是 3D Gaussian Splatting 的一篇比较经典的文章,源代码在 Github:3D Gaussian Splatting 。使用的是云算力训练,将训练结果下载到本地,使用官方提供的viewers进行结果的查看。在该过程中踩过些坑,所以在这里记录一下。

项目需要

  1. 不少于4G显存的本地Windows电脑
  2. 本地电脑需要安装 CUDA toolkit 12.X
  3. 租用一个配置足够的云算力,或者自己本地电脑显存足够

前期准备

源码准备

这个项目在源码上就有个坑,对于源码,如果直接使用

git clone https://github.com/graphdeco-inria/gaussian-splatting.git

或者在github上download压缩文件,那么下面的submodules文件夹中的diff-gaussian-rasterization和simple-knn, 都是空的,后面训练的时候会报错,显示没有这两个model。
在这里插入图片描述
你需要在github上分别进入这三个仓库,下载到对应的代码后,把他们放进submodules中,或者使用我找到的这个版本(不是最新的,但是我用这个能跑通) 百度网盘ps:感谢原作者分享 !
在这里插入图片描述

数据准备

数据使用的是官方提供的 COLMAP 数据集,在这个数据集中,一共有四组数据,db文件夹中是两个场景,tandt文件夹中是两个静物。我尝试的是tandt里面的truck(看很多博客上说,选择静物的训练速度要明显快于场景,没尝试过场景,后面可以验证一下。)下载链接

在这里插入图片描述

可视化工具准备

下载上面图片中给出的Viewers for Windows,在Windows环境中,配置比较简单。下载链接

环境搭建

我的本地环境是RTX4060,看 别人的复现记录 感觉应该可以尝试一下,但是我嫌下载的东西太多,后面想删都删不干净,干脆直接上云算力了。用的是 蓝耕云 ,现在云算力都大差不差,看价格也没啥太大差距。用这个是因为有算力券 -_- 。
租用啥的不说了,网上挺多教程,他们平台自己的文档也挺全面。我当时选的是11.8的cuda版本,12.1的应该也可以跑,(后面用viewers可视化的时候,我报了个cuda不是12的错,但是也没关系,租的linux服务器没可视化,我们可视化都是在本地,保证本地cuda是12就行)

在这里插入图片描述

对于云算力的操作界面,我还没习惯接Pycharm或者vscode,Pycharm接终端有些配置有点绕,用自带的JupyterLab,适配程度更是炸裂。目前用的是 xterminal ,目前见过的操作最人性化的SSH工具,对文件上传下载速度还有优化,界面还超级简洁美观。
在这里插入图片描述
因为在前面已经选择过pytorch镜像了,所以已经不需要再装pytorch了,需要到项目根目录使用终端,先把我们submodule文件夹中两个module装好。
在这里插入图片描述
注意终端的所在目录,不然会找不到

pip install plyfile
pip install submodules/diff-gaussian-rasterization/
pip install submodules/simple-knn/

等待安装完成就行,再缺啥就下啥,可能还有需要的库,当时没注意。
对于数据集,可以建一个 data 文件夹,把前面下载的数据集文件夹传上去,在这个应用中操作就很简单。

训练

在这里插入图片描述
训练:

python train.py -s [数据集的路径]

这个时候,如果不出意外的话,就能跑起来了,至于 博客1 里面 FFmpeg,colmap,好像如果有需要,可以再装,如果是colmap提示没安装,可以参考 colmap安装 ,博客给的建议,直接:

apt-get update
apt-get install colmap

搞编译麻烦的要命,我后面或许需要用到,但是目前来看还好,代码能跑。

可视化

训练正常结束,会生成一个output文件夹,直接把这个文件夹下载到本地。
在这里插入图片描述
前面说到下载那个viewers的文件,本地解压,然后把output放进去
在这里插入图片描述
在这个文件夹上使用cmd,输入指令

.\bin\SIBR_gaussianViewer_app -m output\52cxxxx

注意:这个可视化工具需要cuda toolkit 12.X,我原来装的是11.8,给我弹窗报错说 “由于找不到cudart64_12.dll”,有类似报错的可以去下载最新的cuda,cuda下载,当然,要看自己的电脑是否支持12的cuda,如果不支持,也没办法升级,这个教程很多。可能还需要下载visual studio,这个有报错的话,需要另找博客。
在项目的SIBR_views文件夹中可以看到官方给的readme,作为参考。
在这里插入图片描述

结果展示

在这里插入图片描述
里面窗口是可以拖动大小的,可以调整不同的模式调整视角,使用3090训练这个数据集的话,时间大概在18分钟左右,速度还是可以接受的,效果也还可以。

Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐