当激光或声纳等距离传感器被用来构建小的静态环境的二维地图时,SLAM的问题被认为是解决的。然而,对于动态,复杂和大规模的环境,使用视觉作为唯一的外部传感器,SLAM是一个活跃的研究领域。
第一部分是简介
移动机器人的自主导航问题分为三个主要方面:定位,建图和路径规划。
定位包括以确切的方式确定机器人在环境中的当前姿态。
建图将环境的部分观测结果整合到一个统一的模型中。
路径规划确定了地图中通过环境进行导航的最佳路线。
最初,定位和建图是独立研究的,后来认识到它们是依赖的。在外部环境中,在动态环境中,在显着特征太多或很少的环境中,在大规模环境中,在摄像机的不稳定移动期间以及部分或完全遮挡传感器发生时,许多视觉SLAM系统会失败。
第二部分介绍了SLAM中的传感器
传感器能够感知并获得来自周围世界的元素的测量结果。分为外部传感器和本体感应传感器。
在外部传感器中,例如:声纳,射程激光,照相机和全球定位系统(GPS)
缺点:嘈杂的,范围能力有限,激光传感器和声纳在高度混乱的环境中或在识别物体方面不适用,昂贵,沉重,由大件设备组成,使得它们难以用于机载机器人或类人机器人。GPS传感器在狭窄的街道(城市峡谷),水下,其他星球上效果不佳,有时在室内不可用。
优点:激光传感器和声纳允许精确和非常密集的环境结构信息。
本体感应传感器允许实体获得速度,位置变化和加速度等测量结果。
特点:固有的噪声,它们不能够一直准确估计实体的位置,因为错误是累积的。
第三部分单目SLAM的缺点
许多视觉SLAM系统在探索环境时(或者在视觉复杂的环境中完全失败)遭受大量累积误差,这导致对机器人位置的估计不一致以及完全不协调的地图。 存在三个主要原因:
(1)首先,一般认为摄像机运动平缓,并且显著特征的外观会一致,但总的来说这是不正确的。上述假设与显著特征检测器的选择以及使用的匹配技术高度相关。由于传感器的快速移动(例如,由于振动或快速方向改变),当拍摄具有小纹理的图像或由于传感器的快速移动而模糊时,这引起照相机位置的不准确。在一定程度上缓解这个问题的一种方法是使用关键帧或者分析实时视觉追踪问题。
(2)其次,大多数研究者假定探索的环境是静止的,只包含静态的和刚性的元素;大部分环境都包含运动中的人物和物体。 如果不考虑这一点,移动的元素将会引起错误的匹配,从而在整个系统中产生不可预知的错误。
(3)最后,世界在视觉上是重复的。 有很多类似的纹理,比如重复建筑元素,叶子和砖或石头的墙壁。 在城市户外环境中也会出现一些物体,如交通信号。 这使得很难识别以前探索过的地区,也难以在大面积的土地上进行SLAM。
第四部分,描述了可以被提取的显著特征的类型以及用于实现对图像可能遭受的各种变换的不变性的描述符。
显著特征:描述的是(二维)图像上的区域。
路标:是由3D位置和外观信息描述的现实世界中的一个地区。
最容易定位的显著特征是由人造路标产生的特征。这些路标是故意添加到环境中的,目的在于作为导航的辅助。
一个高质量的特征具有以下特征:它必须是易于提取,精确的,并且对旋转,平移,缩放和光线变化不变。
显著特征提取过程由两个阶段组成:检测和描述。
检测包括处理图像以获得大量显著的元素。
描述在于基于图像中的视觉外观来构建特征向量,描述符对位置和方向变化的不变性将允许改进图像匹配和数据融合过程的效率
有大量的显著特征检测器,如:SIFT(尺度不变特征变换):充分考虑了在图像的变换过程中出现的光照,尺度,旋转变化,但是计算量很大,普通电脑的CPU无法实时的计算SIFT特征。需要使用GPU。
FAST特征没有描述子,计算很快。ORB特征点是目前的这种方案,改进了FAST检测子不具有方向性的问题,并采用了速度极快的二进制描述子BRIEF,使整个图像特征提取的环节速度加快了。
选择要使用的特征的类型在很大程度上取决于机器人将要工作的环境。
第五部分:涉及图像匹配和数据关联问题。
特征匹配:确定当前看到的路标与之前看到的路标之间的对应关系。通过图像与图像、图像与地图之间的描述子进行准确匹配,我们可以为后续的姿态估计,优化等操作减轻大量负担。
图像的特征匹配解决了SLAM 中的数据关联问题。匹配技术可以分为两类:短基线和长基线。
基线是分隔两个照相机的光学中心(用于捕获一对图像)的线段。
对于短基线的对应关系,重要的是要考虑区域的尺寸以及搜索区域的尺寸,否则会出现错误。短基线的缺点在于计算量大并且对噪声非常敏感,例如对图像坐标的错误度量将导致不同视角之间距离变小。 但是,可以通过视频序列对相应的特征进行精确的跟踪。
使用长基线时,图像在尺寸或者视角方面呈现出较大的变化,这导致图像中的一个点移动到另一图像中的任何位置。这会产生一个困难的关联问题。一个点邻域的点被视点和光照的变化所扭曲,并且相关性措施不能得到好的结果。特征匹配的最简单的办法是“暴力匹配”(对任意两幅图像都做一遍特征匹配)根据正确匹配的数量,确定哪两幅图像存在关联。显然这种思路比较粗燥,缺点显而易见。
对于回环检测有两种思路:A、基于里程计的几何关系,无法在累积误差较大时工作。B、基于外观:仅根据两幅图像之间的相似性确定回环检测关系。摆脱了累积误差,成为了现在的主流做法。
在基于外观的回环检测算法中,核心问题是:如何计算图像间的相似性。图像能够表示成矩阵,矩阵直接相减的准确率和召回率很差,可能出现大量的“假正”和“假负”的情况。所以针对某种特定的算法,我们统计它在某个数据集上的TP,TN,FP,FN的次数,然后计算准确率和召回率。在回环检测中,更倾向于把参数设置更严格一些,或者在检测之后加上回环检测的步骤。
第六部分详细回顾了解决视觉SLAM问题的不同方法,并讨论了每个方法的弱点和长处。
解决视觉SLAM问题的技术可以分为三类:
(a)基于滤波的经典模型
(b)采用增量方式运用结构动力学的技术
(c)仿生技术
基于滤波的经典模型,其中最经典的就是Mono SLAM,以扩展卡尔曼为后端,追踪前端十分稀疏的特征点,以相机的当前状态和所有路标点为状态量,更新其均值和方差。
缺点:应用场景窄,路标数量有限,稀疏特征点容易丢失。现在对它的开发已经停止,有更先进的理论和编程工具。
采用增量方式运用结构动力学的技术:运动构图能够从一系列图像中计算场景的3D结构和摄像头位置。SfM算法通过在当前帧中提取显著特征匹配并进行非线性优化,来减少重映射误差。SfM对摄像头的定位精度高,但是不一定能产生相容地图。PTAM基于关键帧,把关键帧串起来,然后优化其轨迹和地图,实现了跟踪与建图过程的并行化,
第七部分:描述被观察世界的不同方式。
地图分为度量地图和拓扑地图。
度量地图强调精确地表示地图中物体的位置关系,通常分为稀疏与稠密地图。
稀疏地图是由路标组成的地图,不是路标的部分可以忽略掉。适用于定位。
稠密地图着重于建模所有看到的东西,适用于导航。稠密地图通常是按着某种分辨率,由许多小块组成。对于二维地图是有许多小格子,对于三维地图是有许多小方块。每个小块有:占据,空闲,未知三种状态表达该格是否有物体。缺点:存储消耗大量空间,大规模度量地图有时会出现一致性问题。
拓扑地图:强调地图元素之间的关系,由节点和边组成,只考虑节点之间的连通性。缺点:不适用于表达具有复杂结构的地图。如何对于地图进行分割形成节点和边,又如何使用拓扑地图进行导航和路径规划是有待研究的问题。