【三维重建汇总】NeRF和GS重建中,如何排除干扰物?(提升质量)


汇总最近NeRF与GS提升质量的论文

文章目录

  • 前言
  • 一、NeRF On-the-go:利用不确定性落地真实世界(CVPR'24)
    • 摘要
    • 1.DINOv2特征的不确定性预测
    • 2.NeRF中干扰物去除的不确定性
    • 3.优化
    • 4. Dilated Patch 扩大采样
    • 5.实验结果
  • 二、Pixel-GS:像素感知的梯度密度控制(ECCV'24)
    • 摘要
    • 1 GS的自适应密度控制
    • 2 Pixel-aware Gradient 像素敏感梯度
    • 3 Scaled Gradient Field 梯度缩放
    • 4.效果
  • 三、RobustNeRF:利用Robust 损失,排除干扰物(CVPR '23)
    • 摘要
    • 1.异常值的敏感性(分析)
    • 2.异常值的鲁棒性(分析)
    • 3.修剪的最小二乘法的鲁棒性(解决方法)
  • 四、SpotlessSplats:去除瞬态干扰物的 3DGS(2024)
    • 摘要
    • 1 识别干扰物(distractors)
      • 1.1 空间聚类(Spatial clustering)
      • 1.2 时空聚类(Spatio-temporal clustering)
    • 2 3DGS的鲁棒性优化
      • 2.1 计划采样来进行预热(Warm up with scheduled sampling)
      • 2.2 基于图像的训练中的 Trimmed estimators(裁剪估计器)
      • 2.3 对“重置不透明度”的替代
      • 2.4 Appearance modeling (外观建模)


前言

  野外场景的NeRF,如何排除干扰物?
  训练一个传统的NeRF模型需要一组带有相机姿态的RGB图像,并且需要手动调整相机设置,如焦距、曝光和白平衡,还面临以下难题:

  1. 假设在捕捉过程中场景必须保持完全静止,没有任何如移动物体、阴影或其他动态元素的干扰物。然而,现实世界本质上是动态的,使得这种无干扰物的要求往往难以满足。

  2. 从采集的数据中去除干扰物也不是一件容易的事。这一过程涉及每个图像的逐像素标注,这对于大场景的长时间捕捉来说是非常耗费人力的。这突显了NeRF在动态、真实世界环境中实际应用的一个关键限制。


提示:以下是本篇文章正文内容,下面案例可供参考

一、NeRF On-the-go:利用不确定性落地真实世界(CVPR’24)

作者:ETH Z¨urich;微软
项目:https://rwn17.github.io/nerf-on-the-go/

摘要

  .[Urban radiance fields.CVPR’22] 和 [Block-nerf CVPR’22] 对特定的运动对象使用预先训练好的语义分割模型,但该模型未能分割未定义的对象类。NeRF-W [26]通过体渲染,优化像素级的随机初始化的不确定性embedding。这种设计是次优的,因为它忽略了图像的先验信息,并纠缠了辐射场重建的不确定性。因此,它们需要引入短暂的embedding来解释干扰物。新的自由度的增加使系统调整复杂化,导致如Robustnerf 中讨论的帕累托最优场景(Pareto-optimal scenario)。 D 2 N e R F D^2NeRF D2NeRF [52]这样的动态NeRF方法可以分解静态和动态场景的视频输入,但在稀疏图像输入方面表现不佳。最近,RobustNeRF将干扰物建模为异常值,并在受控和简单的场景中展示了令人印象深刻的结果。然而,在复杂的野外场景中,它的表现显著下降。有趣的是,RobustNeRF在没有任何干扰物的情况下也表现不佳。

   为了随意捕获的图像中重建NeRF(for in-the-wild scenes),而不管干扰物的比例

  为了实现目标,引入NeRF On-the-go,这是一个通用的即插即用模块,旨在有效地去除干扰物,允许从任何随意捕获的图像进行快速的NeRF训练。三个关键方面:

  1. 首先,利用DINOv2特征在特征提取中的鲁棒性和时空一致性,从中一个小的多层感知(MLP)预测每个样本像素的不确定性
  2. 其次,利用结构相似性损失改进不确定性的优化,增强了前景干扰物和静态背景之间的区别
  3. 第三,使用解耦训练策略将估计的不确定性纳入NeRF的图像重建目标,消除干扰物的,特别是在高遮挡场景中

在这里插入图片描述

1.DINOv2特征的不确定性预测

  图象特征抽取。过程公式化如下(i 跨越所有训练图像,C表示特征维数。还通过最近邻采样将特征映射到原始分辨率):

在这里插入图片描述

  不确定性预测。通过DINOv2特征图,确定每个采样射线r的不确定性。对应射线特征 f = F i ( r ) f = F_i (r) f=Fi(r),通过一个浅MLP估计不确定性: β ( r ) = G ( f ) β(r)= G(f) β(r)=G(f) 。后面介绍如何将不确定性 β ( r ) β(r) β(r)作为一个加权函数集成到优化过程中。

  不确定性正则化。为加强不确定性的时空一致性,在一个minibatch内引入基于特征向量余弦相似性的正则化项:每个采样光线 r r r,定义了一个邻域集合 N ( r ) N(r) N(r),其中的相关特征向量与 r r r的特征 f f f具有高相似性,通过阈值η得到:

在这里插入图片描述

  射线 r r r的refine不确定性计算为 N ( r ) N(r) N(r)的平均值:

在这里插入图片描述

  添加一致性的正则化项,用来惩罚 N ( r ) N(r) N(r)内的不确定性的方差(variance):
在这里插入图片描述

2.NeRF中干扰物去除的不确定性

  本文假设与动态元素(干扰物)相关的像素应该具有较高的不确定性,而静态区域相反。

  不确定性收敛分析。开创性工作NeRF in the Wild中,损失写成输入和渲染之间的:
在这里插入图片描述
不确定性 β ( r ) β(r) β(r) 被视为一个权重函数。正则化项对于平衡第一项和防止 β ( r ) = ∞ β(r) =∞ β(r)= 的平凡解至关重要。求一个偏导:

在这里插入图片描述
将导数设为0,得到不确定性的最优封闭解:
在这里插入图片描述
这揭示了:不确定性预测,以及渲染图和输入图的误差之间成正比

  然而, 使用等式4中的 ℓ 2 ℓ2 2损失时 ,当干扰物和背景的颜色接近时(如图3(d)),根据等式6,这些区域的预测不确定性也会很低。这阻碍了基于不确定性的干扰物去除的有效性,并导致了渲染图像中的云伪影。

  SSIM的损失(增强不确定性的学习)。SSIM由三个测量值组成:亮度、对比度和结构相似度,能捕获局部结构和对比度上的差异,如图3,能够区分场景元素:

在这里插入图片描述
其中, P P P P ^ \hat{P} P^分别是从输入图像 C ( r ) C(r) C(r)和渲染图像和 C ^ ( r ) \hat{C}(r) C^(r)中采样的patch。进一步修改等式7为(更加强调动态元素和静态元素之间的区别):

在这里插入图片描述

在这里插入图片描述

  在更新的SSIM公式的基础上,我们引入了为不确定性学习定制的新损失:

在这里插入图片描述
L u n c e r L_{uncer} Luncer专门用于训练不确定性估计MLP G G G。这是至关重要的,因为它允许我们将NeRF模型的训练与不确定性预测解耦。这种解耦确保了学习到的不确定性对各种类型的干扰物具有鲁棒性。

3.优化

在这里插入图片描述
以上NeRF损失是等式(4)没有使用正则化项,因为 L u n c e r L_{uncer} Luncer已经阻止了不确定性的平凡解( β ( r ) = ∞ β(r) =∞ β(r)=)。通过将梯度流从 L u n c e r L_{uncer} Luncer分离到NeRF表示,并将 L n e r f L_{nerf} Lnerf分离到不确定性MLP G G G,如图2。本文遵循RobustNeRF,包括了用于NeRF训练的Mip-NeRF 360 [1]的interval损失和失真损失。总体损失为:

在这里插入图片描述

4. Dilated Patch 扩大采样

  RobustNeRF已经证明了基于斑块的射线采样(图4 b)比随机采样(图4 a)的有效性。然而,这种方法也有其局限性,主要是由于采样patch的尺寸较小(例如16×16)。特别是当由于GPU内存的限制,批处理规模较小时,这种小的上下文会限制网络的学习能力,以消除干扰物,影响优化的稳定性和收敛速度。

  为了解决这个问题,我们使用了扩张的pach采样,如图4c,可以显著增加每次训练迭代中可用的上下文信息的量。表3证明不仅加速了训练过程,而且在干扰物去除方面产生了优越的性能。

在这里插入图片描述
在这里插入图片描述
  


5.实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


  
在这里插入图片描述

  

二、Pixel-GS:像素感知的梯度密度控制(ECCV’24)

摘要

  三维高斯溅射(3DGS)在提高实时渲染性能的同时,展示了令人印象深刻的新视图合成性能。然而,它的有效性在很大程度上依赖于初始点云的质量,导致在初始化点不足的区域出现模糊和针状伪影( needle-like artifacts)。这个问题主要是由于点云的增长条件,它只考虑了可观测视点的splats的平均梯度大小,因此对于许多只覆盖在边界内的可观测的大高斯值无法增长。
  为了解决这个问题,Pixel-GS将被覆盖的像素数,视为动态平均不同视角的梯度的权重,从而促进大高斯分布的增长。初始化点不足的区域内的点可以更有效地增长,从而导致更准确和详细的重建。此外,提出一策略,根据到相机的距离来缩放梯度场,以抑制相机附近floater的生长。实验在Mip-NeRF 360和Tanks & Temples。

1 GS的自适应密度控制

  在三维高斯溅射中,视点 k k k下的高斯 i i i会生成一个二维协方差矩阵 Σ Σ Σ,并确定相应的影响范围半径 R k i R^i_k Rki:

在这里插入图片描述

它覆盖了高斯分布中99%的概率。对于高斯 i i i,在视点 k k k下,摄像机坐标系中的坐标,以及像素坐标系中的坐标分别为:

在这里插入图片描述

  当图像宽度为W像素,高度为H像素时,高斯i在同时满足以下六个条件时参与了视点k的计算:

在这里插入图片描述

  3D GS的点splats分割、克隆,由高斯坐标参与计算的视点的NDC坐标梯度的平均大小决定的。具体来说,对于视点k下的高斯i,NDC坐标以及高斯转为两个高斯的标准为:(视点 k k k下的损失为 L k L_k Lk。在每100次的“自适应密度控制”迭代过程中,高斯 i i i参与了 M i M^i Mi个视角的计算,阈值 τ p o s τ_{pos} τpos设置为0.0002):

在这里插入图片描述

2 Pixel-aware Gradient 像素敏感梯度

  以上标准足以在大多数区域适当地分布高斯分布,但伪影往往发生在初始点稀疏的区域。在3DGS中,与高斯i对应的椭球体的三个轴的长度被初始化:

在这里插入图片描述
其中, d 1 i d^i_1 d1i d 2 i d^i_2 d2i d 3 i d^i_3 d3i分别是到离高斯分布 i i i最近的三个点的距离。我们观察到,建模不充分的区域通常具有非常稀疏的初始SfM点云,导致这些区域的高斯分布初始化为更大轴长的椭球体。这导致了他们从太多的角度参与计算。这些高斯分布只在投影后的中心点在像素空间内或附近的视点上表现出更大的梯度。这意味着,从这些角度来看,大高斯分布在投影后覆盖了像素空间中的较大区域。这导致这些点在“自适应密度控制”过程中,每100次迭代,它们的NDC坐标的平均梯度较小(Eq 3),因为它们从太多的角度参与计算,并且在个别视点中只有显著的梯度大小。因此,这些点很难分割或克隆,导致这些领域的建模效果不佳。

   方程分析 为什么前面提到的稀疏区域的高斯分布只能从足够覆盖的视点获得更大的NDC坐标梯度,而对于只影响边缘区域的视点,NDC坐标梯度更小。视点 k k k下的一个像素,对高斯 i i i的NDC坐标梯度的贡献为

在这里插入图片描述
其中,因子 α k i α^i_k αki计算为:

在这里插入图片描述

c j p i x c^{pix}_j cjpix代表 j j j通道的颜色像素, m k i m^i_k mki代表视角k下包含在高斯 i i i的计算内的像素数量。 α k , p i x i α^i_{k,pix} αk,pixi作为投影高斯中心和像素中心之间的距离的函数,随着距离的增加呈指数衰减。

  这导致在投影高斯分布的中心位置附近有几个像素,这对该高斯分布的NDC坐标梯度有主要贡献。对于大高斯分布,许多视点只会影响边缘区域,投射到这些视点中的像素上,导致这些视点参与计算,但NDC坐标梯度非常小。另一方面,我们观察到,对于这些点,对于一个给定的视点,当投影后的计算中涉及到大量的像素时,这些点在这个视点中往往表现出更大的NDC坐标梯度。因为当大量的像素在投影后参与计算,投影中心点往往在像素平面内,根据之前的计算,一些像素附近的中心点是NDC坐标梯度的主要贡献者。

  为了解决这个问题, 我们为每个视点上的每个高斯坐标的NDC坐标的梯度大小分配一个权值,其中权值是从相应的角度计算该高斯坐标时所涉及的像素数 这种计算方法的优点是,对于大高斯分布,计算中涉及的像素数在不同的视点之间有显著差异。大高斯分布,只在计算中涉及到更多像素的视点中接收到更大的梯度。用参与像素的数量来加权梯度的大小,可以更合理地促进这些高斯分布的分裂或克隆;对于较小的高斯,不同视点之间所涉及的像素数的变化是最小的,当前的平均方法不会产生显著的变化,也不会导致过多的额外内存消耗。

   高斯发生分裂、克隆的修正后方程为

在这里插入图片描述
其中, M i M^i Mi是高斯i在相应的100次“自适应密度控制”迭代中参与计算的视点数, m k i m^i_k mki是高斯 i i i在视点 k k k中参与的像素数。∂分别表示视点k处的NDC空间的x方向和y方向上的高斯 i i i的梯度。高斯分布参与像素计算的条件为(与等式2共同给出)

在这里插入图片描述

3 Scaled Gradient Field 梯度缩放

  当使用“像素敏感梯度”来决定一个点是应该分裂还是克隆(Eq。7)可以解决视点不足和重复纹理的建模区域的伪影,我们发现点云增长的条件也加剧了摄像机附近floater的存在。这主要是因为摄像机附近的floater占据了较大的屏幕空间,其NDC坐标有显著的梯度,导致点云增长过程中floater数量的增加。为了解决这个问题,我们缩放了NDC坐标的梯度场。

  具体使用半径来确定场景的比例:

在这里插入图片描述
训练集的N个视角中, C j C_j Cj表示第 j j j 个视角像机的世界坐标。第 k k k个视点下对高斯 i i i的NDC坐标的梯度进行缩放,比例因子 f ( i , k ) f(i,k) f(i,k)的计算方法为:

在这里插入图片描述
其中 µ c , z i , k µ^{i,k}_{c,z} µc,zi,k 是高斯 i i i的摄像机z坐标,从视点上表示该高斯值的深度, γ d e p t h γ_{depth} γdepth是手动设置的超参数。

  等式10中使用平方项作为比例系数来源于“Floaters No More”[40],其指出NeRF [35]中的floater主要是由于投影后靠近摄像机的区域占据了更多的像素,这导致了在优化过程中接收到更多的梯度。这导致这些区域首先被优化,从而掩盖了最初正确的空间位置无法被优化。所占据的像素的数量与到相机的距离的平方成反比,因此梯度的平方距离的缩放。

  综上,基于像素的优化的一个主要问题是空间梯度场的不平衡,导致不同区域的优化速度不一致。不同空间区域的梯度场的自适应尺度可以有效地解决这一问题。因此,高斯“分裂”或“克隆”的最终计算为:

在这里插入图片描述

4.效果

   Mip-NeRF 360以及Tanks & Temples数据集上指标:

在这里插入图片描述
    
  

  Pixel-GS (本文) 和 3DGS∗(调整阈值后的GS)的定性结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  

  

  

  

  

  

  

  

  

  

  

三、RobustNeRF:利用Robust 损失,排除干扰物(CVPR '23)

标题:RobustNeRF: Ignoring Distractors with Robust Losses
机构:Google Research; University of Toronto; Simon Fraser University
项目地址:https://robustnerf.github.io.

摘要

  神经辐射场(NeRF)擅长于合成新的视图,给定的多视图,校准的静态场景的图像。当场景包含干扰物时,它们在图像捕捉过程中并不持久(运动物体、灯光变化、阴影),伪影就会表现为依赖于视图的效果或“floater”。为了应对干扰物,RobustNeRF的鲁棒估计形式,将训练数据中的干扰物建模为优化问题的离群值。成功地消除了场景中的异常值,并改进了合成和真实场景的基线。我们的技术很容易合并到现代NeRF框架中,很少有超参数。它不假定对干扰物类型的先验知识,而是关注于优化问题,而不是预处理或建模瞬态对象。

在这里插入图片描述

  一类简单场景包括一个物体只出现在观察到的图像中,或者在所有观察到的图像中不能保持在相同的位置。例如,图2描述了一个2D场景,其中包括一个持久的物体(卡车),以及几个短暂的物体(例如,人和一只狗)。三个摄像头的蓝色光线与卡车相交,而摄像头1和摄像头3的绿色和橙色光线与瞬态物体相交。对于视频捕捉和时空NeRF模型,持久性对象构成了场景的“静态”部分,而其余部分将被称为“动态”

1.异常值的敏感性(分析)

  视图依赖的NeRF,通过最小化(3)进行训练,允许局部最优,其中瞬态对象可以用视图依赖的术语来解释。这种模型利用模型依赖于视图的能力来过拟合观察结果,有效地记忆瞬态对象。我们可以改变模型来消除对d的依赖,但 l 2 l2 l2 损失仍然存在问题,因为最小二乘(LS)估计量对异常值或重尾噪声分布很敏感。   l 2 l2 l2损失的优化在重建中产生显著的错误,见图1。像这样的问题在NeRF模型拟合中普遍存在,特别是在具有复杂反射率、非刚性或独立移动物体的不受控环境中

在这里插入图片描述

  

  

  

2.异常值的鲁棒性(分析)

  通过语义分割的鲁棒性。优化中,减少离群值的一种方法是:依赖于一个oracle S,它指定图像 i i i中的给定像素 r r r是否为离群值,并从损失中排除,将公式替换为:

在这里插入图片描述

  实践中,预训练的分割网络S可以作为一个oracle: S i = S ( C i ) S_i=S(C_i) Si=S(Ci)。例如,[Nerf-in-the wild]使用语义片段来去除被人占用的像素,这在风景照片中是异常值。[Urban Radiance Fields]分割出天空像素,而LOL-NeRF忽略了不属于人脸的像素。

  鲁棒性估计。另一种降低对异常值敏感度的方法是用稳健的鲁棒的内核 κ ( ⋅ ) κ(·) κ()作为损失,代替传统的 l 2 l2 l2损失,以便在优化过程中降低光度不一致的观测值:

在这里插入图片描述

  不幸的是,如上所述,离群值和非兰伯特效应都可以被建模为与视图相关的效应(图3)。因此,通过简单地应用鲁棒估计器,可能很难从噪声中分离出信号。图4显示了一些示例,其中删除了异常值,但细粒度纹理和视图相关的细节也会丢失,或者相反,细粒度细节会被保留,但异常值会导致重构场景中的伪影。

在这里插入图片描述

  第二个因素是经典的NeRF梯度。第一个因素是在当前误差残差 ϵ ( θ ( t ) ) ϵ(θ(t)) ϵ(θ(t))下计算的核梯度。在训练过程中,较大的残差同样可以来自于尚未学习到的高频细节,或者它们可能来自于离群值(见图4(底部))。这就解释了为什么以(5)形式实现的健壮优化不应该期望将高频细节解耦到异常值中。此外,当使用强鲁棒核时,如 redescending estimators,这也解释了视觉保真度的损失。也就是说,因为(大的)残差的梯度被内核的(小的)梯度降低了权重,从而减缓了对这些细粒度细节的学习速度(见图4(顶部))

3.修剪的最小二乘法的鲁棒性(解决方法)

  迭代的重加权最小二乘法(Iteratively Reweighted least Squares)。IRLS是一种广泛应用的鲁棒估计方法,它涉及到解决一系列加权LS问题,其权值适用于减少离群值的影响,损失为(其中 ω ( ϵ ) = ϵ − 1 ⋅ ∂ κ ( ϵ ) / ∂ ϵ ω(ϵ)=ϵ^{−1}·∂κ(ϵ)/∂ϵ ω(ϵ)=ϵ1κ(ϵ)/ϵ 给出的权值函数):

在这里插入图片描述

  该框架允许一个广泛的损失家族,包括heavy-tailed noise processes的最大似然估计。图4中的例子包括夏波尼尔损失(平滑的L1),以及更激进的重降估计量,如洛伦兹或格曼-McClure[2]。然而,选择一个合适的权重函数ω(ϵ)用于NeRF优化不是重要的,这在很大程度上是由于视图依赖的辐射现象和异常值之间的内在模糊性。下面采用的方法是利用异常值结构中的归纳偏差,并结合一个鲁棒的、修剪过的LS估计器:

  Trimmed Robust Kernels.目标是开发一个用于迭代加权LS优化的权重函数,它很简单,并捕获NeRF优化有用的归纳偏差。为了简单起见,我们选择了一个具有直观参数的二值权重函数,通过模型拟合自然适应,从而可以快速学习非异常值的细粒度图像细节。与典型的i.i.d.假设相反,捕获典型异常值的结构化性质也很重要在大多数鲁棒估计量公式中的假设。为此,权值函数应该捕获离群过程的空间平滑性,认识到对象通常具有连续的局部支持,因此异常值被期望占据图像的大的连接区域(例如,从照片旅游数据集中分割出来的一个人的轮廓)。

  我们首先对残差进行排序,并假设低于一定百分位数的残差是inliers。为了方便起见,选择50%的百分位数(即中位数),我们进行定义

在这里插入图片描述

  为了捕获离群值的空间平滑性,我们使用3×3盒内核B3×3在空间上扩散内部/离群值标签ω:

在这里插入图片描述
  
  但在训练早期,当NeRF模型首先捕获粗粒度结构时,它有时会错误地分类粗粒度的图像细节。这些局部的纹理元素可能会出现,但只有在经过很长时间的训练后才会出现。我们发现,对空间相干性更强的归纳偏差可以更快地学习细粒度的细节。为此,我们汇总了16×16邻域的异常值检测;也就是说,我们根据W在16×16邻域的行为,将整个8×8补丁标记为异常值或内部值。将r周围像素的N×N邻域表示为RN ®,我们定义

在这里插入图片描述

四、SpotlessSplats:去除瞬态干扰物的 3DGS(2024)

摘要

  三维高斯喷溅(3DGS)是一种最新的三维重建技术,提供了高效的训练和渲染速度,使其适用于实时应用。然而,目前的方法需要高度控制的环境——没有移动的人或风吹的元素,以及一致的照明——以满足3DGS的视图间一致性假设。这使得重建现实世界的捕获成为问题。我们提出了无斑点斑图,一种利用预训练和通用特征结合鲁棒优化来有效地忽略瞬态干扰物的方法。我们的方法实现了最先进的重建质量。
  

1 识别干扰物(distractors)

  给定输入图像{ I n I_n In} n = 1 N ^N_{n=1} n=1N,使用 Stable Diffusion提取特征图{ F n F_n Fn} n = 1 N ^N_{n=1} n=1N。这个预处理步骤在训练开始之前执行一次,使用其计算 inlier/outlier masks M ( t ) M^{(t)} M(t);我们删除图像索引n以简化符号,因为训练过程涉及每批一个图像。现在详细介绍检测outliers 的两种不同的方法:

1.1 空间聚类(Spatial clustering)

  预处理阶段,额外对图像区域进行无监督聚类。与超像素技术[14,21]类似,我们将图像过度分割成C个空间连接组件的固定基数集合;参见“聚类特征”图2。具体说,在特征图 F F F上执行层次聚类[2011年],其中每个像素都连接到它周围的8个像素。将像素p分配给聚类c表示为 C [ c , p ] C[c,p] C[c,p]∈{ 0 , 1 0,1 0,1},并将聚类初始化为每个像素其自身聚类。融合簇间特征方差最少的集群(collapsing those that cause the least amount of inter-cluster feature variance differential before/post collapse)。当C=100集群仍然存在时,集群将终止( Clustering terminates when C=100 clusters remain)。

  然后,从公式(2)的mask内部像素的百分比,计算出簇c是一个内部像素的概率:
在这里插入图片描述

  然后将簇标签传播回像素:

在这里插入图片描述

使用 M a g g ( t ) M^{(t)}_{agg} Magg(t),而不是 M ( t ) M^{(t)} M(t),作为 inlier/outlier的mask来训练(1)中的3DGS模型。这个模型配置指定为“SLS-agg

1.2 时空聚类(Spatio-temporal clustering)

  第二种方法是训练一个分类器,根据像素的相关特征来决定像素是否应该被(1)优化。为此,我们使用一个带有参数θ的MLP,从像素特征中预测每个像素的inlier概率:

在这里插入图片描述

  分类器参数 θ ( t ) θ^{(t)} θ(t)与3DGS优化同时更新。H用1×1卷积实现,MLP和3DGS交替优化。MLP分类器损失为:
在这里插入图片描述

在这里插入图片描述
λ=0.5,U和L是由当前残差的mask计算出的自监督标签:

在这里插入图片描述

  换句话说,我们只在像素上直接监督分类器,这样我们就可以根据重构残差来确定 inlier
status,否则我们就严重依赖于特征空间中的语义相似性;见图4。为了进一步正则化H,将相似的特征映射到相似的概率,我们通过 L r e g L_{reg} Lreg最小化它的 Lipschitz constant[文献23]。

在这里插入图片描述

  然后使用 M m l p ( t ) M^{(t)}_{mlp} Mmlp(t),而不是 M ( t ) M^{(t)} M(t),作为 inlier/outlier的mask来训练(1)中的3个DGS。我们将此模型配置指定为“SLS-mlp”

2 3DGS的鲁棒性优化

  直接将任何鲁棒的mask 技术应用于3DGS,会导致mask 过拟合到一个过早的3DGS模型(见4.2.1节),比如基于图像的训练(4.2.2节),或3DGS的密集化策略(见4.2.3节)使得inlier estimator产生偏差。下面我们提出了解决方案。

2.1 计划采样来进行预热(Warm up with scheduled sampling)

  逐步应用mask很重要,因为初始残差是随机的。如果我们使用学习到的聚类来mask,这是双重正确的,因为MLP在优化的早期不会收敛,并随机预测mask。此外,直接使用 outlier mask 往往导致 quickly overcommit to outliers,防止有价值的错误的反向传播,并从这些区域学习。我们通过将每个像素的mask策略,制定为基于mask的伯努利分布的采样来缓解这种情况:

在这里插入图片描述

  其中,α是一个阶梯指数调度器( staircase exponential scheduler),从1到0,提供了一个热身。这使得我们仍然可以在我们不确定的区域中稀疏地采样梯度,从而可以更好地分类离群值。

  

2.2 基于图像的训练中的 Trimmed estimators(裁剪估计器)

  [40]实现了一个修剪后的估计器,其基本的假设是每个minibatch(平均)包含相同比例的异常值。这个假设在3DGS训练运行中被打破了,其中每个minibatch都是一个完整的图像,而不是从训练图像集中随机抽取的一个像素集。这给实现(2)的广义中值带来了挑战,因为异常值的分布在图像之间是有偏颇的

  我们通过跟踪多个训练批次上的残差量级来解决:将残差的magnitudes离散为B个直方图buckets,宽度等于渲染误差的下界( 1 0 − 3 10^{−3} 103)。我们通过对bucket population的有折扣的更新,来升级每次迭代中每个bucket的似然,类似于快速中值滤波方法[32]。这保持了残差分布的移动估计,内存消耗不变,从中我们可以提取出广义中值 ρ ρ ρ作为直方图总体中的 τ τ τ 分位数

2.3 对“重置不透明度”的替代

  原始GS每M次迭代,会重置所有高斯分布的不透明度opacity reset处理两个问题:首先,在具有挑战性的数据集中,在相机附近的优化容易积累高斯分布,常被称为floater。这很难处理,因为它迫使相机光线尽早饱和于透光率,因此梯度没有机会流通到场景的遮挡部分。opacity reset降低了所有高斯分布的不透明度,这样梯度就可以沿着整个射线再次流动第二,opacity reset控制高斯数量。将不透明度重置为一个低值,允许(永远无法恢复到更高不透明度的GS)通过自适应密度控制机制进行修剪。

  然而,opacity reset干扰了残差分布跟踪,导致残影在opacity reset 后的迭代中变大。简单的禁用并不能work,因为是优化必须的。根据文献[11], 我们采用基于利用率的修剪(UBP:utilization-based pruning)我们跟踪渲染的颜色相对于每个高斯 g g g的投影位置 x g x_g xg的梯度 。与3D位置相比,计算关于投影位置的导数,允许一个更少的内存密集型的GPU实现,同时提供了一个与[Bayes’ Rays: Uncertainty quantification in neural radiance fields. CVPR, 2024]中类似的度量。其中,利用率 utilization定义为:

在这里插入图片描述

  我们在图像全局 (W×H)来平均该指标,在前一组 ∣ N T ( t ) ∣ = 100 |N_T(t)|=100 NT(t)=100张图像中,每100步计算一次。当 u g < κ u_g<κ ug<κ, with κ = 1 0 − 8 κ = 10^{−8} κ=108时,裁剪高斯。基于利用率的剪枝替换opacity reset,实现了两个原始目标,同时减轻了对残差分布跟踪的干扰。基于利用率的剪枝通过使用更少的高斯原型显著地压缩了场景表示,同时即使在无离群值的场景中也能实现高重建质量;参见第5.2节。它还能有效地处理floater(见图10)。floater的利用率很低,因为他们参与渲染很少的视图。此外,使用(11)中所示的masked derivatives, 可以去除在 warm-up阶段的 any splat that has leaked through the robust mask。

2.4 Appearance modeling (外观建模)

.
  原始GS假设场景的图像(包括干扰物)在光度上是完全一致的,无法应用于自动曝光和白平衡。SpotlessSplats结合文献[36]的方案,适用于文献[17]的球谐表示的视图依赖的颜色。详细的,共同优化了每个输入摄像机视图的latent z n ∈ R 64 z_n∈R^{64} znR64,并通过MLP将其映射到作用于谐波系数 c c c 的线性变换:

在这里插入图片描述

  其中 ⚪ 是 Hadamard 乘积(矩阵的逐元素相乘),b模型改变了图像的亮度,a提供了表达能力来补偿白平衡。在优化过程中,可训练的参数还包括 θ Q θ_Q θQ和{ z n z_n zn}。这种简化的模型可以有效地防止 z n z_n zn在按图像调整时过度解释干扰物,就像在一个更简单的GLO [NeRF in the Wild]中发生的那样;参见Rematas等人的[ Urban Radiance Fields ]进行分析。
  



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/870966.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

关于nginx标准配置参数介绍

标准配置参数&#xff1a; user root;#配置用户或者组&#xff0c;默认为nobody worker_processes 4;#允许生成的进程数&#xff0c;默认为1 项目中nginx.conf配置文件 user root; worker_processes 4; //最大的进程数&#xff0c;要看服务器的内核是多少核的&#xff0…

Excel“取消工作表保护”忘记密码并恢复原始密码

文章目录 1.前言2.破解步骤3. 最终效果4.参考文献 1.前言 有时候别人发来的Excel中有些表格不能编辑&#xff0c;提示如下&#xff0c;但是又不知道原始密码 2.破解步骤 1、打开您需要破解保护密码的Excel文件&#xff1b; 2、依次点击菜单栏上的视图—宏----录制宏&#xf…

解决k8s分布式集群,子节点加入到主节点失败的问题

1.问题情况 Master主节点在 使用 kubeadm init 成功进行初始化后&#xff0c;如下所示 Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/k…

【Qt】 常用控件QLCDNumber

常用控件QLCDNumber QLCDNumber是一个专门用来显示数字的控件&#xff0c;类似于“老式计算机”的效果。 QLCDNumber的属性 属性说明 intValue QLCDNumber 显⽰的数字值(int). value QLCDNumber 显⽰的数字值(double). 和 intValue 是联动的. 例如给 value 设为 1.5, i…

玩转单例模式

目录 1. 饿汉式 2. 懒汉式 3. volatile解决指令重排序 4. 反射破坏单例模式 5. 枚举实现单例模式 6. 枚举实现单例模式的好处 7. 尝试反射破坏枚举 8. CAS实现单例模式 所谓单例模式&#xff0c;就是是某个类的实例对象只能被创建一次&#xff0c;单例模式有多种实现方…

【安全工具推荐-Search_Viewer资产测绘】

目录 一、工具介绍 二、工具配置 三、传送门 一、工具介绍 Search_Viewer&#xff0c;集Fofa、Hunter鹰图、Shodan、360 quake、Zoomeye 钟馗之眼、censys 为一体的空间测绘gui图形界面化工具&#xff0c;支持一键采集爬取和导出fofa、shodan等数据&#xff0c;方便快捷查看…

批发供应系统:提升效率与竞争力的关键

在当今复杂多变的商业环境中&#xff0c;批发供应系统作为连接生产商、分销商与零售商的重要纽带&#xff0c;其效率与智能化水平直接决定了供应链的运作效率与市场竞争力。随着信息技术的飞速发展&#xff0c;尤其是大数据、云计算、人工智能&#xff08;AI&#xff09;及物联…

基于HarmonyOS的宠物收养系统的设计与实现(一)

基于HarmonyOS的宠物收养系统的设计与实现&#xff08;一&#xff09; 本系统是简易的宠物收养系统&#xff0c;为了更加熟练地掌握HarmonyOS相关技术的使用。 项目创建 创建一个空项目取名为PetApp 首页实现&#xff08;组件导航使用&#xff09; 官方文档&#xff1a;组…

Qt系列之数据库(三)补充篇

一、数据库删除操作&#xff1a; 基本语法 DELETE FROM table_name WHERE [condition]; DELETE FROM ---- 关键字 table_name ---- 表名 WHERE ---- 条件的关键字 [condition] --- 条件表达式在这里插入代码片具体使用&#xff1a; QString sqlDelete QString("DELETE…

落地 DevOps,探索高效研发运营一体化解决方案

前言与概述 伴随着企业业务的快速发展&#xff0c;为了支撑业务发展&#xff0c;提高 IT 对业务的支撑能力建设。在研发工程协同方面&#xff0c;希望加强代码管理&#xff0c;实现持续构建、自动化测试、自动化部署、自动化运维&#xff0c;同时加强产品的安全和质量管理&…

ggplot阶截断坐标轴-gggap

目录 gggap包安装 功能查询 简单版使用代码 复杂版使用代码 gggap包安装 CRAN: Package gggap (-project.org) 手动下载安装 功能查询 > ?gggap > ?gggapDefine Segments in y-Axis for ggplot2 Description Easy-to-define segments in y-axis for ggplot2. …

React+Vis.js(05):节点的点击事件

文章目录 需求实现思路抽屉实现完整代码需求 双击节点,弹出右侧的“抽屉”,显示节点的详细信息 实现思路 vis.network提供了一个doubleClick事件,代码如下: network.on(doubleClick, function (properties) {// console.log(nodes);let id = properties

【数据结构】PTA 带头结点的链式表操作集 C语言

本题要求实现带头结点的链式表操作集。 函数接口定义&#xff1a; List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下&#xff1a; typedef struc…

STM32第十二节(中级篇):串口通信(第一节)——功能框图讲解

前言 我们在51单片机中就已经学习过了串口通信的相关知识点&#xff0c;那么我们现在在32单片机上进一步学习通信的原理。我们主要讲解串口功能框图以及串口初始化结构体以及固件库讲解。 STM32第十二节&#xff08;中级篇&#xff09;&#xff1a;串口通信&#xff08;第一节…

漏洞扫描的重要性,如何做好漏洞扫描服务

随着互联网技术的飞速发展&#xff0c;网络安全问题已成为不容忽视的重大挑战。其中&#xff0c;系统漏洞威胁作为最常见且严重的安全危险之一&#xff0c;对组织和个人的信息资产构成了巨大威胁。下面我们就来了解下漏洞扫描的好处、漏洞扫描的操作方法以及如何做好网络安全。…

使用 onBeforeRouteUpdate 组合式函数提升应用的用户体验

title: 使用 onBeforeRouteUpdate 组合式函数提升应用的用户体验 date: 2024/8/15 updated: 2024/8/15 author: cmdragon excerpt: 摘要&#xff1a;本文介绍如何在Nuxt 3开发中使用onBeforeRouteUpdate组合式函数来提升应用用户体验。通过在组件中注册路由更新守卫&#xf…

个人理解—MKCONFIG的常用配置参数与链接脚本

前面的文章说到&#xff0c;编写Makefile文件的常用语句以及相应的语法&#xff0c;但也提到了MKCONFIG去控制Makefile文件的变量实现条件编译&#xff0c;在MKCONFIG过程中&#xff0c;常用的变量配置有例如架构配置、交叉编译工具链配置等&#xff0c;这些选项要么你去通过改…

界面控件DevExpress .NET MAUI v24.1 - 发布TreeView等新组件

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布&#xff0c;该版本拥有众多…

10 个 C# 关键字和功能

在 Stack Overflow 调查中&#xff0c;C# 语言是排名第 5 位的编程语言。它广泛用于创建各种应用程序&#xff0c;范围从桌面到移动设备再到云原生。由于有如此多的语言关键字和功能&#xff0c;对于开发人员来说&#xff0c;要跟上新功能发布的最新信息将是一项艰巨的任务。本…

基于ssm+vue+uniapp的二手物品交易平台小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…