【基于3D Gaussian Splatting的三维重建】保姆级教程 | 数据集制作 | 训练可视化自己数据集 | torch | colmap | ffmpge | 全过程图文by.Akaxi

目录

一.【3DGS环境配置】

1.1 克隆3DGS仓库

1.2 安装Visual Studio 2022

1.2.1 下载Visual Studio 2022

1.2.2 更改环境变量 

1.3 创建环境

1.3.1 创建python环境 

1.3.2 离线安装torch包

1.3.3 安装依赖包

1.3.4安装子模块

(1)报错解决(vs2022降级到vs2019)

(2)再次安装子模块

二、【初步训练&可视化测试】

2.1 官方数据集训练与可视化

2.2 报错解决(显卡驱动升级至12.7)

2.2.1 错误尝试 

2.2.2 正确操作

2.3 可视化测试

三、【训练自己的数据集】

3.1 下载Colmap

3.2 下载Ffmpge

3.3 数据集制作

3.3.1 拍摄一段视频

3.3.2 视频转连续图片

3.3.3 连续图片转点云

3.4 训练数据集

3.5 可视化三维重建效果

四、【更多信息】

4.1 自己的数据集全场景

4.2 最终三维重建效果视频

4.3 参考链接


最终效果:

基于3D_Gaussian_splatting的“小王”三维场景重建

------------------------全文6614字88图一步一步完成大约耗时5h------------------------

所需软件以及环境: 

显卡:NVIDA RTX 3050

Nvidia显卡驱动:566.36

CUDA version:12.7

运行CUDA11.7&pytorch2.0.0

一.【3DGS环境配置】

1.1 克隆3DGS仓库

【指令】git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive

输入指令克隆仓库

克隆到本地文件夹里哦~

可以看到在本地文件目录是这样的

1.2 安装Visual Studio 2022

后面会遇到关于vs2022的报错哦, 这里装2022会与cuda11.7版本不适配哈,需要降级到vs2019,请参考1.3.4安装子模块报错解决章节

1.2.1 下载Visual Studio 2022

https://visualstudio.microsoft.com/zh-hans/vs/

去到官网下载Visual Studio,然后安装

选择使用C++的桌面开发:

然后更改安装路径:

指定一下安装路径:

然后点击右下角安装

耐心等待即可,大概5min

完成~

1.2.2 更改环境变量 

然后需要更改一下Path路径

在自己电脑目录下找到cl.exe文件:

【我的路径】E:\Akaxi_Microsoft_Visual_Studio_build_tools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64

然后打开【系统属性-高级-环境变量】

在环境变量中找到【系统变量】-【Path】点击它,然后点【新建】

将刚刚在目录下找到的cl.exe路径,如:
E:\Akaxi_Microsoft_Visual_Studio_build_tools\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
添加到系统变量Path路径里面即可

然后新建终端,输入命令【cl】测试是否有以上输出,有的话说明配置成功噜

1.3 创建环境

1.3.1 创建python环境 

在文件目录的environment.yml中可以看到对环境的要求,这里要求cuda11.6(我用的是cuda11.7),python至少3.8(我的是python3.8),然后pytorch至少是1.12.1 (我的是pytorch2.0.0),满足要求哦

查看自己用的cuda版本,输入指令

【指令】ncvv --version

 (出现cuda11.7即可)

然后开始创建一个python3.8.20的环境,我们使用的是anaconda工具对环境进行创建,关于anaconda的安装和使用参考Windows下的Anaconda详细安装教程_windows安装anaconda-优快云博客

使用conda指令创建环境: 

【指令】conda create -n 3dgs python=3.8.20

激活环境,看到里面有python3.8.20啦

【指令】conda activate 3dgs
【指令】conda list

继续下载:

【命令】conda install -c conda-forge vs2022_win-64

完成后可以看到:

1.3.2 离线安装torch包

因为环境是CUDA11.7,那我们pytorch选择2.0.0版本

我们最重要的是安装这个:pytorch-2.0.0-py3.8_cuda11.7_cudnn8_0.tar.bz2

去清华镜像网站:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/

找到【pytorch-2.0.0-py3.8_cuda11.7_cudnn8_0.tar.bz2】,点击下载到本地离线安装

【指令】pip install "E:\AAA_download\torch-2.0.0+cu117-cp38-cp38-win_amd64.whl"

注意这里的指令install后面需要接上你刚刚自己下载torch包的安装路径哦

成功

然后再装一些依赖:

【指令】pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117

成功啦:

1.3.3 安装依赖包

可以看到我们需要安装一些依赖包:

装一下plyfile

【指令】pip install plyfile

然后装一下tqdm

【指令】pip install tqdm

同理装一下opencv-python和joblib

【指令】pip install opencv-python
【指令】pip install joblib

当前conda环境如下

1.3.4安装子模块

进入目录继续下载子目录下的内容

【指令】pip install submodules/diff-gaussian-rasterization

(1)报错解决(vs2022降级到vs2019)

报错遇到

原因: 

可能是vs2022的问题,vs2022与我的cuda11.7冲突,降低一下版本

卸载vs2022,准备安装vs2019

注意:官网已经不再提供vs2019的版本啦,需要自己去找vs2019的下载包哦

下载完成后重复1.2.1和1.2.2的步骤

同理需要设置环境变量,找到cl.exe文件的路径哦:

降级成功~

(2)再次安装子模块

降级后再次尝试:

【指令】pip install submodules/diff-gaussian-rasterization

~~~~~~~~~成功啦~~~~~~~~~

原因总结,cuda11.7和vs2019适配,故前面装的2022不行哈

同理下载其他两个子模块:

【指令】pip install submodules/simple-knn
【指令】pip install submodules/fused-ssin

最终环境是这样的:

环境配置成功啦~~~~~~~~~~~~~~~~

二、【初步训练&可视化测试】

2.1 官方数据集训练与可视化

去到github官网下载 T&T+DB COLMAP (650MB) 4个场景的图片:

【github官网】https://github.com/graphdeco-inria/gaussian-splatting

补充:

这一排的链接分别是:
T&T+DB COLMAP (650MB) :包含了4个场景的图片,并已经通过convert.py进行colmap转换。可以直接用来做train.py训练测试。

Pre-trained Models (14 GB):论文中提到的各种场景的预训练模型。可以通过viewer查看效果

Viewers for Windows (60MB):作者已经编译好的SIBR点云查看工具,不需要按照教程再编译。

Evaluation Images (7 GB) :这是项目训练过程中,同一批数据在不同的算法之下训练出来的场景数据对比图片。

colmap下载(如需使用自己的图片训练):可以从照片集合中进行三维重建,可以识别运动结构 (Structure-from-Motion, SfM)、也可以进行多视图立体 (Multi-View Stereo, MVS)构建。

ImageMagick下载(如需针对自己的图片进行裁剪)

下载T&T+DB COLMAP (650MB),下载完成后输入指令(注意自己的路径):

【命令】
python train.py -s E:\AAA_3D_Gaussian-splatting\gaussian-splatting\my_download_data\tandt_db\db\playroom --iterations 6000

报错了,应该是cuda内存不足

这里在指令后面加上【--resolution 2】让分辨率减少一半试一试,指令:

【指令】
python train.py -s E:\AAA_3D_Gaussian-splatting\gaussian-splatting\my_download_data\tandt_db\db\playroom --iterations 6000 --resolution 2

然后这边在训练的过程中,新建一个终端,在目录下E:\AAA_3D_Gaussian-splatting\gaussian-splatting\viewers\bin执行命令进行可视化

【命令】.\SIBR_remoteGaussian_app.exe

可以看到:

【期间又是因为内存不足导致提前中断】

试一试再低一点:

【指令】
python train.py -s E:\AAA_3D_Gaussian-splatting\gaussian-splatting\my_download_data\tandt_db\db\playroom --iterations 6000 --resolution 4 --percent_dense 0.3

含义

--resolution 4 降低分辨率

--percent_dense 0.3 控制点云密度为 30%

【训练完成】

2.2 报错解决(显卡驱动升级至12.7)

2.2.1 错误尝试 

~~~~~~~~~~~以下皆是错误尝试哈~~~~~~~~~~~

但是又遇到报错,找不到cudart64_12.dll: 

好像是conda里面的cudatoolkit没有装(不是,是CUDA驱动和版本的问题应该是)

【命令】conda search cudatoolkit --info

找到对应版本的cudatoolkit并且找到url,点击手动下载(不使用命令的原因是因为网速太慢了)

下载完成后手动安装:

【命令】conda install --use-local E:\AAA_download\cudatoolkit-11.8.0-hd77b12b_0.conda

成功,但是还是没有用,这里手动将cudart64_12.dll放在目录下的话可以运行,但是会报兼容问题的错误

在网站可以找到cudart64_12.dll下载文件

网址:https://www.dllme.com/dll/files/cudart64_12

后面还是运行冲突了

2.2.2 正确操作

更新了Nvidia显卡驱动至版本566.36,且cuda version更新至12.7:

【并且将CUDART64_12.DLL文件复制到gaussian-splatting\viewers\bin目录下】

CUDART64_12.DLL文件下载网址:https://www.dllme.com/dll/files/cudart64_12

2.3 可视化测试

再次运行可视化成功:

【指令】.\SIBR_gaussianViewer_app -m E:\AAA_3D_Gaussian-splatting\gaussian-splatting\output\e4ad78d4-b

【结论】cuda version>=12.X;cuda-toolkit11.7; torch2.0.0+cu117;可行

三、【训练自己的数据集】

3.1 下载Colmap

Colmap:三维重建查看器 

【github网址】https://github.com/colmap/colmap/releases/tag/3.8

下载到文件夹下(新建一个tools文件夹)

然后将文件路径添加到环境变量

然后新建终端输入【命令】COLMAP即可打开软件

3.2 下载Ffmpge

Ffmpge:视频->连续图片工具

【官网】https://www.gyan.dev/ffmpeg/builds/

下载后解压到tools文件夹下

同样把bin目录添加到Path环境变量中

输入【ffmpeg –version】

安装成功~

3.3 数据集制作

3.3.1 拍摄一段视频

用手机围绕自己喜欢的物体拍摄一段视频吧,作为自己的数据集~

3.3.2 视频转连续图片

输入指令开始将拍到的视频转图片:

【指令】ffmpeg -i my_create_data/cake.mp4 my_create_input/input_%04d.png

 根据视频拍摄时长大小转换时间也会不同,我大概花了20min,视频转连续图片帧完成

在my_create_input文件中可以看到,这是我制作的一个蛋糕数据集

注意:这里目录结构要一致,不能取别名

3.3.3 连续图片转点云

连续图片帧转点云(耗时,大约2h左右)

【命令】python convert.py -s data

点云转换成功,准备开始训练

3.4 训练数据集

在PS E:\AAA_3D_Gaussian-splatting\gaussian-splatting>目录下开始训练

【指令】python train.py -s data -m data/output --resolution 2

 训练时间1.5h左右

3.5 可视化三维重建效果

迭代7000次,效果已经很不错了,进行可视化:

四、【更多信息】

4.1 自己的数据集全场景

视频转图片帧

【指令】ffmpeg -i my_data/input_1.mp4 my_data/input/input_%04d.png

一共生成1264张图片

然后图片转点云:

【指令】python convert.py -s my_data

特征点匹配(这一步很耗时)这里就是要进行26x26=676次

使用COLMAP查看:

训练后可视化:

效果蛮好,成功撒花~~~~~~~~~~~~~

4.2 最终三维重建效果视频

基于3D

4.3 参考链接

 【github官网】https://github.com/graphdeco-inria/gaussian-splatting

【Youtube教程】https://www.youtube.com/watch?v=UXtuigy_wYc

【github教程】https://github.com/jonstephens85/gaussian-splatting-Windows

【csdn博客】https://blog.youkuaiyun.com/weixin_48400654/article/details/139456202?spm=1001.2014.3001.5506

----------------------------------------------------------------------------------------------------

相信读到这里的朋友,一定是坚持且优秀的

给博主一个免费的赞👍吧

扫描二维码进博主交流群,问题交流 | 吹吹水 | 一起变得更加优秀

2025.3.16

两江重大卓工院

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Akaxi-1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值