前言:
这里比较一下视觉SLAM和激光SLAM的区别,仅比较其在算法层面上的一些不同,这里拿视觉SLAM算法:ORB-SLAM系列和激光SLAM算法:LOAM系列对比。
一:特征提取
1.ORB-SLAM(视觉SLAM)
ORB-SLAM算法采用ORB特征点,ORB特征点一般提取在角点上面,每一个ORB特征点具有以下信息:
- 位置信息:该ORB特征点所在的图像像素坐标。
- 描述子信息:用来描述该特征点的周围信息。
2.LOAM(激光SLAM)
LOAM算法采用线点和面点作为特征点,每个特征点仅具备位置信息:
- 位置信息:该特征点在当前雷达坐标系下的空间点坐标
二:特征匹配
1.ORB-SLAM(视觉SLAM)
ORB-SLAM算法对于每个特征点寻找自己的匹配点,其根本方法都是比较特征点之间描述子直接的汉明距离,距离小于设定的阈值即可认定为是匹配点。对于如何寻找特征点的候选匹配点范围有以下几种方法:
暴力匹配(单目初始化):
对每一个当前帧特征点画圆,计算当前帧特征点与上一帧圆内的特征点之间的描述子距离,距离最近且小于一定阈值的认为是匹配点。
词袋匹配(回环检测,丢失重定位):
根据特征点的描述子距离,为每一帧的特征点赋予特征点在词袋中的节点信息。在进行特征匹配时,只在该特征点所属的节点内部搜索候选匹配点即可。
优点:
- 1.快速锁定候选匹配点,匹配效率很高
- 2.不需要位姿估计即可匹配。
缺点:
- 比较依赖字典,能够成功匹配的特征较少。
地图点投影匹配:
ORB-SLAM2中用到最多的匹配方式。其中地图点的来源主要如下:
- 恒速模跟踪模型中,地图点来自前一个普通帧。(会选择不同层级的金字塔中的特征点作为候选匹配点)
- 局部地图跟踪中,地图点来自所有局部地图点。
- 重定位跟踪中,地图点来自于候选关键帧。
- 闭环线程中,地图点来自于闭环关键帧及其共视关键帧。
相互投影匹配:
2.LOAM(激光SLAM)
激光中点云的配准主要以scan-to-scan或者scan-to-map为主。激光特征点寻找匹配点方式比较简单直接,对于当前帧每个点寻找上一帧或者地图中距离最近的点当做匹配点。
三:位姿估计
1.ORB-SLAM(视觉SLAM)
待更新