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

SLAM(Simultaneous Localization And Mapping)与三维重建的主要区别在于应用场景和目标。SLAM侧重实时定位与建图,常用于机器人导航,强调实时性和鲁棒性,采用ORB等快速特征匹配。而SfM(Structure from Motion)注重精度,适用于航拍建图,偏好SIFT等高精度特征,匹配计算量大。两者在兴趣点提取、匹配方式、建图流程上有显著差异,SLAM使用增量式优化避免漂移,SfM通过全局BA处理累积误差,但通常不包含回环检测。全局式SfM通过旋转和平移平均解决漂移问题,但对平移尺度估计有挑战。
摘要由CSDN通过智能技术生成

作为一个混迹于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个可能的图片进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值