【三维重建汇总】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 ]进行分析。
  



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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity程序简易框架

1. 框架基本结构 2. 单例模式基类模块 2.1 BaseManager.cs using System.Collections; using System.Collections.Generic; using UnityEngine;public class BaseManager<T> where T:new() {private static T instance;public static T GetInstance(){if (instance == …

高防服务器配置要素

高防服务器配置通常包括硬件资源、网络资源、防护能力、弹性防护、清洗能力和业务支持等方面。下面将详细介绍高防服务器的配置要素&#xff0c;rak部落小编为您整理发布。 高防服务器是设计用来抵御各种网络攻击&#xff0c;特别是分布式拒绝服务(DDoS)攻击的服务器配置。这些…

伊朗通过 ChatGPT 试图影响美国大选, OpenAI 封禁多个账户|TodayAI

OpenAI 近日宣布&#xff0c;他们已经封禁了一系列与伊朗影响行动有关的 ChatGPT 账户&#xff0c;这些账户涉嫌利用该 AI 工具生成并传播与美国总统选举、以色列 – 哈马斯战争以及奥运会等相关的内容。 OpenAI 表示&#xff0c;这些账户与一个名为 “Storm-2035” 的秘密伊朗…

技术速递|Python in Visual Studio Code 2024年8月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 8 月发布&#xff01; 此版本包括以下公告&#xff1a; 使用 python-environment-tools 改进了 Python 发现源代码中显示的内联变量值对 Python 的 VS Code Native RE…

CentOS7下制作openssl1.1.1i RPM包并升级

OpenSSL最新漏洞 OpenSSL官方发布了拒绝服务漏洞风险通告&#xff0c;漏洞编号为CVE-2020-1971 漏洞详情 OpenSSL是一个开放源代码的软件库包&#xff0c;应用程序可以使用这个包来进行安全通信&#xff0c;避免窃听&#xff0c;同时确认另一端连接者的身份。这个包广泛被应…

LangChain深度解析:模型调用的艺术与实践

Model I/O 概述 LangChain的模型是框架中的核心&#xff0c;基于语言模型构建&#xff0c;用于开发LangChain应用。通过API调用大模型来解决问题是LangChain应用开发的关键过程。 可以把对模型的使用过程拆解成三块: 输入提示(Format)、调用模型(Predict)、输出解析(Parse) 1.…

【Kubernetes中如何对etcd进行备份和还原】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

开放式耳机哪种好用?开放式种草测评!

现在很多人都很喜欢用开放式耳机了&#xff0c;因为这种耳机非常的舒服&#xff0c;而且不会压迫我们的耳道&#xff0c;从而给到我们更健康的体验&#xff0c;但是现在开放式耳机的品牌越来越多&#xff0c;我们也越来越难选择&#xff0c;所以我们应该怎么样才能选到一款适合…

(七)Activiti-modeler中文支持

1、修改app.js&#xff0c;51行 注意第3步&#xff0c;之前已经访问过&#xff0c;缓存到cookie了&#xff0c;这里要么注释该方法&#xff0c;要么去浏览器手动删除对应cookie才能使用下面的zh-CN.json 2、i18n\en.json中添加zh-CN.json &#xff08;以下代码片断为网上获得…

【傅里叶分析】复数基础知识

【傅里叶分析】复数基础知识 复数复数的几何意义与点的对应与向量的对应 复数与极坐标辐角与辐角主值三角函数 参考文献 本文参考了网上的其他文章&#xff0c;已在文末参考文献中列出&#xff1b;如有侵权&#xff0c;请联系我删除。 复变函数是傅里叶分析的基础&#xff0c;而…

1、1.5、2.5、4、6、10平铜线可以带多大用电器?安全用电须知

现在家用铜线规格多是1、1.5、2.5、4、6平&#xff0c;那么这几种规格的导线能带多少瓦的用电器呢&#xff1f;今天小编就陪大家一起来分析一下。&#xff08;1平指的是国标导线的横截面积为1平方毫米&#xff09; 铜导线 红色用做火线&#xff0c;蓝色用做零线&#xff0c;黄…

Python中使用SQLite数据库的方法4-3

对于数据库的操作&#xff0c;主要包括“增”、“删”、“改”、“查”四种。在Python中使用SQLite数据库的方法4-1_python的sqlite怎么打开-CSDN博客和Python中使用SQLite数据库的方法4-2_python2 sqlite2-CSDN博客中实现增”、“删”和“查”三种操作。 1 带过滤条件的“查”…

深度学习基础—学习率衰减与局部最优问题

1.学习率衰减 下图中&#xff0c;蓝色的线是min-batch梯度下降法过程中较大学习率的的优化路径&#xff0c;绿线是较小学习率的优化路径。 如果使用min-batch梯度下降法&#xff0c;在模型的学习过程中&#xff0c;会有很多噪声&#xff0c;在靠近最小值的时候&#xff0c;由于…

测试用例的设计

*涉及概念来源于《软件测试的艺术》 目录 一、为什么要设计测试用例&#xff1f; 二、黑盒测试与白盒测试介绍 三、测试用例常见设计方法 1.黑盒测试(功能测试) 2.白盒测试(结构测试) 四、测试策略 五、测试用例怎么写 一、为什么要设计测试用例&#xff1f; 由于时间…

美国云服务器租赁多少钱一个月?

美国云服务器租赁大致价格区间为70元/月至数千元/月。不同的云服务器提供商&#xff0c;其定价策略和服务质量各不相同&#xff0c;导致价格存在差异。配置越高&#xff0c;价格自然越高。带宽越高、流量越大&#xff0c;费用通常也越高。另外&#xff0c;数据中心位置和服务水…

JVM 内存区域

一、JVM 简介 【概述】 JVM是Java虚拟机&#xff08;Java Virtual Machine&#xff09;的简称&#xff0c;是一种用于计算设备的规范&#xff0c;是一个虚构出来的计算机&#xff0c;通过在实际的计算机上仿真模拟各种计算机功能来实现的。我们学习使用的基本都是HotSpot虚拟…

学习node.js 二 path模块,os模块,process

目录 path模块 1. path.basename() 2. path.dirname 3. path.extname 4. path.join 5. path.resolve 6. path.parse path.format OS模块 1. 获取操作系统的一些信息 &#xff08;1&#xff09;os.platform() &#xff08;2)os.release &#xff08;3&#xff09;os.ho…

2024年玩转音乐,不只是剪辑!这4款软件让创意跳跃在每个音符间

现在这年头&#xff0c;音乐不光是听个乐呵&#xff0c;还能暖暖心。要是想自己捣鼓捣鼓这音乐&#xff0c;或者给日常生活加个调调&#xff0c;有个好的音乐剪辑软件就特别重要。今天&#xff0c;我就来晒晒我收藏的那些音乐剪辑软件&#xff0c;这些软件不光是剪剪切切的工具…

分布式缓存———数据一致性问题

分布式基础理论 CAP理论 与 BASE理论-CSDN博客 分布式系统会的三座大山&#xff1a;NPC。 N&#xff1a;Network Delay&#xff0c;网络延迟P&#xff1a;Process Pause&#xff0c;进程暂停&#xff08;GC&#xff09;C&#xff1a;Clock Drift&#xff0c;时钟漂移 在当前…

机器学习第十一章——计算学习理论

一、基础知识 计算学习理论(computational learning theory)研究的是关于通过“计算”来进行“学习”的理论&#xff0c;即关于机器学习的理论基础&#xff0c;其目的是分析学习任务的困难本质&#xff0c;为学习算法提供理论保证&#xff0c;并根据分析结果指导算法设计。 给…