目录
1.介绍
1.1本文的贡献
2.研究现状
2.1基于视觉的SLAM
3.方法
3.1概率三维地图
3.2自然视觉地标
3.3系统初始化
3.4运动建模与预测
3.5主动特征测量和地图更新
3.6特征初始化
3.7地图管理
3.8功能取向估计
4.结果:交互式增强现实
5.结果:人形机器人的SLAM
5.1视觉
5.2陀螺仪
5.3结论
6.系统细节
6.1基于地面事实的系统描述
6.2过程需求
6.3软件
6.4视频
作者:Davison A J , Reid I D , Molton N D , et al
论文下载
摘要:我们提出了一种可以对在未知环境中快速运动的单目相机进行3D轨迹重建的实时算法。这个系统,我们称之为MonoSLAM,它是第一个成功的基于移动机器人的单目非控相机的“纯视觉”SLAM算法,取得了从结构到运动模型的实时且无漂移性能。算法的关键在于通过一个概率框架在线创建了一个稀疏却稳定的自然标记地图。我们的核心贡献包括一个用于构图和测量的活性方法,使用一种通用运动模型来平滑相机运动,和单目特征初始化与特征定位估计的解决方案。这共同构成了一个高效而稳健的算法,其在标准电脑和手持相机上运行达到了30Hz。这个工作拓宽了机器人领域内SLAM运用的领域,并开辟了一个新的空间。我们提出的MonoSLAM可以进行高性能全尺寸的人形机器人的实时3D定位与构图应用,以及手持相机的实时增强现实。
关键词:自动测量,三维单目场景分析,跟踪
在过去的10年里,自主机器人导航已经取得了显著的进展,特别是,模拟新定位和地图(SLAM)已经在机器人领域得到了很好的定义,它是一个移动传感器平台,在动态地构建其环境的表示的同时,同时估计其自身的运动。SLAM是目前在实验机器人系统中使用顺序贝叶斯推理的现代方法常规实现的,而SLAM算法现在正开始交叉应用到实际系统中。然而,有趣的是,尽管有庞大的计算机视觉研究群体,但直到最近,相机的使用还没有成为机器人SLAM研究进展的核心,人们对激光测距仪和声纳等其他传感器给予了更多关注。
这似乎令人惊讶,因为视觉是SLAM传感器的一个有吸引力的选择,原因有很多:相机小巧、精确、无创、易于理解——而且如今价格便宜、无处不在。当然,视觉也有很大的直觉吸引力,因为人类和动物主要用来导航的感觉。但是,相机捕捉世界上唯一的几何间接通过光度效果和轮到认为太难了图像的稀疏的特性向外成可靠的长期实时地图生成,尤其是来自摄像机的数据速率远高于其他传感器。
相反,视觉研究人员专注于小图像集的重建问题,开发了一种名为“运动结构”(SFM)的领域。SFM算法已经被扩展到更长的图像序列上,但这些系统本质上是离线的,分析一个完整的图像序列,生成所观察到的摄像机轨迹和场景结构的重建。为了获得一个序列的全局一致估计,从帧到帧特征匹配的局部运动估计在一个全局优化中进行细化,在整个序列中前后移动(称为束调整)。这些方法完全适合于自动分析从任意来源获得的短图像序列——电影镜头、消费视频,甚至是几十年前的存档视频——但不能对任意长序列进行实时的一致定位。
我们的工作高度关注高帧速率实时性能(通常为30Hz)作为一个要求。在应用程序中,实时算法是必要的,只有当它们被用作包含动态世界中其他组件的循环的一部分时——机器人必须控制它的下一个动作步骤,人类需要对他的动作进行视觉反馈,或者是另一个等待输入的计算过程。在这些情况下,从一个移动的相机实时获得的最直接有用的信息是它在哪里,而不是一个完整详细的“最终结果”地图的风景准备显示。尽管本地化和映射是复杂耦合的问题,而且slam研究已经证明,解决这两个问题都需要同时解决这两个问题,但在这项工作中,我们将重点放在本地化上,将其作为感兴趣的主要输出。当然已经构建了一个映射,但是它是一个稀疏映射,用于优化标记修改以支持本地化。
此外,实时摄像机跟踪场景通常涉及在受限环境下的扩展和循环运动(当类人机器人执行任务时,驯养机器人会打扫房间,或者通过图形增强从不同角度观察房间)。重复定位,即不发生从地面真相逐渐漂移,在这里将是至关重要的,比在不断探索新的区域而不返回的情况下更重要。这就是我们的全概率slam方法发挥作用的地方:它将自然地构建场景地标的持久映射,在基于状态的框架中独立引用,并允许循环闭包来纠正长期漂移。形成一个持久的世界地图意味着,如果相机的运动受到限制,算法的处理要求是有限的,可以保持连续的实时操作,不像在跟踪方法,如[4],其中闭环校正是通过匹配一个不断增长的历史过去的姿态。
我们的主要贡献是证明了用一个可自由移动的摄像机作为唯一的数据源确实可以实现实时定位和映射。我们通过应用概率SLAM方法的核心来实现这一目标,并针对这里的一个特别困难的SLAM场景提出了新颖的见解。MonoSLAM算法我们解释和演示达到所需的效率实时操作通过使用一个活跃的、引导功能映射和测量方法,一般运动模型平滑前3d摄影机运动捕捉动态信息固有的连续视频和创新性的自上而下解决单眼功能初始化的问题。
简而言之,与SFM方法相比,使用SLAM,我们既能实时估计运动相机的状态和地图,又能从运行估计中受益,指导有效的处理。SLAM的这方面经常被忽视。例如,序列SLAMis非常自然地能够选择一组高分辨率、可跟踪、但有效间隔的特性来实现其可视化地图,只需要使用简单的启发式地图构建。除了最重要的图像处理外,合理的置信边界假设可以避免所有的处理,并且在高帧率下,除了输入图像的微小搜索区域外,所有的搜索区域都被我们的算法完全忽略。我们的映射方法可以概括为“高质量特征的稀疏映射”。
在这篇论文中,我们能够在房间大小的域中实时演示Mono_slam。SLAM的一个长期目标是实现一个具有以下性能的系统:一个连接在便携式电脑上的低成本摄像头将在一个未知场景的任意位置开机,然后由一个快速移动的机器人(可能是飞行或跳跃),甚至是一个奔跑的人在一个任意大的区域内进行拍摄,所有时间都可以毫不费力地实时恢复它的轨迹,并为它所看到的一切建立一个详细、持久的地图。当其他人攻击大地图问题,但继续与以前相同的缓慢移动的机器人和多传感器平台工作时,我们正从另一个方向解决这个问题,并解决与高度动态3D运动、商品视觉感知、处理效率和放松平台假设相关的问题。我们相信我们的研究结果在理论和实践上都很重要,因为它们为SLAM技术的应用开辟了全新的道路。本论文借鉴了会议论文[5]、[6]、[7]中发表的早期研究成果。我们还提出了新的未提出过的结果,证明了该算法在类人机器人和增强现实应用中的先进应用。
我们对哈里斯和派克[8]的工作感到高兴,他们的机器人系统使用一个摄像头的输入顺序构建可视地图,这可能是我们研究的鼻祖,远远领先于那个时代。令人印象深刻的结果表明,三维地图从长图像序列,并实现了后期的实时实现。然而,这项工作的一个严重疏忽是将每个映射的视觉特征的位置处理为非耦合估计问题,忽略了由普通摄像机运动引入的强相关性。相关的方法由Ayache[9]和后来的Beardsley等人在一个未校准的几何框架中提出,但这些方法也忽略了相关性,结果是对映射和定位估计不自信,无法闭合环路和纠正漂移。
Smith等人([11])和与之类似的Moutarlier和chatila[12]提出,考虑到一般机器人定位和映射问题中的所有相关关系,并在单个状态向量和协方差矩阵中使用扩展卡尔曼滤波(EKF)更新。马尼卡伦纳德[13],[14],和其他证明日益复杂的机器人映射使用相关算法进行技术和本地化,但单一状态向量和“全协方差”的方法史密斯等人没有收到广泛关注,直到1990年代中后期,也许当计算能力几乎达到了顶点,它可以测试。
一些早期的实现证明了在真实机器人系统中构建中等规模地图的单一EKF方法,并令人信服地证明了维护估计相关性的重要性。这些成功使得EKF作为SLAM中的核心估计技术得到了广泛的应用,而它作为aBayesian解决方案的通用性也在各种不同的平台和传感器上得到了理解。近年来,基于EFK和相关概率滤波器的SLAM系统在不同的领域都取得了显著的效果。偏离标准EKF的方法主要针对大比例尺地图的构建,其中EKF由于线性化而存在计算复杂度和精度不高的问题,包括子映射策略(如[20]、[21])和因子化粒子滤波(如[22])。在测绘精度和比例方面,最具压力的结果来自使用激光测距传感器的机器人。这些直接返回准确的距离和方位扫描附近一片的场景,它可以处理史料可重复的特性来插入地图(例如,[23])或者简单匹配与其他重叠扫描机器人精确测量位移和全方位的再构建一个历史性的机器人位置供本地扫描引用(例如[24],[25])。
算法使用视觉作为唯一的向外的感知。在第1节中,我们提到了视觉对激光传感器的额外挑战,包括非常高的输入数据率、视觉数据固有的3D质量、缺乏直接深度测量以及难以提取长期特征来绘制地图。这些因素意味着只有视觉的SLAM系统相对较少成功(现在我们将SLAM系统定义为能够在关闭循环以纠正漂移的同时动态构建持久映射的系统)。在本节中,我们将回顾一些最有趣的地方,并将我们的工作放到上下文中。
Neira等人提出了一个简单的系统映射垂线段在2d约束室内环境[26],但方法的起源论文是戴维森和穆雷[18],[27],[28]的系统使用,关注主动立体的第一个视觉全景系统实时处理(在5赫兹),能够建立一个动态的3d地图自然地标和可控移动机器人。被使用的机器人主动头强制一个一个地选择特征测量和稀疏映射。然而,事实证明,如果仔细选择和传播,一小组地标可以提供非常准确的slam参考。戴维森和基塔·[29]将该方法推广到机器人通过结合立体视觉和倾斜仪在非平面坡道上进行定位的情况。
在最近的工作中,基于视觉的SLAM已经在一系列不同的系统中得到了应用。Jung和Lacroix[30]提出了星型视觉SLAM系统,该系统使用向下看的立体定向来定位一艘机器人飞艇并执行地形测绘。它们的实现是连续的,但不实时运行,并依赖于一个宽基线固定立体钻机来直接获取深度测量。金姆和Sukkarieh[31]使用单眼视觉结合准确的惯性传感映射从动态操纵无人机地面目标在一个令人印象深刻的系统中,尽管目标是人为放置和评估他们的位置是容易多了,他们可以认为处在一个平面。
Bosse等人在他们的ATLAS submap-ping框架中,[20]、[32]将全方位视觉与其他传感器结合使用,特别使用人工环境中的线条作为一致的方位参考。最近Eustice等人的[33]已经使用一个向下看的相机和惯性传感定位水下远程车辆,并从低帧率图像序列产生详细的海底勘探结构。在回环闭包相对较少的实验设置中,使用有效的稀疏信息过滤器,他们的方法可以很好地扩展到大规模映射。
Sim等人最近发表的工作。[34]使用一种结合SIFT特性[35]和快速slam滤波[22]的算法来实现特别大规模的纯视觉SLA。他们的方法是处理器密集型的,平均每帧10秒的处理时间是目前离实时操作很大的因素。商用vSLAM系统[36]也使用SIFT特性,不过在SLAM算法中,该算法严重依赖于里程测量来构建可识别位置的连接地图,而不是完全连续的精确定位。毫无疑问,SIFT等不变特性在匹配方面提供了高水平的性能,并允许以与设计用于视觉对象识别相同的方式进行高保真度的“位置识别”。它们在闭环锁定“丢失的机器人”(包括匹配非常弱的先验)方面的价值是显而易见的。然而,由于提取它们的计算成本很高,它们不太适合继续进行搜索——像我们使用主动搜索的方法在速度上总是优于不变匹配。
我们工作的一个重点是将SLAM所需的硬件简化到尽可能简单的情况,即一台连接到计算机的相机,并要求对该相机的自由3D运动做出最少的假设。几位作者提出了与我们目标相似的实时摄像机跟踪系统。McLauchlan和Murray[37]引入了VSDF(可变状态维滤波器),利用稀疏的信息滤波框架从运动相机中同时恢复结构和运动,但无法演示长期跟踪或循环关闭。Chiuso等人的方法[38]分享了我们工作的几个想法,包括使用一个扩展的卡尔曼滤波器来传播地图和定位不确定性,但是只给出了使用小摄像机运动跟踪小组对象的有限结果。他们的方法使用简单的梯度下降特征跟踪,因此无法在高加速度或忽略后的闭合环路中观察特征。nist等[39]提出了一个基于实时系统非常标准从运动到结构的帧到帧匹配方法的大量特征点能够重建瞬时动作,令人印象深刻而又没有能力经过时间的忽视和重识别特性,因此,不可避免地会导致增强现实或定位迅速漂移。Foxlin[40]采用了一种不同的方法在一个单一的相机系统,使用基准标记附加到天花板结合高性能惯性感应。该系统取得了令人印象深刻的中继表本地化结果,但需要大量额外的基础设施和成本。Burschka和Hager[41]演示了一个小规模的视觉定位和映射系统,尽管通过分离定位和映射步骤,他们忽略了估计相关性,而且这种方法在长时间内工作的能力值得怀疑。
在下一节中,我们将以一种对以前SLAM方法的细节不熟悉的读者可以访问的形式逐步介绍我们的方法。
与[11]一样,我们的方法的关键概念是基于概率特征的地图,它表示当前对相机状态和所有感兴趣的特性的估计的快照,关键是这些估计中的不确定性。映射在系统启动时初始化,并一直持续到操作结束,但是随着扩展卡尔曼过滤器的更新,映射将不断地、动态地发展。
图1所示。(a)概率三维地图快照,显示相机位置估计和特征位置不确定椭球体。在这张图和其他图中,本文的特征颜色代码如下:红色=成功测量,蓝色=尝试但失败测量,黄色=此步骤未选择测量。(b)检测到的视觉显著特征斑块作为视觉地标,并通过对其估计的世界位置的反投影推导出三维平面区域。这些平面区域被投射到未来估计的摄像机位置,从新的角度预测patch的外观。
在相机运动和特征观测过程中,对相机和特征的概率状态估计进行更新。当观察到新的特征时,地图会随着新的状态进行放大,如果需要,还可以删除特征。地图的概率特征不仅在于随时间的传播,而且还在于对相机状态和特征的平均“最佳”估计,以及描述可能偏离这些值的大小的一阶不确定性分布。从数学上讲,地图由a和协方差矩阵P表示。状态向量x^是由摄像机和特征的叠加状态估计量组成的状态向量x, P是一个等维方阵,可以划分为以下子矩阵元素:
在此过程中,所有地图参数的概率分布被近似为一个单一的多元高斯分布在一个维数等于总状态向量大小的空间。明确地说,相机的状态向量x v包括一个度量的三维位置向量r W、方向四元数q RW、速度向量v W和角速度向量!R相对于摄像机携带的固定世界帧W和“机器人”帧R(13个参数):
在这项工作中,特征状态y i是点特征位置的三维位置向量。图3a定义了摄像机和特征几何坐标系。
地图的作用主要是允许实时定位,而不是作为一个完整的场景描述,因此我们的目标是捕捉一组稀疏的高质量地标。我们假设场景是刚性的,每个地标都是一个固定的世界特征。具体来说,在这项工作中,每个地标都被假定对应于三维空间中的一个良好的局部点特征。相机被建模为一个刚体,需要平移和旋转参数来描述它的位置,我们还保持对它的线速度和角速度的估计:这在我们的算法中很重要,因为我们将使用运动动力学,如第3.4节所解释的那样。
图1a所示:所有几何估计值都可以看作是由表示不确定边界的椭球体区域所包围(这里对应三个标准差)。图1不能显示是不同程度的各种椭圆体潜在关联:在连续映射,这种情况常发生的空间关闭功能通常同时观察到相机将位置估计的差异(相对位置)是非常有名的,而集团作为一个整体的位置相对于全局坐标系可能不是。这种情况在映射协方差矩阵P中由非对角矩阵块中的非零项表示,并通过算法的运算自然实现。
地图表示的总大小超过了O(N2),其中N为特征个数,我们使用的完整SLAM算法具有O(N2)复杂度。这意味着,在我们的系统中,可以通过实时处理来维护的特性的数量在当前的30hz实现中限制在100个左右。
在这项工作中,我们选择使用“标准”的单一、全协方差EKF方法来进行SLAM,而不是使用不同概率表示的变体,这是有充分理由的。如前所述,我们当前的目标是在有限的卷中进行长期的、可重复的本地化。在我们的一个映射中观察特征的模式与用于机器人映射的SLAM的许多其他实现(如[25]、[34]或[22])中所看到的模式非常不同。这些机器人主要在走廊式的拓扑结构中移动,沿着探索性的路径移动,直到它们偶尔回到它们以前见过的地方,在那个阶段,它们会修正在回路中的漂移。可以采用相对特殊的方法来将校正分布在定义良好的回路周围,无论是通过一系列不确定的位姿转换或子映射,还是通过从一组由有限数量的粒子所反映的可能贫乏的离散轨迹假设中进行选择。
图2所示。(a)在第一个跟踪帧上匹配初始化目标的四个已知特征。大的圆形搜索区域反映了初始相机位置估计的高不确定性。(b)“平滑”运动模型的可视化:在每个摄像机位置,我们预测一个最有可能的路径,以及具有较小偏差的备选方案。
在我们的案例中,作为一个自由相机移动和旋转在受限制的空间,3 d特征会的视野在不同序列,不同子集的特征在不同深度将相机旋转,和许多不同大小和互连的循环模式会经常关闭。我们认为,准确地表示地图不同部分之间的详细的、灵活的相关性是非常重要的。在已知方法的类中,只有在单个状态向量和协方差矩阵中维护稀疏特征映射时,这在计算上是可行的。经过仔细的地图管理,100个精心挑选的功能足以跨越一个房间。在我们看来,一个方法(例如FastSLAM [22],[42])能够处理更多的特性,但是表示相关性不那么精确,是否能够在敏捷的单摄像机SLAM中给出如此好的可重复定位结果,还有待证明。
现在,我们将专门讨论构成地图的特性。我们采用了Davison和Murray[5],[27]的方法,他们发现相对较大的(11×11像素)图像patch可以作为长期的地标性特征,大模板比标准的转角特征具有更多的独特特征。然而,我们利用现有的相机定位信息,在较大的相机位移和旋转情况下改进匹配,从而大大扩展了这些特征的能力。
突出图像区域最初是卡莉(在时间和地点3.7节)的策略指导下使用史的检测算子和预[43]从单色图像从相机获得(注意,在当前的工作中,我们使用单色图像主要是出于效率)。我们的目标是能够在潜在的极端摄像机运动中重复识别这些相同的视觉地标,因此,正向2D模板匹配(如[5])是非常有限的,因为仅在摄像机旋转和平移的小角度之后,地标的外观就会发生很大的变化。为了改进这一点,我们做了一个近似,即每个地标都位于一个局部平面表面上——这个近似在很多情况下非常好,在其他情况下非常差,但是比假设斑块的外观不会发生任何变化要好得多。此外,由于我们不知道这个曲面的方向,所以在初始化时,我们指定曲面法线平行于从特征到相机的向量(在第3.8节中,我们将提出一种更新这个法线方向估计的方法)。利用第3.6节方法对特征的三维位置(包括深度)进行完全初始化后,将每个特征存储为一个定向的平面纹理(图1b)。当从新的相机位置测量一个特征时,它的patch可以从3D投影到图像平面上,生成一个模板来匹配真实的图像。此模板将是第一次检测到该特性时捕获的原始正方形模板的变形版本。一般来说,这将是一个完整的投影翘曲,带有剪切和透视变形,因为我们只是通过前后相机模型发送模板。即使特征所在表面的方位不正确,翘曲也能成功地完成绕环扭轴和尺度的旋转。图3(a)摄像机的帧和向量以及特征几何。(b)从广角相机主动搜寻原始图像的特征。
图3所示。(a)摄像机的帧和向量以及特征几何。(b)从广角相机主动搜寻原始图像的特征。椭圆表示由相机相对位置和特征的不确定性导出的特征搜索区域,只搜索这些区域。
椭圆表示由相机相对位置和特征的不确定性导出的特征搜索区域,只搜索这些区域。其中SIFT描述符是不变的)和其他一些扭曲。注意,由于目标是可重复的本地化,所以我们不会对保存的模板进行长时间的特性更新,因此我们需要能够在任意长的时间周期内精确地重新度量特性的位置。随着时间的推移而更新的模板往往会逐渐偏离最初的位置。
在大多数SLAM系统中,机器人在第一次开机时对周围世界的结构并没有具体的了解。它可以自由地定义一个坐标系来估计它的运动并构建一个地图,最明显的选择是将这个坐标系固定在机器人的起始位置,定义为原点。在我们的单摄像机SLAM算法中,我们选择在摄像机前放置一个已知目标形状的场景中使用少量的先验信息来辅助系统启动。这提供了几个具有已知位置和外观的特性(通常是四个)。主要有两个原因:
1. 在单相机SLAM中,没有直接的方式来衡量特征深度或任何测程法,从一个已知大小的目标能让我们精确的比例分配给估计地图与规模和运动,而不是运行一个完全未知的自由度。了解地图的规模是可取的,当它必须与其他信息,如运动学或功能深度的先验,使它更容易在实际应用中使用。
2. 在地图中从一开始就有一些特性意味着我们可以立即进入正常的预测-测量-更新跟踪序列,而不需要任何特殊的第一步。对于单个相机,特征无法在一次测量后完全初始化到地图中,因为它们的深度未知,因此,在我们的标准框架中,我们将无法匹配特征来估计从第一帧到第二帧的相机运动。(当然,标准立体算法提供了一个单独的方案,可以用来引导运动和结构估计。)
图2a显示了使用典型初始化目标跟踪的第一步。已知的特征(在本例中是黑色矩形的角)在系统启动时将测量到的位置放入地图,不确定度为零。现在正是这些特性定义了SLAM的世界坐标框架。在第一跟踪帧上,相机被置于相对于目标的某个近似已知的位置,以便跟踪开始。在状态向量中,初始摄像机位置被给定一个初始不确定度,对应于几个度和中心米。这使得跟踪可以在第一帧中通过启动标准跟踪周期来“锁定”。
启动后,状态向量以两种交替的方式进行更新:1)预测步骤,当相机在图像采集和更新之间的“盲”区间移动时;2)更新步骤,完成特征量的测量后。在本节中,我们考虑预测。
构建敏捷摄影机的运动模型是由一个未知的人,机器人,或其他移动身体,乍一看,似乎完全不同的建模上的轮式移动机器人的运动平面:关键的区别是,在机器人的情况下,一个是拥有控制输入驱动运动,如“前进和转向角1米5度,“而我们没有这样的先验信息敏捷相机的运动。然而,重要的是要记住,这两种情况都只是表示物理系统的模型类型连续体上的点。每个模型都必须在某种程度上停留在细节上,并对模型与现实之间的差异做出概率假设:这就是所谓的过程不确定性(或噪声)。以轮式机器人为例,这个不确定项考虑了诸如潜在的车轮滑移、表面不规则性以及其他尚未明确建模的主要非系统影响等因素。在敏捷相机的情况下,它考虑到未知的动力学和人类或机器人载体的意图,但这些也可以概率建模。
我们目前使用的是“恒速,恒角速度模型”。“这并不意味着我们假设相机一直以恒定的速度运动,而是我们的统计模型显示,相机在一个时间步长的运动中,平均而言,我们预计在高斯分布的情况下,会出现未确定的加速度。”模型如图2b所示。这个模型的含义是,我们对相机的运动施加了一定的平滑度:非常大的加速度相对不太可能。该模型具有微妙的有效性,即使视觉测量是稀疏的,也能使整个系统具有重要的鲁棒性。
我们假设,在每个时间步长中,未知加速度W和角加速度W过程的零均值和高斯分布引起速度和角速度的脉冲:
视情况而定,V W和R可以耦合在一起(例如,假设在每一个时间步长对携带相机的刚体形状施加一个力脉冲,使其线速度和角速度发生相关变化)。然而,目前我们假设噪声向量n的协方差矩阵是对角的,表示所有线性和旋转分量中的不相关噪声。
在EKF中,新状态估计FV;运动后,UB必须伴随着相机状态不确定性(过程噪声协方差)qv的增加。我们通过雅可比矩阵计算得到qv:这里我们没有给出结果。在这个运动模型中,不确定性的增长速度由pn的大小决定,将这些参数设置为小或大的值定义了我们所期望的运动的平滑度。对于小的P n,我们期望有一个非常平滑的运动与小加速度,并将很好地跟踪这种类型的运动,但无法应付突然的快速运动。
在本节中,我们将考虑度量SLAM映射中已经存在的特性的过程(我们将在下一节中讨论初始化)。
我们的方法的一个关键部分是在决定测量哪个特征之前预测每个特征的图像位置。特征匹配本身是使用straightfor病房进行归一化互相关搜索模板补丁投射到当前相机估计使用3.2节的方法和图像数据,模板在图像扫描和检测在每个位置匹配,直到找到一个峰值。这种匹配的搜索在计算上是昂贵的;预测是一种主动的方法,通过缩小搜索范围来最大化效率。首先,使用估计,x v相机的位置和我的特征的位置,一个点的位置特征相对于相机预计:透视相机,位置(x, y)的特性将会发现图像中发现使用标准的针孔模型:
在当前的工作,然而,我们使用广角相机领域将近100度角度显示在[6],SLAM的准确性显著提高了交易单像素角分辨率,有皱纹的相机和地图估计领域更好的约束特性时截然不同的视角可以同时观察到。这类相机的成像特性并没有像图3b所示那样很好地近似于透视,它们的图像显示出明显的非透视畸变(三维世界中的直线不会投射到图像中的直线上)。然而,我们对这些原始图像进行特征匹配,而不是首先对它们进行不失真(注意,为了将这些图像用于增强现实,必须将后面的图像转换为透视投影,因为OpenGL只支持透视相机模型)。因此,我们经u 1⁄4ðu perspective-projected坐标;vÞ与一个径向畸变,以获得最终的图像位置预测u d 1⁄4ðu d;v dÞ:以下径向畸变模型被选中,是因为,一个好的近似,它是可逆的[44]:
这个两步投影函数关于摄像机和特征位置的雅可比矩阵也得到了计算(这是一个简单的微分问题,很容易在纸上或软件中执行)。这使得计算特征图像位置预测的不确定性,用对称的创新协方差矩阵Si表示:
测量值的恒噪声协方差R为对角,大小由图像分辨率决定。Si的知识使图像搜索成为一种完全主动的方法;si表示二维高斯PDF在图像坐标上的形状,并选择若干个标准差(门控,通常为3),定义了一个椭圆搜索窗口,在该窗口内特征应该具有很高的概率。在我们的系统中,关联搜索总是发生在门控搜索区域内,以最大限度地提高效率和最小化不匹配的机会。参见图3 b。S i在主动搜索中还有进一步的作用;它是对度量所期望的信息内容的度量。
高S i的特征搜索(结果很难预测)将提供更多关于相机估计和特征位置的[45]信息。在戴维森和穆雷的工作中,基于视觉的SLAM机器人具有可操纵的摄像机[27],这直接导致积极控制观看方向,以实现有益的测量;这里我们不能控制相机的运动,但在许多候选度量可用的情况下,我们选择那些具有高创新协方差的度量,将每帧特征搜索的最大数量限制在10或12个信息量最大的。选择这样的测量方法的目的是消除系统中沿着最长可用轴的不确定性,并有助于确保在估计状态下没有特定的不确定性成分失控。我们的主动搜索技术的明显的比较点是非常快速的自底向上的特征检测算法,它对图像的处理是不加区别的,但是可以在几毫秒内提取出图像中的所有特征。使用主动搜索,我们将始终能够减少图像处理的工作量,但在计算出在何处搜索[45]时,可能需要额外的大量计算。如果相机丢失,我们并不认为主动搜索是明智的——在存在非常高的不确定性的情况下,需要一个不同的过程来重新定位。
使用我们的单目相机,由于特征深度未知,无法直接反演特征测量模型,给出给定图像测量的新特征位置和相机位置。估计一个特征的深度需要摄像机的运动和从不同角度的几个测量。但是,我们避免了在不尝试估计其三维位置的情况下,对多帧图像中的新特征进行跟踪,然后执行一个小批量估计步骤,从多个视图三角剖分初始化其深度。这将违反我们自上而下的方法,并浪费可用的信息:当相机快速移动时,2D跟踪可能非常困难。此外,我们通常需要非常快地初始化特性,因为视野较窄的相机可能很快就会经过它们。在识别和第一次测量新特性之后,我们使用的方法是在地图中初始化一条3D线,该线必须位于该特性所在的位置。这是一条半无限的线,从估计的相机位置开始,沿着特征观察方向向无穷前进,像其他地图成员一样,其参数具有高斯不确定性。它在SLAM图中的表示为:其中ri为其一端的位置,h为描述其方向的单位向量。特征点的所有可能的三维位置都位于一些点上——沿着这条线的位置,但是我们只剩下了它的位置的一个自由度不确定——它沿着这条线到端点的深度或距离。一组离散深度假设沿这条线均匀分布,可以认为是一维粒子分布或直方图表示的深度上的一维概率密度。现在,我们做一个近似:在接下来的几段时间里,当这个新特征被重新观察时,对它的图像位置的测量只提供关于这个深度坐标的信息,它们对直线参数的影响可以忽略不计。这是一个很好的近似,因为与直线方向的不确定度相比,深度的不确定度非常大。当特征以这种方式用一行和一组深度假设表示时,我们将其称为部分初始化。一旦我们以峰值深度PDF的形式获得了良好的深度估计,我们就用标准的3D高斯表示将该特性转换为“完全初始化”。在随后的每个时间步骤中,假设都通过将它们投射到图像中进行测试,其中每个假设都被实例化为一个椭圆搜索区域。每一个椭圆的大小和形状决定的不确定参数:每个离散假说在深度3 d世界位置W ^ y我1⁄4 r Wþh。该位置通过标准测量函数和3.5节的相关雅可比矩阵投影到图像中,得到每个深度的搜索椭圆。注意,在非透视相机的情况下(如我们通常使用的广角相机),椭圆的中心不会沿直线,而是沿曲线。这并不是一个问题,因为我们分别对待每个假设。我们使用一种高效的算法在这组省略号上对相同的特征模板进行相关搜索,这组省略号通常会有明显的重叠(算法构建了一个相关分数的查找表,这样重叠区域的图像处理工作就不会重复)。每个椭圆内的特征匹配为每个椭圆生成一个似然值,并通过贝叶斯规则对其概率进行重新加权:似然值只是椭圆搜索区域所隐含的图像空间中二维高斯PDF所表示的概率。注意,在许多小的情况下与相对较小的椭圆重叠(真当相机定位估计很好),我们得到更多的分辨能力不同深度假设比大时,观察到明显重叠椭圆,这会影响深度分布将会崩溃的速度峰值。
图4所示。在特征初始化过程中连续帧图像搜索的特写视图。在第一帧中,在搜索区域内识别候选特征图像patch。在SLAM地图中添加一个3D光线,该光线必须沿着该光线的方向,并投射到后续的图像中。深度分布假设从0.5 m到5 m,通过相机相对于光线的新位置的不确定性转化为一组椭圆,这些椭圆都被搜索,以生成深度分布的贝叶斯加权的概率。少量的时间步长通常足以降低深度,使其近似为高斯分布,使特征转换为完全初始化的点表示。
图5所示。一帧一帧的演化概率密度超过特征深度的概率密度由一个粒子集表示。100个等权粒子最初均匀分布在0.5 m到5.0 m范围内;随着后续图像测量,分布更加接近高斯分布。
图4为多帧搜索过程,图5为分布从均匀到尖峰的典型随时间演化过程。当深度与深度估计值的标准差之比下降到阈值(目前为0.3)以下时,分布被安全地近似为高斯分布,特征被初始化为映射中的一个点。刚越过此阈值的特征通常保留较大的深度不确定性(参见图1a,其中显示了沿着相机大致观察方向拉长的几个不确定性椭球体),但随着相机移动和获得进一步的标准测量,这种不确定性会迅速缩小。这种初始化的重要因素是重叠椭圆生成的搜索区域的形状。深度先验消除了沿整个极线搜索的需要,提高了初始化的鲁棒性和速度。在实时实现中,通过在每一步对最弱的假设进行确定性剪枝,辅助粒子分布的崩溃速度(并节省相关搜索工作),在典型的运动中,在2-4帧左右就足够了。值得注意的是,我们所进行的大多数实验都涉及到相机的侧向运动,而这种初始化方法在视差很小的光轴运动中效果会更差。自从本节的初始化算法首次在[5]中发布以来,对基本思想的一些有趣的开发已经发布。特别是Sola等人提出了一种算法,该算法通过一组沿三维初始化线间隔的重叠的三维高斯分布来表示刚初始化特征的不确定性。这种方法吸引人的地方首先是高斯分布,它在反演深度上是均匀的,而不是像我们的技术那样在深度上是均匀的——这似乎是对多个样本更有效的使用。此外,他们的技术允许对新特性的测量立即对细化相机定位估计值产生影响,从而改进我们等待特性“完全初始化”的需要。”最近,打算等。[47]表明,再参量化的逆深度允许更简单和有效的初始化标准卡尔曼滤波器框架内,所使用的方法类似于Eade and Drummond[42]在一个新的FastSLAM-based单目SLAM系统。
整个算法的一个重要部分是合理地管理映射中的特性数量,并且需要动态地决定何时应该识别和初始化新特性,以及何时可能需要删除某个特性。我们map-maintenance准则旨在保持可靠的数量特征可见于任何相机位置接近预定的价值取决于具体的测量过程中,所需的定位精度和可用的计算能力:我们发现广角相机拍摄的一些在该地区12给准确的定位没有过重的负担——荷兰国际集团(ing)处理器。我们未来工作计划的一个重要部分是使用[45]中讨论的信息论方法,将诸如此类的启发式建立在坚实的理论基础上。特征“可见性”(更准确地说,预测可测性)是根据相机和特征的相对位置以及初始化特征时相机的保存位置来计算的。必须预测特征位于图像中,但相机也不能从特征的初始化角度转换太远,否则我们将期望相关性失败(注意,我们可以处理全范围的旋转)。只有当相机经过的区域中可见的数量小于这个阈值时,才会向地图添加特征——没有充分的理由,增加特征的数量并增加过滤的计算复杂性是不可取的。通过运行Shi和Tomasi的图像兴趣算子来检测特征,从而在图像中有限大小(约8060像素)的框中找到最佳候选项。搜索框的位置目前是随机选择的,限制条件只是它不应该与任何现有的特征重叠,并且根据目前对相机速度和角速度的估计,任何检测到的特征都不会立即从视野中消失。如果一个特征在预先挖掘的检测次数和匹配尝试之后(当该特征应该可见时)失败的比例超过一个固定的比例(在我们的工作中是50%),则该特征将从地图中删除。这个标准删除了一些“不好”的特征,原因可能有很多:它们不是真正的3D点(位于遮挡边界,如t -结点),位于移动的物体上,是由曲面上的高光引起的,或者重要的是经常被遮挡。
图6所示。(a)两个位置的摄像机的几何形状,观察具有法向n的表面。(b)用于估计平面特征表面三维方位的处理周期
在一段时间内,通过这些地图管理标准对特征进行“自然选择”,从而生成稳定的、静态的、可广泛观察的点特征的地图。场景中的杂波可以被处理,即使它有时会遮挡这些地标,因为对遮挡地标的尝试测量只是失败,不会导致过滤器更新。只有当杂波和地标的外观相似而出现不匹配时才会出现问题,这可能会导致灾难性的失败。但是,请注意,在良好跟踪期间,任何类型的不匹配都是极其罕见的,因为大型功能模板具有高度的唯一性,而active search方法意味着通常只在非常小的图像区域(通常为15-20像素)内尝试匹配。
在3.2节中,我们描述了如何视觉补丁功能从图像中提取流插入地图作为导向,locally-planar表面,但解释说,这些表面的取向是最初只是假设,这证明足够的计算出现的变化——性质的特性在合理的角度变化。这是在第4和第5节中介绍的应用程序中使用的方法。在本节中,我们将像[7]一样展示进一步的方法,并在实时SLAM中使用可视化测量来实际改进每个特征的任意指定的方向,并在特征位置恢复关于局部表面法线的真实信息。这提高了每个特征的可测量性范围,但也使我们朝着实时恢复详细的三维表面地图而不是稀疏地标集的未来目标迈进了一步。我们的方法与Jin等人的一些想法相同。[48]描述了一个序列(但不是实时)算法,他们将其描述为“直接从运动结构”,用于估计特征位置和方向。他们的方法是“直接”地将全局特征跟踪和几何估计结合起来,这与我们在[5]、[27]工作中多年来使用的概率SLAM和主动搜索原理是一样的。当相机在一个高度纹理的物体上移动时,它们可以获得令人印象深刻的patch方向估计。由于我们假设一个特征对应于三维空间中的一个局部平面区域,当相机移动时,它的图像外观将通过改变视角来改变,从而扭曲为该特征捕获的初始模板。翘曲的确切性质将取决于相机的初始和当前位置、特征中心的3D位置和其局部表面的方向。SLAM系统提供了相机姿态和3D特征位置的运行估计。现在,我们还为每个点维护初始摄像机位置和局部表面方向的估计值。这允许从当前的角度预测特性的扭曲外观。在图像中,我们对当前的经度进行测量,利用预测值与测量值之间的差值来更新曲面的方向估计。图6a显示了在两个位置观看定向平面贴片的摄像机的几何形状。将一个视图中的patch外观与另一个视图中的patch外观联系起来的翘曲是由单应性描述的:
其中C是相机的标定矩阵,描述透视投影或我们当地的一个近似透视投影图像与径向畸变,R和t描述摄像机运动,n是曲面法线和x p是图像的投影中心的补丁(我是3 3单位矩阵)。假设该外观预测足以通过SLAM滤波器导出的椭圆不确定区域内的两个图像坐标上的标准穷穷相关搜索找到特征的当前图像位置。下一步是测量预测模板和当前图像之间的翘曲变化。而不是扩大包括所有的穷举搜索潜在扭曲的自由度,锁定了模板的2 d图像位置,我们进行一个更高效的概率inverse-composi一对梯度下降法的图像对齐步骤[49],[50]通过额外的搜索参数,假设经纱的变化会很小,这搜索会发现全球最适合。图6b图形化地显示了特征方向估计的处理步骤。当向地图添加新特性时,我们初始化其表面法线的估计值,该法线与当前的查看方向平行,但具有较大的不确定性。目前,我们对特征法线的估计只与摄像机的法线估计和特征位置的法线估计有微弱的相关性。因此,正常估计不存储在主SLAM状态向量中,而是保存在每个特征的单独双参数EKF中。图7显示了patch定位算法在两个不同场景下的结果:一个室外场景包含一个主平面,一个室内场景中有几个盒子呈现不同方向的平面。在两种情况下,经过几秒钟的跟踪,大多数映射的特征块的方向都恢复得很好。
图7所示。对包含一个主平面的室外场景和包含多个主平面的室内场景进行实时特征块定位。这些视图是在几秒钟的运动后从实时运行的系统中捕获的,并显示了最初假设的线框方向和当前估计的纹理补丁
一般而言,很明显,方向估计只适用于面积较大且具有显著有趣纹理的patch,因为在这种情况下,图像对齐操作可以准确地估计翘曲。这对于在每个特征位置估计准确的法向量来说是一个限制,因为许多特征具有非常简单的纹理模式,比如黑白角上的纹理模式,在这种情况下,全曲经估计受到了严重的限制。我们例子中的场景有些人为,因为这两个场景都包含具有明显平坦纹理的大平面区域。然而,应该记住的是,目前我们工作中估计特征方向的动机是为了提高相机运动的范围,在这个范围内,每一个长期的里程碑都是可以测量的。那些很难得到准确的正常估计值的特征恰恰是那些首先不那么重要的特征,因为它们表现出一种自然程度的观点——它们的外观是不变性的。这些特性的正常估计值是否不正确并不重要,因为仍然有可能匹配它们。我们把这项工作看作从实时移动的摄像机中恢复更完整的场景几何形状的总体方向的一部分。
在第5节介绍MonoSLAM的机器人应用之前,在这一节中,我们给出了在增强现实场景中使用算法的结果,因为虚拟对象被交互式地插入到实时视频中。我们展示了如何将虚拟家具稳定地添加到一个30Hz的图像流中,该图像流是在一个房间内移动手持摄像机时捕获的。
图8给出了这个演示的故事板,这在本文提交的视频中很有特色。在增强现实(AR)中,计算机图形被添加到真实世界的图像中,从摄像机到合成场景。如果图形在图像中移动,就会产生令人信服的效果,就好像它们被锚定在摄像机观察到的3D场景中一样。要做到这一点,相机的运动必须被准确地知道——它的位置可以被输入一个标准的3D图形引擎,比如OpenGL,它将在真实的图像上正确地渲染图形。在这里,我们使用MonoSLAM从实时图像流实时估计手持相机的运动,并将其直接提供给呈现引擎。
在增强现实中,有多种方法可以恢复移动相机的运动,通常附加一些额外的硬件,如附加在相机上的磁性或超声波传感器。它呼吁实现摄像机跟踪只使用实际移动相机的图像运动估计,但先前的ap -针对离线操作,如[3]用于电影后期制作,或需要先验知识的结构观察场景,通过基准目标的位置或之前map-learning阶段审核(见[51])。我们的方法是第一个可以实现令人信服的实时和无漂移的AR,因为相机通过一个场景移动,它第一次观察。在实现过程中,将pn中的线性加速度噪声系数设为标准偏差10ms 2(重力加速度1),角分量设为标准偏差6rads 2。这些加速度的大小从经验上描述了相机在手中快速而平稳移动的近似动力学(该算法无法处理非常突然、剧烈的移动)。所使用的相机是一个低成本的IEEE 1394网络摄像头,带有广角镜头,拍摄频率为30赫兹。软件控制的快门和增益控制被设置来消除运动模糊的大部分影响,但保留高对比度的图像-这实际上是可以在一个正常的明亮的房间。
图8所示。帧从演示实时增强现实使用MonoSLAM,所有直接从系统运行在30赫兹的实时实时。将虚拟家具插入手持摄像机观察到的室内场景图像中。通过单击带有实时图形显示的SLAM地图中的特性,可以定义虚拟对象所依附的3D平面。当相机继续移动时,这些物体就会被固定在图像视图中的场景中。我们展示了跟踪是如何鲁棒的快速相机运动,极端旋转,和明显的遮挡。
从图2a所示的简单目标初始化后,将摄像机移动到进行实验的小房间的大部分进行观察,在几秒钟内动态映射出一组具有代表性的特征。跟踪持续了几分钟(数千帧),SLAM初始化新特性是必要的——当然,由于之前看到的区域被重新访问,很少需要新的初始化。毫无疑问,系统将运行更长的时间而不会出现问题,因为一旦映射特性中的不确定性变得很小,它们就会非常稳定,并将映射锁定在无漂移状态。注意,一旦映射了足够多的邻近特性,就可以完全从墙上删除初始化目标。
增强现实是通过与人类用户的一些交互实现的,用户可以看到高亮显示跟踪特征的图像流,以及可以操纵视角的3D显示中摄像机的估计位置和特征。通过用鼠标选择三个映射的特性,在两个显示器中单击一个,用户定义了一个可以附加虚拟对象的平面。在这个演示中,对象是要添加到室内场景中的虚拟家具项——也许就像在一个虚拟的“厨房配件”应用程序中一样——四个对象被添加到场景中的三个不同平面,对应两个垂直的墙壁和一个台面。一般来说,在这个场景中,算法在一个小房间内提供了鲁棒的实时性能,对摄像机的移动限制相对较少,并且通常可以实现任意长时间的定位。
显然,情况没有找到有用的特性领域的观点(当相机面临一个空白的墙壁或天花板)无法应对,尽管跟踪将定期生存时期只有两个或三个功能随处可见,在这些时间定位的不确定性越来越大,但好跟踪再次夺回特性回到视图。小的和大的循环被系统常规地和无缝地关闭。相机的旋转运动点到一个新的未被注意的场景的一部分,然后返回将导致一个小回路闭合,将未被注意的地区新初始化功能准确地图的一部分,而一个平移运动在房间里需要较大的循环关闭。
主动特征选择机制(章节3.5)导致了特别令人满意的循环关闭行为:它希望通过最大限度地减少不确定性,来为map添加最多的信息,因此需要重新观察在被忽略一段时间后重新出现的特征。这些特征的S i创新协方差得分远高于最近测量的邻近特征,这是因为它们相对于相机位置的不确定性增加。特别是,只要有可能,小循环就会立即关闭,从而减少不确定性的较大增长,而不确定性的较大增长可能会导致关闭大循环时出现问题。
在本节中,我们将介绍如何使用MonoSLAM为领先的类人机器人平台之一HRP-2[52]提供实时SLAM,因为它可以在杂乱的室内工作空间中移动。大多数先进的类人研究都有视觉系统,但在基于视觉的映射和定位方面的尝试有限。Takaoka等人提出了一个有趣的结果,他们使用立体视觉和视觉测程方法来估计类人机器人的运动,同时对机器人附近杂乱的地板进行密集的三维重建。局部运动估计是好的,但这种方法缺乏闭环的能力,会导致漂移随着时间的重复运动。Sabe等人的[54]使用占用网格映射和带有立体的平面检测来检测微型类人机器人前方的自由空间区域,但是依靠里程表(或其他人工楼层标记)进行定位,所以这也不是真正的SLAM。
使用MonoSLAM算法,我们构建网上只有稀疏点地图地标,而不是密度表征[53]或[54],并显示,尽管高加速3 d运动带来的挑战,我们可以形成一个持续的地图允许drift-free实时定位在小范围之内。在不久的将来,典型的类人活动(例如在某种处理或服务任务期间)将涉及在一个小区域内(例如一个房间)进行敏捷但重复的移动。重要的要求是定位和映射应该是可重复的,这样机器人位置的不确定性就不会随着重复运动的时间而增加。
作为标准,HRP-2配备了高性能的前视三目摄像机平台,能够在机器人前方的聚焦观察区域进行精确的三维测量,适合抓取或交互任务。因为它已经表明,相比之下宽视场便于定位和映射,这和其他相关工作决定与一个额外的装备HRP-2广角相机(视野90度左右)并使用输出只对大满贯这架照相机。采用单参数径向畸变模型对广角相机进行标定,如3.5节所示。由于机器人是从观察远壁的位置开始运动的,所以将自然的和人工的特征混合放置在测量的位置,主要是在这面墙上,用于SLAM初始化,而不是标准目标。
HRP-2与其他本体感觉传感器一起,在胸部安装了一个三轴陀螺仪,用来报告人体在200赫兹角速度下的测量结果。在类人SLAM应用程序中,尽管很有可能使用纯视觉的MonoSLAM进行改进,但是这种额外信息的可用性强烈地支持将其包含在SLAM估计中,并且它在降低围绕循环运动的不确定性增长率方面发挥了作用。我们以30hz的视觉频率采样陀螺仪,以便在SLAM滤波器中使用。我们评估角速度测量的每个元素的标准偏差为0:01rads 1。由于我们的单摄像机SLAM状态向量包含机器人在参照系中表示的角速度,所以我们可以将这些测量值直接作为机器人自身状态的“内部测量”包含在EKF中,这是视觉处理之前的一个额外的卡尔曼更新步骤。
图9所示。HRP-2绕着圈走。该机器人可以自主行走,不受绳索束缚,并带有SLAM处理板和到控制工作站的无线以太网连接。所见的支架仅用于安全目的。
我们做了一个真实的SLAM实验,程序设定机器人在半径为0.75 m的圆内行走(图9),这是一个完全探索性的运动,包括在运动结束时闭合一个大环之前观察新的区域。安全监测的原因,较短的运动被分为五个部分之间固定停顿:首先,没有旋转的向前斜向右运动的机器人将自己的位置开始循环,然后4个90度灭弧转向左边,机器人是一个圆形路径,总是无意中行走。行走速度为HRP-2标准速度,总行走时间约为30秒(尽管SLAM系统在机器人暂停时仍以30赫兹持续跟踪)。
图10所示。这是MonoSLAM拍摄的一个人形机器人沿着半径为0.75米的圆形轨迹行走的照片。黄色轨迹为估计的机器人轨迹,椭圆表示特征位置不确定性,颜色编码如图1a所示。地图上的不确定性不断增加,直到闭环关闭并修正漂移。(a)早期勘探和第一次转弯。(b)追溯所有和更大的不确定性。(c)在循环结束之前,最大不确定性。(d)闭环圆的末端和漂移校正。
图11所示。地面真值表征实验。(a)摄像机飞越桌面场景,初始化目标和矩形轨迹在视野中。(b)跟踪轨迹在转角处,外视图实时摄像机跟踪,坐标轴增强图像视图。在这两幅图像中,可以看到悬挂的铅垂线,但没有明显遮挡相机的视野。
图10为实验结果。经典SLAM行为被观察到,新映射特征的不确定性稳步增长,直到早期特征被重新观察到,闭环闭合,漂移修正。由于存储在协方差矩阵中的相关性,可以看到大量的特征同时进入更好的估计位置。这张特征图现在适合长期使用,并且在定位精度上可以完成任意数量的循环而不产生漂移。
在典型环境下,对相机定位估计的精度进行了实验评估。实验的摄像机、运动模型参数、30hz帧频与第4节的交互式增强现实实现相同。一个堆满了各种物体的水平桌面被精确测量的矩形轨道标出,3.3节的标准初始化目标位于一个角落,定义了世界坐标系的原点和方向。关于这个场景的其他信息都不是事先知道的。然后移动手持摄像机,使垂直悬挂的重物紧贴轨道(图11)。通过这种方法,当相机按顺序到达四个拐角“路点”时,就可以准确地知道相机的地面真实三维坐标(估计精度为1厘米)。在最初绘制地图的几秒钟的短暂初始运动之后,相机被移动到矩形四个角上的位置,并一个接一个地暂停。下表给出了相机在四个角的地面真实坐标,然后是MonoSLAM在几个循环修正后的平均值估计值。报告的变异值表示抽样估计值的标准差。
7.结论
在本文中,我们解释了MonoSLAM,一个实时算法,同时定位和映射与一个自由移动的相机。我们的方法的主要原则是概率映射、运动建模和高质量特征的稀疏图的主动测量和映射。主动特性搜索提供了效率,确保不浪费图像处理工作——这确实是一种贝叶斯的“自顶向下”方法。我们已经展示了实验实现,证明了算法的广泛适用性,并希望它将在应用领域产生影响,包括低成本和先进的机器人,可穿戴计算,工业和娱乐的增强现实和用户界面。在未来的工作中,我们计划继续改善算法的性能,以应付更大的环境(室内和室外),更动态的运动,更复杂的场景,具有明显的遮挡,复杂的物体和不断变化的照明条件,创造真正实用的系统。我们将继续关注硬实时操作、普通相机和最小假设。
这项工作将涉及几个方面。为了提高算法的动态性能,并能够处理比目前更快的运动,一个有希望的可能性是研究速度大于30赫兹的摄像机。我们的主动搜索图像处理的一个有趣的方面是,帧速率翻倍并不意味着图像处理的工作量会像自底向上的特征检测方案(见[45])那样翻倍,因为由于运动不确定性的降低,搜索区域会相应地变小。目前有CMOS IEEE 1394相机提供100赫兹的全分辨率捕获,甚至更高的可编程子窗口的速率,我们的积极图像搜索将非常适合从中受益。我们渴望在不久的将来与这样的相机合作。将当前生成的稀疏映射开发成更密集的表示形式,从而更全面地推断环境的几何形状,这肯定会带来回报,首先尝试检测诸如表面之类的高阶实体。
我们在特征块方向估计方面的工作很好地说明了这是可以实现的,因此,我们应该能够构建更完整、更高效的场景表示,同时保持实时的操作。这些高效的高阶地图可能使SLAM系统具有类似人类的能力,能够快速捕捉房间的基本形状。最后,为了将算法扩展到非常大规模的环境中,某种类型的子映射策略显然是合适的,尽管正如前面讨论的那样,还不清楚如何将可视化特性的映射清晰地划分为有意义的子块。正如在子映射(例如[20])上的其他工作所示,只要能够在后台“匹配映射”子映射,就可以通过一组相对松散的估计转换非常成功地加入精确的小比例尺映射网络。这与能够解决“丢失的机器人”的问题密切相关,即根据已知的地图进行定位,之前只有一个较弱的位置,并已证明相对简单的2D激光数据。与纯视觉传感这种类型的匹配可以实现与不变的视觉特性类型像筛选[35](纽曼所使用的一个想法和闭环系统中激光和视觉[55]),或者更有趣的是在我们的背景下通过匹配更高级的场景总3d表面等特性。