SLAM框架之回环检测
回环检测,又称闭环检测(Loopclosuredetection),是指机器人识别曾到达场景的能力。如果检测成功,可以显著地减小累积误差。回环检测实质上是一种检测观测数据相似性的算法。对于视觉SLAM,多数系统采用目前较为成熟的词袋模型(Bag-of-Words,BoW)。词袋模型把图像中的视觉特征(SIFT,SURF等)聚类,然后建立词典,进而寻找每个图中含有哪些“单词”(word)。也有研究者使用传统模式识别的方法,把回环检测建构成一个分类问题,训练分类器进行分类。
回环检测的难点在于,错误的检测结果可能使地图变得很糟糕。这些错误分为两类:1.假阳性(FalsePositive),又称感知偏差(PerceptualAliasing),指事实上不同的场景被当成了同一个;2.假阴性(FalseNegative),又称感知变异(PerceptualVariability),指事实上同一个场景被当成了两个。感知偏差会严重地影响地图的结果,通常是希望避免的。一个好的回环检测算法应该能检测出尽量多的真实回环。研究者常常用准确率-召回率曲线来评价一个检测算法的好坏。
SLAM技术目前主要应用在哪些领域?
目前,SLAM(即时定位与地图构建)技术主要被运用于无人机、无人驾驶、机器人、AR、智能家居等领域,从各应用场景入手,促进消费升级。
机器人
激光+SLAM是目前机器人自主定位导航所使用的主流技术。激光测距相比较于图像和超声波测距,具有良好的指向性和高度聚焦性,是目前最可靠、稳定的定位技术。激光雷达传感器获取地图信息,构建地图,实现路径规划与导航。
无人驾驶
无人驾驶是近年来较火的话题之一,Google、Uber、百度等企业都在加速研发无人驾驶相关技术,抢占先机。
随着城市物联网和智能系统的完善,无人驾驶必是大势所趋。无人驾驶利用激光雷达传感器(Velodyne、IBEO等)作为工具,获取地图数据,并构建地图,规避路程中遇到的障碍物,实现路径规划。跟SLAM技术在机器人领域的应用类似,只是相比较于SLAM在机器人中的应用,无人驾驶的雷达要求和成本要明显高于机器人。
无人机
无人机在飞行的过程中需要知道哪里有障碍物,该怎么规避,怎么重新规划路线。显然,这是SLAM技术的应用。但无人机飞行的范围较大,所以对精度的要求不高,市面上其他的一些光流、超声波传感器可以作为辅助。
AR
AR通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。这一画面的实现,离不开SLAM技术的实时定位。虽然在AR行业有很多可代替技术,但是,SLAM技术是最理想的定位导航技术。
相较于SLAM在机器人、无人驾驶等领域的应用,在AR行业的应用则有很多不同点。
1、精度上:AR一般更关注于局部精度,要求恢复的相机运动避免出现漂移、抖动,这样叠加的虚拟物体才能看起来与现实场景真实地融合在一起。但在机器人和无人驾驶领域则一般更关注全局精度,需要恢复的整条运动轨迹误差累积不能太大,循环回路要能闭合,而在某个局部的漂移、抖动等问题往往对机器人应用来说影响不大。
2、效率上:AR需要在有限的计算资源下实时求解,人眼的刷新率为24帧,所以AR的计算效率通常需要到达30帧以上;机器人本身运动就很慢,可以把帧率降低,所以对算法效率的要求相对较低。
3、配置上:AR对硬件的体积、功率、成本等问题比机器人更敏感,比如机器人上可以配置鱼眼、双目或深度摄像头、高性能CPU等硬件来降低SLAM的难度,而AR应用更倾向于采用更为高效、鲁邦的算法达到需求。
多传感器融合、优化数据关联与回环检测、与前端异构处理器集成、提升鲁棒性和重定位精度都是SLAM技术接下来的发展方向,但这些都会随着消费刺激和产业链的发展逐步解决。就像手机中的陀螺仪一样,在不久的将来,也会飞入寻常百姓家,改变人类的生活。