0. 这篇文章干了啥?
许多计算机视觉任务的起源在于从一组图像中估计相机姿态和场景几何。这是让我们离开图像平面并探索三维空间的第一步。由于从运动恢复结构(SfM)是如此核心的能力,因此我们对其进行了数十年的研究。目前,我们拥有经过优化的开源工具,如COLMAP,以及高效的商业软件包,如RealityCapture。基于特征匹配的SfM是从图像中估计姿态的黄金标准,其精确度有时甚至被认为是“真实值”。
神经辐射场(NeRF)的成功重新激发了人们对基于神经网络的隐式场景表示而非三维点云来求解SfM问题的兴趣。近年来,该领域取得了一些进展,但迄今为止,基于学习的相机姿态恢复方法仍存在重大局限性。这些方法要么需要粗略的初始姿态,要么需要姿态分布的先验知识,要么需要大致顺序的输入。就基于学习的方法能够处理的图像数量而言,它们要么明确针对少数帧的问题,要么计算要求极高,实际上最多只能应用于几百张图像。我们证明,这些局限性并不是使用基于学习的场景表示的固有结果。
我们的方法受到了增量SfM(Structure from Motion,运动恢复结构)及其与另一项计算机视觉任务——视觉重定位之间关系的启发。视觉重定位描述了估计查询图像相对于现有场景图的相机姿态的问题。增量SfM可以重新解释为以下循环:1)进行视觉重定位以将新视图注册到重建中;2)使用新注册的视图来优化/扩展重建。局部特征匹配是视觉重定位的一种传统方法。近年来,已提出了多种基于学习的重定位器,它们将场景隐式编码在神经网络的权重中。但它们并非全部适合构建SfM管道。我们需要一个高精度且泛化能力好的重定位器。重定位器的训练必须迅速。我们需要能够在没有真实姿态的情况下启动重定位。并且我们需要能够判断新图像的注册是否成功。
我们证明了“场景坐标回归”,这是十年前提出的一种视觉重定位方法,具有理想的特性,并可以作为基于学习的SfM新方法的核心:场景坐标重建。与基于特征的SfM不同,它不是在图像与图像之间进行优化匹配,而是直接回归图像与场景之间的对应关系。我们不是将场景表示为具有高维描述符的3D点云,而是将场景编码到轻量级神经网络中。我们的方法可以在没有姿态先验的情况下对未排序的图像进行工作,并有效地对数千张图像进行优化。
下面一起来阅读一下这项工作~
1. 论文信息
标题:Scene Coordinate Reconstruction: Posing of Image Collections via Incremental Learning of a Relocalizer
作者:Eric Brachmann, Jamie Wynn, Shuai Chen, Tommaso Cavallari, Áron Monszpart, Daniyar Turmukhambetov, Victor Adrian Prisacariu
机构:Niantic、University of Oxford
原文链接:https://arxiv.org/abs/2404.14351
代码链接:https://github.com/nianticlabs/acezero
官方主页:https://nianticlabs.github.io/acezero/
2. 摘要
我们研究了从一组描绘场景的图像中估计相机参数的任务。流行的基于特征的运动结构(Structure-from-Motion, SfM)工具通过增量重建来解决此任务:它们重复对稀疏3D点进行三角测量,并将更多相机视图注册到稀疏点云中。我们重新解释了增量运动结构,将其视为视觉重定位器的迭代应用和细化,即一种将新视图注册到当前重建状态的方法。这一视角使我们能够研究不依赖于局部特征匹配的替代视觉重定位器。我们展示了场景坐标回归(一种基于学习的重定位方法)允许我们从无姿态图像中构建隐式的神经场景表示。与其他基于学习的重建方法不同,我们不需要姿态先验或顺序输入,并且能够对数千张图像进行高效优化。我们的方法ACE0估计的相机姿态精度与基于特征的SfM相当,这一点通过新颖视图合成得到了证明。项目页面:https://nianticlabs.github.io/acezero/
3. 效果展示
重建10,000张图像。顶部:从单张图像和身份姿态开始,我们训练了一个基于学习的视觉重定位器。该重定位器使我们能够估计更多视图的姿态,而额外的视图则使我们能够优化重定位器。我们针对该场景(7Scenes Office)展示了六次迭代中的三次。在单个GPU上,所有10,000张图像的姿态估计大约需要1小时。相比之下,NoPe-NeRF需要两天时间才能对200张图像进行姿态估计。点云是重定位器隐式场景表示的可视化。相机位置根据重定位置信度进行颜色编码,从黄色(低)到绿色(高)。底部:来自Nerfacto的点云,该点云在我们的姿态基础上针对我们实验中的几个场景进行了训练。
4. 主要贡献
我们总结了我们的贡献:
——场景坐标重建,一种基于增量学习场景坐标回归(一种视觉重定位原理)的SfM新方法。
——我们将快速学习的视觉重定位器ACE转变为一个SfM框架,该框架能够预测一组未设定姿态的RGB图像的相机姿态。我们将这个新的SfM管道称为ACE0(ACE Zero)。
——与ACE相比,我们增加了自监督训练的能力。我们从单张图像开始,在学习地图和注册新视图之间迭代。我们通过提前停止来加快重建速度,并通过姿态优化来提高重建质量。
5. 基本原理是啥?
ACE0框架。左上图:我们在从当前图像和姿态集合中学习重建(“神经映射”)和估计更多图像的姿态(“重定位”)之间循环。右上图:在映射阶段,我们训练一个场景坐标回归网络作为场景表示。在此过程中,将优化上一轮重定位的相机姿态和相机校准参数。我们通过将XYZ映射到RGB立方体来可视化场景坐标。底部图:在重定位阶段,我们使用场景坐标回归网络重新估计图像的姿态,包括之前未注册到重建中的图像。如果某个图像的注册成功,则将在下一轮映射阶段中使用它;否则将不会使用。
左图:姿态优化。由于我们是基于粗略且不完整的重建状态来注册图像的,因此我们添加了在神经映射过程中优化姿态的能力。一个多层感知器(MLP)根据场景坐标的重投影误差来预测相对于初始姿态的姿态更新。右图:初始化。为了开始重建,我们使用一张图像、身份姿态和深度估计来训练网络,这里使用的是ZoeDepth。在此示例中,我们将33个视图注册到初始重建中。深度估计仅用于此步骤。
6. 实验结果
在两个伪真实值版本中,KinectFusion获得的峰值信噪比(PSNR)值低于COLMAP,这可能是由于缺乏全局优化所致。使用快速参数的COLMAP仅比使用默认参数的COLMAP的PSNR值略低。运行COLMAP的两个版本都需要相当长的时间来重建每个场景。我们注意到,COLMAP已经针对质量而非速度进行了优化。并非所有基于特征的SfM文献中的加速策略都已在COLMAP中实现,因此可以推测,以更快的速度获得可比的质量是可能的。DROID-SLAM在7-Scenes数据集上基本失败,这可能是由于每个场景的单独扫描之间存在跳跃所致。
我们的方法ACE0在大约1小时内重建了每个场景,同时实现了与COLMAP伪真实值相当的姿态质量,尽管图像数量众多。我们在图4中展示了定性示例。我们还证明了ACE0可以快速优化一组初始近似姿态。从KinectFusion姿态开始,ACE0在每个场景不到10分钟内显著提高了PSNR值。在补充材料中,我们包括了对7-Scenes的参数研究,以表明ACE0对深度估计器的选择具有鲁棒性。我们还展示了姿态优化对重建质量的积极影响,以及由于我们的提前停止计划而导致的重建加速。
对于我们的基于学习的竞争对手,我们由于计算资源限制而对图像进行了子采样,如表1右侧所示。即使仅使用200张图像,NoPe-NeRF也需要2天的时间来拟合模型和估计姿态。尽管处理时间很长,但我们在峰值信噪比(PSNR)方面观察到BARF和NoPe-NeRF的姿态质量较差。BARF需要姿态初始化。由于7Scenes的场景大致面向前方,我们提供了恒等姿态。然而,相机的运动过于复杂,BARF难以处理。NoPe-NeRF不需要姿态初始化,但需要大致按顺序排列的图像,而我们确实提供了这样的图像。NoPe-NeRF依赖于连续图像具有相似的姿态以表现良好,但在子采样图像之间存在较大跳跃时表现挣扎。在与DUSt3R的比较中,我们不得不进一步对序列进行子采样,因为我们即使在使用具有40GB内存的A100 GPU时,也只能最多运行50张图像。DUSt3R获得了合理的PSNR值,但始终低于ACE0。
重定位。ACE0是一种基于学习的SfM工具,同时也是一种自监督的视觉重定位器。在表2(a)中,我们将其与监督式重定位器ACE进行了比较。我们使用尺度度量伪真实值,以COLMAP的映射姿态训练ACE,并将其与COLMAP的查询姿态进行评估。不出所料,ACE在常规的5厘米、5度误差阈值下实现了几乎完美的重定位。有趣的是,当ACE0以自监督方式映射场景,并将重定位的查询姿态与COLMAP的伪真实值进行评估时,它几乎取得了相同的结果。作为背景信息,当使用KinectFusion的映射姿态训练ACE,并将其与COLMAP的伪真实值进行评估时,结果要差得多。这表明ACE0的映射姿态与COLMAP的映射姿态非常相似,而与KinectFusion的映射姿态相似度较低。
7. 总结 & 未来工作
我们提出了场景坐标重建,这是一种基于场景坐标回归的新型学习式运动恢复结构方法。我们从一组未标记姿态的图像中学习了一种隐式的神经场景表示。我们的方法ACE0能够重建多种场景。在许多情况下,估计姿态的准确度可与COLMAP相媲美。与之前的基于学习的运动恢复结构方法不同,ACE0可以应用于数千张未排序的图像集合,无需姿态先验,并在几小时内完成重建。
局限性。我们在补充材料中展示了一些失败案例。场景坐标回归在处理重复结构时存在困难,因为网络无法对视觉上模糊的输入进行多模态预测。场景坐标回归在表示大面积区域时也存在问题。常见的解决方案是基于场景预聚类的网络集成。然而,在重建设置中,随着重建的进行,需要即时生成网络。在我们的实验中,我们假设了一个简单的针孔相机模型。据我们所知,到目前为止,场景坐标回归尚未与图像畸变相结合。
对更多实验结果和文章细节感兴趣的读者,可以阅读一下论文原文~
这里给大家推荐一门我们最新的