3D Gaussian Splatting的使用

这篇具有很好参考价值的文章主要介绍了3D Gaussian Splatting的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 下载与安装

今年SIGGRAPH最佳论文,学习了一下,果然厉害,具体论文原理就不说了,一搜都有,主要是看看怎么用,自己能不能把身边的场景快速建个模。

赶紧记录下,好像这几天在这个基础上又有很多花样出来了…

我的系统是Ubuntu22.04。

开源作者已经都弄的很详细了,也有教程。
首先拉项目

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

然后,要建conda环境,而项目已经提供了配置文件包含了需要的各版本信息,文件就是:enviornment.ymal,所以这么调用就建好环境,并激活:

conda env create --file environment.yml
#文件里给环境的名字固定叫 gaussian_splatting
conda activate gaussian_splatting

此时呢,虽然建好了,但是呢也报错了,仔细分析了error,是因为安装项目里的submodules里的两个项目报错了,类似这样的报错:

/usr/include/c++/11/bits/std_function.h:435:145: error: parameter packs not expanded with ‘…’:
435 | function(_Functor&& __f) | ^ /usr/include/c++/11/bits/std_function.h:435:145: note: ‘_ArgTypes’ /usr/include/c++/11/bits/std_function.h:530:146: error: parameter packs not expanded with ‘…’: 530 | operator=(_Functor&& __f) | ^ /usr/include/c++/11/bits/std_function.h:530:146: note: ‘_ArgTypes’

查了半天以为是g++版本不对,有的说要将到版本10,还有说要改c++文件源码。我没敢改,再找了下,发现我的cuda版本是11.5,而该项目要求的是11.8,于是我就升级了一下,具体怎么升级,见我之前写的一篇 升级和切换CUDA版本 。

升级完CUDA,就手动再安装这两个子模块:

pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn

都没问题,成功安装~

2 准备场景样本

准备拿会议室整个屋子做一次尝试,看看能不能建出个模来。

2.1 准备场景照片

2.1.1 采集图片

根据原理吧,就需要这个场景中所有位置所有角度的图像,所以这个准备过程多仔细就能决定最终模型的效果。
我试了很多次,觉得拍视频最好,完了再抽帧。

因为训练的照片要分辨率统一,相机参数、光照等看着都比较统一才好。
另外,建议分辨率推荐1080p,至少720p。再退一步,至少保证宽或高有一个能到720 ,不然训练出来的效果不好,这是我的个人经验。

拍视频的时候,一定不要在一个位置转的拍,要缓慢走动,边走边转,上下左右,然后再走回来,这个路线根据场景要设计好,目的就是在任何位置上都有任何角度的照片。这只能尝试体会了。。。

然后,有了视频,就能通过抽帧拿到图片了,想要效果可以,我建议500张起,多的话我只试到2000张,再多我也没尝试。
怎么抽帧呢,就用ffmpeg

比如,先建一个data目录,data目录里一定要建个input文件夹,名字必须是这个。

ffmpeg -i room.mp4 -r 3 -f image2 input/%06d.jpg

-i就是输入视频,
-r就是帧率,控制抽的图片数量
后面input/%60d.jpg ,图片名字最终是 000001.jpg, 000002.jpg这样的格式。

最终在data/input下就有了一堆图片

2.1.2 生成相机位姿

首先呢,系统里要先安装colmap,使用源码装,具体怎么装,见我之前的文章:
Colmap在Linux下的安装

装好了呢,就在gaussian splatting 项目目录下,运行convert.py

python convert.py -s data

这里 -s 要传入数据目录,一定写data这个目录级别(input在这个目录下)

这时用的是CPU跑的,多等会儿,最终就在data目录下生成一堆目录和文件,包括相机位姿。

3 训练

前面都OK了,就开始训练了。

注意:如果训练图片比较多,比如超过1000张了,那要先给系统设置一下同时打开的文件数上限,因为默认的数太小了,会报错:
OSError: [Errno 24] Too many open files:
所以先临时调大一下上限:
ulimit -n 10000
1w一般就够了,这个设置重启电脑后就失效了。想要永久有效,搜一下就知道了。

然后运行:

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

-s还是一样,要写到data这个目录级别
-m 是输出文件夹,就写data下的output,output目录会自动创建的

整个训练是30000步,在7000步的时候会自动保存一个中间模型。

运行时间的话我举个我的测试例子:

分辨率 1920x1080,939张照片,convert.py的时间是二十几分钟,train.py的时间一共是15分钟。
GPU显存占用22GB,训练得到的ply文件 156MB。

4 展示

该项目也提供了展示的软件,在SIBR_viewers目录里:
进去要编译安装一下这个软件。

编译过程因为有东西下不下来,会出错,得想办法,之后有空单独简单记录一下。

这个软件也要用GPU跑,我就在Ubuntu上跑的,最终安装的目录在SIBR_viewers/install/bin里,所以就进目录里运行:

install/bin/SIBR_gaussianViewer_app -m /home/xxxx/data/output

-m 就是给上面训练后的output目录就行了。

有用的模型就一个,就是30000步里的那个Ply文件。

我这会议室效果展示,就不录屏了,来几个角度的照片吧:
训练3d gaussian splatting模型步骤,一些方法记录,计算机视觉,github,AIGC
训练3d gaussian splatting模型步骤,一些方法记录,计算机视觉,github,AIGC
训练3d gaussian splatting模型步骤,一些方法记录,计算机视觉,github,AIGC
训练3d gaussian splatting模型步骤,一些方法记录,计算机视觉,github,AIGC

我其实弄的也没那么仔细,但是效果还挺厉害,如果不动的话,就和照片一样。

这个模型出来,和传统模型其实不一样,不好弄成obj fbx啥的,就是它这算法直接渲染的。至于怎么在产品或者其他场景里用,后面有空再说,我已经尝试了一个在web里打开的demo了,只是没那么流畅而已。文章来源地址https://www.toymoban.com/news/detail-764573.html

到了这里,关于3D Gaussian Splatting的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【辐射场】3D Gaussian Splatting

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

    2024年02月03日
    浏览(31)
  • 3D Gaussian Splatting:论文原理分析

    标题:3D Gaussian Splatting for Real-Time Radiance Field Rendering 作者:Bernhard Kerbl、Georgios Kopanas、Thomas Leimkühler和George Drettakis,来自法国Inria、Université Côte d\\\'Azur和德国Max-Planck-Institut für Informatik。 发表时间:2023年8月,ACM Transactions on Graphics上,卷号42,编号4 提出了一种名为3D Gaussia

    2024年01月23日
    浏览(35)
  • Awesome 3D Gaussian Splatting Resources

    GitHub - MrNeRF/awesome-3D-gaussian-splatting: Curated list of papers and resources focused on 3D Gaussian Splatting, intended to keep pace with the anticipated surge of research in the coming months. 3D Gaussian Splatting简明教程 - 知乎 

    2024年01月20日
    浏览(43)
  • 3D Gaussian Splatting学习记录11.2

    cmd输入以下命令,开始训练 整个训练(30,000步)大约需要20分钟,但7000步后会保存一个中间模型,效果已经很不错了。训练结束后得到output文件 在Ubuntu 22.04上,运行以下命令来构建可视化工具: 安装后,找到SIBR_gaussianViewer_app二进制文件,并以模型的路径作为参数运行它: 参

    2024年02月04日
    浏览(48)
  • 3D Gaussian Splatting文件的压缩【3D高斯泼溅】

    在上一篇文章中,我开始研究高斯泼溅(3DGS:3D Gaussian Splatting)。 它的问题之一是数据集并不小。 渲染图看起来不错。 但“自行车”、“卡车”、“花园”数据集分别是一个 1.42GB、0.59GB、1.35GB 的 PLY 文件。 它们几乎按原样加载到 GPU 内存中作为巨大的结构化缓冲区,因此

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

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

    2024年01月17日
    浏览(39)
  • 3d gaussian splatting笔记(paper部分翻译)

    本文为3DGS paper的部分翻译。 基于点的𝛼混合和 NeRF 风格的体积渲染本质上共享相同的图像形成模型。 具体来说,颜色 𝐶 由沿射线的体积渲染给出: 其中密度 𝜎、透射率 𝑇 和颜色 c 的样本是沿着射线以间隔 𝛿 𝑖 采集的。 这可以重写为 典型的基于神经点的方法通过

    2024年01月24日
    浏览(32)
  • 学习笔记之——3D Gaussian Splatting源码解读

    之前博客对3DGS进行了学习与调研 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研-CSDN博客 文章浏览阅读450次。论文主页3D Gaussian Splatting是最近NeRF方面的突破性工作,它的特点在于重建质量高的情况下还能接入传统光栅化,优化速度也快(能够在较少的训练

    2024年01月20日
    浏览(44)
  • 3D高斯泼溅(Gaussian Splatting)通俗解释

    项目:3D Gaussian Splatting for Real-Time Radiance Field Rendering 代码:GitHub - graphdeco-inria/gaussian-splatting: Original reference implementation of \\\"3D Gaussian Splatting for Real-Time Radiance Field Rendering\\\" 功能:拍摄一段视频或多张图片,可以重建3维场景并能实时渲染。 优点:质量高、速度快。 缺点:占用

    2024年02月22日
    浏览(43)
  • 3D Gaussian Splatting:用于实时的辐射场渲染

    Paper : Kerbl B, Kopanas G, Leimkühler T, et al. 3d gaussian splatting for real-time radiance field rendering[J]. ACM Transactions on Graphics (ToG), 2023, 42(4): 1-14. Introduction : https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/ Code : https://github.com/graphdeco-inria/gaussian-splatting 3D Gaussian Splatting 是 Siggraph 2023 的 Best Paper,法

    2024年02月05日
    浏览(32)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包