SFM 性能评估

原文:Evaluating The Performance Of Structure From Motion Pipelines

摘要:运动中恢复结构是一个通过一组图片集实现三维重建的管线。一个经典的 SFM 管线将多个步骤组合在一起,每一个步骤处理不同的问题。并且每一个步骤可以使用不同的算法,因此可以建立许多不同的 SFM 算法。为不同的人物选择合适的 SFM 算法是一个很重要的问题。在这篇文章中,我们根据重建不同场景的能力,对较新的 SFM 管线做了比较。我们还提出了一个评估程序,使用高级设备获取的真实场景图像以及真实的合成数据集对 SFM 管线进行评估。最后,我们为 Blender 创建了一个插件来为合成数据集创建以及 SFM 管线评估提供支持。合成数据集的使用使得我们容易地获取大量并且不同的数据集,理论上和真实图像无限接近。我们的评估程序不仅考虑了重建误差,还考虑了用于重建的相机姿态误差。

关键词: SFM,三维重建,Blender,评估

1. 引言

三维重建是一个可以获得目标场景或者物体的几何以及外观的步骤。三维重建在许多领域都有应用。三维重建算法有主动和被动之分,其中主动方法需要特殊的设备来捕获几何信息,而被动方法仅仅需要光学成像设备。被动式算法如下图所示,给定一组从不同观察位置的图片集,以稀疏点云的形式为每一幅图像恢复其相机姿态以及场景三维结构。在生成了稀疏重建后,就可以进入稠密图生成阶段(Multi-View-Stereo MVS)。

增量 SFM 管线如下图所示:

image-20210630190215822

每个阶段有不同的算法选择,所以选择合适的 SFM 管线需要技巧。

2. 回顾 SFM

完整的增量型 SFM 管线已经在 Fig2 中给出了,它由两部分组成,对应搜索和迭代增量重建。第一阶段的输出称之为场景图或者视图表示了经过几何验证的图像之间的关系。

2.1 SFM 组件

  1. 特征检测:检测图像的特征点,可以使用不同的算法,选择的算法会影响特征鲁棒性以及下一阶段匹配效率。
  2. 特征匹配:这步将第一步获得的图像特征匹配,这阶段的输出是具有重叠图像对之间的对应匹配点集。
  3. 几何验证:这个阶段是必要的,之前阶段的匹配不能保证匹配到的点是真正的场景匹配点,具有离群点。找到两个图像之间的可以匹配到足够多匹配点的几何变换是必要的。获得到了这个变换说明这两个图像经过了几何验证。对于不同的图像集,用于描述它们几何关系的方法也是不同的。单应矩阵用于描述两个平面之间的关系,而对极几何可以通过本质矩阵、基础矩阵描述相机的变化。由于离群值的存在,所以可以使用 RANSAC 算法估计。
  4. 重建初始化:增量重建的初始化是一个十分重要的步骤。从匹配点比较稠密的图像开始为良好的重建效果提供坚实的基础。重建总是从几幅图片开始,所以光束法平差获取不到足够的信息,就可能导致累计误差和坏的重建结果。重建初始化从几何验证最佳的一对匹配图像开始,这对图像中的匹配点作为最初的重建点云,并用于建立初始的两个相机的位置姿态。
  5. 图像注册:这个阶段添加新图像并获取这副图像的相机姿态,新记录的图像还不会向点云增加新的点,需要在三角化阶段完成。
  6. 三角化:之前新注册的图像可能观察到更多的新的点,如果这些点至少被之前处理过的一副图像观察到,那么就可以添加到重建点云中。三角化处理就是用于定义需要添加到点云中新点的三维坐标,由此可以获得一个更稠密的点云。对极几何相关。
  7. 光束法平差:相机姿态估计和三角化都会产生误差,所以尽可能的降低累计误差是很重要的。BA 使用的算法是 Levenbery-Marquardt(LM) 算法,也被称为 Damped Least-Squares。这个阶段会产生很高的计算开销,并且为每一幅添加到重建的图像计算,所以一般为局部执行(例如,仅给一小部分联系最紧密的计算)。全局 BA 仅当重建点云误差增长超过一定百分比时使用。

2.2 增量 SFM 管线

文章主要介绍的几个方法:COLMAP, Theia, OpenMVG, VisualDFM, Bundler, and MVE

image-20210630205406445

3. SFM 评估方法

需要将重建结构和地面实况做比较,其中地面实况需要知道几何关系以及每个图像对应的相机位置。评估方法有四个阶段:

  1. 对准和注册 Alignment and registration

    因为重建和地面实况用的是不同的参考坐标系(Reference Coordinate Systems,RCSs),两个坐标系的对齐可以使用一个刚体变换矩阵 T。这部步骤包含两个部分,第一阶段为粗糙对齐,第二阶段为精准对准

  2. 稀疏点云评估 Evaluation of sparse point cloud

    这个阶段考虑重建点云和地表几何的距离,如果地面实况已稠密图的形式给定,它们之间的距离可以使用欧氏距离给定,如果以曲面形式给出,那么距离就是重建点和离它最近三角平面上最近的点的距离。这个步骤可以使用八叉树数据结构优化加速。需要忽略掉那些不是主要成分的点。

  3. 相机姿态评估 Evaluation of camera pose

    有位置评估和方向评估

  4. 稠密点云评估 Evaluation of dense point cloud

    MVS 阶段,和稀疏点云评估类似