【三维重建】SMERF:内存高效的辐射场--实时大场景重建(论文解读)

题目:SMERF: Streamable Memory Efficient Radiance Fields for Real-Time Large-Scene Exploration
来源:Google DeepMind; Google Research
项目:https://smerf-3d.github.io.



摘要

  最近的实时视图合成技术保真度和速度方面取得了迅速的进展。对比两种方法: 易于栅格化的显式场景表示和建立在射线行进上的神经场之间出现了紧张关系,后者在质量上表现好,却难以实时。

  SMERF是一种视图合成方法,在3.5 mm3 的实时大场景中实现了最先进的精度。主要有两个贡献: 层次模型划分方案 ,它在限制计算和内存消耗的同时增加了模型容量,以及 蒸馏训练策略,同时产生高保真度和内部一致性。SMERF可以在网络浏览器中实现完全6个自由度(6个自由度)的导航,并在普通智能手机和笔记本电脑上进行实时渲染。(实验表明)超过当前最先进的实时新视图合成0.78 dB标准基准和1.78 dB大型场景, 渲染要快三个数量级(比先进的辐射场模型)。


一、前言

  与网格和点云等显式表示不同,辐射场通常被存储为神经网络,并使用体渲染重建真实世界的3D场景。它可以简洁地表示复杂的几何形状和视图依赖的效果,但在质量、速度或表示大小方面与Gaussian Splatting 等其他方法形成竞争

  作为辐射场的扩展SMERF能够实时渲染更高保真度的大空间:使用内存高效辐射字段(MERF)的变体,一种用于实时视图合成的紧凑表示,作为核心构建块。我们构建了一个由自包含的MERF子模型组成了层次模型架构,每个子模型都专门用于场景中的一个视点区域。这极大地增加了算力有限的模型容量。SMERF将子模型填充场景,以提高空间分辨率,并在每个子模型区域内填充(tile)参数,以更准确地建模视图相关的效果。

  模型容量的增加是一把双刃剑,小模型的架构,会缺乏先进大模型的归纳偏见(对合理重建至关重要)。因此,我们引入了一种新的蒸馏训练过程,它提供了丰富的颜色和几何形状的监督,包括泛化到新的视点和在摄像机运动下的稳定结果。

二、相关工作

2.1 提高NeRF的速度

  许多工作通过预计算NeRF的视图相关的颜色和稀疏体积数据结构的 opacities来实时渲染。其他研究表明,渲染/训练可以通过参数化具有大密集[56,68,77]的辐射场、hash[37]或低秩的体素网格参数化[9,10]、小MLPs [47]网格或神经纹理“polygon soup”来显著加速。或者,可以通过减少样本预算来加速渲染,同时仔细分配体积样本来保持质量。

  一般来说,在渲染时间和内存消耗之间存在着一种紧张关系。 MERF 使用稀疏和低秩体素网格表示的组合从而能够在有限的内存预算下实时渲染无边界场景

2.2 提高NeRF的质量

  与此同时,社区以许多不同的方式提高了NeRF重建质量,如减轻混叠[4,23],在不影响计算[37]的情况下增加模型容量,建模无界场景[5],以及消除floaters[44]。其他工作提高了对其他挑战的鲁棒性,如不准确的相机姿态[29,41,54],有限的监督[39,50,69,74],或异常值,如照明变化、瞬态物体[32,49]和场景运动[24,40]

  与我们的工作最相关的是Zip-NeRF,它使用多采样来实现快速基于网格的表示的抗混叠。我们 将高保真的Zip-NeRF模型提炼为一组基于MERF的子模型的方法,从而实现质量和实时渲染。还结合了改变照明[32]的latent code和减轻floaters[44]的梯度比例,对渲染速度没有影响

2.3 基于栅格化的视图-合成

  不同于NeRF 的per-pixel ray-marching, 另一种范例是利用专门的GPU硬件的 per-primitive 光栅化:早期方法用三角形mesh近似几何,并使用图像blending 来建模与视图相关的外观。后来的方法通过神经外观模型[20,30,31]或神经网格重建[45,51,65,75]提高了质量。最近的方法,通过栅格化重叠的mesh,解码[63]或合成结果缓冲[11]来建模更详细的几何模型。此外,对于有限的观测量,透明度可以用分层表示来建模,如多平面图像(multi-plane images)。

  GPU硬件还加速了基于点的表示的呈现。早期的方法通过使用U-Net [1,52,67]解码稀疏点云来合成视图。最近的研究表明,基于软点的表示(soft point-based:通过将每个点扩展到一个带有软重构内核的磁盘中)易于进行基于梯度的优化,并可以建模半透明度和视觉依赖的外观

   3D Gaussian Splatting(3DGS) 提高了视觉保真度,简化了初始化,改善了基于软点的表示的运行时间,但优化仍然具有挑战性,需要仔细选择启发式进行点分配。这在大型场景中很明显,因为许多区域缺乏足够的点密度。虽然最近的重新实现在移动端[28,82]呈现了3DGS模型,但它们依赖于近似来排序顺序和视图依赖性

2.4 大场景的NeRF

  NeRF很难扩展到大场景:对于以对象为中心的重建,通过将场景的无界背景区域重新参数化为有界域来改善,如Mip-NeRF、NeRF++。通过应用抗混叠技术,如Zip-NeRF、VR-NeRF对更大的多房间场景建模。另一种方法是将场景分割成多个区域,并为每个区域训练一个单独的NeRF, 如[DeRF, Mega-NERF, ScaNeRF]。这个想法还促进了实时渲染对象[47]和房间尺度场景[70]的能力。然而,要扩展到超大的场景,如城市街区或整个城市环境,就需要根据摄像机的位置划分为冗余的、重叠的场景volumes[34,58]。现有的模型需要昂贵的渲染和来自多个子模型的图像混合,但 SMERF只需要一个子模型来渲染给定的相机,并在训练期间利用正则化来鼓励相互一致性

2.5 蒸馏和NeRF

  深度学习中的蒸馏——训练小的学生模型,来近似大的教师的输出。在NeRF在各种上下文中应用:(1)蒸馏大MLP为一个小MLP的Grid[47],(2)蒸馏一个复杂的NeRF MLP到一个小“proposal”MLP来限定密度[5]。或(3)蒸馏昂贵的第二条射线,反回到轻量级模型来逆渲染[55]。此外,蒸馏法还通过将整个NeRF场景转换为光场模型[2,8,18,64]或表面表示[45]来消除昂贵的射线marching,并促进实时渲染。

  本文将一个大的、高质量的Zip-NeRF模型的外观和几何形状,提炼成一个类似于MERF的子模型家族 。与我们的工作同时, Hybrid-NeRF[61]也使用蒸馏进行实时视图合成,尽管是一个有符号的距离场。

三、MERF模型的回顾

  MERF使用了从3D位置 x∈R3 ,到特征向量 t∈R8 的映射

  MERF使用高分辨率三平面(Px,Py,Pz∈RR×R×8)和低分辨率稀疏体素网格 V∈RL×L×L×8 的组合来参数化这个映射 。将一个查询点x投影到三个轴对齐的平面上,并通过双线性插值来查询底层的二维特征网格。此外,还从稀疏体素网格中提取了一个三线性样本。然后将得到的四个8维向量相加在一起:

在这里插入图片描述
然后将这个向量解压缩成三个部分,分别进行独立校正,以产生密度(标量)、diffuse RGB颜色和编码视图依赖的特征向量:

在这里插入图片描述

  为了渲染一个像素,从该像素的投影中心沿观察方向 o 投射一条光线 d,并以一组距离 {ti} 采样,以沿光线生成一组点 xi = o + tid。在NeRF中,密度 i} 被转换为由体渲染积分近似的alpha合成权值 {wi}

在这里插入图片描述

  其中,δi = ti+1−ti 为相邻采样点之间的距离。alpha合成后,使用SNeRG [21]的 deferred shading 方法解码,利用小的MLP:h(·;θ) 得到最终像素颜色:

在这里插入图片描述

  在无限的场景中,遥远的内容可以被粗略地建模。为了获得随着距离场景焦点的距离而下降的分辨率,MERF在查询特征字段之前,对每个空间位置x应用一个收缩函数

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值