文章目录
- 一、Autodl租云服务器
- 二、环境部署
- 三、训练
- 四、结果可视化查看
- 五、自定义数据集处理和训练
- 六、评估
- References
一、Autodl租云服务器
博主镜像环境如下
也可直接使用别人创建好的镜像,参考基于AutoDL平台的3D_Gaussian_Splatting初体验 (博主为了练一下复现的能力就自己复现了,下述步骤算是比较简单了,应该可以一次成功)
二、环境部署
- cd autodl-tmp
- git clone https://github.com/graphdeco-inria/gaussian-splatting.git –recursive 建议这步先开代理(source /etc/network_turbo)再clone
- cd gaussian-splatting
- mamba env create –file environment.yml -y 这个过程可能出现Killed(由于博主上述前3步使用的是无卡模式(省钱),如果出现Killed说明无卡模式内存太小了,无法支撑环境创建,关机后重新开机(不使用无卡模式),然后cd autodl-tmp/gaussian-splatting,重新执行mamba env create –file environment.yml -y)
出现下述信息是正常的,如果不放心可以pip list一下检查一下包是否都安装上了
Installing pip packages: submodules/diff-gaussian-rasterization, submodules/simple-knn, submodules/fused-ssim, opencv-python, joblib
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
三、训练
参考基于AutoDL平台的3D_Gaussian_Splatting初体验
下载官方数据集https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/,进入后点击Scenes-650MB下载数据集,里面有两个文件夹db和tandt,其中tandt中有两个场景train和truck,使用这两个文件夹作为数据集即可。 我参考上述文章,将数据文件放在了data文件夹下,然后使用Xftp 8传到了服务器上(软件使用可参考基于AutoDL平台的3D_Gaussian_Splatting初体验,这里不赘述了)
使用下述命令训练-s后面为数据集输入路径、-m后面为结果输出路径,可以根据自己放置的位置灵活修改,下面以训练train为例:
python train.py -s data/train/ -m data/train/output
训练开始:
训练完成: 
四、结果可视化查看
参考基于AutoDL平台的3D_Gaussian_Splatting初体验
下载官方提供的https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip可视化工具


- 在D:\\3DGS\\results_view下打开终端
具体操作



- 命令行输入.\\viewers\\bin\\SIBR_gaussianViewer_app -m results_view/output(其中-m后面是指定的output的路径,可以根据自己存放的位置自由修改)【这步是参考基于AutoDL平台的3D_Gaussian_Splatting初体验这个文章的,但是博主遇到了错误,具体看下面】
- 上一步可能遇到的错误 如果报错,而且没有成功打开可视化软件(或者一闪而过)
D:\\3DGS\\results_view>.\\viewers\\bin\\SIBR_gaussianViewer_app -m results_view/output
[SIBR] — INFOS –: Initialization of GLFW
[SIBR] — INFOS –: OpenGL Version: 4.6.0 NVIDIA 546.30[major: 4, minor: 6]
可能是没有用管理员身份运行,重新用管理员身份运行进入对应目录
如果要从C盘切换到D盘路径:使用D:然后cd到results_view文件夹下
如果报错找不到文件(先检查是否在对应文件夹下有对应文件,如果存不存在则重新生成,如果存在则将命令改为
.\\viewers\\bin\\SIBR_gaussianViewer_app -m D:\\3DGS\\results_view\\output
即最后一部分使用绝对路径),如下信息:
D:\\3DGS\\results_view>.\\viewers\\bin\\SIBR_gaussianViewer_app -m results_view/output
[SIBR] — INFOS –: Initialization of GLFW
[SIBR] — INFOS –: OpenGL Version: 4.6.0 NVIDIA 546.30[major: 4, minor: 6]
[SIBR] ## ERROR ##: FILE C:\\Users\\alanvin.AD\\Repos\\Github\\3dgs\\SIBR_viewers\\src\\projects\\gaussianviewer\\apps\\gaussianViewer\\main.cpp
LINE 140, FUNC main
Could not find config file 'cfg_args' at results_view/output
可以使用w,a,s,d,q,e来进行位置移动,u,i,o,j,k,l来进行视角的移动。

五、自定义数据集处理和训练
需要安装colmap
- 使用mamba install -c conda-forge colmap -y安装colmap
- 使用colmap -h检查是否安装成功(若输出版本信息等则说明成功,如3.8版本,使用mamba安装的一般都是3.8的colmap)
- 以图片数据集为例,参考三、训练章节及项目readme

将图片数据放在data文件夹下(我在data/test/input(注意,必须 是input下)下放置了我自定义的图片数据,没有处理数据前没有distorted文件夹,我是处理完的(即执行完下述命令后的结构)) 
- 运行下述命令
python convert.py -s data/test
好像运行上述脚本后会新创建一个images文件夹存放图片
- 然后就可以开始训练了,执行下述命令
python train.py -s data/test/ -m data/test/output
-
成功开始训练

-
训练结束

-
可视化查看(和上述章节步骤类似,不赘述)

六、评估
如果需要评估,训练时需要加–eval参数,如下:
python train.py -s data/test –eval
运行完会在项目目录下的output文件夹下生成结果 使用命令
python render.py -m output/6493c935-6 -s data/test
其中output/6493c935-6是训练后的结果文件目录,data/test为原始图片文件目录
执行完成后会在output/6493c935-6目录下生成test和train文件夹,分别对应训练数据和测试数据, 每个目录下分 gt 和 renders 两个目录, 分别是素材原图和渲染结果图。
真实图片(测试集)
渲染后图片(测试集)
计算渲染结果和原图的 SSIM, PSNR 和 LPIPS,出现下述错误(可能是在服务器点击查看图片后,生成了.ipynb_checkpoints文件导致)
可以参考解决3DGS中评估模型时出现“Unable to compute metrics for model”的问题解决方案,但是博主试了没用,或者可以重新从六、评估章节重新训练,渲染,注意不要点开训练后的结果图片文件,当执行完上述命令再查看图片(博主这样做就可以了,可能是在服务器点击图片查看后就会生成.ipynb_checkpoints文件,从而导致上述报错)。
python metrics.py -m output/c488f5b6-6

References
- 基于AutoDL平台的3D_Gaussian_Splatting初体验
- 3D Gaussian splatting 02: 快速评估
- 解决3DGS中评估模型时出现“Unable to compute metrics for model”的问题


