当前位置: 首页 > news >正文

论文阅读《Structure-from-Motion Revisited》

摘要

增量式地运动结构恢复是从无序图像集合中进行三维重建的一个普遍策略。虽然增量式地重建系统在各个方面上都取得了巨大的进步,但鲁棒性、准确性、完整度和尺度仍然是构建真正通用管道的关键问题。我们提出了一种新的运动结构恢复技术,它改进了目前的技术水平,朝着这个最终目标又迈进了一步。完整的重建管道作为开源实现向公众发布。

1 介绍

近年来,无序图像的运动结构恢复(SfM)已经发生了巨大的变化。早期的自标定度量重建系统为新型重建系统奠定了基础,这些新型系统通过城区的互联网图片来进行三维重建。受这些作品的启发,越来越大规模的重建系统被开发出来,从数十万张、数百万张到最近的1亿张互联网图像。已经提出了多种SfM策略,包括增量式、分层式和全局式方法。可以说,增量式SfM是重建无序图片集最流行的策略。尽管增量式策略被广泛使用,但我们仍然没有设计出一个真正通用的SfM系统。虽然现有的系统已经极大地提高了技术水平,但是鲁棒性、准确性、完整度和尺度仍然是增量SfM中的关键问题,这阻碍了它成为通用方法。在本文中,我们提出了一种新的SfM算法来实现这一最终目标。新方法在各种具有挑战性的数据集上进行了评估,代码作为名为COLMAP的开源实现贡献给研究社区,可在https://github.com/colmap/colmap上获得。

在这里插入图片描述

图1 在75千张图片中配准了21千张,重建罗马的结果

2 运动结构恢复综述

SfM是指从一系列不同视觉拍摄的图像中恢复出三维结构。增量式SfM(本文中表示为SfM)是一个具有迭代重建组件的顺序处理管道(图2)。它通常从特征提取和匹配开始,然后进行几何验证。生成的场景图是重建阶段的基础,该阶段使用精心挑选的双视图重建为模型提供种子,然后逐步注册新图像、三角测量场景点、过滤异常值,并使用光束调整(BA)细化重建。接下来的章节将详细说明这一过程,定义整篇论文中使用的符号,并介绍相关工作。

2.1 对应关系搜索

第一阶段是对应关系搜索,它在输入图像 I = { I i ∣ i = 1 ⋯ N I } \mathcal{I}=\{I_i|i=1\cdots N_I\} I={Iii=1NI}中查找场景重叠并识别重叠图像中相同点的投影。输出是一组经过几何验证的图像对 C ˉ \bar{C} Cˉ和每个点的图像投影图。

特征提取。 对于每幅图像 I i I_i Ii,SfM检测位置 x j ∈ R 2 x_j \in \mathbb{R}^2 xjR2处的局部特征集 F i = { ( x j , f j ) ∣ j = 1 ⋯ N F i } \mathcal{F}_i=\{(x_j,f_j) | j= 1\cdots N_{F_i}\} Fi={(xj,fj)j=1NFi},由外观描述符 f j f_j fj表示。这些特征应该在辐射测量和几何变化下保持不变,以便SfM可以在多幅图像中唯一地识别它们。SIFT及其变体以及最近基于学习的特征是鲁棒性方面的黄金标准。另外,二进制特征提供了更好的效率,但鲁棒性降低了。

在这里插入图片描述

图2 增量式运动结构恢复管道

特征匹配。 接下来,SfM利用特征 F i \mathcal{F}_i Fi作为图像的外观描述来发现看到相同场景部分的图像。这种简单的方法可以测试每一对图像是否存在场景重叠。通过比较特征的外观 f i f_i fi,可以找到图像 I a I_a Ia中与图像 I b I_b Ib中每个特征最相似的特征,最终得到特征对应关系。这种方法的计算复杂度为 N I 2 N F i 2 N_I^2N_{F_i}^2 NI2NFi2,这对于大图像集而言是不可行的。有多种方法可以解决尺度和高效匹配问题。输出是一组可能重叠的图像对 C = { { I a , I b } ∣ I a , I b ∈ I , a < b } \mathcal{C}=\{ \{ I_a,I_b \} | I_a,I_b \in \mathcal{I}, a < b \} C={{Ia,Ib}Ia,IbI,a<b}及其相关的特征对应关系 M a b ∈ F a × F b \mathcal{M}_{ab}\in \mathcal{F}_a \times \mathcal{F}_b MabFa×Fb

几何验证。 第三阶段验证可能重叠的图像对 C \mathcal{C} C。由于匹配仅基于外观,因此不能保证相应的特征实际上对应到相同的场景点。因此,SfM通过特征点的变换来验证匹配,而这个变换使用射影几何估计。根据图像对的空间配置,不同的映射描述它们的几何关系。单应矩阵 H H H描述了纯旋转或纯平移相机拍摄平面场景时的变换。对极几何通过本质矩阵 E E E(已标定)或基础矩阵 F F F(未标定)描述运动相机的关系,并且可以使用三焦点张量扩展到三个视图。如果有效的变换在图像之间映射了足够数量的特征,则认为它们通过了几何验证。由于匹配得到的对应关系经常受到异常值污染,因此需要使用诸如RANSAC之类的稳健估计技术。该阶段的输出是一组经过几何验证的图像对 C ˉ \bar{\mathcal{C}} Cˉ、它们相关的内点对应关系 M ˉ a b \bar{\mathcal{M}}_{ab} Mˉab,以及可选的它们之间的几何关系描述 G a b G_{ab} Gab。为了确定适当的关系,可以使用GRIC之类的决策标准或QDEGSAC之类的方法。此阶段的输出是所谓的场景图,其中图像为节点,经过验证的图像对为边。

2.2 增量式重建

重建阶段的输入是场景图。输出是已配准图像的估计位姿 P = { P c ∈ S E ( 3 ) ∣ c = 1 ⋯ N P } \mathcal{P}=\{ P_c \in SE(3) | c = 1\cdots N_P \} P={PcSE(3)c=1NP},和重建的场景结构,以点集的形式 X = { X k ∈ R 3 ∣ k = 1 ⋯ N X } \mathcal{X}=\{ X_k \in \mathbb{R}^3 | k = 1\cdots N_X \} X={XkR3k=1NX}表示。

初始化。 SfM使用精心选择的双视图重建来初始化模型。选择合适的初始图像对是至关重要的,因为无法从错误的初始图像对中恢复出三维结构。此外,重建的鲁棒性、准确性和性能取决于增量过程的种子位置。使用许多重叠的相机从场景图中的密集位置进行初始化通常会由于冗余度增加而产生更加鲁棒和准确的重建。相比之下,从较稀疏的位置进行初始化会缩短运行时间,因为BA处理的问题会变得较稀疏。

图像配准。 从度量重建开始,可以通过求解PnP问题,将新图像注册到当前模型中。PnP问题涉及估计未标定相机的位姿 P c P_c Pc及其内参。因此集合 P \mathcal{P} P由新注册图像的位姿 P c P_c Pc扩展。由于2D-3D对应关系通常受到异常值污染,因此一般使用RANSAC和最小位姿求解器来估计已标定相机的位姿。对于未标定的相机,存在各种最小化求解器,或基于采样的方法。我们在第4.2节中提出了一种新颖的鲁棒的次优图像选择方法,用于准确的位姿估计和可靠的三角测量。

三角化。 新注册的图像必须观测现有的场景点。此外,还可以通过三角测量扩展点集 X \mathcal{X} X来增加场景覆盖率。只要至少再注册一张同样覆盖新场景部分但不同视点的图像,就可以对新的场景点 X k X_k Xk进行三角测量并将其添加到 X \mathcal{X} X中。三角测量是SfM中的一个关键步骤,因为它通过冗余增加了现有模型的稳定性,并且通过提供额外的2D-3D对应关系实现了新图像的配准。存在大量多视图三角测量的方法。这些方法在SfM中使用时存在鲁棒性有限或计算成本高的问题,我们通过在第 4.3节中提出一种鲁棒且有效的三角测量方法来解决。

光束调整。 图像配准和三角测量是独立的过程,即使它们的产物高度相关——相机位姿的不确定性会传递到三角测量点,反之亦然,而额外的三角测量点可以通过增加冗余度来改善初始相机位姿。如果不进一步改进,SfM通常会很快偏离到不可恢复的状态。BA是相机参数 P c P_c Pc和点参数 X k X_k Xk的联合非线性优化,可最小化重投影误差
E = ∑ j ρ j ( ∣ ∣ π ( P c , X k ) − x j ∣ ∣ 2 2 ) (1) E = \sum_j \rho_j (||\pi (P_c,X_k) - x_j||_2^2) \tag{1} E=jρj(∣∣π(Pc,Xk)xj22)(1)
使用函数 π \pi π将场景点投影至图像空间,使用损失函数 ρ j \rho_j ρj来降低异常值的权重。LM方法可以用来求解BA问题。BA 问题中参数的特殊结构启发了Schur补技巧,其中首先求解简化的相机系统,然后通过回代来更新点。这种方案通常更有效,因为相机的数量通常小于点的数量。解决该系统有两种选择:精确和非精确步骤算法。精确方法通过存储和分解系统为稠密或稀疏矩阵来解决系统,空间复杂度为 O ( N P 2 ) O(N_P^2) O(NP2),时间复杂度为 O ( N P 3 ) O(N_P^3) O(NP3)。非精确方法近似地求解系统,通常使用迭代求解器,例如预条件共轭梯度(PCG),其时间和空间复杂度均为 O ( N P ) O(N_P) O(NP)。直接算法是多达几百台相机的首选方法,但在大规模设置中成本太高。虽然稀疏直接方法大大降低了稀疏问题的复杂性,但由于连接图通常更加密集,因此对于大型非结构化照片集而言,它们是禁止的。在这种情况下,间接算法是首选方法。特别是对于网络照片,BA花费大量时间来优化许多近似重复的图像。在第4.5节中,我们提出了一种识别和参数化高度重叠图像的方法,以实现密集照片集的有效BA。

3 挑战

虽然目前最先进的SfM算法可以处理大规模互联网照片集中图像的多样化和复杂分布,但它们在完整度和鲁棒性方面往往无法产生完全令人满意的结果。很多时候,系统无法配准大量根据经验应该可配准的图像,或者由于配准错误或漂移导致系统产生破裂的模型。首先,这可能是由于对应关系搜索产生不完整的场景图(例如由于匹配近似)造成的,因此既没有提供完整模型所需的连接性,也没有提供可靠估计所需的足够冗余度。其次,这可能是由于重建阶段由于场景结构缺失或不准确而无法配准图像造成的——图像配准和三角测量具有共生关系,因为图像只能配准到现有的场景结构中,而场景结构只能从配准的图像中进行三角测量。在增量式重建的每个步骤中最大化准确性和完整度是SfM中的一个关键挑战。在本文中,我们解决了这一挑战,并在完整度、鲁棒性和准确性方面显著提高了当前最先进的结果(第5节),同时提高了效率。

4 贡献

本节介绍了一种改进SfM中主要挑战的新算法。首先,我们引入一种几何验证策略,该策略通过信息扩充场景图,从而提高初始化和三角测量组件的鲁棒性。其次,下一个最佳视图选择可最大限度地提高增量重建过程的鲁棒性和准确性。第三,一种鲁棒的三角测量方法,可以以更低的计算成本产生比现有技术更完整的场景结构。第四,迭代BA、重新三角测量和异常值过滤策略可通过减轻漂移效应显著提高完整度和准确性。最后,通过冗余视图挖掘对稠密照片集进行更有效的BA参数化。这使得系统在保持效率的同时,在鲁棒性和完整度方面明显优于当前最先进的技术。我们将我们的贡献与当前最先进的系统Bundler(开源)和VisualSFM进行了对比。所提出的系统作为开源实现发布。

4.1 场景图增强

我们提出了一种多模型几何验证策略,以适当的几何关系增强场景图。首先,我们估计了基础矩阵。如果至少发现 N F N_F NF个内点,我们就认为该图像对已通过几何验证。接下来,我们通过确定同一图像对的单应性内点的数量 N H N_H NH来对变换进行分类。为了近似GRIC等模型选择方法,如果 N H / N F < ϵ H F N_H/N_F < \epsilon_{HF} NH/NF<ϵHF,我们假设相机在一般场景中运动。对于标定后的图像,我们还估计了一个本质矩阵及其内点 N E N_E NE的数量。


http://www.mrgr.cn/news/67873.html

相关文章:

  • 「Mac畅玩鸿蒙与硬件20」鸿蒙UI组件篇10 - Canvas 组件自定义绘图
  • 如何用ChatGPT结合Python处理遥感数据
  • 【网络面试篇】HTTP(1)(笔记)——状态码、字段、GET、POST、缓存
  • Abaqus随机骨料过渡区孔隙三维网格插件:Random Agg ITZ Pore 3D (Mesh)
  • Spring 中的 PropertyResolver 用来解析字符串中包含的表达式,并且用Properties对象中的值替换掉表达式
  • Echats柱状图的横坐标用图片显示
  • Unet++改进3:添加NAMAttention注意力机制
  • 故障排查 之 单点登录跳转失败(Ingress 相关)
  • Linux系列-进程的状态
  • 【网易云插件】听首歌放松放松
  • 在数据抓取的时候,短效IP比长效IP有哪些优势?
  • 药品进销存表格制作 佳易王药店药品入库出库台账库存管理系统操作教程
  • 18-分页与遍历 - From, Size, Search_after Scroll API
  • (vue3)在Pinia Store中正确使用Vue I18n
  • 记录mkdocs+yeti生成页面左侧导航(sidebar)添加滚动条(scroll bar)方法
  • LLM训练”中的“分布式训练并行技术;分布式训练并行技术
  • 整合本地市场机会 同城小程序打造社区商圈
  • ESP32-S3 IDF以太网接口移植
  • C++之priority_queue容器
  • Ethernet 系列(8)-- 基础学习::ARP
  • DeepSpeed分布式训练框架深度学习指南
  • day53 图论章节刷题Part05(并查集理论基础、寻找存在的路径)
  • Linux 学习笔记(十八)—— 动静态库
  • python语言基础-4 常用模块-4.2 time模块
  • C++之unordered_set容器的使用
  • 罗德里格斯公式-计算一个点绕着任意直线旋转一定角度后的新位置