目录
最终效果:
基于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
两江重大卓工院