Anderson 视角
创建神经搜索和救援飞行环境,使用Mega-NeRF

卡内基梅隆大学和自动驾驶技术公司Argo AI之间的新研究合作开发了一种基于神经辐射场(NeRF)的经济高效方法,用于生成动态飞行环境,使用无人机拍摄的视频片段。

这种新方法,称为Mega-NeRF,与平均NeRF渲染标准相比,获得了40倍的加速,同时也提供了与标准坦克和庙宇不同的东西,这些是新NeRF论文中反复出现的内容。
这篇新论文的标题是Mega-NeRF:大规模NeRF的可扩展构建,用于虚拟飞行,由卡内基梅隆大学的三位研究人员撰写,其中一位也代表Argo AI。
为搜索和救援建模NeRF景观
作者认为,搜索和救援(SAR)是他们技术的可能的最佳用例。当评估SAR景观时,目前无人机受到带宽和电池寿命限制的约束,因此通常无法在需要返回基地之前获得详细或全面覆盖,在此之后,他们收集的数据将被转换为静态2D空中视图地图。
作者指出:
‘我们想象一个未来,神经渲染将这个分析提升到3D,使响应团队能够像实时飞行无人机一样检查现场,细节远远超过经典的结构从运动(SfM)可实现的水平。’
任务是处理这种用例,作者试图创建一个复杂的基于NeRF的模型,可以在一天内训练,因为搜索和救援操作中幸存者的生命预期在前24小时内下降了多达80%。
作者指出,训练Mega-NeRF模型所需的无人机捕获数据集比标准NeRF数据集“大几个数量级”,并且模型容量必须比默认分叉或NeRF的衍生品明显更高。另外,在搜索和救援地形图中,交互性和可探索性是必不可少的,而标准的实时NeRF渲染预计具有更有限的预计算运动范围。
分而治之
为了解决这些问题,作者创建了一个几何聚类算法,将任务分解为子模块,并有效地创建了一个子NeRF矩阵,这些子NeRF是在同一时间训练的。
在渲染时,作者还实现了一个即时可视化算法,该算法足够响应迅速,以实现完全交互性,而无需过度预处理,类似于视频游戏在用户视点接近时会增加项目的细节,但在远处保持在节能和更基本的规模。
这些节约,作者声称,导致了比以前试图在交互式上下文中解决非常广泛主题的方法更好的细节。此外,作者还指出,Mega-NeRF在从有限分辨率视频片段中外推细节方面比UC Berkeley的PlenOctrees有了视觉上的改进。

该项目的使用链式子NeRF是基于KiloNeRF的实时渲染功能,作者承认。然而,Mega-NeRF通过在训练期间实际执行“分片”(场景的离散分割)而不是KiloNeRF的后处理方法来偏离这种方法,后者对已经计算出的NeRF场景进行转换以使其成为可探索的空间。

为子模块创建了一个离散的训练集,包括训练图像像素,其轨迹可能跨越它所代表的单元格。因此,每个模块都独立于相邻的单元格进行训练。 来源:https://arxiv.org/pdf/2112.10703.pdf
作者将Mega-NeRF描述为‘NeRF架构的重新表述,以空间感知的方式稀疏化层连接,从而在训练和渲染时实现效率改进’。

NeRF、NeRF++和Mega-NeRF的训练和数据离散化的概念比较。来源:https://meganerf.cmusatyalab.org/
作者声称,Mega-NeRF的使用新颖的时间一致性策略避免了过度预处理的需要,克服了规模的固有限制,并且在不牺牲交互性或需要多天训练的情况下实现了比以前类似工作更高的细节。
研究人员还提供了大规模数据集,包含从无人机在工业综合体周围100,000平方米土地上拍摄的成千上万张高清图像。两个可用的数据集是‘Building’和‘Rubble’。
改进先前的工作
该论文指出,之前类似的努力,包括SneRG、PlenOctree和FastNeRF,都依赖于某种缓存或预处理,这增加了计算和/或时间开销,这对于创建虚拟搜索和救援环境是不合适的。
虽然KiloNeRF从现有的多层感知器(MLP)集合中派生出子NeRF,但它在架构上受到限制,仅适用于内部场景,具有有限的可扩展性和处理更大规模环境的能力。FastNeRF存储了NeRF模型的“烘焙”预计算版本,并允许最终用户通过专用MLP或通过球面基计算导航它。
在KiloNeRF场景中,场景中每个面的最大分辨率已经计算出来,如果用户决定“放大”,则不会有更高的分辨率可用。
相比之下,NeRF++可以本地处理无限的外部环境,通过将潜在的可探索空间划分为前景和背景区域,每个区域由一个专用的MLP模型监督,该模型在最终组合之前执行射线投射。
最后,NeRF在野外,虽然没有直接解决无限空间的问题,但提高了Phototourism数据集中的图像质量,其外观嵌入也被用于Mega-NeRF的架构中。
作者还承认,Mega-NeRF的灵感来自于结构从运动(SfM)项目,特别是华盛顿大学的在一天内建造罗马项目。
时间一致性
与PlenOctree一样,Mega-NeRF预计算了当前用户焦点区域的粗略缓存和不透明度。然而,Mega-NeRF“保存”并重用此信息,而不是像PlenOctree那样每次计算路径,而是按照计算树的细分,遵循NeRF处理礼仪的去耦合趋势。

左边是PlenOctree的单次计算。中间是Mega-NeRF相对于飞行位置的八叉树动态扩展。右边是八叉树被重用以进行后续导航。
这种计算的经济性,根据作者的说法,显著减少了处理负担,使用即时计算作为本地缓存,而不是估计和预缓存它们。
引导采样
初始采样之后,按照标准模型,Mega-NeRF在八叉树细化后执行第二轮引导射线采样,以提高图像质量。为此,Mega-NeRF仅使用八叉树数据结构中现有的权重进行一次传递。

如上图所示,标准采样通过评估目标区域过多的计算资源而浪费计算资源,而Mega-NeRF根据几何体的存在知识限制计算,并在预设阈值以上限制计算。
数据和训练
研究人员在各种数据集上测试了Mega-NeRF,包括前面提到的两个手工制作的数据集,这些数据集是从工业地面上无人机拍摄的。第一个数据集,Mill 19 – Building,包含在500 x 250平方米区域内拍摄的视频片段。第二个,Mill 19 – Rubble,代表在相邻的建筑工地上拍摄的类似视频片段,在那里,研究人员放置了代表潜在幸存者的假人,以模拟搜索和救援场景。

从论文的补充材料:左边是Parrot Anafi无人机(中间和右边照片中远处)要覆盖的区域。
此外,该架构还被测试在UrbanScene3D的几个场景中,这是一个由深圳大学视觉计算研究中心提供的高清无人机拍摄城市环境的数据集;以及Quad 6k数据集,来自印第安纳大学的IU计算机视觉实验室。
训练发生在8个子模块上,每个子模块有8层256个隐藏单元,并且有一个后续的128个通道ReLU层。与NeRF不同,同一个MLP用于查询粗略和精细样本,降低了整体模型大小,并允许在后续渲染阶段重用粗略网络输出。作者估计,这节省了每条光线25%的模型查询。
每批采样1024条光线,使用Adam优化器,初始学习率为5×104,衰减到5×10-5。外观嵌入的处理方式与前面提到的NeRF在野外相同。使用了混合精度采样(以低于32位浮点的精度进行训练),并将MLP宽度固定为2048个隐藏单元。
测试和结果
在研究人员的测试中,Mega-NeRF在训练500,000次迭代后,能够在前面提到的数据集上比NeRF、NeRF++和DeepView表现更好。由于Mega-NeRF的目标场景是时间受限的,研究人员允许较慢的先前框架在24小时限制后获得额外时间,并报告Mega-NeRF即使在这些优势下仍然优于它们。

使用的指标是峰值信噪比(PSNR)、VGG版本的LPIPS和SSIM。训练发生在一台配备了八个V100 GPU的机器上,有效地使用256GB的VRAM和5120个Tensor核心。
项目页面位于https://meganerf.cmusatyalab.org/,发布的代码位于https://github.com/cmusatyalab/mega-nerf。
首次发布于2021年12月21日。













