在nerfstudio框架上运行3DGS

 背景介绍:


3D高斯溅射是在来自INRIA的SIGGRAPH 2023中提出的,它是一种完全不同的通过显式存储3D体积高斯集合来表示辐射场的方法。这些可以“飞溅”或投影到提供相机姿势的2D图像上,并光栅化以获得逐像素的颜色。由于栅格化在gpu上的速度非常快,因此这种方法的渲染速度要比辐射场的神经表示快得多。nerfstudio的实现称为“Splatfacto”,随着更多功能的添加,逐渐偏离原始论文。正如Nerfacto是各种不同方法的混合,Splatfacto将是不同高斯飞溅方法的混合。

Nerfstudio使用gsplat作为其高斯光栅化后端,这是一个内部重新实现,旨在对开发人员更友好。可以使用

pip install gsplat

安装它。

运行环境:

我是在WSL2环境,Ubuntu20.04版本下运行的

CUDA版本11.7

gcc和g++的版本都是9.4.0

cmake版本3.29.2

一、数据集准备:

这里使用DJI Phantom 4采集了深圳大学科技楼121张图片进行训练。如图所示:

二、数据预处理:

可以运行下面代码来查看数据预处理的帮助,主要还是colmap的过程。主要命令有两个,1是--data图片的文件路径,2是--output-dir文件的输出路径。

ns-process-data images -h

数据预处理完成后,可以看到如下窗口。

在文件夹中也可以看到

三、训练

可以使用如下命令来查看可以训练的模型,可以看到splatfacto(Gaussian Splatting model) 

ns-train -h 

运行后如图所示:

继续运行如下命令,可以查看输入的一些命令帮助。

ns-train splatfacto -h

主要关注两个命令行选项,一个是--data,刚刚处理完成的数据的文件路径,第二个是--output-dir输出文件的路径

ns-train splatfacto --output-dir train/ --data air_data/

如图就是在训练,可以打开浏览器来查看训练的效果

 可以在浏览器中输入http://0.0.0.0:7007查看,可视化界面如下(由于图片内存有上限进行了裁剪),右边按钮可以调整渲染质量和速度,也可以看深度图之类的。

四、导出点云文件查看

可以用代码查看帮助文档

ns-export -h

可以看到如下界面。主要关注gaussian-splat点云输出内容。

也可以继续输入代码查看帮助文档

 ns-export gaussian-splat -h

只需要输入两个参数即可一个是config YAML 文件,还有一个是输出路径

输出后可以看到.ply文件,导入到cloudcompare里面可以查看点云(如下图所示),能够清晰看到深圳大学科技楼的场景

五、总结

 3DGS渲染速度和质量上都比Nerf渲染的要好,如果有任何疑问,欢迎在评论区留言,会尽能力回复。谢谢大家的支持。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值