3d gaussian-splatting源码运行及结果展示

笔者是在windows下配置的环境

源码地址及官方教程

github gaussian-splatting
官网给出了详细的配置教程和视频解说
记录一下个人的部署过程

环境需求

硬件需求

具有计算能力 7.0+ 的带有CUDA的GPU
24G显存

软件需求

python版本我没注意到明确说明,3.7以上应该就可以(我用的3.12)
Anaconda (python环境管理,网上教程很多)
支持PyTorch扩展的C++编译器(VS2019)
支持PyTorch扩展的CUDA SDK 11 (笔者及官方使用的是11.8)(在cmd中使用命令nvcc --version

第三方应用

  1. ffmpeg 是一款免费,开源的音视频编解码工具及开发套件,在这里只需要用它来将视频分割成图片序列
    下载链接
    在这里插入图片描述
    两个都可以,上面是基础版,下面是完整版
    解压缩,然后添加环境变量到加压目录下的bin文件夹(这里我把下载后的文件名改过了)
    在这里插入图片描述

  2. COLMAP是一款开源的结合SfM(Structure-from-Motion)和MVS(Multi-View Stereo)的三维重建Pipeline
    GitHubRelease页下载
    在这里插入图片描述
    如果电脑已经配置了CUDA可以下载没有CUDA的包,但是我们前面应该是配置了CUDA的环境,这里下载no-cuda版本就可以了。
    解压缩,然后添加系统环境变量到加压文件夹路径就可以了
    在这里插入图片描述

  3. ImageMagick 图像批处理的软件
    下载地址
    在这里插入图片描述
    选择一个路径,勾选添加环境变量,无脑安装。

源码下载

可以用git也可以直接下载

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

Conda环境

打开一个anaconda prompt,cd到gaussian-splatting源码所在路径,例如D:\3DGaussian\gaussian-splatting
一次输入下面命令

SET DISTUTILS_USE_SDK=1 # Windows only
conda env create --file environment.yml
conda activate gaussian_splatting

可能会在第二步出错,官方给出的方案是(注意在源码所在路径下)执行以下代码

conda activate gaussian_splatting
pip install submodules\diff-gaussian-rasterization
pip install submodules\simple-knn

数据集准备

  1. 用手机相机围绕一个物体拍摄一段视频

  2. 比如拍摄一个可乐瓶视频,放到<gaussian-splatting source>\data\cola路径下

  3. 在<gaussian-splatting source>\data\cola下执行ffmpeg -i {video} -qscale:v 1 -qmin 1 -vf fps={fps} %04d.jpg,其中{video}参数是视频路径,{fps}参数是指每秒的获取的帧数,笔者拍摄了15秒的视频每秒2帧。

  4. 分割结果应该是若干张图片
    在这里插入图片描述

  5. 把图片放到<gaussian-splatting source>\data\cola\input下
    在这里插入图片描述

  6. 在conda环境gaussian_splatting下,cd到<gaussian-splatting source>目录下执行命令
    python convert.py -s <location>
    <location>指的是<gaussian-splatting source>\data\cola路径,也就是input的上级目录
    执行完成后生成的内容大概是这样
    在这里插入图片描述

  7. 然后执行以下命令
    python train.py -s <path to COLMAP or NeRF Synthetic dataset>
    <path to COLMAP or NeRF Synthetic dataset>是input的上级目录<gaussian-splatting source>\data\cola
    开始训练
    训练结果在路径<gaussian-splatting source>\output\cola_7000\point_cloud\iteration_7000路径下
    在这里插入图片描述
    用文本编辑器打开能看到各种参数
    在这里插入图片描述

  8. 渲染结果,命令中的路径为<gaussian-splatting source>\output\cola_7000\,因为我这里只存储了7000次迭代的结果

python render.py -m <path to trained model> # Generate renderings

渲染结果保存在<gaussian-splatting source>\output\cola_7000\train\下面
9. 评估结果,路径与渲染的路径相同

python metrics.py -m <path to trained model> # Compute error metrics on renderings

交互式窗口

windows下的预编译版本链接下载
下载完后是一个压缩包,解压缩即可。
在这里插入图片描述
SIBR_remoteGaussian_app.exe 这个程序可以在训练的同时查看训练情况,并且随着迭代更新显示结果,可以双击运行,也可以命令行运行
SIBR_gaussianViewer_app.exe 这个可以用来查看训练的结果
比如我的模型保存在<gaussian-splatting source>\output\cola_7000\point_cloud\iteration_7000路径下
那么我在命令行调用以下命令
SIBR_gaussianViewer_app.exe -m D:\3DGaussian\gaussian-splatting\output\cola_7000
就可以将训练好的模型可视化了。
在这里插入图片描述
最后,祝大家科研顺利,有什么问题欢迎讨论,本人能力有限,仍需学习!

  • 18
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于C++&OPENCV 的全景图像拼接 C++是一种广泛使用的编程语言,它是由Bjarne Stroustrup于1979年在新泽西州美利山贝尔实验室开始设计开发的。C++是C语言的扩展,旨在提供更强大的编程能力,包括面向对象编程和泛型编程的支持。C++支持数据封装、继承和多态等面向对象编程的特性和泛型编程的模板,以及丰富的标准库,提供了大量的数据结构和算法,极大地提高了开发效率。12 C++是一种静态类型的、编译式的、通用的、大小写敏感的编程语言,它综合了高级语言和低级语言的特点。C++的语法与C语言非常相似,但增加了许多面向对象编程的特性,如类、对象、封装、继承和多态等。这使得C++既保持了C语言的低级特性,如直接访问硬件的能力,又提供了高级语言的特性,如数据封装和代码重用。13 C++的应用领域非常广泛,包括但不限于教育、系统开发、游戏开发、嵌入式系统、工业和商业应用、科研和高性能计算等领域。在教育领域,C++因其结构化和面向对象的特性,常被选为计算机科学和工程专业的入门编程语言。在系统开发领域,C++因其高效性和灵活性,经常被作为开发语言。游戏开发领域中,C++由于其高效性和广泛应用,在开发高性能游戏和游戏引擎中扮演着重要角色。在嵌入式系统领域,C++的高效和灵活性使其成为理想选择。此外,C++还广泛应用于桌面应用、Web浏览器、操作系统、编译器、媒体应用程序、数据库引擎、医疗工程和机器人等领域。16 学习C++的关键是理解其核心概念和编程风格,而不是过于深入技术细节。C++支持多种编程风格,每种风格都能有效地保证运行时间效率和空间效率。因此,无论是初学者还是经验丰富的程序员,都可以通过C++来设计和实现新系统或维护旧系统。3

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值