【3DGS复现】Autodl服务器复现3DGS《简单快速》《一次成功》《新手练习复现必备》
文章目录
- 一、Autodl租云服务器
- 二、环境部署
- 三、训练
- 四、结果可视化查看
- 五、自定义数据集处理和训练
- References
一、Autodl租云服务器
博主镜像环境如下
也可直接使用别人创建好的镜像,参考基于AutoDL平台的3D_Gaussian_Splatting初体验
(博主为了练一下复现的能力就自己复现了,下述步骤算是比较简单了,应该可以一次成功)
二、环境部署
- 初始化
base
环境
conda init
初始化base环境,执行完成后重新打开终端 - 克隆项目
cd autodl-tmp
git clone https://github.com/graphdeco-inria/gaussian-splatting.git --recursive
建议这步先开代理(source /etc/network_turbo
)再clone
- 安装
mamba
(兼容conda
,但比conda
快)
conda install -n base -c conda-forge mamba
如果出现ProxyError: Conda cannot proceed due to an error in your proxy configuration.
错误,则表明是代理的问题,使用unset http_proxy && unset https_proxy
这个命令关闭第2步中开启的代理,然后重新安装mamba
。 - 根据项目中环境
yml
文件创建虚拟环境
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, joblibWARNING: 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可视化工具
- 将训练后的
data/train/output
路径的output文件夹传到本地电脑,我是放在了D:\3DGS\results_view\output
这里,可以自由定义,然后将下载后的viewers
解压到results_view
下(注意这时候解压的时候可能是将viewers
里面的文件都解压出来了,这时候需要在results_view
下创建viewers
文件夹,然后存放解压后的内容在viewers
下,如果正常解压则不用管这步)最后,文件结构是下述这样即可(保证output
文件夹和viewers
文件夹在同一目录下)。
- 查看重建效果
- 在
D:\3DGS\results_view
下打开终端
具体操作
- 如图点击路径位置
- 在1步骤中位置输入
cmd
- 按回车键
- 命令行输入
.\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.cppLINE 140, FUNC mainCould 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
) - 博主还没有在服务器上处理或训练自己的数据集(待更)
References
基于AutoDL平台的3D_Gaussian_Splatting初体验