Scaffold-GS学习笔记

Scaffold-GS是基于3DGS的一种算法(CVPR2024)

首先从 SFM(运动恢复结构) 衍生的点形成一个稀疏体素(voxel)网格。每个可见体素的中心都放置有一个可学习尺度(learnable offset)的锚点(anchor),大致雕刻了场景的占用情况。 视锥内,从每个可见的带有偏移量𝑂_𝑘锚点生成 k 个神经高斯。它们的属性,即不透明度(opacity)、颜色、比例和四元数(quaternion)是使用MLP从锚点特征、相对相机-锚点的观看方向和距离进行解码,使用 Fα、Fc、Fs、Fq表示。神经高斯模型属性的预测是即时的,意味着只有在视锥体内可见的锚点才会被激活以生成神经高斯模型。为了使栅格化更加高效,我们仅保留透明度值大于预定义阈值 τα 的神经高斯模型。这大大降低了计算负载,并帮助我们的方法保持与原始3D-GS相当的高渲染速度。通过重建L_1、结构相似性L_𝑆𝑆𝐼𝑀和体积正则化L_𝑣𝑜𝑙来监督渲染图像。

初始输入依旧是使用COMLAP生成的点云,对点云进行体素化。

体素化

3D数据有多种表现形式,(a)点云,(b)体素网格,(c)多边形网格,(d)多视图表示。

其中:

a. 点云是三维空间(xyz坐标)点的集合。

b. 体素是3D空间的像素。量化的,大小固定的点云。每个单元都是固定大小和离散坐标。

(可以类比像素概念,有点像三维空间下的像素)

c. mesh是面片的集合。

d. 多视图表示是从不同模拟视点渲染的2D图像集合。

文中将点云体素化后删除重复条目

 V是体素中心,P是点云,ϵ是体素大小

每一个体素都作为一个锚点,包含一个本地的上下文特征 fv,一个比例因子lv,一个可学习的偏移量k

fv由三个参数影响

xc是相机位置,xv是anchor位置,计算他们的相对距离和观看方向

根据相对距离和观看方向计算权重

由三个参数和小型MLP预测

用µ位置, α透明度,s缩放,q协方差相关四元数, c 颜色参数化高斯神经函数,对视锥内的anchor生成k个神经高斯函数并预测其属性。具体来说,给定位于xv的锚点,其神经高斯函数的位置计算为:

{Oo,...,Ok-1}是可学习的偏移量,lv是比例因子

通过MLP、fv、相机与锚点之间的相对观看距离δvc和方向中解码k个神经高斯函数的属性,记为Fα, Fc, Fq和Fs

例如透明度的解码:

anchor精炼:

anchors增长策略:

首先通过构建尺寸为ϵg的体素对神经高斯进行空间量化。对于每个体素,计算N次训练迭代中包含的神经高斯函数的平均梯度,记为∇g。然后,将∇g > τg的体素视为显著体素,其中τg为预定义阈值;如果没有建立锚点,则在该体素的中心部署一个新的锚点。

删除策略:

在N次训练迭代中累积它们相关的神经高斯函数的不透明度值。如果一个锚不能产生一个令人满意的不透明度水平的神经高斯,我们然后从场景中删除它。

损失函数设计:

使用SSIM项、LSSIM和体积正则化 Lvol,针对渲染像素颜色上的L1损失对可学习参数和mlp进行优化。总监督由:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值