没有合适的资源?快使用搜索试试~ 我知道了~
162000DIVeR:用于体积渲染的实时准确神经辐射场与确定性积分0Liwen Wu Jae Yong Lee Anand Bhattad Yu-Xiong Wang David Forsyth 伊利诺伊大学香槟分校 {liwenwu2, lee896,bhattad2, yxw, daf}@illinois.edu0摘要0DIVeR基于NeRF及其变种的关键思想-密度模型和体积渲染-来学习可以从少量图像逼真渲染的3D物体模型。与所有先前的NeRF方法不同,DIVeR使用确定性而不是随机估计的体积渲染积分。DIVeR的表示是基于体素的特征场。为了计算体积渲染积分,将射线分成间隔,每个体素一个间隔;使用MLP从每个间隔的特征估计体积渲染积分的组成部分,并将这些组成部分聚合。因此,DIVeR可以渲染其他积分器无法捕捉到的薄半透明结构。此外,与其他类似方法相比,DIVeR的表示具有相对暴露的语义-在体素空间中移动特征向量会产生自然的编辑。与当前最先进方法的广泛定性和定量比较表明,DIVeR生成的模型具有(1)达到或超过最先进质量的渲染,(2)非常小而无需烘焙,(3)渲染速度非常快而无需烘焙,(4)可以以自然的方式进行编辑。我们的实时代码可在以下网址找到:https://github.com/lwwu2/diver-rt01. 引言0将一小组图像转换为可渲染的场景模型是场景生成、外观建模、重照和计算摄影的重要步骤。这个任务已经得到了广泛研究;模型应该采取什么形式仍然是一个开放的问题,模型的形式范围从显式的几何和材质表示到光场函数模型[1]。光场函数很难平滑,但是神经辐射场(NeRF)[25]表明,具有位置编码的多层感知器(MLP)是一个异常好的平滑器,导致了各种变体的出现(详见相关工作)。所有这些方法都使用了一个关键技巧:将场景建模为密度和颜色函数,并使用体积渲染积分的随机估计进行渲染。我们描述了一种替代方法-用于体积渲染的确定性积分(DIVeR),在速度和准确性上与现有技术相媲美。0NeRF PlenOctrees0DIVeR(我们的方法) 真实值0图1. 蒙特卡洛与特征积分。像NeRF [25]和PlenOctrees[55]这样使用蒙特卡洛(随机)积分器的方法无法渲染半透明的鼓面;它很薄,因此只被少量样本击中。NeRF的估计器将无法使用实际数量的样本对其进行建模。相比之下,我们的方法使用确定性积分器,通过特征积分(第4.2节)直接估计靠近鼓面的体积渲染积分的部分;这样可以减少对积分器的调用,并且仍然成功地模拟了透明度。0我们使用确定性积分器,因为随机估计积分存在问题。样本可能会错过重要的效果(图1)。通过增加采样率来修复这个问题是昂贵的:准确性在样本数量N上改善缓慢(对于蒙特卡洛方法,标准差随1/√N变化)。0N[4]),但计算成本呈线性增长。相比之下,我们的积分器使用alpha混合(第4.2节)将体积渲染积分的每个体素的估计合并为一个估计。与NSVF[21]类似,我们使用基于体素的颜色和密度表示。我们在每个体素顶点提供一个特征向量,而不是表示函数。给定体素顶点上的特征向量由MLP用于计算通过体素的任何射线的部分的确定性积分器估计。主要上,模型是ˆc(r) =� ∞0e−� t0 σ(r(τ))dτσ(r(t))c(r(t), d)dt.(1)ˆc(r) =n�i=1i−1�j=1(1 − αj)αici(2)αi = 1 − e−σiδi,(3)L =�k∥ˆc(rk) − ˆcgt(rk)∥22.(4)162010通过梯度下降学习特征向量和MLP参数,以最小化训练视角的预测误差;通过使用新的射线查询生成的结构来进行渲染。第4节提供了详细信息。在相似的计算资源下,我们的模型训练效率高,可能是因为确定性积分可以更好地拟合积分,而且没有由随机积分估计产生的梯度噪声。正如第5节所示,该过程产生的模型非常小(约64MB),渲染速度非常快(在单个1080 TiGPU上约50FPS),并且具有与最佳NeRF模型相当的PSNR。02. 背景0NeRF [25]使用密度场σ(x)和颜色场c(x,d)来表示3D场景,它们是3D位置x和视角d的函数,由具有权重w的MLP编码。要渲染一个像素,从相机中心o通过像素中心的方向d发射一条射线r(t) = o +dt,并遵循体积渲染方程[14]累积辐射度:0对于方程1,没有闭式解,因此NeRF使用蒙特卡洛积分通过随机采样n个点xi = r(ti),i = 1, ...,n沿着从眼睛到远处的射线上的辐射度和密度值(ci, σi) =MLPw(xi, di)。然后,将辐射度和密度函数在每个区间[ti-1,ti]中视为常数,并给出体积渲染方程的近似值:0其中αi表示区间内累积的alpha值,δi = ∥xi+1 -xi∥2是区间长度。在训练过程中,NeRF通过优化权重w来调整密度和颜色场以生成训练图像,这是通过最小化渲染像素与其真实值之间的平方误差来实现的:03. 相关工作0新视角合成:所有场景建模方法都试图利用场景的光场函数(在任何点上以任何方向传播的光谱辐射度)中的规律性。一种方法是计算显式的几何表示(点云[2, 48];网格[36,37, 46]),通常是从一些3D重建算法(例如COLMAP[39])获得的。然后,几何形状可以携带深层次的信息。0特征被投影并通过神经网络进行处理以获取图像。然而,构建一个端到端的可优化流程很困难。或者,可以使用体素网格[22, 34,41],其中场景观察被编码为3D特征,并通过3D、2D卷积神经网络(CNNs)进行处理以获取渲染图像,从而获得更清晰的训练结果,但是这种模型对内存要求很高,不适合高分辨率渲染。多平面图像(MPIs)[24, 44, 51,59]提供了不需要精确几何代理的新视角。其中一个将场景表示为一组平行的RGBA图像,并通过将图像变形到目标视角并进行alpha混合来合成新视角;当视角变化过大时,这种方法会失败。基于图像的渲染(IBR)方法[6, 7,49]通过直接插值附近的观察结果来渲染视角。大多数IBR方法对未见数据具有很好的泛化能力,因此可以直接使用IBR模型渲染新场景,或者经过几个时期的微调后进行渲染。另一种方法是使用神经网络来表示光场函数的代理,然后进行光线投射。[15, 42,54]使用类似于有符号距离场的函数,[28,38]将场景几何表示为占据场。NeRF[25]使用MLP来编码密度场(位置)和颜色场(位置和方向)来模拟光场函数。点在某个方向上的辐射度由体积渲染积分给出[14]。训练是通过调整MLP参数来使其对给定的一组图像产生正确的答案。该方法可以在复杂场景上产生逼真的渲染效果,包括渲染透明表面和视角相关效果,但是训练和评估时间较长。NeRF已经产生了丰富的变体。[3, 43,0[58]修改NeRF以允许控制表面材料和照明;NeRF-W[23]通过在输入中增加图像特征来帮助解决野外照片之间的歧义。[29, 30, 32]展示了如何建模变形,[10, 11, 18, 19,52]将NeRF应用于4D视频。最后,[6, 7, 45, 49,56]试图提高泛化能力和训练速度,[5, 27, 35, 40,47]采用该架构用于生成模型。0更快地渲染NeRF:NeRF的随机积分器不仅会错过细小结构(这些结构很难通过采样找到,图1),而且还存在效率问题。改善NeRF效率的主要策略(与任何MC积分器一样)是提出更好的重要性函数[4]。NSVF[21]通过在密度上施加体素网格,然后在训练时修剪空密度的体素,从而显著减少采样数量(等效地,减少MLP调用;渲染时间)。另一种方法是深度预测器,确保MLP样本仅出现在高密度点附近[26]。AutoInt[20]通过构建近似的原函数(尽管吸收积分仍然必须近似)为体积渲染积分提供了更高效的估计器,从而在渲染时减少了MLP查询次数。与这些方法相比162020图2.我们DIVeR的渲染流程概述。为了渲染一条射线,我们首先找到它与体素的交点。对于每个体素,其八个顶点处的特征表示一个三线性函数。我们从射线的入口到出口积分这个三线性函数,并将结果传递给MLP,解码为体素的颜色和透明度值。通过沿着射线累积颜色和透明度值,我们得到射线的最终积分估计。0方法中,我们使用确定性积分估计器。但是,基于重要性的纯方法无法实时渲染,因为它们依赖于相对昂贵的MLP评估。FastNeRF[12]将连续场离散化为bin,并缓存已经评估过的bin以供后续帧使用。PlenOctrees [55]和SNeRG[13]将NeRF的结果预先烘焙到稀疏体素中,并使用高效的射线行进实现交互式帧率。这些方法以明显的质量损失(我们的方法没有)或需要高分辨率体素网格和大量存储成本(我们的方法没有)的代价实现实时渲染。替代策略包括:将MLP调用缓存到MPI中(Nex[51]);通过将一个MLP分解为许多小的本地专家MLP来加速MLP评估(KiloNeRF[33])。相比之下,我们使用在训练时获得的表示和MLP。04. 方法0如整体渲染流程所示(图2),我们的DIVeR方法与NeRF风格模型有两个重要的区别:(1)我们将场景表示为特征向量fijk的体素网格,(2)我们使用具有可学习权重w的解码器MLP(图6)设计确定性积分器,以估计场景的任何场的部分积分。为了估计特定射线的体积渲染积分,我们将其分解为与射线相交的体素对应的区间。然后,让每个区间报告体素的贡献的近似估计,并将它们累积到渲染结果中。通过调整fijk和w来学习场的方法是通过产生接近观察图像的近似值。0图3.简单的体素模型过拟合:使用独立的fijk训练模型很容易过拟合。在这个例子中,模型将光泽特征解释为空白空间。我们的正则化过程在文本中解释。0图4.隐式MLP通过对顶点位置进行位置编码并生成特征向量来生成相关的顶点特征。04.1. 基于体素的深度隐式场0与NSVF[21]类似,特征向量放置在体素网格的顶点上;每个体素内的特征值由体素的八个角点的三线性插值得到,从而得到分段三线性特征函数f(x)。体素网格可以被视为NeRF的MLP的中间和缓存,这解释了为什么推断速度快(第5.3节),同时可以紧凑地建模复杂的空间行为(第5.2节)。由于空白空间中的体素对体积渲染没有贡献,因此体素网格还可以以稀疏表示的方式存储(第4.5节),从而进一步加快渲染速度并降低存储成本(第5.3节)。0使用隐式MLP初始化体素特征:如果每个fijk都是独立训练和随机初始化的,我们的表示方案在训练过程中往往会过拟合(图3)。这表明每个fijk的优化应该是相关的,但是不明显应该应用哪种相关策略。相反,我们采用一个MLP,它接受体素网格上的位置编码顶点位置,并输出该位置处的特征向量(隐式MLP,具有参数wr;见图4),以隐式地相关每个特征向量。虽然MLP原则上可以逼近任何函数,但有压倒性的实验证据表明,逼近的函数往往是平滑的(例如[51]),这使其不适合渲染高频细节。因此,我们首先训练隐式MLP以生成放置在相应体素网格顶点处的fijk的合理初始化,然后丢弃正则化MLP,直接在fijk上进行显式优化。实验证明,这种“隐式-显式”策略可以防止过拟合,同时保留高频内容。(σi, ci) = MLPw(�outwhere�out� toutitini� toutitini(6)ˆc(r) =σi =� toutitiniσ(r(t))dt, ci =),(10)162030蒙特卡洛特征整合0图5.整合策略比较。蒙特卡洛方法使用常数填充一个区间;特征整合使用三线性函数拟合该区间,并使用MLP进行混合。04.2. 特征整合0将射线与体素网格相交得到一组区间,这些区间由我们的积分器分别处理。记(tin1, tout1), ..., (tin n, toutn)为定义这些区间的参数值,从眼睛到远端。对于区间i,通过将f(x)沿区间的归一化积分传递给MLP,我们得到密度σi和辐射度ci。设f i1, ..., fi8为区间通过的体素的角点处的特征向量,χ1(x), ...,χ8(x)为相应的三线性插值权重,因此:0通过对时间t从tin到tout的积分得到ˆf(r(t))的估计值dt(5)0通过对时间t从tin到tout的积分得到tiniˆf(r(t))的估计值0通过对时间t从tin到tout的积分得到k =1到8的fikχk(r(t))|touti - tini|dt的估计值0k =1到8的fik0通过对时间t从tin到tout的积分得到χk(r(t))的估计值|touti - tin i|dt0这里w是MLP的可学习权重,我们将视线方向d纳入模型以模拟视角相关效果。这些近似值通过以下方式累积为积分的单个值:0n个0对于每个i,通过迭代计算得到αi的值,其中αi = 1 - (1 - αj) * αi * ci(7)0αi = 1 - e^(-σi)(8)0在时间t内,通过对密度函数r(t)和视线方向d的积分得到密度函数的估计值dt(9)0(这是方程1的近似,详见补充材料)。请注意,如果MLP没有隐藏层,并且被积函数是已知的函数,我们将调整积分函数展开的基函数的分量以产生近似值。我们的积分器相对于MC有两个优势。首先,我们在每个区间上获得了稍微更好的估计值(MC估计值假设区间内的场是常数;我们的方法使用MLP拟合它们;见图5),这在渲染质量上体现出来(第5.4节)。其次,由于积分器是0DIVeR640DIVeR320图6.解码器架构。DIVeR64大约有8K个参数;DIVeR32大约有4K个参数。这两个MLP将集成特征和位置编码的观察方向作为输入,并输出相应的集成密度和颜色。0确定性的,积分估计误差是确定性的,梯度也是确定性的,这可能有助于学习;我们的经验是,与标准的NeRF相比,我们的方法梯度消失的情况较少,并且对学习率的选择不太敏感。04.3. 架构0我们选择特征维度为32,体素网格大小根据目标图像分辨率变化。网格相对粗糙,可以用稀疏表示方法非常高效地表示(第5.1节)。如图6所示,我们研究了两种不同的MLP解码器:DIVeR32和DIVeR64。与[25]类似,我们对观察方向d进行位置编码,但我们直接将集成特征f传递到MLP中,而不进行位置编码。我们在隐式正则化MLP中使用10个频段进行位置编码,解码器MLP中使用4个频段。由于架构非常简单,一个MLP的调用时间不到1毫秒,这使得MLP的评估可以实时进行。04.4. 训练0我们为每个场景优化fijk、w和wr。在训练步骤中,我们从训练集中随机采样一批光线,并按照第4.2节中描述的过程渲染颜色,然后使用方程4对fijk和w进行梯度下降。我们希望体素网格是稀疏的,因此通过[13]的正则化损失来阻止模型在空白空间中预测背景颜色:0L稀疏 = λs ×0ilog(1 + σ2i)0其中σi表示第i个累积密度;λs是正则化权重。与NeRF不同,我们不需要分层体素采样,因为我们使用确定性积分。NeRF-SyntheticJaxNeRF [9]31.650.9520.051AutoInt [20]25.550.9110.170NSVF [21]31.740.9530.047DIVeR6432.320.9600.032BlendedMVSNeRF [25]24.150.8280.192JaxNeRF [9]---AutoInt [20]---NSVF [21]26.900.8980.113DIVeR6427.250.9100.073Tanks & TemplesNeRF [25]25.780.8640.198JaxNeRF [9]27.940.9040.168AutoInt [20]---NSVF [21]28.400.9000.153DIVeR6428.180.9120.116162040由粗到精:我们通过粗到精的过程加速训练。在训练初期,使用粗分辨率图像就足以确定特定区域是否为空,使用第4.5节中讨论的剔除策略。基于粗粒度的占据图,我们然后训练高分辨率图像,并高效地跳过空白空间。在这样做时,我们丢弃在粗图像上训练的特征和MLP权重(这些特征和权重被训练为忽略细节)。04.5. 推理时间优化0为了避免查询对图像没有影响的体素(空体素;被遮挡的体素),我们按照[55]的方法记录每个体素从训练视图中的最大混合αi-1j=1(1-αj)αi,然后剔除所有最大混合α低于阈值τvis =0.01的体素。这样平均剔除了98%的体素,但保留了透明表面。我们在粗训练步骤之后进行剔除(以加速精细训练),然后再次进行剔除。为了避免在某个相机视图上被遮挡的体素上工作,我们从视点评估区间,并在透射率估计为0时停止光线的工作。0当 (1 - αi) 低于阈值 (τt = 0.01)时,我们不需要评估颜色。与其他基于体素的实时应用不同,我们不需要转换训练模型(因此没有精度损失等等,因为没有离散化模型)。虽然原则上,我们的推理时间优化必然会导致精度损失,但第5.3节的结果表明这种损失是可以忽略的。05. 实验0我们使用离线渲染任务(FPS ≤ 20)和实时渲染任务(FPS>20)进行评估。我们使用NeRF合成数据集[25](尺寸为800×800的合成图像和相机姿态);Tanks andTemples数据集[17]和BlendedMVS数据集[53]的子集(由NSVF作者[21]选择)。Tanks andTemples图像尺寸为1920×1080;BlendedMVS图像尺寸为768×576。这两个数据集的背景都被NSVF裁剪。我们的实验的定性结果可以在图7和图8中看到。在所有定量测量中,我们用粗体标记最佳结果,用斜体带下划线标记第二佳结果。05.1. 实现细节0训练:我们使用PyTorch [ 31]进行网络优化,并使用自定义的CUDA内核加速射线-体素相交。对于高分辨率图像训练,隐式模型和显式模型都使用大小为256x256x256的体素网格进行NeRF-Synthetic和BlendedMVS,以及大小为320x320x320的体素网格进行Tanks andTemples。对于粗略模型训练,我们采用精细模型尺度的1/4的体素网格和图像。我们遵循NSVF [ 21]的策略从训练集中采样射线,并选择1024像素的批量大小进行粗略训练,6144像素的批量大小进行精细训练。0方法 PSNR ↑ SSIM ↑ LPIPS ↓0表1.在不同基准测试上的定量结果显示,我们的方法(DIVeR64)在离线渲染方面与NeRF及其变体相比是最好的。'-'表示没有公开可用的结果。(最佳;次佳)。0Tanks andTemples的训练使用8192进行粗略训练,其他数据集的精细训练使用8192。首先,对粗略模型进行5个epoch的明确训练,然后使用隐式MLP训练模型,直到验证损失几乎收敛。最后,我们训练从隐式模型初始化的显式网格,并在总训练时间达到3天时停止训练。总的来说,GPU的峰值内存使用量约为40GB。我们使用Adam [ 16]优化器,细粒度模型的学习率为5e-4,粗粒度模型的学习率为1e-3,稀疏正则化损失的λ s为1e-5。实时应用:我们的实时应用使用CUDA和Python实现,所有操作都是针对每个图像像素进行并行化。对于每个帧和每个像素,射线行进在体素网格上找到固定数量的击中点;对于每个击中点,评估MLP,并将结果混合到图像缓冲区中。直到达到射线终止条件(第4.5节)为止,重复此过程。存储:由于体素网格是稀疏的,我们只需要存储:非空体素的特征向量的索引和值;二进制占用掩码;以及MLP权重。在推理过程中,我们将特征向量保留在一个1D数组中,然后构建一个稠密的3D数组,用于存储到特定特征值的索引,从而在不牺牲太多性能的情况下减少了GPU内存需求。05.2. 离线渲染0我们通过使用PSNR、SSIM [ 50 ]和LPIPS [ 57]来衡量渲染图像与真实图像之间的相似性来评估离线模型。我们对所有场景使用我们的DIVeR64模型。基准:我们与原始的NeRF [ 25 ]、Jax [ 9 ]中的重新实现、AutoInt [ 20]和NSVF [ 21]进行比较(它们使用类似的体素网格特征)。从训练的模型中预训练。NeRF-SyntheticNeRF [25]PlenOctrees [55]DIVeR32(RT)Ground TruthJaxNeRF+ [13]33.000.9620.038NeRF [25]31.000.9470.081DIVeR3232.160.9580.032162050图7.定性渲染结果显示,我们的方法成功地模拟了细节和半透明结构(船上的护罩和绳索;乐高积木上的凸起;鼓面),这是NeRF和PlenOctrees难以实现的。我们的方法比PlenOctrees稍慢(实时),但体积更小;NeRF是离线运行的。0方法 PSNR ↑ SSIM ↑ LPIPS ↓0表2.在NeRF-synthetic上与实时预训练模型的图像质量比较强烈支持我们的方法(几乎与JaxNeRF+一样好)。在表3中,我们展示了它们对应的烘焙实时应用的性能。0实时NeRF变体产生了良好的渲染质量,但是它们是在非常大的计算资源上进行训练和评估的(例如,JaxNeRF+[13]将NeRF的MLP的特征大小加倍,并且在体积渲染时需要5倍的样本,这在标准GPU上进行评估是不切实际的)。因此,我们将它们排除在基线模型之外。0结果:DIVeR的渲染质量与其他离线基线相当,但其架构要简单得多(表1)。我们的PSNR只比Tanks andTemples上的NSVF稍差,但我们使用了一个简单得多的解码器MLP。0方法 PSNR ↑ SSIM ↑ LPIPS ↓ FPS ↑ MB ↓ GPU GB ↓0PlenOctrees [55] 31.71 0.958 0.053 76 ± 66 1930 1.65 ± 1.09 SNeRG[13] 30.38 0.950 0.050 98 ± 37 84 1.73 ± 1.48 FastNeRF [12] 29.970.941 0.053 - - - KiloNeRF [33] 31.00 0.950 0.030 28 ± 12 161 1.68 ±0DIVeR32(RT) 32.12 0.958 0.033 47 ± 20 68 1.07 ± 0.060表3.在NeRF-synthetic上与其他实时变体的比较表明,我们的方法产生了具有非常低GPU需求的小型模型,并以非常强的图像质量指标进行了非常快速的渲染。PlenOctrees是从NeRF-SH烘焙而来;SNeRG是从JaxNeRF+烘焙而来;KiloNeRF和FastNeRF直接从原始NeRF转换而来。FastNeRF的性能测量结果不公开。05.3. 实时渲染0对于实时渲染任务,我们使用我们的DIVeR32模型,并使用第4.5节中描述的推理时间优化。除了渲染质量,我们还通过在GTX1080GPU上运行所有模型并记录它们的FPS和GPU内存使用情况来展示推理时间的效率。为了比较架构的紧凑性,我们报告存储场景所需的平均内存使用量。由于大多数实时模型是从某些预训练模型转换而来的,我们还展示了这些模型的渲染质量,并比较转换后的精度损失。对于那些有162060Tanks and Temples BlendedMVS DIVeR64 Ground Truth DIVeR64 Ground Truth0图8. Tanks and Temples和BlendedMVS数据的定性渲染结果显示我们的方法成功地对真实世界的细节进行建模。0基于质量-速度权衡的变体,我们报告具有最佳渲染质量的变体。0基线:对于我们的实时渲染基线,我们与PlenOctrees[55],SNeRG [13],FastNeRF [12]和KiloNeRF[33]进行比较。由于SNeRG没有提供他们的预训练模型,我们直接报告他们论文中的测量结果。出于同样的原因,我们仅报告FastNeRF在论文中报告的渲染质量。对于KiloNeRF,我们测量了他们提供模型的场景的性能(椅子,乐高和船)。0结果:我们的渲染质量要么是最好的(表3),要么是第二好的(表2),但我们的方法实现了非常高的帧率,同时模型非常小。所有其他方法必须(1)进行转换以实现实时形式,然后(2)进行微调以恢复转换后的精度损失。对于这些模型,微调是至关重要的;例如,如果不对SNeRG进行微调,其PSNR会大幅下降到26.68。相比之下,我们的模型在没有转换或微调的情况下进行评估。早期光线终止(第4.5节)导致我们的实时方法中观察到的质量轻微下降。05.4. 消融研究0架构:我们在NeRF-synthetic数据集上进行了所有消融研究。在表4中,我们展示了不同网络架构之间的性能权衡。在没有任何实时优化的情况下,我们的模型仍然比需要几分钟来运行单个帧的常规NeRF运行得更快;如果我们使用更小的解码器来提高速度,会有一些质量损失,但速度会翻倍(因为DIVeR32使用的寄存器数量是DIVeR64的一半,允许更多线程在CUDA内核中运行)。通过减小体素网格大小可以获得可接受PSNR的进一步经济性(比较0N 解码器 RT PSNR ↑ FPS ↑ MB ↓0256 DIVeR64 否 32.32 0.62 620256 DIVeR32 否 32.16 0.62 68 128 DIVeR64 否30.72 0.62 12 128 DIVeR32 否 30.53 0.62 12256 DIVeR64 是 32.30 26 ± 9 620256 DIVeR32 是 32.12 47 ± 20 68 128 DIVeR64是 30.64 37 ± 20 12 128 DIVeR32 是 30.52 82 ±37 120表4.网络架构的消融研究表明实时优化(RT)和较小的MLP(解码器)在渲染质量上损失最小,但速度大大提升;转向更粗糙的网格(N)会导致更大的质量损失,进一步提高速度和模型大小。0DIVeR64 DIVeR32 DIVeR64 真实数据 N = 256 N = 256 N = 1280图9.不同架构的定性比较显示更大的体素网格可以更好地模拟椅子表面的细节纹理;切换到较小的MLP不会对质量产生太大影响。0DIVeR32在128个体素上的PSNR为30.42,模型大小约为12MB,而PlenOctree的变体为30.7PSNR,约为400MB)。图9定性比较了不同的MLP大小和体素网格大小。162070场景组合 物体交换0图10.我们的表示方法可以直接进行有用的编辑。左图:显示了通过混合体素网格获得的预训练模型的组合。右图:将盘子上的芥末(第一个热狗)替换为番茄酱(第二个热狗);这种编辑在视角变化下保持不变(第三个热狗)。0积分器 正则化 数据类型 PSNR ↑ MB ↓0Det Im-Ex float32 35.52 640Rand Im-Ex float32 33.89 67 Det Im-Ex uint835.44 19 Det Im float32 34.69 640Det Ex float32 34.02 640表5.训练策略的消融研究。隐式(Im)MLP初始化与显式(Ex)训练结合可获得最佳的渲染质量。使用tanh映射特征向量可以更有效地存储特征(uint8),并在渲染质量上有可接受的损失。0训练策略:表5显示了使用我们的DIVeR64模型训练的乐高场景在不同训练策略下的效果。确定性积分器很重要:在训练和测试中使用随机积分器(采用NSVF[21]的采样策略实现)会导致明显的质量损失。隐式-显式训练策略很重要:将其替换为纯隐式模型或没有隐式MLP初始化(参见图3)会导致较小的质量损失。特征向量的低精度表示(使用tanh映射训练,转换为unit8)会导致轻微的质量损失,但模型大小减小了3倍。可编辑性:基于体素的表示方法允许我们进行一些基本的场景操作。我们可以通过混合它们的体素网格来组合场景,然后使用相应的解码器进行渲染。由于特征向量包含局部外观的高级信息,我们可以通过对特征向量进行k均值聚类来提取所选区域的对象分割,从而实现无明显伪影的对象交换。图10显示了一些示例。06. 限制0训练类似NeRF的表示方法是昂贵的,我们的方法没有以任何自然的方式加速训练。确定性积分器中的混叠误差往往具有模式,而随机积分器则会打破模式[8]。反过来,靠近体素的切线或交点例程中的累积误差可能会导致问题(图11)。0我们的真实数据 我们的真实数据0图11.交点误差可能导致伪影问题,通常发生在接近体素网格尺度的结构和接近体素面的射线附近。更糟糕的是,我们当前的交点例程虽然高效,但会累积交点误差,偶尔在某些视角和尺度下产生方块状伪影(每种情况下方块状伪影的尺度接近体素网格的尺度)。0NeRF [ 25 ] 我们的 真实值0图12.NeRF变体无法推断出训练集中看不见的视角相关效果。我们的方法和其他NeRF变体都无法正确建模铲子上的反射。0随机-确定性方法(例如,抖动体素位置)可能有所帮助。我们的方法,像NeRF一样,可能无法正确建模视角相关效果(图12);更多的物理建模可能会有所帮助。我们的方法目前不适用于无界场景,而且我们的编辑能力目前非常有限。0致谢:我们感谢Sara Aghajanzadeh、DerekHoiem、Shenlong Wang和ZhenZhu对我们的论文提出的详细和有价值的评论。0参考文献0[1] Edward H. Adelson和James R. Bergen.全视场函数和早期视觉元素。在《视觉处理的计算模型》中,1991年。 1162080[2] Kara-Ali Aliev, Artem Sevastopolsky, Maria Kolos, DmitryUlyanov和Victor Lempitsky. 神经基于点的图形,2020年。 20[3] Mark Boss, Raphael Braun, Varun Jampani, Jonathan T.Bar- ron, Ce Liu和Hendrik P.A. Lensch. Nerd:从图像集合中分解神经反射。在ICCV中,2021年。 20[4] Phelim P. Boyle. 期权:一种蒙特卡洛方法。 Journal ofFinancial Economics , 4(3):323–338, 1977年。 1 , 20[5] Eric Chan, Marco Monteiro, Petr Kellnhofer, JiajunWu和Gordon Wetzstein. pi-gan:用于3D感知图像合成的周期性隐式生成对抗网络。在CVPR中,2021年。 20[6] Anpei Chen, Zexiang Xu, Fuqiang Zhao, Xiaoshuai Zhang,Fanbo Xiang, Jingyi Yu和Hao Su. Mvsnerf:从多视图立体匹配中快速重建辐射场,2021年。 20[7] Julian Chibane, Aayush Bansal, Verica Lazova和GerardPons-Moll.立体辐射场(SRF):从新颖场景的稀疏视图中学习视图合成。在CVPR中,2021年。 20[8] Robert L. Cook. 计算机图形学中的随机采样。ACMTransactions on Graphics , 5(1):51–72, 1986年。 80[9] Boyang Deng, Jonathan T. Barron和Pratul P. Srinivasan.JaxNeRF:NeRF的高效JAX实现,2020年。 50[10] Yilun Du, Yinan Zhang, Hong-Xing Yu, Joshua B. Tenen-baum和Jiajun Wu.神经辐射流用于4D视图合成和视频处理。在ICCV中,2021年。 20[11] Chen Gao, Ayush Saraf, Johannes Kopf和Jia-Bin Huang.从动态单目视频中进行动态视图合成。在ICCV中,2021年。 20[12] Stephan J. Garbin, Marek Kowalski, Matthew Johnson,Jamie Shotton和Julien Valentin. Fastnerf:高保真度的神经渲染,每秒200帧,2021年。 3 , 6 , 70[13] Peter Hedman, Pratul P. Srinivasan, Ben Mildenhall,Jonathan T. Barron和Paul Debevec.用于实时视图合成的神经辐射场烘焙,2021年。 3 , 4 , 6 , 70[14] James T. Kajiya和Brian P Von Herzen. 光线追踪体密度。SIGGRAPH Comput. Graph. , 18(3):165–174, 1984年1月。 20[15] Petr Kellnhofer, Lars Jebe, Andrew Jones, Ryan Spicer,Kari Pulli和Gordon Wetzstein.神经光场渲染。在CVPR中,2021年。 20[16] Diederik P. Kingma和Jimmy Ba. Adam:一种随机优化方法。 CoRR , abs/1412.6980, 2015年。 50[17] Arno Knapitsch, Jaesik Park, Qian-Yi Zhou和VladlenKoltun. Tanks and temples: 大规模场景重建的基准测试。 ACMTrans. Graph. , 36(4), 2017年7月。 50[18] Tianye Li, Mira Slavcheva, Michael Zollhoefer, SimonGreen, Christoph Lassner, Changil Kim, Tanner Schmidt,Steven Lovegrove, Michael Goesele, and Zhaoyang Lv.神经3D视频合成,2021年。 20[19] Zhengqi Li, Simon Niklaus, Noah Snavely和Oliver Wang.用于时空视图合成动态场景的神经场流。在CVPR中,2021年。 20[20] David B. Lindell,Julien N. P. Martel和GordonWetzstein。Autoint:用于快速神经体积渲染的自动积分。在CVPR,2021年。2,50[21] Lingjie Liu,Jiatao Gu,Kyaw Zaw Lin,Tat-SengChua和ChristianTheobalt。神经稀疏体素场。在NeurIPS,2020年。1,2,3,5,80[22] Stephen Lombardi,Tomas Simon,JasonSaragih,Gabriel Schwartz,Andreas Lehrmann和YaserSheikh。神经体积:从图像中学习动态可渲染体积。ACM Trans.0[23] Ricardo Martin-Brualla,Noha Radwan,Mehdi S. M.Saj-jadi,Jonathan T. Barron,Alexey Dosovitskiy和DanielDuckworth。NeRF in the0[24] Ben Mildenhall,Pratul P. Srinivasan,Rodrigo OrtizCayon,Nima Khademi Kalantari,Ravi Ramamoorthi,RenNg和Abhishek Kar。局部光场融合。ACM Transactions on0[25] Ben Mildenhal
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功