CVPR 23丨适用于大型城市场景的网格引导神经辐射场(NeRF)

来源:投稿 作者:橡皮
编辑:学姐

论文链接:https://arxiv.org/abs/2303.14001[1]

项目主页:https://city-super.github.io/gridnerf/[2]

摘要:

由于模型容量有限,纯粹基于 MLP 的神经辐射场(基于 NeRF 的方法)经常会出现拟合不足,在大规模场景上呈现模糊渲染的问题。最近的方法提出在地理上划分场景并采用多个子 NeRF 来分别对每个区域进行建模,从而导致训练成本和子 NeRF 数量随着场景的扩展而线性扩展。另一种解决方案是使用特征网格表示,它计算效率高,并且可以自然地扩展到具有更高网格分辨率的大场景。然而,特征网格往往受到较少的约束,并且经常达到次优的解决方案,在渲染中产生噪声伪影,特别是在具有复杂几何和纹理的区域。在这项工作中,我们提出了一个新的框架,可以在大型城市场景上实现高保真度渲染,同时提高计算效率。我们建议使用紧凑的多分辨率地面特征平面表示来粗略地捕获场景,并通过另一个 NeRF 分支用位置编码输入对其进行补充,以联合学习的方式进行渲染。我们表明,这种集成可以利用两种替代解决方案的优点:轻量级 NeRF 足以在特征网格表示的指导下渲染具有精细细节的逼真新颖视图;和联合优化的地面特征平面,同时可以得到进一步的细化,形成更准确、更紧凑的特征空间,输出更自然的渲染结果。

图 1.我们使用新颖的网格引导神经辐射场执行大型城市场景渲染。左侧显示了我们的目标大型城市场景的示例,该场景跨越 2.7 平方公里的地面区域,由超过 5000 张无人机图像捕获。我们表明,基于 NeRF 的方法的渲染结果模糊且过度平滑,模型容量有限,而基于特征网格的方法在适应大规模场景时往往会显示噪声伪影高分辨率特征网格。我们提出的双分支模型结合了两种方法的优点,实现了逼真的新颖视图渲染,并且比现有方法有了显着改进。两个分支都比各自的基线有了显着的增强。

1.引言

随着最近神经辐射场(NeRF)的出现,大型城市场景建模因其逼真的渲染和模型紧凑性而吸引了大量的研究关注。这种建模可以实现各种实际应用,包括自动驾驶汽车模拟、航空测量和嵌入式人工智能。基于 NeRF 的方法在对象级场景上显示出了令人印象深刻的结果,其连续性先验得益于 MLP 架构和全局共享位置编码的高频细节。然而,它们通常无法对大型且复杂的场景进行建模。由于模型容量有限,这些方法存在拟合不足的问题,并且只能产生模糊的渲染而没有精细的细节。 BlockNeRF和 MegaNeRF提出在地理上划分城市场景,并为每个区域分配不同的子 NeRF 来并行学习。随后,当目标场景的规模和复杂性增加时,它们不可避免地要在子 NeRF 的数量和每个子 NeRF 充分捕获每个区域的所有精细细节所需的容量之间进行权衡。另一个基于网格的表示流使用特征网格来表示目标场景。这些方法通常在渲染过程中更快,并且在场景放大时更有效。然而,由于特征网格的每个单元都以本地编码的方式单独优化,因此与基于 NeRF 的方法相比,生成的特征网格在整个场景中往往不太连续。尽管更大的灵活性直观上有利于捕捉精细细节,但缺乏固有的连续性使得这种表示很容易受到带有噪声伪影的次优解决方案的影响,如图 1 所示。

为了使用隐式神经表示有效地重建大型城市场景,在这项工作中,我们提出了一种双分支模型架构,该架构采用统一的场景表示,在联合学习方案下集成了基于网格和基于 NeRF 的方法。我们的主要见解是,这两种类型的表示可以互补使用:虽然特征网格可以轻松地将局部场景内容与显式且独立学习的特征相匹配,但 NeRF 通过其可共享的 MLP 权重在学习的场景内容上引入了固有的全局连续性跨所有 3D 坐标输入。 NeRF 还可以通过将位置编码作为傅立叶特征与细节带宽进行匹配来鼓励捕获高频场景细节。然而,与特征网格表示不同,NeRF 在将大型场景内容压缩到其全局共享的潜在坐标空间方面效果较差。

具体来说,我们首先在预训练阶段使用特征网格对目标场景进行建模,粗略地捕获场景几何形状和外观。然后使用粗特征网格来1)引导NeRF的点采样,使其集中在场景表面周围; 2) 为 NeRF 的位置编码提供有关场景几何形状和采样位置外观的额外特征。在这样的指导下,NeRF 可以在大幅压缩的采样空间中有效且高效地拾取更精细的细节。此外,由于粗级几何和外观信息被明确提供给 NeRF,轻量级 MLP 足以学习从全局坐标到体积密度和颜色值的映射。在第二个联合学习阶段,粗特征网格通过来自 NeRF 分支的梯度得到进一步优化,这对它们进行正则化,以便在单独应用时产生更准确和自然的渲染结果。为了进一步减少内存占用并学习大型城市场景的可靠特征网格,我们采用 3D 特征网格的紧凑分解来近似它而不损失表示能力。基于城市布局等基本语义主要分布在地面(即 xy 平面)上的观察,我们建议将 3D 特征网格分解为跨越场景的 2D 地面特征平面和沿z 轴。好处是多方面的: 1) 内存从 O(N3 ) 减少到 O(N2 )。 2)学习到的特征网格被强制分解为高度紧凑的地面特征平面,提供明确且信息丰富的场景布局。大量的实验证明了我们统一模型和场景表示的有效性。在实际渲染新颖视图时,用户可以使用渲染速度更快的网格分支,也可以使用具有更多高频细节和空间平滑度的 NeRF 分支,但代价是渲染速度相对较慢。

2.网格引导神经辐射场

回想一下,基于 NeRF 的表示通过将点坐标的位置编码 (PE) 传递到 8 层 MLP来获取点密度和颜色。这种模型非常紧凑,因为整个场景内容都以 PE 嵌入作为输入,编码在 MLP 权重中,但由于模型容量的限制,它们在扩展方面面临困难。相比之下,基于网格的表示将场景编码为特征网格,可以直观地将其视为网格分辨率与实际 3D 空间匹配的 3D 体素网格。每个体素在顶点存储一个特征向量,然后可以进行插值以提取查询点坐标处的特征值,并通过小型网络转换为点密度和颜色。由于特征网格通常被实现为高维张量,因此也可以应用各种分解方法来获得更紧凑的特征网格表示。为了有效地表示大型城市场景,我们提出了网格引导的神经辐射场,它结合了基于 NeRF 和基于网格的方法的专业知识。强制网格特征通过多分辨率地面特征平面可靠地捕获尽可能多的局部信息。然后,我们让位置编码的坐标信息拾取丢失的高频细节并生成高质量的渲染。通过粗略构建以多种分辨率捕获场景的特征网格,密度场也用于指导 NeRF 的采样过程。在训练 NeRF 分支时,网格特征通过两个分支的重建损失进行联合优化和监督。

图 2 展示了我们系统的整体流程。在第 2.1 节中,我们描述了多分辨率地面特征平面表示的预训练; 2.2节介绍了神经辐射场的网格引导学习,对应图2中的NeRF分支;最后,我们在第 2.3 节中详细阐述了 NeRF 分支如何帮助细化网格分支的预训练网格特征。

2.1 多分辨率特征网格预训练

我们按照[9]的实践,用地面特征平面 Rσ 和 Rc 的通道外积以及全局编码的 z 轴特征向量来近似全密度和外观网格特征。对于每个通道 r ∈ Rσ 和 Rc,相应的特征张量网格为: 其中 v z 表示沿 z 轴的向量,Mxy 表示跨越 xy 平面的矩阵,而 表示外积。在学习共享 z 轴特征向量的约束下,优化的地面特征平面被鼓励编码足够的局部场景内容,这些内容可以由全局共享的 MLP 渲染器进行翻译。对于特定的网格分辨率 n,密度和外观张量 G n σ 、 G n c 可以作为 Rσ、Rc 特征分量的串联获得:

图 2.我们的框架概述。我们模型的核心是一种新颖的双分支结构,即网格分支和 NeRF 分支。 1) 我们首先在预训练阶段使用特征平面金字塔捕获场景,并对光线点进行粗略采样,并通过浅层 MLP 渲染器(网格分支)预测它们的辐射值,并由 MSE 损失进行监督体积积分像素颜色。此步骤产生一组信息丰富的多分辨率密度/外观特征平面。 2)接下来,我们进入联合学习阶段并进行更精细的采样。我们使用学习到的特征网格来引导 NeRF 分支采样集中在场景表面。通过特征平面上的双线性插值来推断采样点的网格特征。然后将这些特征与位置编码连接起来并馈送到 NeRF 分支以预测体积密度和颜色。请注意,在联合训练期间,网格分支输出始终受到地面实况图像以及 NeRF 分支的精细渲染结果的监督。

2.2 网格引导神经辐射场

需要从头开始训练的 NeRF 才能从纯粹的位置输入推理整个场景,这仅提供 PE 中的傅立叶频率频带。对于自然具有广泛的几何和纹理细节粒度的大型城市场景,NeRF 不断偏向于学习低频函数。在需要编码大量信息的大场景中,这个问题会变得更加严重。为了解决这个问题,我们建议用预训练的特征网格密度来压缩 NeRF 的采样空间,并用预训练阶段初始化的粗网格特征来丰富 NeRF 的纯坐标输入。

尽管精度和粒度有限,但预训练的网格特征已经可以提供场景的近似值,可用于 1) 指导 NeRF 的点采样,2) 提供中间特征作为坐标输入的补充。如图 2 所示,NeRF 现在可以专注于近似场景表面,以实现更高效、更密集的点采样,而不是映射跨越整个样本空间的坐标,并在位置编码中调用高频傅里叶特征来恢复更精细的细节。同时,沿采样射线的点被投影到多分辨率特征平面上,以通过双线性插值来检索密度和外观特征。然后将推断的网格特征连接到位置编码作为 NeRF 分支的输入。每点密度和颜色 σ ′ , c′ 通过 NeRF 分支网络 F ′ 预测为:

多分辨率特征平面起着至关重要的作用,它提供了多粒度的场景信息,减轻了NeRF PE的拟合负担,使其可以专注于细化场景的精细细节。特别是,虽然高网格分辨率可以保证空间中的每个体素捕获其本地内容,但无论整个场景的细节级别可能存在异质性,质量的提高都会以存储成本为代价。因此,通过傅里叶特征提供此类高频细节会更有效,这些特征只需要在 PE 中花费几个维度,并且可以在整个学习过程中适应场景。

请注意,两分支监督和两阶段训练是必要的,因为:

(1) 随机初始化的特征网格很难提供信息丰富的场景内容,并且可能会纠缠两种类型的网络输入的角色。

(2) 预训练阶段比包含 NeRF 分支的阶段快得多,使得仅使用网格分支可靠地构造粗略几何结构更加有效。

(3) 与提供 PE 输入时冻结体素网格不同,我们稍后将展示特征网格可以通过与 NeRF 分支的联合学习获得进一步的细化。此外,由于网格分支还受到重建损失的监督,因此它强制网格分支继续丰富其捕获的场景信息,其中 PE 输入可以专注于丢失的高频细节。

2.3 NeRF 的精细网格特征平面

回想一下,特征网格依赖于地面特征平面上的双线性插值来获得体素内点的特征向量。该机制可以在足够高的网格分辨率的情况下产生详细的重建结果,从而可以恢复场景中最细微的变化。然而,对于大型城市场景来说,学习具有匹配分辨率的网格可能会非常消耗内存。此外,网格功能缺乏捕捉体素内精确变化的动力,而仅在地面实况 RGB 上重建损失。因此,我们与 NeRF 联合优化特征平面和向量,以通过提供的 NeRF 输入的逐点指导来​​增强网格特征的监督信号。 NeRF带来的另一个好处是独立优化的网格特征的全局正则化。图 1 和图 3 显示,由于缺乏对空间连续性和语义相似性的约束,基于网格的方法存在噪声伪影。相反,NeRF 对整个场景空间使用共享 MLP。我们稍后将展示,在与 NeRF 分支联合训练后,从网格分支解释的渲染新颖视图可以得到很大的改善。

图 3. 基线与我们的基线之间的定性比较。在大型城市场景中,基于 MLP 的方法 (NeRF) 和 (Mega-NeRF) 存在严重的模糊伪像。基于网格的方法 (TensoRF) 显示出更好的结果,但往往会产生形状不准确的噪声外观。预训练的多分辨率网格功能(我们的网格预训练)比单一高分辨率方法有所改进,但结果仍然不是最优的。与新颖视图上的真实图像相比,我们的最终模型实现了照片般逼真的质量。虽然网格分支(Ours,Grid分支)和NeRF分支(Ours,NeRF分支)获得相似的指标分数,但首选从NeRF分支进行渲染,因为它具有更清晰的细节和更平滑的空间连续性,特别是在实际渲染长视频时。

3.实验

3.1 实验设置

数据集。 我们的主要实验是在现实世界的城市场景中进行的。这三个场景涵盖了不同的城市环境,包括农村瓦砾场(Rubble)、大学校园(Campus)和住宅小区(Residential)。相机位姿是从摄影测量软件ContextCapture 获得的。有关一般场景数据集、替代相机姿势以及进一步改进技术的其他实验和结果可以在补充材料和我们的网页中找到。

基线和实现。 我们将我们的方法的性能与应用于整个场景的 NeRF进行比较; 2)具有4个分区的Mega-NeRF; 3)TensoRF,通过低秩张量分解减少特征网格的内存占用,被认为适合大场景场景。对于 NeRF 和 Mega-NeRF,我们相应地采用了具有 12 层和 256 个隐藏单元的更大模型。位置编码的最高频率设置为2 15,在第4、6、8、10层通过跳跃连接插入到NeRF模型中。我们在训练期间使用分层采样,每条光线有 64 个粗样本和 128 个精细样本。所有 NeRF 模型均使用 Adam 优化器进行优化,学习率从 5e -4 呈指数衰减,批量大小为 2048 条射线,训练了 150k 次迭代。对于 TensoRF,根据我们之前在第 2 节中讨论的对大型城市场景的观察。3.1 中,我们评估了将特征网格分解为 xy 平面矩阵和 z 轴向量分量的简化版本。 16/48个分量分别用于密度和外观特征网格。从具有 1283 个体素的初始低分辨率网格开始,训练期间网格在对数空间中线性上采样到 10243。沿每个维度的网格分辨率按 x、y、z 维度缩放。使用具有 2 个全连接层(含 128 个隐藏层)和 ReLU 激活的小型 MLP 作为颜色输出头。采用 Adam 优化器,张量因子的初始学习率为 0.02,MLP 解码器的初始学习率为 0.01。批量大小为 4096。模型经过 100k 次迭代训练。

我们的方法将匹配网格分辨率分别作为最高分辨率特征平面和密度/外观网格的 8/16 分量,另外两个分量为下采样的 ×4 和 ×16 分辨率。网格分支的 MLP 头与 TensoRF 相同。 NeRF 分支使用 4 个 MLP 层,没有跳过层。位置编码的最高频率也设置为 2 15。采用 Adam 优化器,张量因子的初始学习率为 0.02,批量大小为 4096 的 MLP 层的初始学习率为 0.01。我们对前 10k 次迭代和联合优化的网格分支进行预训练再进行 100k 次迭代,两个阶段之间的时间比例大约为 1:4。我们在联合训练中对两个分支使用1:1的加权损失。

3.2 结果分析

我们在图 3 和表 1 中定性和定量地报告了基线和我们的方法的性能。在视觉质量和所有指标上都可以观察到显着的改进。与纯粹基于 MLP 的方法(NeRF 和 Mega-NeRF)相比,我们的方法揭示了更清晰的几何形状和更精致的细节。特别是,由于NeRF的容量有限和光谱偏差,它总是无法模拟几何和颜色的快速变化,例如操场上的植被和条纹。尽管如 Mega-NeRF 基线所示,将场景在地理上划分为小区域略有帮助,但渲染结果仍然显得过于平滑。相反,在学习到的特征网格的指导下,NeRF的采样空间被有效地大幅压缩到接近场景表面。从地面特征平面采样的密度和外观特征明确地指示了场景内容,如图 3 所示。尽管不太准确,但它已经提供了信息丰富的局部几何和纹理,并鼓励 NeRF 的 PE 拾取丢失的场景细节。

表 1. 三个大型城市场景数据集的定量比较。我们在测试视图中报告 PSNR(↑)、LPIPS(↑) 、SSIM(↓) 指标。突出显示最好和第二好的结果。

图 4. (a) 密度和 (b) 外观特征平面(住宅场景)中的一个特征分量的可视化。与预训练的特征平面相比,精炼后的特征平面噪声较小;还可以清楚地识别分组对象的更锐利的边缘和规则的形状。由于密度和外观特征是独立学习的,因此它们编码描述场景的不同信息。外观特征可以捕捉阴影等环境效果,如(b)所示。

精致的地面特征平面。 基于网格的方法通常需要显式地施加正则化,例如总变异损失或L1损失,以避免观测值较少的区域中的噪声,否则独立优化的网格特征很容易导致模糊和波浪状的外观,如图3所示通过与 NeRF 分支联合优化,xy 平面和 z 轴编码不断改进,以编码更多局部细节,同时降低噪声。在图 6 中可以观察到保真度的显着提高。在特征空间中也可以观察到类似的改进。以住宅场景中的一维密度平面(图4)为例,而目标城市区域的粗略楼层布局已经可以在预先训练的xy平面特征上识别(图4(a)),它仍然错过了场景中广泛存在的锐利边缘和各种形状和颜色等细节,除非采用更精细的网格分辨率,否则很难用网格来表示这些细节。另一方面,NeRF 用点搜索场景表面,这为网格特征优化提供了更准确、更有意义的信号,并将其提升到局部最小值之外。预训练特征平面上另一个值得注意的伪影是由于网格变化而导致的连续区域(例如土地、立面)上的噪声,在与 NeRF 联合优化后很大程度上得到了缓解。这可以归因于 NeRF 对场景的连续表示,它通过在坐标之间构建更强的相关性对特征网格施加隐式正则化。由此产生的细化特征平面(图 4(b))表现出平滑的网格特征和更清晰的轮廓,其中内容相似的网格可以聚集在一起(例如建筑物、复式住宅和道路)。

图 5. (a) TensoRF 分解的 xy 特征平面切片的可视化; (b) 我们的地平面表示。我们的联合学习产生了更准确的平面特征,具有清晰的区域边界,与场景的物理地面规划更好地对齐,这自然更适合大型城市场景建模和下游分析。更清晰的特征网格还表明,学习到的潜在空间更加紧凑,这对于大规模建模至关重要,即使模型容量有限。

图 6. 定性比较显示了使用 (a) 在中等网格分辨率 (2048)、(b) 在高网格分辨率 (4096) 和 (c) 从分辨率 (4096) 的 re grid 分支中学习到的特征的渲染结果。尽管更高的网格分辨率可以带来更好的视觉质量,但添加 NeRF 监督可以将质量进一步推向照片级真实感。

紧凑的表示。 虽然设计一个重型框架来建模大型场景是本能的,但我们的原则是保持其紧凑和高效,而不显着降低质量。考虑到这一点,我们使用简洁的平面矢量表示对完整的 3D 特征网格进行了建模。我们在图 5 中证明,在重建大型城市场景时具有相似的性能(PSNR:(TensoRF)21.075 与(我们的)20.915),从 TensoRF 的 VM 分解学习的 2D 地平面似乎更加模糊且信息量较少比我们的;与 TensoRF (4e8) 相比,我们的表示使用更少的参数 (3e8)。此外,回想一下,网格分辨率对于纯粹基于体素的表示以获得高质量渲染至关重要,我们的方法无需进一步上采样即可实现大场景的真实感渲染。尽管为我们的框架提供更细粒度的特征平面是有益的,但与 NeRF 的集成在很大程度上减轻了对网格分辨率捕获场景细节的依赖。从 NeRF 的角度来看,我们表明,通过使用 PE 学习到的网格特征,相对较小的 MLP 足以处理大场景,并且取得了比放大的 NeRF 和 Mega-NeRF更好的结果,如图 3 所示。

3.3 消融研究

进行消融来验证1)不同模型配置的影响:对于网格分支,我们切换到不同分辨率下的单分辨率特征网格;对于NeRF分支,我们检查模型容量和PE的频率带宽,以帮助NeRF恢复场景细节;除了模型架构之外,我们还研究了2)用网格特征丰富NeRF纯协调输入的功效; 3)NeRF作为监督信号增强特征网格的功效。

模型配置。 对于网格分支,我们在图 7 中显示,采用单分辨率特征网格会导致性能较差。具体来说,低分辨率(5122)网格分支的结果在预训练期间已经受到模糊伪影的影响。在后期添加 NeRF 分支可以帮助为立面和屋顶生成更多细节,但总体上仍然缺乏锐利的细节。另一方面,高分辨率(20482)网格分支的结果在预训练阶段是模糊和嘈杂的,NeRF在很大程度上缓解了这一问题,但在连续区域(例如道路和墙壁)仍然不稳定。现有的作品[9,36,53]通常采用小型MLP作为渲染器来翻译网格特征。在图 8 中,我们表明,对于我们的场景,模型容量较小(D=3,W=32)的 NeRF 不足以转换此类复杂场景的网格特征,从而给出不准确的几何形状并丢失大量场景细节。在这种情况下,单纯地增加 PE 中的频率带宽没有什么帮助。通过放大 MLP(D=3,W=256),可以观察到显着的改进,从中通过 PE 施加更高频率的输入可以帮助恢复更多场景细节。

网格特征对 NeRF 的功效。 我们首先简单地为 NeRF 提供网格功能,而无需调整网格功能和网格分支的监督。 NeRF 已经可以从网格特征中编码的局部特征中受益,PSNR 提高约 1db。调整特征网格可以进一步实现 PSNR 约 2.5db 增益。

NeRF 监督对特征网格的有效性。 如图 7 所示,当网格分辨率不足时,NeRF 帮助特征网格恢复更多细节,并使用全局先验平滑非正则化特征,以产生更一致的渲染结果。在高分辨率网格上,结合 NeRF 可以将 Campus 场景的 PSNR 提高 ∼ 2db。

图 7. 使用单一分辨率网格功能会导致较差的结果。低分辨率特征网格会受到模糊伪影的影响,而高分辨率网格会产生嘈杂的结果。 NeRF 分支通过其逐点监督信号极大地帮助解决这些问题,以在规范网格特征之前获取更多细节和全局信息。

图 8. 小型渲染器不足以平移网格特征,从而产生不准确的几何图形和场景内容。然而,如果有足够的建模能力,NeRF 可以借助越来越高的 PE 频率通道来获取更多细节。

4.讨论与总结

在这项工作中,我们针对大型城市场景渲染,提出了一种新颖的框架,将基于 MLP 的 NeRF 与显式构建的特征网格相结合,以有效地编码局部和全局场景信息。我们的方法克服了应用于大规模场景时最先进方法的各种缺点。即使对于超大规模的城市场景,我们的模型也能实现高视觉保真度渲染,这对于现实世界的应用场景至关重要。

虽然我们主要研究为大型城市场景场景定制的地面特征平面表示,但我们的两分支设计也可以考虑用于其他基于网格的表示,通过带来更多的连续性来对学习的特征值进行额外的正则化。尽管如此,我们的模型仍然继承了基于 NeRF 的方法的一些局限性,例如联合学习阶段的训练速度较慢。另一个关键问题是处理大量高分辨率图像。如果没有分布式训练,当前的混洗射线批量采样是非常低效的。更多讨论可以在补充中找到。

参考资料

[1]https://arxiv.org/abs/2303.14001: https://arxiv.org/abs/2303.14001

[2]https://city-super.github.io/gridnerf/: https://city-super.github.io/gridnerf/

关注下方《学姐带你玩AI》🚀🚀🚀

回复“CVPR”免费领取500+篇顶会论文合集

码字不易,欢迎大家点赞评论收藏!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值