基于slam的三维重建_SLAM和三维重建有什么区别?

作为一个混迹于SfM学术界,SLAM工业界的同学,先来先表明一下观点: 很多回答都不太准确,包括深蓝学院。

前面很多答主提到,SLAM和三维重建比较并不准确,那就假设题主是想和SfM比吧。其实更准确的说是视觉SLAM和SfM。

这两种方法的区别在于面向的任务不同: SLAM主要用于实时应用,比如机器人,我们希望SLAM算法能在机器人行走过程中实时进行建图和定位;而SfM主要用于建图,比如航拍场景,输出的稀疏点云和pose用于之后的MVS。

由于应用的场景和期望的目的不同,自然在算法设计上就会有很大的差异。

首先讲第一个异同。视觉SLAM和SfM都需要先从图像数据中提取需要的interest points(这里不说特征点,因为视觉SLAM包括直接法和特征点法)。对于视觉SLAM,为了保证实时性,interest points的提取需要足够快,同时鲁棒性也不能太差。像SIFT和SURF这类的方法由于过重通常被大多数SLAM应用抛弃,于是有了后来的ORB。而SfM算法更追求精度,速度是第二位,因此偏爱SIFT这类算法。当然,随着深度学习的发展,很多工作在使用深度学习算法来提取特征点。

第二个异同点在于如何在图片对或者相邻帧之间找匹配。以ORB为例,SLAM算法为了实时性,使用的是ORB的二进制描述子计算汉明距离,计算量比较小。使用SIFT的SfM算法则使用得到的特征点的128维描述子: 使用ANN的话,则建立KD-Tree后找近邻点;当然也可以使用cascade hashing算法来加速匹配过程。匹配时,SLAM通常只进行相邻帧或者一个窗口内的连续帧的匹配,需要匹配的图片对很少。而SfM则需要对每一张图片,和它们的k个可能的图片进行匹配: 对于n张图片,如果k=n,那么n很大时计算量相当大;所以一般会使用描述子进行相似性检索,取最相似的前k张图片进行匹配。SLAM和SfM一样,在得到候选匹配之后都会使用RANSAC加上一个几何模型来过滤外点。

第三个异同点在于建图流程。SLAM算法属于增量式,camera的pose或者机器人的状态是随着时间增量式进行计算的。在得到pose和landmark之后,为了实时,通常会marg掉老的状态,而只优化滑动窗口内维护的变量,被marg掉的变量则被当成先验加入约束中。滑窗优化发生在前端线程里。如果SLAM只有前端是不行的,因为随着时间累积误差会进一步累积,最终漂移的越来越多。因此会在后端线程加上回环检测,估计一个变换矩阵(比如单目SLAM是一个7自由度的相似变换,VINS是一个4自由度的变换),对齐后做全局BA。这样可以让误差进行均摊。对于SfM,由于匹配关系是提前建立好的,因此回环约束其实已经是隐式包含了。但是对于增量式SfM,这样的约束仍然不够。增量式SfM也是一个个的恢复相机pose,代表性的工作有Bundler, COLMAP等。通常来讲,每恢复一个pose会做一次局部BA,当恢复的pose数量占模型的一定比例时,会做全局BA。尽管有全局BA,但随着时间进行,误差仍然是在累积的。因此没有回环检测的增量式SfM是逃脱不了drift这个问题,而SfM里通常不带回环检测。对此,有一些方法尝试通过全局式SfM来解决drift这个问题,代表性工作有1DSfM,LUD等。在做匹配是时,会通过本质矩阵来恢复相对旋转和相对平移。然后首先利用相对旋转来恢复全局旋转,这一步称为“旋转平均”;在有了全局旋转后加上相对平移约束,可以恢复全局平移,这一步则称为“平移平均”。“平均”在于当有了所有相对运动约束后,构建的优化问题等价于将pose的误差均摊在每一个pose上。因此从误差均摊的角度讲,和回环检测是一致的,但是方法完全不同。所以,深蓝学院那个回答里说全局式SfM就是回环检测是不正确的。在有了pose之后,triangulation和最后的全局BA只要一次就行了,速度很快。全局式SfM算法的一个主要缺点在于: 平移平均对外点非常敏感,此外相对平移只包含方向,不包含尺度。尺度的恢复在平移平均问题里很难解好,而且相对平移只有在宽基线的情况下才能估计的比较准。因此全局式SfM现在也不太实用。SLAM里有一类算法和全局式SfM相似,称为“位姿图优化(Pose Graph Optimization)”,这部分可以参考MIT Spark实验室Luca组的工作。当然,SfM算法也有一些其他类型的工作,比如Hierarchical SfM,分布式SfM(这个可以参考我Github上开源的DAGSfM),可用于求解非常大规模的数据集。

暂时这些了,如果想到更细节的再继续更。

    原文作者:JH努力
    原文地址: https://blog.csdn.net/weixin_35930255/article/details/112030779
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞