没有合适的资源?快使用搜索试试~ 我知道了~
神经光线渲染中的遮挡问题与新视角合成
78240用于考虑遮挡的基于图像的神经光线渲染0Yuan Liu 1 Sida Peng 2 Lingjie Liu 3 Qianqian Wang 4 Peng Wang 10Christian Theobalt 3 Xiaowei Zhou 2 Wenping Wang 501 香港大学 2 浙江大学 3 马克斯∙普朗克信息学研究所 4 康奈尔大学 5 德克萨斯农工大学0摘要0我们提出了一种新的神经表示,称为神经光线(NeuRay),用于新视角合成任务。最近的研究通过从输入视图的图像特征构建辐射场来渲染新视角图像,从而实现对新场景的泛化。然而,由于遮挡,一个三维点可能对一些输入视图是不可见的。在这样的三维点上,这些泛化方法将包括来自不可见视图的不一致图像特征,这干扰了辐射场的构建。为了解决这个问题,我们在NeuRay表示中预测了三维点对输入视图的可见性。这种可见性使得辐射场的构建能够专注于可见的图像特征,从而显著提高了渲染质量。同时,我们提出了一种新的一致性损失来在特定场景上微调NeuRay中的可见性。实验证明,我们的方法在泛化到未见过的场景时实现了最先进的性能,并在微调后优于每个场景的优化方法。项目页面:https://liuyuan-pal.github.io/NeuRay/01. 引言0新视角合成(NVS)是计算机图形学和计算机视觉中的一个重要问题。给定一组具有已知相机姿态的输入图像,NVS的目标是从任意虚拟相机姿态合成场景的图像。最近,与早期的基于图像的渲染方法相比,神经渲染方法在NVS问题上取得了令人印象深刻的改进。神经辐射场(NeRF)表明,通过对编码在神经网络中的5D辐射场进行体积渲染,可以合成新视角的照片级真实图像,其中将位置和方向映射到密度和颜色。然而,这些方法不能泛化到未见过的场景,因为它们学习了场景特定的网络,通常需要数小时或数天来处理一个场景。最近的研究提出了类似NeRF的神经渲染框架,可以泛化到未见过的场景。给定一组输入视图,它们通过提取这些视图上的局部图像特征并匹配多视图特征来构建即时辐射场,以预测3D点上的颜色和密度。这类似于传统的立体匹配方法[47,60],它们通过检查多视图特征的一致性来找到一个表面点,如图1(a)所示。然而,当特征在一个点上不一致时,这些方法相对难以正确确定这种不一致性是由遮挡引起的,如图1(b),还是这个点是一个非表面点,如图1(c)所示,从而导致渲染伪影。为了解决这个问题,我们在本文中引入了一种称为神经光线(NeuRay)的新神经表示。NeuRay由每个输入视图上的像素对齐的特征向量组成。在从输入视图上的像素发射的相机光线上,与该像素上的关联NeuRay特征向量能够预测可见性,以确定特定深度处的三维点是否可见。有了这样的可见性,我们可以轻松地区分图1中由遮挡引起的特征不一致性和非表面引起的特征不一致性,从而更准确地构建辐射场,从而在困难的情况下获得更好的渲染质量。0输入视图 测试视图 表面0(a) 一致性 (b) 不一致性 (c) 不一致性0图1. (a)在没有遮挡的情况下,局部图像特征在表面点上是一致的。(b)由于遮挡,表面点上的局部图像特征是不一致的。(c)非表面点上的局部图像特征是不一致的。在(a)中,泛化方法会由于特征的一致性而正确地将较大的密度分配给表面点。然而,在(b)和(c)中,当特征不太一致时,这些方法相对难以正确确定密度。0渲染质量的点。78250具有严重自遮挡的场景。一个关键挑战是如何估计未见场景中的可见性。这是一个鸡生蛋蛋生鸡的问题,因为可见性的估计需要知道表面位置,而估计的可见性是为了更好地估计辐射场构建中的表面。为了打破这个循环,我们提出应用经过良好设计的多视图立体(MVS)算法,如成本体积构建[60]或补丁匹配[47],来重建场景几何,并从重建的几何中提取与像素对齐的NeuRay的特征向量。最后,NeuRay将用于计算可见性以改善辐射场的构建。另一个问题是如何在NeuRay中参数化这种可见性。一种直接的方法是从视图到3D点沿着相机射线预测密度,然后累积这些密度来计算透射率作为可见性,就像NeRF[31]一样。然而,使用这种策略计算可见性在计算上是不可行的,因为给定N个输入视图和一个3D点,我们应该沿着所有N个相机射线从每个输入视图到这个3D点累积密度,这意味着我们需要在每个相机射线上采样K个点并在所有N×K个样本点上评估密度。为了降低计算复杂度,我们直接在NeuRay中用累积分布函数(CDF)参数化可见性,这样可以避免沿射线累积密度,只需要N个网络前向传递来计算所有N个输入视图的可见性。NeuRay不仅可以帮助未见场景的辐射场构建,还可以通过在特定场景上进行微调来改进自身,使用新的一致性损失。由于NeuRay表示和构建的辐射场都描述了场景几何,我们提出了一种损失来强制执行NeuRay表示中的表面位置与构建的辐射场中的表面位置之间的一致性。这个损失使NeuRay能够记忆辐射场预测的场景几何。同时,NeuRay中记忆的场景几何将反过来通过提供更好的遮挡推断来改进辐射场的构建。我们在NeRF合成数据集[31]、DTU数据集[18]和LLFF数据集[30]上进行了大量实验,以证明NeuRay的有效性。结果表明,1)在没有特定场景优化的情况下,我们的方法已经产生了令人满意的渲染结果,比其他泛化方法的效果要好得多;2)微调NeuRay比微调其他泛化模型产生更好的结果,甚至比NeRF[31]的渲染质量更好。此外,我们可以通过在输入视图上缓存特征并预测粗糙的表面位置来加速NeuRay的渲染,这需要大约3秒的时间来渲染一个尺寸为800×600的图像。02. 相关工作02.1. 基于图像的渲染0许多工作[3, 11, 14, 15, 19, 21, 22,41]都集中在将输入图像与几何代理混合以合成新视图。传统的基于光场的方法[7,11]从密集采样的视图中重建4D光场函数,可以实现逼真的渲染结果,但通常具有有限的可渲染范围。为了扩展可渲染范围,一些工作[3,37]借助于来自多视图立体(MVS)方法[47]的3D代理几何。随着深度学习技术的发展,一些方法[6, 14, 19, 41, 42,54,59]引入卷积神经网络(CNN)来替代基于图像的渲染(IBR)的手工制作组件。对于基于图像的渲染方法来说,一个共同的挑战是对估计的深度图质量的敏感性。我们的方法也属于基于图像的渲染类别,也使用了成本体积或来自MVS方法的估计深度。然而,我们的方法可以从头开始训练,不需要外部MVS算法的帮助,也可以在场景上进行微调,以纠正MVS的重建错误。02.2. 神经场景表示0最近,一些方法尝试从具有可微分渲染器的输入图像中构建显式可训练的3D表示,例如体素[28, 48],纹理网格[12, 25,26, 53]和点云[1, 21, 43,58],而不是估计外部3D代理几何体。然后,可以从构建的3D表示中合成新视图。为了进一步提高渲染分辨率,一些方法[20, 23, 27, 31, 34, 36,49]采用由神经网络编码的纯神经场来表示3D场景。我们的方法通过基于射线的表示来表示NVS任务中的场景。PIFu[44]及其后续工作[13, 16,45]也使用基于射线的表示来重建人体形状。NeRF[31]通过对辐射场进行体积渲染来渲染照片般逼真的图像。许多后续工作[9, 23, 24, 29, 33, 35, 39, 50, 57,62]尝试在各个方面改进NeRF。其中,NeRV[50]还使用可见性预测进行高效的重新照明。相比之下,我们的方法使用可见性来实时构建辐射场。通用体积渲染。NeRF通常需要很长时间来训练每个新场景。为了解决这个问题,最近的工作[4, 5, 38, 40, 55, 56,63]引入了可推广的渲染方法,可以实时构建辐射场。此外,一些工作通过元学习[2, 52]或体素[32, 51,61]加速NeRF训练。我们的方法也基于实时构建辐射场来推广到未见过的场景。不同之处在于我们的方法使用基于射线的表示进行遮挡推断,从而大大提高了渲染质量。78260测试射线0输入射线0样本点0图2.从输入视图实时构建辐射场,通过体积渲染合成测试视图图像。我们首先在测试射线上采样点,然后聚合输入视图的局部特征来确定样本点的alpha值和颜色,最后通过体积渲染累积颜色来计算输出颜色。我们的方法在输入视图上构建NeuRay来预测样本点的可见性,从而允许对这些样本点进行遮挡感知的特征聚合。03. 方法0给定已知相机姿态的N个场景输入视图,我们的目标是在任意新的测试视图上渲染图像。在介绍NeuRay之前,我们首先回顾一下辐射场上的体积渲染[31]。03.1. 体积渲染0在我们的方法中,测试视图的图像通过体积渲染合成,如图2所示。假设从测试视图发射的相机射线,称为测试射线,由p(z) = o +zr参数化,其中o是相机中心的起始点,r是射线的单位方向向量。首先,我们沿着射线采样Kt个点{pi ≡ p(zi) | i = 1, ...,Kt},其中zi沿着射线递增。然后,通过以下公式计算与该相机射线关联的像素的颜色:0c =0i =1 cihi,(1)0其中c ∈ R3是像素的渲染颜色,ci ∈ R30pi是样本点的颜色,hi ∈R是射线在深度zi之前没有被任何深度遮挡并且在范围(zi,zi+1)内击中表面的击中概率。因此,击中概率hi可以通过以下公式计算:0hi =0k =1 (1 − αk)αi,(2)0其中αi是深度范围(zi,zi+1)内的alpha值。为了使用公式(1)和公式(2)渲染新图像,我们构建了一个辐射场来计算αi和ci。03.2.遮挡感知辐射场构建0实时构建辐射场。与NeRF[31]学习场景特定的神经辐射场不同,通用渲染方法[5,55,56,63]通过聚合局部特征实时构建辐射场。给定一个3D点pi∈R3,如图2所示,这些方法首先通过CNN在输入视图上提取特征,然后在该点上通过聚合不同视图的特征来聚合输入视图的特征0fi = M({fi,j|j = 1,...,N}), (3)0其中fi,j是样本点pi在第j个输入视图上的局部图像特征,M是一个聚合不同视图特征以产生特征fi的网络。然后,该点pi的alpha值αi和颜色ci将从聚合特征fi中由其他网络[5,55,56,63]解码得到。关于这一点,我们在补充材料中提供了更多细节。遮挡感知构建。所提出的方法还通过聚合局部特征实时构建辐射场,与之前的方法一样。此外,我们预测一个可见性项vi,j,用于说明第j个输入视图对于该3D点pi是否可见,以进行遮挡感知的特征聚合0fi = M({fi,j,vi,j|j = 1,...,N}). (4)0在这种情况下,聚合网络M能够聚焦于聚合特征fi中的可见视图,并减少不可见视图的干扰。接下来,我们将介绍我们的NeuRay用于计算可见性vi,j。03.3. NeuRay表示0给定从输入视图发射的相机射线,称为输入射线,NeuRay能够预测可见性函数v(z),指示深度z处的点对于该输入射线是否可见,如图3所示。在每个输入视图上,NeuRay由一个可见性特征图G∈RH×W×C表示。将g∈RC作为给定输入射线在G上的相应特征向量,我们将计算该输入射线从g处的可见性v(z)。显然,一个有效的可见性函数v(z)应该在z上是非递增的,并且0 ≤ v(z) ≤1。接下来,我们将讨论如何从g参数化可见性函数v(z)。然后,我们将在第3.4节和第3.5节介绍如何计算G。从遮挡概率得到可见性。我们使用累积密度函数(CDF)t(z)来表示可见性函数,通过v(z) = 1 -t(z)来参数化,如图3所示,它被参数化为一组logistics分布0t(z;{µi,σi,wi}) =0iwiS((z - µi)/σi), (5)ℓrender =∥c − cgt∥2,(6)78270σ10σ20MLP0可见性0特征向量�0解码器0可见性0v(z)0深度�0击中概率密度0可见性0特征图G0� 输入视图0图3.NeuRay中的可见性计算。NeuRay在每个输入视图上都有一个可见性特征图G。在G上的每个特征向量g可以通过MLP解码为一组logistics分布。分布说明了从g处发射的输入射线的可见性函数v(z),即深度z之后曲线下的面积。0在这里,我们混合了Nl个logistics分布,µi是第i个logistics分布的均值,σi是标准差,wi是混合权重,其中0i w i = 1,S(∙)是一个sigmoid函数。所有参数[µi,σi,wi]= F(g)通过MLPF从特征g解码得到。作为一个CDF,t(z)是非递减的,所以1-t(z)形成一个有效的可见性函数。t(z)实际上对应于输入射线在深度z之前被遮挡的遮挡概率,并且我们称之为相应的概率密度函数(PDF)击中概率密度。可见性v(z)实际上是在z之后PDF曲线下的面积。通常,一条射线只会击中一个表面,所以一个logistics分布就足够了。然而,当射线击中半透明表面或表面的边缘时,使用混合的logistics分布可以提高性能。讨论。或者,我们可以使用类似于NeRF[31]的密度来参数化可见性。然而,使用这种策略计算可见性太耗费计算资源。在这个公式中,我们直接从g中使用MLPϕ解码出密度d(z) =ϕ(z;g)。为了计算可见性v(z),我们需要首先采样Kr个深度{zk},其中zk < z,计算它们的密度d(zk)和相应的alpha值αk= 1 - exp(-ReLU(dk)),最后得到可见性v(z) = ΠKr k=1(1-αk)。尽管这个公式是一个有效的可见性函数,但它在计算上是不切实际的,因为它需要Kr次对ϕ进行评估才能计算出输入视图到一个点的可见性。03.4. 用NeuRay进行泛化0在未见过的场景中进行渲染时,我们从代价体积构建[60]或patch-match立体匹配[47]中提取能见度特征图G。在代价体积构建中,对于每个输入视图,我们使用其N个相邻输入视图构建一个大小为H×W×D的代价体积[60]。然后,对代价体积应用CNN,为该输入视图产生能见度特征图G∈RH×W×C。另外,我们也可以直接提取特征图G0从patch-match立体匹配[47]估计的深度图中提取,其中大小为H×W的估计深度图经CNN处理,产生能见度特征图G。流程。在未见过的场景中使用NeuRay进行渲染的整个流程如图4所示。在所有输入视图上,通过MVS算法[47,60]估计代价体积或深度图,然后通过CNN处理,产生能见度特征图G。然后,对于测试射线上的3D样本点,我们计算这些点对于输入视图的能见度vi,j(第3.3节),并聚合局部特征fi,j以及vi,j来计算这些点上的alpha值和颜色(第3.2节)。最后,通过体素渲染沿着测试射线累积alpha值和颜色,合成测试图像(第3.1节)。损失。整个渲染框架可以在训练场景上进行预训练,然后直接应用于未见过的场景进行渲染。为了预训练渲染框架,我们随机选择训练场景中的一个视图作为测试视图,并使用其他视图作为输入视图来渲染所选的测试视图,使用渲染损失进行训练。0其中c由方程1计算,cgt是真实颜色。03.5. 用NeuRay进行微调0与先前的工作[5, 55, 56,63]一样,提出的渲染框架可以在特定场景上进行进一步微调,以实现更好的渲染质量。在给定的场景中,我们随机选择一个输入视图作为伪测试视图,并使用其他输入视图来渲染伪测试视图进行训练。此外,在微调中添加了NeuRay的可训练参数和一致性损失。NeuRay的可训练参数。图5显示了图4中CNN的详细结构。在每个输入视图上,构建的代价体积(或估计的深度图)和能见度特征图G之间的中间特征图G'∈RH×W×C被视为该输入视图的NeuRay的可训练参数。我们将G'之前的卷积层称为初始化网络,将G'和G之间的卷积层称为能见度编码器。参数G'不是从头开始训练,而是使用构建的代价体积或估计的深度图由初始化网络进行初始化。然后,丢弃初始化网络,而在微调中优化G'以及其他网络参数。讨论。或者,我们可以直接将G作为NeuRay的可训练参数,并丢弃初始化网络和能见度编码器。然而,我们发现将G'设为可训练参数,并在可训练的G'上应用能见度编码器可以改善能见度预测。因为能见度编码器中的卷积层将G'上的相邻像素的特征向量关联起来,而这些相邻像素通常具有相似的能见度。1. CNNAlpha …InitializationnetworkVisibility encoderConcatenateMVS algorithmsImage encoderImage features from neighboring source viewsTrainable parameters in finetuningDiscarded in finetuning78280输入视图0代价体积或0深度图0能见度0特征图 �0局部特征 � �,�0能见度 � �,�0颜色 � �0值 � �0输出颜色�02. 能见度计算03. 遮挡-0感知0辐射场构建04.体积渲染0新视角0图像0图4. 使用NeuRay进行渲染的流程。1. 在输入视图上,估计代价体积或深度图,用于通过CNN预测可见性特征图(第3.4节)。2.可见性特征图用于计算输入视图对3D点的可见性(第3.3节)。3.对于3D点,我们沿着输入视图聚合局部特征以及可见性,计算这些点上的alpha值和颜色(第3.2节)。4.应用体积渲染来累积alpha值和颜色以合成图像(第3.1节)。0输入视图可见性特征�0图5.在场景微调时,我们将中间特征图G'视为NeuRay的可训练参数,它由初始化网络初始化。然后,在微调中将丢弃初始化网络。0一致性损失。除了渲染损失外,我们还在微调中额外使用一致性损失。由于构建的辐射场和NeuRay的可见性都描述了场景几何,我们可以在微调中强制它们之间的一致性。具体而言,在微调中,我们在伪测试射线上采样点p i ≡ p(zi),并从构建的辐射场计算样本点上的击中概率hi。同时,伪测试视图也是一个输入视图,在其上有一个NeuRay表示来解码该伪测试射线的分布t(z)。基于t(z),我们通过以下方式计算每个样本点p i 上的新击中概率˜h i:0˜h i = t(z i+1) - t(z i),(7)0其中z i是点的深度。因此,我们可以强制˜h i 与h i之间的一致性来构建损失。0ℓ consist = 10K t0i = 1 CE(˜h i, h i),(8)0其中CE是交叉熵损失。讨论。与之前的泛化方法[5, 55, 56,63]类似,对特定场景进行微调可以改善我们的网络参数,从而更好地聚合特征并在场景中构建辐射场。同时,进一步添加NeuRay的可训练参数和一致性损失使我们的渲染框架能够优化。0NeuRay表示带来了更好的遮挡推断,并显著提高了渲染质量。这实际上实现了一种记忆机制,如补充材料中所示。03.6. 使用NeuRay加速渲染0在测试射线上,大多数样本点p i 的击中概率h i几乎为零,因此不会影响输出颜色。然而,大多数计算都浪费在这些空点上的特征聚合上。接下来,我们将展示如何使用很少的计算直接从NeuRay中计算测试射线上的粗略击中概率ˆh i。然后,只有很少的细点在具有大ˆh i的点周围进行特征聚合。为了计算定义在测试射线上的击中概率ˆhi,我们首先通过以下方式定义输入射线上深度范围(z 0, z1)内的alpha值˜α:0˜α(z 0 , z 1) = t(01 - t(z 0)。(9)0然后,我们通过在样本点p i 上计算ˆh i 来计算ˆh i。0ˆα i =0无0j ˜α i,j (z i,j0j v i,j,(10)0ˆh i =0k = 1 (1 - ˆα k)ˆα i,(11)0其中,z i,j是第j个输入视图上点的深度,l i = z i+1 - zi是测试射线上点p i 和其后续点p i+1之间的距离。计算ˆh非常快,因为它只涉及输入视图上t(z)的简单组合。我们在补充材料中讨论了˜α、ˆα和ˆh的设计背后的原理以及它们与NeRF [31]风格密度的联系。78290合成物体NeRF真实物体DTU真实前向LLFF设置方法PSNR↑SSIM↑LPIPS↓PSNR↑SSIM↑LPIPS↓PSNR↑SSIM↑LPIPS↓0泛化0PixelNeRF [63] 22.65 0.808 0.202 19.40 0.463 0.447 18.66 0.588 0.463 MVSNeRF [4] 25.15 0.853 0.15923.83 0.723 0.286 21.18 0.691 0.301 IBRNet [56] 26.73 0.908 0.101 25.76 0.861 0.173 25.17 0.813 0.200我们的方法 28.29 0.927 0.080 26.47 0.875 0.158 25.35 0.818 0.1980微调0MVSNeRF [4] 27.21 0.888 0.162 25.41 0.767 0.275 23.54 0.733 0.317 NeRF [31] 31.01 0.947 0.08128.11 0.860 0.207 26.74 0.840 0.178 IBRNet [56] 30.05 0.935 0.066 29.17 0.908 0.128 26.87 0.848 0.175我们的方法 32.35 0.960 0.048 29.79 0.928 0.107 27.06 0.850 0.1720表1. 与基线方法的定量比较。04. 实验04.1. 实验协议04.1.1 数据集0我们使用两种类型的评估数据集,即物体数据集和前向数据集。结果通过PSNR、SSIM [17]和LPIPS[64]进行评估。物体数据集。物体数据集包括NeRF合成数据集[34]和DTU数据集[18]。NeRF合成数据集有8个物体,每个物体包含100张图像作为输入视图和其他200张图像作为测试视图。对于DTU数据集,我们选择了4个物体(鸟、工具、砖块和雪人)作为测试物体。在每个测试物体上,我们留出1/8的图像作为测试视图,其余图像作为输入视图。前向数据集。前向数据集是LLFF数据集[30],包含8个场景。每个场景包含20到62张图像。我们按照之前的方法[31,56]对每个场景进行相同的训练-测试集划分,使用1/8的图像作为测试视图。如[57]所做的那样,所有图像都经过COLMAP[46]去畸变处理。LLFF数据集的评估分辨率为1008×756,NeRF合成数据集为800×800,DTU数据集为800×600。两个物体数据集中的测试图像都使用黑色背景。训练数据集。为了训练泛化模型,我们使用三种类型的数据集:(1)合成的Google扫描物体数据集[10],其中包含1023个物体,每个物体上有250个渲染图像;(2)三个前向训练数据集[8, 30, 65];(3)来自DTU数据集的其余训练物体。04.1.2 实现细节0为了渲染测试视图,我们不使用所有的输入视图,而是使用Nw=8个相邻的输入视图,称为工作视图。在成本体积中使用D=64个平面,而在patch-match立体视觉中使用COLMAP[47]。在t(z)中混合了Nl=2个逻辑分布。我们使用粗到精的采样策略,就像[31,56]中所做的那样,在两个阶段都使用64个采样点。粗模型和精模型共享相同的im-0年龄编码器、可见性编码器和初始化网络,但它们使用不同的解码器F和聚合网络。聚合网络遵循类似于[56]的设计,但增加了可见性作为输入,它混合输入颜色并沿着测试光线应用变换器。所有实验都在2080 TiGPU上进行。详细信息和架构可以在补充材料中找到。04.2. 与基线方法的比较0实验设置。我们在泛化设置和微调设置中与IBRNet[56]、PixelNeRF [63]、MVSNeRF [4]和NeRF[31]进行比较。在泛化设置中,所有泛化方法包括我们的方法都在相同的训练场景上进行预训练,并在未见过的测试场景上进行测试。在微调设置中,所有泛化方法包括我们的方法都在每个测试场景的输入视图上进行进一步微调,而NeRF[31]是从头开始训练的。定量结果显示在表1中,定性结果显示在图6中。表1显示我们的方法在未见场景中具有良好的泛化能力,并且优于所有其他泛化模型。在场景特定微调后,我们的方法在两个物体数据集上明显优于所有基线方法,但在LLFF数据集[30]上与IBRNet[56]的性能相似。原因是LLFF数据集包含非常密集的前向输入视图,因此每个3D点对大量输入视图都是可见的。在这种情况下,即使有一个或两个视图被遮挡,仍然有足够的可见视图为IBRNet[56]提供特征一致性以正确渲染。相比之下,在合成NeRF数据集中,图像在物体周围以360°稀疏捕获,这会带来更严重的特征不一致性,从而降低IBRNet[56]的性能。相反,我们的渲染是遮挡感知的,因此我们的模型在NeRF合成数据集上表现更好。此外,我们在补充材料中通过将稀疏工作视图与MVSNeRF[4]进行比较,可以看出我们的方法在LLFF数据集上表现出更好的性能。通过将MVSNeRF[4]与我们的方法进行比较,我们注意到对MVSNeRF[4]进行微调会产生噪声伪影。78300泛化 微调 图像 GT MVSNeRF IBRNet NeuRay MVSNeRF IBRNet NeuRay0图6. 不同方法的定性结果。更多结果请参见补充材料。0NeRF [31] NeuRay-Ft0图7. 我们的方法比NeRF [31]更清晰地渲染细节。0GT 单一 混合0图8. 混合逻辑分布Nl = 2与单一逻辑分布Nl =1之间的比较,作为遮挡概率。混合逻辑分布改善了在深度突变的边缘上的结果(红色矩形)。0当测试视图远离构建成本体积的输入视图时,这些事实变得更加明显。通过将NeRF[30]与我们的方法在图7中进行比较,我们发现NeRF需要更多的优化步骤来恢复细微的细节,如砖块表面和Lego上的纹理,而我们的方法相对而言更容易通过混合输入视图的颜色来渲染这些细节,这就是我们的方法可以实现比NeRF更好的渲染质量的原因。04.3. 消融研究0初始NeuRay的可见性有多有效?为了验证这一点,在表2中,我们测试了IBRNet [56](ID1),仅具有图像特征聚合的模型(ID2),将图像特征与估计的深度聚合的模型0ID 描述 设置 Lego Fern01 IBRNet Gen 25.64 24.16 2 仅聚合 Gen 25.61 22.25 3带深度特征的聚合 Gen 26.45 22.43 4 带有初始NeuRay的聚合Gen 28.41 24.0205 混合逻辑 Nl = 2 Ft 32.97 25.93 6 混合逻辑 Nl = 2 Sc 33.0725.89 7 单一逻辑 Nl = 1 Sc 33.05 25.58 8 仅聚合 Sc 29.6124.40 9 没有ℓ一致性的NeuRay Sc 31.46 25.240表2.消融研究。报告了NeRF合成数据集的“Lego”和LLFF数据集的“Fern”的PSNR。“Gen”表示泛化设置,“Ft”表示对场景进行微调,“Sc”表示从头开始训练。0从COLMAP [47](ID3)和使用成本体积初始化的NeuRay可见性聚合图像特征的模型(ID4)。由于我们的图像编码器比IBRNet更浅,仅具有图像特征聚合的性能比IBRNet差。仅添加估计的深度仅带来了轻微的改进,而使用初始化的NeuRay的可见性则显著提高了质量。NeuRay能够从头开始训练吗?为了展示NeuRay可以在没有从成本体积初始化的情况下在场景中构建,我们完全按照微调的过程训练我们的方法,但是原始可见性特征图G'和所有网络的参数都是随机初始化的。表2中的结果(ID5和6)表明,从头开始训练我们的方法也能够实现与初始化的预训练模型微调相似的结果。单一逻辑分布还是混合逻辑分布?如第3.3节所讨论的,t(z)的选择可以是单一逻辑分布或混合逻辑分布。我们在表2中比较了这两种选择(ID6和7),并展示了定性结果。024614 16 18 20151923273135PSNRNeuRay-FtIBRNet-FtMVSNeRF-FtNeuRay-ScNeRFIBRNet✗646434.0031.46NeRF✗12812833.6531.51NeuRay✗646435.3330.03NeuRay✓64834.573.95NeuRay✓32433.732.5778310步骤(*10k)0GT NeRF [31] MVSNeRF [4] IBRNet [56] NeuRay-Ft0图9.(左)不同模型在不同训练步骤上的PSNR曲线。PSNR是在“Lego”验证集上计算的。(右)具有10k训练步骤的模型的定性结果。由于GPU内存的限制,IBRNet [56]和我们的方法的批量大小为512,而MVSNeRF [4]和NeRF [31]的批量大小为1024。0方法 ˆ h K t, 1 K t, 2 PSNR 时间(秒)0表3.DTU数据集中“birds”的渲染时间和PSNR。Kt,1和Kt,2分别是粗采样和细采样中使用的点数,ˆh表示使用概率ˆh进行粗采样,“时间”表示在2080Ti GPU上渲染一张800×600图像所需的时间。0方法 训练步骤 训练时间 PSNR0NeRF [31] 200k � 9.5h 30.27 MVSNeRF [4]-Ft 10k �28min 23.77 IBRNet [56]-Ft 5k � 41min 28.38NeuRay-Ft 5k � 32min 30.630表4. NeRF合成数据集上的PSNR和训练步骤/时间。0在图8中进行了定量比较,结果表明使用混合的逻辑分布可以改善具有突变深度变化区域的渲染质量。NeuRay在每个场景优化中的效果如表2所示,我们比较了三个模型,完整模型(ID 6),仅图像特征聚合的模型(ID8)和具有NeuRay但没有ℓ consist的模型(ID9)。结果显示,将NeuRay作为后端添加到每个场景的优化中已经带来了改进,并且进一步添加ℓconsist可以记忆几何形状,从而极大地提高了渲染质量。04.4. 分析0使用NeuRay加速渲染。如第3.6节所讨论的,我们可以从NeuRay中高效地估计粗采样的ˆh,并且仅基于粗采样对少量细点进行采样。为了验证这一点,我们在DTU数据集的“birds”上进行了实验。如表3所示,仅使用4或8个后续采样点就足以使我们的方法达到高质量的渲染。0质量渲染,将渲染速度从30秒加快到约3秒。通过从alpha值中提取网格或占用体素来进一步加快速度,这是我们留给未来工作的。收敛速度。为了展示不同模型在特定场景优化过程中渲染质量的改善情况,我们在“Lego”上训练了不同的模型,并在图9(左)中绘制了小型验证集上的PSNR曲线。曲线显示,微调我们的方法始终产生比使用相同训练步骤训练的所有基线方法更好的渲染结果。在图9(右)中,我们展示了在10k个训练步骤上的定性结果。仅经过10k个训练步骤,NeRF [31]和MVSNeRF[4]仍然远未收敛,因此产生模糊图像,IBRNet[56]在遮挡区域产生伪影,而我们的方法已经产生了高质量的渲染结果。只需使用NeuRay微调几步。表4报告了在NeRF合成数据集上使用少量微调步骤的不同模型的PSNR和时间。请注意,微调IBRNet[56]和我们的方法都需要图像特征提取,这比神经场MVSNeRF [4]和NeRF[31]的一个训练步骤花费更多时间。由于我们的图像编码器比IBRNet更浅,微调我们的方法稍微快一些。结果表明,我们的方法能够在有限的时间(32分钟)内进行微调,以达到与长时间训练(9.5小时)的NeRF[31]相似的质量,这显著优于其他具有类似微调时间的泛化方法。05. 结论0在本文中,我们提出了一种新颖的神经表示NeuRay,用于新视角合成任务。NeuRay通过在输入射线上定义遮挡概率来表示场景,并能够有效地估计从任意3D点到输入视图的可见性。借助NeuRay的帮助,我们能够在构建辐射场时考虑可见性,通过多视图特征聚合。在DTU数据集、NeRF合成数据集和LLFF数据集上的实验证明,我们的方法可以在不对场景进行任何训练或仅进行少量微调步骤的情况下渲染出高质量的图像。78320参考文献0[1] Kara-Ali Aliev,Artem Sevastopolsky,MariaKolos,Dmitry Ulyanov和VictorLempitsky。神经点云图形。在ECCV,2020年。20[2] Alexander W. Bergman,Petr Kellnhofer和Gordon Wet-zstein。使用元学习快速训练神经光场表示。在NeurIPS,2021年。20[3] Gaurav Chaurasia,Sylvain Duchene,OlgaSorkine-Hornung和GeorgeDrettakis。深度合成和局部变形以实现可信的基于图像的导航。ACM TOG,2013年。20[4] Anpei Chen,Zexiang Xu,Fuqiang Zhao,XiaoshuaiZhang,Fanbo Xiang,Jingyi Yu和HaoSu。MVSNeRF:从多视图立体重建中快速生成可推广的辐射场。在ICCV,2021年。2,6,80[5] Julian Chibane,Aayush Bansal,Verica Lazova和GerardPons-Moll。立体光辐射场(SRF):学习稀疏视图的新场景合成。在CVPR,2021年。1,2,3,4,50[6] Inchang Choi,Orazio Gallo,Alejandro Troccoli,Min HKim和Jan Kautz。极端视图合成。在ICCV,2019年。20[7] Abe Davis,Marc Levoy和FredoDurand。非结构化光场。在Eurographics,2012年。20[8] John Flynn,Michael Broxton,Paul Debevec,Matthew Du-Vall,Graham Fyffe,Ryan Overbeck,Noah Snavely和RichardTucker。Deepview:学习梯度下降的视图合成。在CVPR,2019年。60[9] Stephan J Garbin,Marek Kowalski,Matthew Johnson,JamieShotton和JulienValentin。FastNeRF:每秒200帧的高保真度神经渲染。在ICCV,2021年。20[10] Research Google. Google扫描的对象。https://app.ignitionrobotics.org/GoogleResearch/ fuel / collections /GoogleScannedObjects,2021年。60[11] Steven J Gortler,Radek Grzeszczuk,RichardSzeliski和Michael F Cohen。光场。在SIGGRAPH,1996年。20[12] Marc Habermann,Lingjie Liu,Weipeng Xu,MichaelZoll- hoefer,Gerard Pons-Moll和ChristianTheobalt。实时深度动态角色。ACM TOG,2021年。20[13] Tong He,John Collomosse,Hailin Jin和StefanoSoatto。Geo-PIFu:用于单视角人体重建的几何和像素对齐的隐式函数。arXiv预印本arXiv:2006.08072,2020年。20[14] Peter Hedman,Julien Philip,True Price,Jan-MichaelFrahm,George Drettakis和GabrielBro
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功