没有合适的资源?快使用搜索试试~ 我知道了~
Christian Reiser1,2Songyou Peng1,3Yiyi Liao1,2Andreas Geiger1,2{firstname.lastname}@tue.mpg.deKiloNeRFNeRF0.02s56s 2548x fastermillions of pixels. As the MLP used in NeRF is relativelydeep and wide, this process is very slow. A natural idea is todecrease the depth and number of hidden units per layer inorder to speed up the rendering process. However, withoutany further measures, a reduction in network size leads to animmediate loss in image quality due to the limited capacityfor fitting complex scenes. We counteract this by using alarge number of independent and small networks, and byletting each network represent only a fraction of the scene.We find that training our KiloNeRF with thousands ofnetworks, na¨ıvely from scratch leads to noticeable artifacts.To overcome this problem, we first train a regular NeRF asteacher model. KiloNeRF is then trained such that its out-puts (density and color) match those of the teacher modelfor any position and view direction. Finally, KiloNeRF isfine-tuned on the original training images. Thanks to thisthree-stage training strategy, our model reaches the same143350KiloNeRF:使用数千个小型MLP加速神经辐射场01 Max Planck智能系统研究所,T¨ubingen 2 T¨ubingen大学 3 ETH Zurich0摘要0NeRF通过将神经辐射场拟合到RGB图像中,以前所未有的质量合成场景的新视图。然而,NeRF需要查询一个深度多层感知器(MLP)数百万次,即使在现代GPU上也会导致渲染时间很慢。在本文中,我们通过使用数千个小型MLP而不是一个单独的大型MLP来演示实时渲染是可能的。在我们的设置中,每个独立的MLP只需要表示场景的一部分,因此可以使用更小且更快速评估的MLP。通过将这种分而治之的策略与进一步的优化相结合,渲染速度相比原始NeRF模型加快了三个数量级,而不会产生高存储成本。此外,通过使用教师-学生蒸馏进行训练,我们表明可以在不牺牲视觉质量的情况下实现这种加速。01. 引言0新视图合成(NVS)解决了从未观察到的视点渲染场景的问题,给定一些RGB图像和相机姿态作为输入,例如用于交互式探索。最近,NeRF [ 29]通过使用神经辐射场表示来解决了这个问题,取得了最先进的结果。即使面对薄结构、半透明物体和反射等挑战,NeRF也能产生几何一致、高质量的新视图。此外,NeRF的底层表示仅需要很少的存储空间,因此可以轻松地流式传输给用户。NeRF的最大剩余缺点是其长时间的训练和渲染时间。虽然训练可以通过使用多GPU集群加速,但渲染必须在消费者设备上实时进行,以用于虚拟现实等交互应用。这促使我们在本文中专注于提高NeRF的渲染速度。NeRF使用多层感知器(MLP)来表示场景的几何和外观。在体积渲染过程中,该网络需要对数百万像素进行采样。由于NeRF中使用的MLP相对较深且较宽,这个过程非常缓慢。一个自然的想法是减少网络的深度和每层的隐藏单元数量,以加快渲染过程。然而,如果没有任何进一步的措施,网络大小的减小会导致图像质量的立即降低,因为其容量有限,无法适应复杂场景。我们通过使用大量独立且小型网络,并让每个网络仅表示场景的一部分来抵消这一点。我们发现,从头开始训练数千个网络的KiloNeRF会出现明显的伪影。为了解决这个问题,我们首先训练一个常规的NeRF作为教师模型。然后,我们训练KiloNeRF,使其在任何位置和视角下的输出(密度和颜色)与教师模型相匹配。最后,我们对原始训练图像进行了微调。由于这种三阶段的训练策略,我们的模型达到了相同的0图1:KiloNeRF。我们不再使用单个高容量的MLP来表示整个场景,而是使用成千上万个小型MLP来表示场景。这使我们能够在视觉质量不损失的情况下以2548倍以上的速度渲染场景。143360与原始NeRF模型的视觉保真度相同,同时能够以图1所示的三个数量级更快地合成新视图。实现我们加速的关键是对许多MLP的并发评估进行充分的实现。为实现这一目标,我们在https://github.com/creiser/kilonerf上发布了我们使用PyTorch、MAGMA、Thrust和自定义CUDA内核的高效实现。02. 相关工作0新视角合成:NVS方法可以根据它们用于建模底层场景几何的表示方式进行分类。基于网格的方法,包括经典的[5, 9,65, 69]和基于学习的[45, 46,61]方法,通常需要预处理步骤,例如运动结构(SfM)[49],以重建场景。类似地,基于点云的方法依赖于SfM或RGB-D传感器来恢复几何[2]。相反,使用多平面图像(MPI)[11, 28, 55, 56, 64,78]表示场景为一堆图像或特征图。虽然MPI方法展示了逼真的图像合成,但在推理过程中只允许进行小的视点变化。另一类方法将体素网格视为场景表示[19, 25, 40, 51, 52,58],然而,它们通常在分辨率方面受到限制。体素网格的局限性可以通过采用神经函数表示[29, 32, 53,72]来缓解。可微体积渲染(DVR)[32]和隐式可微渲染器(IDR)[72]采用表面渲染,因此在训练期间需要像素精确的对象掩码作为输入。此外,它们假设场景是实体的,不能很好地处理半透明物体或薄结构。相比之下,NeRF [29]使用体积渲染[3],可以在没有掩码的情况下进行训练,并且可以使用alpha混合来恢复细节结构。NeRF成功的一个原因在于它的表示,它利用参数化函数将3D坐标和视点方向映射到体积密度和颜色值。这种函数表示具有悠久的传统[47,48],并且最近在几何计算机视觉[7, 27,35]中重新出现。这些最新的方法将深度神经网络用作函数类,并在3D重建、形状生成、点云补全或重新照明等任务中推动了最新的技术进展[7, 27, 33, 35, 38]。0更快的NeRF渲染:神经稀疏体素场(NSVF)[24]使用空间跳过和提前终止等经典技术加速了NeRF的渲染。此外,NSVF的网络是在均匀的3D网格上的特征向量的条件下进行的,以增加模型的容量而不增加网络的深度或宽度。通过在训练期间已经应用空间跳过,NSVF可以在相同的计算预算下在表面周围更密集地采样。我们也利用了空间跳过。0在训练期间跳过空间和在渲染期间提前终止光线。关键区别在于我们使用成千上万个小网络,而NSVF使用一个特征条件的网络。由于我们的网络只负责表示一个小区域,所以与NSVF必须表示整个场景的单个网络相比,它们所需的容量较低。因此,KiloNeRF比NSVF快两个数量级。与我们同时进行的许多工作[14, 16, 23, 30, 43,0已经开发出了一些旨在加速NeRF的方法[14, 16, 74]。DeRF[43]还通过多个独立网络来表示场景。然而,在DeRF中,场景被分解为十六个不规则的Voronoi单元。在本文中,我们证明了将场景分解为数千个排列在规则3D网格上的MLP的策略会导致显著更高的加速度。AutoInt通过学习反导数的闭式解决方案来替代NeRF中的数值积分的需要[23]。通过利用微积分的基本定理,可以使用较小数量的网络查询来渲染像素。DONeRF[30]演示了仅使用4个光线样本来渲染像素的可行性。这是通过将样本放置在光线相交的第一个表面周围更密集来实现的。为了实现这个目标,对于每条光线,会查询一个额外的网络,直接预测适当的样本位置。我们注意到后两种方法与KiloNeRF是正交的,KiloNeRF与这两种新技术的结合是有希望的。其他工作表明,在训练后将神经表示转换为离散表示可以实现实时渲染[14, 16,74]。与KiloNeRF相比,这些方法消耗更多的GPU内存,这可能使它们不太适合更大的场景。0NeRF的后续工作:NeRF++将NeRF扩展到无界场景[76],而NeRF-W处理非结构化的照片集合[26]。GRAF[50],pi-GAN [6]和GIRAFFE[31]提出了辐射场的生成模型。一系列的工作改进了从有限训练视图中的泛化能力[13, 42, 44, 59, 63, 66,75],而其他工作[57, 68,73]则消除了对姿态估计的要求。[4, 15,54]使得可以从具有不同光照条件的图像中进行学习。最后,[10, 12, 21, 22, 34, 36, 39, 41, 62, 67,70]将NeRF扩展到视频。这些方法中的许多方法将受益于更快的渲染,并且与KiloNeRF兼容。03. 方法0我们的方法基于NeRF[29],它将单个场景表示为体积密度和颜色值的集合。关键是,在NeRF中,这些密度和颜色不以离散的体素表示。相反,NeRF使用MLP在场景中的任意连续3D位置上编码密度和颜色。虽然NeRF使用单个网络来表示整个场景,但我们的方法受到[8]的启发,使用大量独立的小型MLP来表示场景。具体而言,我们将场景划分为一个3D网格。每个MLP的任务是表示落在特定3D单元格内的场景部分。由于每个网络只表示场景的一小部分,低网络容量就足以产生逼真的结果,这在我们的实验中得到了证明。此外,我们还采用了空间跳跃和早期射线终止来进一步加速渲染。我们首先简要回顾了原始的NeRF模型,它是KiloNeRF的基础。143370我们受到[8]的启发,使用大量独立的小型MLP来表示整个场景。具体而言,我们将场景划分为一个3D网格。每个MLP的任务是表示落在特定3D单元格内的场景部分。由于每个网络只表示场景的一小部分,低网络容量就足以产生逼真的结果,这在我们的实验中得到了证明。此外,我们还采用了空间跳跃和早期射线终止来进一步加速渲染。我们首先简要回顾了原始的NeRF模型,它是KiloNeRF的基础。03.1. 背景0在NeRF[29]中,场景由具有参数θ的神经网络fθ表示。fθ以3D位置x和观察方向d作为输入,并将它们映射到颜色c和密度σ。fθ的架构被选择为只有颜色c依赖于观察方向d。这样可以建模视角相关的效果,如高光和反射,同时也鼓励学习一致的几何形状。在确定性的预处理步骤中,x和d通过位置编码γ进行转换,以促进高频细节的学习,详见[29,60]。通过从相机眼睛穿过像素中心发射射线,并对射线上的K个采样点x1,...,xK评估网络fθ,渲染一个像素。对于每个采样点xi,网络输出一个颜色值ci和一个密度值σi。换句话说,我们计算了一个元组列表:0(ci,σi) = fθ(xi,d) with i = 1, 2, ..., K (1)0在这里,观察方向d通过将从相机中心到像素的向量归一化来计算。随后,最终的像素颜色ˆc通过对颜色值c1,...,cK进行α混合计算得到。0ˆc =0i=1 Tiαici (2)0Ti =0j=1 (1 - αj) (3)0αi = 1 - exp(σiδi) (4)0其中αi确定用于混合颜色值和计算αi的alpha值取决于相邻采样点之间的距离δj = ∥xj+1 -xj∥。最后,Ti对应于透射率,它考虑了射线上的遮挡。这个过程需要对图像中的每个像素重复进行。因此,渲染宽度为W,高度为H的图像需要W×H×K次网络评估。NeRF通过最小化渲染图像和训练图像之间的光度损失进行训练。具体而言,对于每个参数更新步骤,我们随机采样0训练图像和B个像素c1,...,cB在图像中。随后,根据公式2渲染相应的像素ˆc1,...,ˆcB。模型参数θ通过最小化渲染像素与其真实值之间的L2重建损失进行优化。0L = 10B0B0b∥cb−ˆcb∥22(5)03.2. KiloNeRF0KiloNeRF假设已知包围场景的轴对齐边界框(AABB)。让bmin和bmax是此AABB的最小和最大边界。我们将场景分成分辨率为r = (rx, ry, rz)的均匀网格。每个带有3D索引i =(ix, iy,iz)的网格单元对应一个具有独立参数集θ(i)的微小MLP网络。将位置x映射到分配给位置x的微小网络的索引i的映射g通过空间分箱定义。0g(x) = �(x−bmin)/((bmax−bmin)/r)�(6)0其中所有操作都是逐元素的。在查询点x和方向d处查询KiloNeRF涉及确定负责相应网格单元的网络g(x):0(c, σ) = fθ(g(x))(x, d)(7)0网络架构:如图2所示,我们使用了NeRF的一个缩小版本的全连接架构,类似于NeRF架构,它强制预测的密度与视角无关。然而,NeRF使用了10个隐藏层,其中每个前9个隐藏层输出一个256维特征向量,最后一个隐藏层输出一个128维特征向量。相比之下,我们使用了一个更小的MLP,只有4个隐藏层和每个隐藏层32个隐藏单元。由于我们网络的深度较低,不需要像原始的NeRF架构那样使用跳跃连接。与NeRF一样,我们将视角方向作为最后一个隐藏层的额外输入。所有仿射层后面都跟着一个ReLU激活函数,有两个例外:计算RGB颜色c的输出层使用sigmoid激活函数,而作为倒数第二个隐藏层的输入的特征向量不应用激活函数。03.3. 使用蒸馏进行训练0从头开始训练KiloNeRF可能会在自由空间中产生伪影,如图3所示。我们观察到,通过首先训练一个普通的NeRF模型并将其知识蒸馏[17]到KiloNeRF模型中,可以获得更好的结果。在这里,KiloNeRF模型被训练成其输出与教师模型的输出相匹配。143380图2:模型架构。KiloNeRF的MLP架构是NeRF架构的一个缩小版本。通过KiloNeRF的网络进行一次前向传递只需要原始架构的1/87的浮点运算(FLOPs)。0(a)没有蒸馏0(b)使用蒸馏0图3:蒸馏。(a)从头开始训练KiloNeRF可能会在自由空间中产生伪影。(b)通过模仿预训练的标准NeRF模型进行蒸馏可以减轻这个问题。0对于所有可能的输入。具体来说,对于我们的每个网络,我们随机采样一批3D点,这些点位于对应网络的3D网格单元内。这些批次与从单位球中随机选择的视角方向一起增强。我们查询学生和教师以获得相应的密度σ和颜色值c。根据公式4,将获得的σ值转换为α值,以减少对大密度值之间的小差异的重视。我们使用学生和从教师获得的预测的α值和颜色值之间的L2损失来优化学生的参数。请注意,对于蒸馏步骤,我们既不执行体积渲染,也不使用训练图像。因此,仅进行蒸馏意味着KiloNeRF的渲染质量上限由教师方法的渲染质量确定。因此,在最后一步中,KiloNeRF进行了微调0使用方程5中的光度损失对训练图像进行训练。从这个角度来看,蒸馏可以被看作是为KiloNeRF提供强大的权重初始化的手段。0正则化:原始的NeRF架构仅使用其总容量的一小部分来模拟颜色对视角的依赖关系,如图2(左)所示。Zhang等人[76]假设这种选择鼓励颜色是视角的简单函数。此外,他们通过实验证明,这种归纳偏差对于避免空白空间中的伪影至关重要[76]。我们的第一次尝试是在KiloNeRF中复制这种策略,即减少最后一个隐藏层的输出特征数量以获得类似的调节效果。然而,由于我们的网络宽度较小,这导致了视觉质量的整体损失。因此,我们改为对网络的最后两层的权重和偏差应用L2正则化,这两层负责对颜色进行视角相关建模。这种策略使我们能够施加与NeRF相同的归纳偏差,而不损失视觉质量。我们在实验中参考图6进行说明。03.4. 采样0沿射线采样最多K个等距点。为了减少网络查询的数量,我们利用了空白空间跳跃(ESS)和早期射线终止(ERT)。因此,每条射线上采样的点数是可变的,超参数K有效地控制了采样点之间的距离δ。由于ESS和ERT的组合,只有在射线与不透明物体相交时,才会评估射线所接触到的第一个表面附近的点。我们不使用NeRF中引入的分层采样方案,该方案还可以在占用空间中进行密集采样,但比ESS更昂贵。与NeRF [29]类似,我们使用分层采样来避免偏差。143390空间跳跃:对于空间跳跃,我们在给定的AABB中实例化第二个均匀网格,其具有更高的网格分辨率。该网格中的每个单元格都填充有一个二进制值,用于指示场景在该单元格内是否有任何内容。这个占用网格可以用于在空白空间中避免查询网络[3]。只有当样本点x所在的单元格被占用时,才会在x处评估网络。我们从训练好的教师模型中提取占用网格,并将其用于更高效的微调和推理。为了填充占用网格,我们对占用网格的每个单元格从教师模型中的一个3×3×3子网格中采样密度。如果任何评估的密度高于阈值τ,则将单元格标记为占用。不需要对τ进行特定于数据集的调整。0早期射线终止:如果体积渲染过程中的透射率值Ti接近于0,则可以避免评估后续采样点xi+1,xi+2,...,因为相应颜色值ci+1,ci+2,...对最终像素值的贡献变得非常小。因此,一旦透射率Ti降至低于阈值ϵ,就可以避免沿射线进一步采样。ERT仅在推理过程中使用,并通过根据相机距离对网络查询进行分组来实现,即首先评估靠近相机的点,然后依次查询尚未终止的射线上的更远点。03.5. 实现0我们的原型实现基于PyTorch [37]、MAGMA[1]和Thrust。此外,我们为采样、空白空间跳跃、早期射线终止、位置编码、网络评估和alpha混合开发了自定义的CUDA核。高性能的关键是正确处理同时查询数千个网络的情况。为了说明这一点,让我们考虑一个完全连接网络的单个线性层,它需要计算一个矩阵乘法。更具体地说,一个B×I矩阵与一个I×O矩阵相乘,其中B是批量大小,I/O是输入/输出特征的数量。在KiloNeRF中,每个网络都需要进行单独的矩阵乘法。假设总共有N个网络,我们需要为每个i∈1,...,N乘以一个Bi×I矩阵和一个I×O矩阵。由于Bi因网络而异,传统的批量矩阵乘法无法使用。为了解决这个问题,我们利用了HPC库MAGMA,该库提供了这种情况的CUDA例程。仅用于推理的我们使用了一个自己开发的例程,将整个网络评估融合到一个单独的CUDA核中。此外,有必要对输入批次进行排序,以便后续输入由同一网络处理。这一步骤在ESS和ERT相互作用导致采样数减少之前受益很大。更多细节可以在补充材料中找到。04. 实验评估04.1. 设置0数据集:NSVF和KiloNeRF都假设场景是有界的。因此,我们可以直接使用NSVF提供的四个数据集,以及给定的边界框。因此,KiloNeRF在合成数据集(Synthetic-NeRF,Synthetic-NSVF)以及包含真实场景的数据集(NSVF的BlendedMVS变体[71]和Tanks&Temples[18])上进行测试。总共,我们评估了25个场景。0基准模型:我们将KiloNeRF与NeRF[29]和NSVF[24]进行比较。需要注意的是,尽管我们的教师模型没有使用分层采样策略,但我们将其与采用分层采样策略的原始NeRF模型进行比较。NSVF作为基准模型特别有趣,因为NSVF也使用了ESS和ERT。因此,相对于NSVF的加速可以很大程度上归因于KiloNeRF中使用的较小的网络尺寸。关于其他NVS技术[25, 53]的比较,请参阅[24]。0超参数:对于每个场景,我们选择网络网格分辨率,使得最大维度等于16,其他维度选择使得结果的单元是立方体,因此最大可能的分辨率是16 × 16 × 16 =4096。为了得到占据网格的分辨率,我们将网络网格分辨率乘以16,这意味着占据网格的分辨率上限为256 × 256 ×256个单元。我们发现将占据网格提取的阈值τ设置为10在所有数据集上效果良好。我们使用学习率为5e-4的Adam优化器,批量大小为8192像素,并采用与NeRF相同的学习率衰减策略。对于L2正则化,我们使用权重为1e-6。对于早期光线终止,我们将阈值设置为ε =0.01。正如NSVF中发现的那样,使用这个选择的ε进行早期光线终止不会导致任何质量损失[24]。此外,使用与NSVF相同的ε值增加了可比性。间接控制样本点之间距离的超参数K设置为384。我们使用与NeRF相同数量的频率进行位置编码。0训练计划:我们对NeRF基准模型和KiloNeRF进行了大量迭代的训练,以找到各自架构的表示能力极限。事实上,我们发现在一些场景中,NeRF需要多达600k次迭代才能收敛。当将我们的定性和定量结果与Liu等人[24]报告的结果进行比较时,可以注意到我们对于NeRF基准模型获得了更好的结果,这可能可以通过我们更长的训练计划来解释。在NVIDIA GTX 1080Ti上训练NeRF基准模型大约需要2天。对于我们的教师模型,我们训练另一个NeRF模型,但不使用分层采样,进行了600k次迭代,作为NeRF的粗糙模型。143400BlendedMVS Synthetic-NeRF Synthetic-NSVF Tanks & Temples 分辨率 768 × 576 800 × 800 800 × 800 1920 ×10800PSNR ↑ NeRF 27.29 31.01 31.55 28.32 NSVF 26.90 31.74 35.13 28.40 KiloNeRF 27.39 31.00 33.37 28.410SSIM ↑ NeRF 0.91 0.95 0.95 0.90 NSVF 0.90 0.95 0.98 0.90 KiloNeRF 0.92 0.95 0.97 0.910LPIPS ↓ NeRF 0.07 0.08 0.04 0.11 NSVF 0.11 0.05 0.01 0.15 KiloNeRF 0.06 0.03 0.02 0.090渲染时间(毫秒)↓ NeRF 37266 56185 56185 182671 NSVF 4398 4344 10497 15697 KiloNeRF 30 26 26 910相对于NeRF的加速 ↑ NSVF 8 13 5 12 KiloNeRF 1258 2165 2167 20020表1:定量结果。KiloNeRF在速度显著提升的同时,实现了与基准模型相似的质量得分。0对于蒸馏来说,NeRF的粗糙模型过于不准确,而NeRF的细致模型则对表面有偏见。这个模型经过150k次迭代蒸馏成为KiloNeRF模型,这需要8个小时。最后,KiloNeRF模型经过1000k次迭代进行微调,由于ESS和我们MLP的尺寸减小,只需要17个小时。0测量:我们的测试系统由NVIDIA GTX 1080Ti消费级GPU、Intel i7-3770kCPU和32GB内存组成。对于每个场景,推理时间通过计算所有测试图像的平均时间来测量。04.2. 结果0表1显示了我们的主要结果。KiloNeRF在视觉质量评分上与基线方法NeRF和NSVF相似。在感知度量LPIPS[77]方面,KiloNeRF甚至在四个数据集中的三个上略优于其他两种方法。然而,在所有场景中,KiloNeRF的渲染速度比NeRF快三个数量级,比NSVF快两个数量级。图4中,我们展示了三种方法的新视角合成结果。更多定性结果可以在补充材料中找到。04.3. 消融研究0图5中,我们以乐高推土机场景为例对KiloNeRF进行了消融研究。0单个小型MLP:对于这个消融研究,使用KiloNeRF的网络超参数(层数/隐藏单元数),但只实例化一个网络。不出所料,质量大幅下降,因为只有6k个参数的单个MLP无法准确表示整个场景。0方法 渲染时间 ↓ 加速比 ↑0NeRF 56185毫秒 - NeRF + ESS + ERT 788毫秒71 KiloNeRF 22毫秒 25480表2:加速比例。将原始NeRF模型与KiloNeRF的ESS和ERT实现进行比较。0网络分辨率的一半:我们将KiloNeRF的网络网格大小减半(对于这个特定场景,从10×16×10减少到5×8×5),以验证所选择的分辨率是否不必要地高。我们发现降低网格分辨率会导致质量下降,这证明了细小网络的细网格确实是有益的。0隐藏单元的一半:我们还测试了是否可能进一步减少隐藏单元的数量。我们观察到图像质量的降低,尽管降低网格分辨率时的质量损失没有降低得那么明显。可能的解释是,将网络分辨率减半将参数数量减少了8倍,而将隐藏单元数量减半只会将参数数量减少约4倍。0无微调:对于这个实验,省略了最终的微调阶段。我们的结果表明,微调对于实现高质量至关重要,而先前的蒸馏阶段只提供了良好的参数初始化。0无蒸馏:图3比较了从无蒸馏开始训练KiloNeRF的情况。1434100.04秒 6.7秒 56秒00.02秒 5.6秒 37秒00.07秒 9.3秒 183秒0真实值 NeRF NSVF KiloNeRF0图4:定性比较。NeRF、NSVF和KiloNeRF合成的新视角。尽管速度显著提高,KiloNeRF达到了基线方法的视觉质量。右上角的数字表示各个技术在该场景上的平均渲染时间。左侧指定了渲染图像的分辨率(以像素为单位)。 0.1624 0.0495 0.0340 0.0809 0.0284 143420单个小型MLP0网络分辨率的一半0隐藏单元的一半0KiloNeRF真实值0无微调0图5:消融研究。对乐高推土机场景上的KiloNeRF进行了不同模型参数的变化。右下角的数字表示与真实值的感知相似度(LPIPS),数值越低越好。0(a) 无正则化0(b) 正则化0(c) 真实值0图6:正则化。没有权重正则化,渲染图像中的自由空间区域会出现可见的伪影,因为MLP的视角相关部分具有过多的容量。添加L2正则化可以缓解这个问题。0scratch针对所提出的训练流程进行了比较。两种方法都可以达到相同的细节水平,但只有在使用蒸馏时才能避免空白空间中的伪影。0无权重正则化:图6表明,当网络的最后两层省略L2正则化时,自由空间中的伪影也可能出现。因此,蒸馏和L2正则化在避免这些伪影方面都起着重要作用。0ESS和ERT:最后,我们有兴趣确定ESS和ERT的组合以及网络规模的减小对最终加速的贡献程度。为了实现这个目标,我们在Lego推土机场景上运行原始大小的NeRF,并将其与我们优化的ESS/ERT实现以及完整的KiloNeRF技术进行比较。从表2可以看出,网络规模的减小对KiloNeRF的整体加速有很大贡献。05. 讨论与未来工作0虽然KiloNeRF能够以交互式帧率渲染中等分辨率的图像(800×800),但速度提升还不足以实时渲染全高清图像。通过将我们的方法扩展到更多的较小网络,可能可以实现进一步的加速。然而,简单地这样做会导致更高的存储影响。使用内存高效的数据结构可能有助于解决这个问题,从而实现对更大(例如户外)场景的扩展。另一方面,本文考虑的场景使用的内存少于100MB。这表明,至少对于中等规模的场景,存储不是一个问题。0数据结构[8,20]允许网络仅在表面附近实例化。此外,在这项工作中,我们主要通过使用许多小型MLP来加快网络查询速度。相比之下,同时开发的技术AutoInt [23]和DONeRF[30]通过减少沿射线所需的样本数量来加速推理。因此,KiloNeRF与这些技术的组合在不久的将来实现高分辨率图像的实时渲染是一种有前途的解决方案。0局限性:NSVF[24]和KiloNeRF共享有界场景的假设,这是一个应该在未来工作中解决的限制。表示无界场景需要更多的网络,导致更大的内存消耗。然而,高效的数据结构可以帮助解决这个问题,因此可以扩展到更大的(例如户外)场景。另一方面,本文考虑的场景使用的内存少于100MB。这表明,至少对于中等规模的场景,存储不是一个问题。06. 结论0在本文中,我们证明了通过将场景空间分解为规则网格并为每个网格单元分配小容量网络,可以实现NeRF的实时渲染。除了NeRF所继承的其他优点(出色的渲染质量和低存储影响)之外,我们认为这是实现实用NVS的重要一步。此外,所提出的加速策略也可能更广泛地适用于其他依赖神经函数表示的方法,包括隐式表面模型。0致谢:本研究得到了NVIDIA的研究赠款、ERC起始资助金LEGO-3D(850533)和DFGEXC编号2064/1-项目编号390727645的支持。SongyouPeng得到了Max Planck ETH学习系统中心的支持。YiyiLiao得到了BMBF TübingenAI中心的支持,FKZ:01IS18039A。[2] Kara-Ali Aliev, Artem Sevastopolsky, Maria Kolos, DmitryUlyanov, and Victor S. Lempitsky.Neural point-basedgraphics. In Proc. of the European Conf. on Computer Vi-sion (ECCV), 2020. 2[30] Thomas Neff, Pascal Stadlbauer, Mathias Parger, AndreasKurz, Chakravarty R. Alla Chaitanya, Anton Kaplanyan,143430参考文献0[1] Ahmad Abdelfattah, Azzam Haidar, Stanimire Tomov,and Jack Dongarra. Novel hpc techniques to batch executionof many variable size blas computations on gpus. InInternational Conference on Supercomputing , 2017. 50[3] Johanna Beyer, Markus Hadwiger, and Hanspeter Pfister.基于GPU的大规模体积可视化的最新技术. In ComputerGraphics Forum , 2015. 2 , 50[4] Mark Boss, Raphael Braun, Varun Jampani, Jonathan T.Bar- ron, Ce Liu, and Hendrik P. A. Lensch. NeRD:从图像集合中分解反射率的神经网络. arXiv.org , 2020. 20[5] Chris Buehler, Michael Bosse, Leonard McMillan, Steven J.Gortler, and Michael F. Cohen. 非结构化光栅图渲染. In ACMTrans. on Graphics , 2001. 20[6] Eric R. Chan, Marco Monteiro, Petr Kellnhofer, Jiajun Wu,and Gordon Wetzstein. pi-GAN:周期性隐式生成对抗网络用于3D感知图像合成. In Proc. IEEEConf. on Computer Vision and Pattern Recogni- tion (CVPR), 2021. 20[7] Zhiqin Chen and Hao Zhang. 学习隐式场进行生成形状建模.In Proc. IEEE Conf. on Com- puter Vision and PatternRecognition (CVPR) , 2019. 20[8] Qiang Dai, Ying Song, and Yi Xin.使用回归函数进行可随机访问的体数据压缩. In Interna- tionalConference on Computer-Aided Design and ComputerGraphics , 2015. 3 , 80[9] Paul E Debevec, Camillo J Taylor, and Jitendra Malik.从照片中建模和渲染建筑: 一种基于几何和图像的混合方法. InACM Trans. on Graphics , 1996. 20[10] Yilun Du, Yinan Zhang, Hong-Xing Yu, Joshua B. Tenen-baum, and Jiajun Wu. 用于4D视图合成和视频处理的神经辐射流.arXiv.org , 2020. 20[11] John Flynn, Michael Broxton, Paul E. Debevec, MatthewDuVall, Graham Fyffe, Ryan S. Overbeck, Noah Snavely, andRichard Tucker. Deepview: 使用学习的梯度下降进行视图合成. InProc. IEEE Conf. on Computer Vision and Pattern Recognition(CVPR) , 2019. 20[12] Guy Gafni, Justus Thies, Michael Zollh¨ofer, and MatthiasNießner. 动态神经辐射场用于单目4D面部头像重建. arXiv.org ,2020. 20[13] Chen Gao, Yichang Shih, Wei-Sheng Lai, Chia-Kai Liang,and Jia-Bin Huang. 从单张图像中生成人像神经辐射场. arXiv.org, 2020. 20[14] Stephan J. Garbin, Marek Kowalski, Matthew Johnson,Jamie Shotton, and Julien Valentin. Fastnerf:在200fps下进行高保真度的神经渲染. arXiv.org , 2021. 20[15] Michelle Guo, Alireza Fathi, Jiajun Wu, and ThomasFunkhouser. 以物体为中心的神经场景渲染. arXiv.org , 2020. 20[16] Peter Hedman, Pratul P. Srinivasan, Ben Mildenhall,Jonathan T. Barron, and Paul Debevec.用于实时视图合成的神经辐射场烘焙. arXiv.org , 2021. 20[17] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean.提取神经网络中的知识. arXiv.org , 2015. 30[18] Arno Knapitsch, Jaesik Park, Qian-Yi Zhou, and VladlenKoltun. Tanks and temples: 大规模场景重建的基准测试. ACMTrans. on Graphics , 2017. 5
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功