3DGS(3D Guassian Splatting)部署验证+个人数据训练

这篇具有很好参考价值的文章主要介绍了3DGS(3D Guassian Splatting)部署验证+个人数据训练。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我是先阅读一遍官方文档,后来发现版本有要求,看了半天,后来下定决心尝试下和官方要求的不一样的环境是否可以运行。

结论:python3.10 +cuda12.3+pytorch2.2.1可以运行。

以下过程供大家参考!

部署

硬件情况

GPU:4090

软件情况

cudatoolkit

visual studio 2022

win11

conda

执行部署

按照以下步骤依次操作。

git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
cd gaussian-splatting
conda create -n gaussian_splatting python=3.10
conda activate gaussian_splatting
conda install -c conda-forge vs2022_win-64
# 安装pytorch 2.2.1版本,cuda 12.1
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
SET DISTUTILS_USE_SDK=1
pip install submodules\diff-gaussian-rasterization
pip install submodules\simple-knn
pip install plyfile
pip install tqdm

参考到的几个issue截图

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

下载数据

按需下载 T&T+DB COLMAP (650MB) | Pre-trained Models (14 GB) | Viewers for Windows (60MB) | Evaluation Images (7 GB) 等数据。

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 <path to COLMAP or NeRF Synthetic dataset> --iterations #迭代次数
# 实际代码
python train.py -s E:\3dgs-data\tandt_db\db\playroom --iterations 6000

注意:如果不指定输出目录,默认存储在项目根的output文件中

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

训练过程查看Network Viewer

使用下载的Viewers for Windows (60MB)中的remoteGuassian查看。它会自动识别训练过程中开放的IP端口并连接。

APP地址:SIBR安装目录下的/bin/SIBR_remoteGaussian_app

执行命令:

# 进入目录的bin文件夹,执行exe文件。或者双击执行
cd XXXX\viewers\bin>
.\SIBR_remoteGaussian_app.exe

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

模型输出

训练完毕后,训练好的模型会输出在output文件夹(或者指定的文件夹下)

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

训练结果点云查看Real-Time Viewer

进入下载好的Viewers for Windows (60MB)的bin目录,右键在终端中打开,然后输入:

# 进入目录的bin文件夹,执行exe文件。或者双击执行
cd XXXX\viewers\bin>
.\SIBR_gaussianViewer_app.exe  -m D:\3DGS\gaussian-splatting\output\ad910f74-4
# -m是指定模型存放的文件夹

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

下图是我通过命令查看的预训练文件Pre-trained Models (14 GB)的其中一个场景。(每个文件都是一个预训练的场景)

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

SIBR镜头操作命令

通过W, A, S, D, Q, E 移动相机位置(前后左右高低),通过I, K, J, L, U, O 移动相机角度(左转/右转/下转/上转/顺时针转/逆时针转)。

模型评估Evaluation

训练过程中分段保存结果

python train.py -s <path to COLMAP or NeRF Synthetic dataset> --eval # Train with train/test split

对于render.py、metrics.py这两个功能,我还没有仔细研究,不做介绍。

使用自己的图片数据训练

准备数据

我网上看到很多人直接使用手机拍摄的视频抽帧形成的照片,复现效果也不错。

大家可以尝试用手机拍摄试试看。我的数据是从网上找的视频转换成图片的。

视频图像按帧输出图片(按需)

如果是从视频中抽帧形成训练图片,需要使用工具,推荐使用ffmpeg

ffmpeg下载地址

Builds - CODEX FFMPEG @ gyan.dev

下载ffmpeg-git-full.7即可,下载完成后如果要命令行使用ffmpeg,则需要将目录加入系统环境便来给你PATH路径中。

ffmpeg命令

执行以下语句,可将视频切分为图片

ffmpeg -i input.mp4 -vf "setpts=0.2*PTS" input/input_%4d.jpg
# -i input.mp4:指定输入视频文件为 input.mp4。

# -vf "setpts=0.2*PTS":这是一个视频过滤器选项,其中 setpts 指令用来设置帧的时间戳(Presentation TimeStamps)。这里的表达式 0.2*PTS 表示将当前帧的时间戳乘以0.2,这意味着抽取出来的帧之间的间隔被拉长了5倍,所以生成的图像序列将以视频原始速度的五分之一进行播放。

# input/input_%4d.jpg:这是输出文件格式及路径,其中 %4d 是一个格式化占位符,它会被自增的整数所替换,确保每个输出文件名是唯一的。例如,输出的第一帧将会被保存为 input/input_0001.jpg,第二帧为 input/input_0002.jpg,依此类推。同时,输出目录被指定为 input/ 目录下。

数据转换convert

使用官方提供的revert.py转换器,完成图像数据转换。转换需要用到COLMAP和ImageMagick

工具安装COLMAP

Releases · colmap/colmap

从github下载最新的colmap

将安装路径加入环境变量,环境变量添加后,需要打卡新的终端之后,colmap才能被找到,convert语句才能生效。

执行图像转换convert.py

python convert.py -s <location> [--resize] #If not resizing, ImageMagick is not needed

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

使用colmap命令直接转换数据,不使用convert(如需)

可能是因为我自己网上找的视频质量不行,导致使用convert.py进行转换时,只有两张照片有效(249张照片,convert执行完毕后,image文件夹中只有两张),所以网上找了别人的教程,直接使用clomap进行操作,但是colmap的这个命令执行时间太长了,249张照片执行了1个多小时。应该是这个命令做了其他3dgs不需要的操作。

colmap automatic_reconstructor --workspace_path . --image_path ./images --sparse 1 --camera_model SIMPLE_PINHOLE
# colmap automatic_reconstructor: 这是调用COLMAP程序中的自动重建模块,它会自动完成特征提取、匹配、重投影误差优化和三角化等步骤,以生成场景的稀疏3D点云模型。
# --workspace_path .: 指定了工作空间路径为当前目录(.),在这个路径下,COLMAP将存储中间结果以及最终的重建输出文件。
# --image_path ./images: 定义了图像数据集所在的路径,即所有参与重建的图片都位于./images目录下。
# --sparse 1: 这个参数表示进行稀疏重建(与密集重建相对),即只构建出场景中的关键点及其对应关系,并通过这些信息生成一个由稀疏点云组成的三维模型。
# --camera_model SIMPLE_PINHOLE: 指定使用的相机模型为“简单针孔模型”(Simple Pinhole Model)。这意味着COLMAP在进行重建时将假设相机遵循的是最基础的几何投影模型,其中不包括像径向畸变这样的复杂因素。

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d

参考自:

用3D高斯泼溅(3DGS)重建自己的数据-CSDN博客

工具安装ImageMagick

下载后,按官方文档指导,在需要对图像进行编辑时使用。

ImageMagick是一款强大的、开源的跨平台图像处理软件套件,它主要用于查看、编辑、转换、合成以及创建位图图像。ImageMagick支持超过200种不同的图像文件格式,包括但不限于PNG、JPEG、GIF、TIFF、BMP、PDF、Postscript等

训练自己的数据

按照上述“训练”章节的训练语句执行。

我的训练结果如下图:(图片很渣,所以效果不好。得亏是效果不好,不然要露脸了)

3DGS(3D Guassian Splatting)部署验证+个人数据训练,3DGS,3D,3d文章来源地址https://www.toymoban.com/news/detail-838191.html

到了这里,关于3DGS(3D Guassian Splatting)部署验证+个人数据训练的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UTAustin最新提出!无相机姿态40秒重建3DGS方法

    作者:Zhiwen Fan | 编辑:3DCV 添加微信:dddvision,备注:3D高斯,拉你入群。文末附行业细分群 标题:InstantSplat: Unbounded Sparse-view Pose-free Gaussian Splatting in 40 Seconds 链接:https://arxiv.org/pdf/2403.20309.pdf 本文介绍了一种名为InstantSplat的高效框架,用于从稀疏无位姿的图像中快速重建

    2024年04月27日
    浏览(36)
  • 球谐函数的一些理解(基于3DGS)+Unity的可视化

    1.背景 读3DGS的相关文章的时候提到了一些球谐函数的概念,有些不理解,结合下面的文章做一些扩展 2.参考链接 球谐函数介绍(Spherical Harmonics) - 知乎 (zhihu.com) 球谐函数一:基础理论 - 知乎 (zhihu.com) 3.细节 这里是整篇文章的最关键的举例子解释,但是由于对极坐标不太了解

    2024年04月08日
    浏览(72)
  • 实验笔记之——Ubuntu20.04配置nvidia以及cuda并测试3DGS与SIBR_viewers

    之前博文测试3DGS的时候一直用服务器进行开发,没有用过笔记本,本博文记录下用笔记本ubuntu20.04配置过程~ 学习笔记之——3D Gaussian Splatting源码解读_3dgs运行代码-CSDN博客 文章浏览阅读3.2k次,点赞34次,收藏62次。高斯模型的初始化,初始化过程中加载或定义了各种相关的

    2024年04月15日
    浏览(43)
  • 3D Gaussian Splatting(高斯飞溅3D算法) Windows系统部署(简版) |导入到Unity

    目录 前言 1、安装python (1)下载地址 (2)添加环境变量 2、安装CUDA         3、安装git (1)下载地址 (2)检查是否安装成功 4、安装visual studio 5、安装COLMAP (1)下载地址 (2)添加环境变量 6、安装ffmpeg (1)下载地址 (2)添加环境变量 (3)检查是否安装成功 7、安

    2024年01月15日
    浏览(48)
  • 3D Gaussian Splatting 训练自己的数据scene

    目录 训练教程: 1 colmap安装: 2.1生成初始点云 2.2训练流程 读ColmapScene

    2024年03月25日
    浏览(55)
  • 基于3D Gaussian Splatting与NeRF实现三维重建(使用IPhone创建数据集)

    本项目参考YouTube中博主( Spectacular AI ) 详细可了解:SpectacularAI官网 本文项目构建在Windows与Ubuntu中,二者在项目构建中并未有实质性的差距,可相互参考环境与参数的配置,本文即在Windows11(已配置好CUDA)中进行。 Windows下配置CUDA的方法可参考 :《TensorFlow-GPU-2.4.1与CUDA安

    2024年01月17日
    浏览(50)
  • 【3D-GS】Gaussian Splatting SLAM——基于3D Gaussian Splatting的全网最详细的解析

    3D Gaussian Splatting for Real-Time Radiance Field Rendering 论文:link code:link video:link 1. 开山之作 Nerf 一切的开始都是起源于 NERF 开山之作 这里由详细的学习与拆解 【NERF】入门学习整理(一) 【NERF】入门学习整理(二) 【NERF】入门学习整理(三) 【NeRF数据集】LLFF格式数据集处理co

    2024年04月15日
    浏览(85)
  • 3D Gaussian Splatting

    本文转载于大佬~~ 这是3D Gaussian Splatting综述, 先回顾3D Gaussian的原理和应用,借着全面比较了3D GS在静态场景、动态场景和驾驶场景中的性能,最后为未来指明了研究方向! 三维 Gaussian splatting(3DGS)是近年来在显式辐射场和计算机图形学领域出现的一种变革性技术。这种创新

    2024年04月08日
    浏览(58)
  • 【辐射场】3D Gaussian Splatting

      , 3D Gaussian Splatting,下文简称3DGS,是好一段时间以来在三维内容创作和三维重建领域比较有热度的一项技术。 它属于 基于图像的三维重建方法 ,意思就是你对现实物体或者场景拍照片,就能给你训练成一个场景模型,能够被渲染出来给你看。 它产生的模型可以作为三维

    2024年02月03日
    浏览(44)
  • 3D Gaussian Splatting 渲染过程

    给定一组三维高斯点,渲染步骤大致为:1.camera space转成ray space 2.对像平面进行分块,然后对高斯排序 3.正投影发出射线进行α-blending 这个步骤将NeRF中的投影过程变为了正投影,引入了ray space的概念,让3D Gaussian 变为2D Gaussian. 透视投影和正投影                    一般的渲

    2024年01月20日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包