Block-NeRF

Block-NeRF: Scalable Large Scene Neural View Synthesis:可扩展的大场景神经视图合成

摘要:论文中证明了在缩放NeRF以渲染跨越多个块的城市规模场景时,将场景分解为单独训练的NeRF很重要,该分解将渲染时间与场景大小解耦,使渲染能够缩放到任意大的环境,并允许按块更新环境。为每个单独的NeRF添加了外观嵌入、学习姿态细化和可控曝光,并引入了一种在相邻NeRF之间对齐外观的程序,以便它们可以无缝组合。
大规模场景带来的问题:
由于模型容量有限,将这些方法应用于大型环境通常会导致显著的伪影和较低的视觉逼真度。重建这样的大规模环境会带来额外的挑战,包括瞬时物体(汽车和行人)的存在、模型容量的限制以及内存和计算限制。在一致的条件下(短时间内),在一次捕获中极不可能收集到此类大型环境的训练数据。相反,环境不同部分的数据可能需要从不同的数据收集工作中获取,从而引入场景几何(例如,建筑工程和停放的汽车)以及外观(例如,天气条件和一天中的时间)的差异。
Block NeRF创新:
1、通过外观嵌入学习姿态细化来扩展NeRF,以解决收集数据中的环境变化和姿态误差。添加了曝光调节,以提供在推断期间修改曝光的能力。
2、将大型环境划分为单独训练的Block NeRF,然后在推理时对其进行渲染和动态组合。独立地对这些Block NeRFs进行建模可实现最大的灵活性,可扩展到任意大的环境,并提供以分段方式更新或引入新区域的能力,而无需重新训练整个环境。
3、提出了一种外观匹配技术,该技术通过优化不同的块NeRF的外观嵌入,将其带入视觉对齐,实现缝合。

相关知识
该方法不依赖于大规模SfM来生成相机姿态,而是在收集图像时使用车辆上的各种传感器进行里程测量。
在mipNeRF之上构建了我们的Block NeRF实现,这改善了在输入图像从许多不同距离观察场景的场景中影响NeRF性能的混叠问题,关于MipNeRF的介绍可以看这里
结合了NeRF in the Wild的技术,该技术在将NeRF应用于照片旅游数据集中的地标时,为每个训练图像添加一个潜在代码,以处理不一致的场景外观
论文中将环境分割成一组块NeRF,这些块NeRF可以并行独立训练,并在推理过程中合成。这种独立性使得能够使用额外的Block NeRF扩展环境或更新块,而无需重新训练整个环境。并且动态选择相关的块NeRF进行渲染,然后在遍历场景时以平滑的方式合成这些块NeRF。为了帮助合成,优化外观代码以匹配照明条件,并使用基于每个块NeRF到新视图的距离计算的插值权重。
Block-NeRF_第1张图片
模型是mip-NeRF中提出的模型的扩展。第一个MLP fσ预测空间中位置x的密度σ。网络还输出与观看方向d、曝光水平和外观嵌入连接的特征向量。这些被馈送到第二个MLP fc,该MLP fc输出点的颜色。训练了可见性网络fv,以预测空间中的点在训练视图中是否可见,这用于在推断期间剔除块NeRF。

1、 Block Size and Placement

论文设定在每个交叉口放置一个block NeRF,覆盖交叉口本身和75%的道路上的任何相连街道,直到其汇聚到下一个交叉口。这将导致连接街道段上任意两个相邻街区之间的重叠达到50%,从而使它们之间的外观对齐更加容易。遵循此过程意味着块大小是可变的;必要时,可以引入额外的块作为交叉点之间的连接器。连接街道段上任意两个相邻街区之间的重叠达到50%,从而使它们之间的外观对齐更加容易。遵循此过程意味着块大小是可变的;必要时,可以引入额外的块作为交叉点之间的连接器。

2、Training Individual Block-NeRFs

2.1 Appearance Embeddings

根据街景会在不同不同环境下获取,遵循NeRF-in the Wild方法,用生成潜在优化来优化外观嵌入特征向量(可以学习的),使得NeRF能够解释一些外观变化的情况。此外,论文中表示还可以操纵这些外观嵌入,以在训练数据中观察到的不同条件之间进行插值,如下图所示,修改外观代码允许模型表示不同的照明和天气条件。
Block-NeRF_第2张图片

2.2 Learned Pose Refinement

尽管图片输入时包含了相机位姿信息,但是论文指出,发现学习正则化的姿势偏移对于进一步对齐是有利的。这些偏移是按驾驶分段学习的,包括平移和旋转分量。与NeRF本身一起来优化这些偏移,在训练的早期阶段显著地调整偏移,这样允许网络在修正姿势估计之前首先学习一个粗结构。

2.3 Exposure Input

训练图像可以在广泛的暴露水平范围内捕获,如果不加以考虑,可能会影响NeRF训练。论文中指出,将相机曝光信息提供给模型的外观预测部分允许NeRF补偿视觉差异(见下图)。具体而言,曝光信息被处理为γPE(快门速度×模拟增益/t),其中γPE是具有4级的正弦位置编码,t是缩放因子(实践中使用1000)。下图中,模型以exposure为条件,这有助于解释训练数据中存在的暴露变化。这允许用户在推断期间以人类可解释的方式改变输出图像的外观。
将表征曝光的参数加入到外观预测部分中,即修改曝光得到不同的图像。
Block-NeRF_第3张图片

2.4 Transient Objects

虽然该方法使用外观嵌入说明了外观的变化,但论文假设场景几何体在整个训练数据中是一致的。任何可移动物体(如汽车、行人)通常都违反了这一假设。因此,我们使用语义分割模型来生成常见可移动对象的masks,并在训练期间忽略masks区域。虽然这不考虑环境中其他静态部分的变化,例如建筑,但它适应了最常见的几何不一致类型。

2.5 Visibility Prediction

当合并多个块NeRF时,了解特定空间区域在训练期间是否对给定的NeRF可见是有用的。用一个额外的MLP fv扩展模型,该MLP被训练来学习采样点可见性的近似值。对于沿训练射线的每个样本,fv取位置和视图方向,并回归点的相应透射率(即渲染公式中的Ti)。该模型与提供监督的fσ一起训练。
透射率表示点从特定输入相机的可见程度:自由空间中或第一个相交对象表面上的点的透射率将接近1,第一个可见对象内部或后面的点的透明度将接近0。如果一个点从某些视点看到,而从其他视点不能看到,则回归后的透射率值将是所有训练摄像头的平均值,介于0和1之间,表明该点被部分观察。能见度预测与Srinivasan等人提出的能见度场相似,他们使用MLP来预测环境照明的可见性,以恢复可重新照明的NeRF模型,论文中预测训练光线的可见性。
可见性网络很小,可以独立于颜色和密度网络运行。这在合并多个NeRF时证明是有用的,因为它可以帮助确定特定NeRF是否可能为给定位置产生有意义的输出,能见度预测也可用于确定在两个NeRF之间执行外观匹配的位置。

3、Merging Multiple Block-NeRFs

3.1 Block-NeRF Selection

为了提高效率,使用了两种过滤机制来仅渲染给定目标视点的相关块。考虑距离和能见度
1、只考虑在目标视点设定半径内的block-NeRF
2、每个候选项,计算相关的可见性。如果平均可见度低于阈值,丢弃块NeRF
可见性可以快速计算,因为其网络独立于颜色网络,并且不需要按照目标图像分辨率进行渲染。滤波后,通常还有1-3个block-NeRF需要合并。

场景被分割为多个块NeRF,每个块NeRF都在特定块NeRF原点坐标(橙色点)的某个半径(橙色虚线)内的数据上进行训练。要渲染场景中的目标视图,将为给定半径内的所有NeRF计算可见性贴图。丢弃具有低可见性的块NeRF(底部块NeRF),并为剩余块渲染颜色输出。然后根据每个块原点到目标视图的距离合并渲染。
Block-NeRF_第4张图片

3.2 Block-NeRF Compositing

从每个过滤的Block NeRF渲染彩色图像,并使用相机原点c和每个Block NeRF的中心xi之间的反向距离权重在它们之间进行插值。具体来说,将各个权重计算为wi ∝ distance(c,xi−p,其中p影响块NeRF渲染之间的混合速率。插值在2D图像空间中完成,并在块NeRF之间产生平滑过渡。

3.3 Appearance Matching

在训练了Block NeRF之后,学习的模型的外观可以由外观潜代码控制。这些代码在训练期间被随机初始化,因此当被馈送到不同的块NeRF时,相同的代码通常导致不同的外观。这在合成时是不可取的,因为它可能会导致视图之间的不一致。给定其中一个Block NeRF中的目标外观,目标是匹配其在其余块中的外观。为了实现这一点,首先在相邻块NeRF对之间选择3D匹配位置。对于两个NeRF区块,该位置的能见度预测应较高。
给定匹配位置,冻结块NeRF网络权重,仅优化目标的外观代码,以减少相应区域渲染之间的L2损失。这种优化很快,在100次迭代内收敛。虽然不一定会产生完美的对齐,但此过程会对齐场景的大多数全局和低频属性,例如一天中的时间、颜色平衡和天气,这是成功合成的先决条件。
下图显示了一个优化示例,其中外观匹配将白天场景转换为夜间场景,以匹配相邻的Block NeRF。
Block-NeRF_第5张图片

优化的外观在场景中迭代传播。从一个根的块NeRF开始,优化相邻块的外观,并从那里继续该过程。如果目标区块NeRF周围的多个区块已经优化,在计算损失时会考虑每个区块。

你可能感兴趣的:(NERF系列,计算机视觉,人工智能,数码相机)