Direct Line Guidance Odometry

背景知识

同步定位与地图构建(SLAM或Simultaneous localization and mapping)是一种概念:希望机器人从未知环境的未知地点出发,在运动过程中通过重复观测到的地图特征(比如,墙角,柱子等)定位自身位置和姿态,再根据自身位置增量式的构建地图,从而达到同时定位和地图构建的目的。

机器人绘图

这里说的地图,是用来在环境中定位,以及描述当前环境以便于规划航线的一个概念;它通过记录以某种形式的感知获取的信息,用以和当前的感知结果相比较,以支撑对现实定位的评估。在定位评估方面,地图提供的帮助程度,与感知的精度和质量成反相关。地图通常反映了它被描绘出来的时刻的环境状态,所以它并不一定反映它被使用的时刻的环境状态。

在误差和噪音条件下,定位和地图构建技术上的复杂度不支持两者同时获得连续的解。即时定位与地图构建(SLAM)是这样一个概念:把两方面的进程都捆绑在一个循环之中,以此支持双方在各自进程中都求得连续解;不同进程中相互迭代的反馈对双方的连续解有改进作用。

地图构建,是研究如何把从一系列传感器收集到的信息,集成到一个一致性的模型上的问题。它可以被描述为第一核心问题 :这个世界长什么样?地图构建的核心部分是环境的表达方式以及传感器数据的解释。

与之相比,定位,是在地图上估测机器人的坐标和姿势形态的问题;换而言之,机器人需要回答这里的第二核心问题 ,我在哪?典型的解包含以下两个方面:追踪——通常机器人的初始位置已知;全局定位——通常只给出很少,甚至不给出有关于起始位置环境特征的先验信息。

所以,同步定位与地图构建(SLAM)被定义为以下问题:在建立新地图模型或者改进已知地图的同时,在该地图模型上定位机器人。实际上,这两个核心问题如果分开解决,将毫无意义;必须同时求解。

在机器人能够根据一系列观测值回答“这个世界长什么样”之前,它需要知道的额外信息很多,比如以下:

它自身的运动学特征,
信息的自动获得需要什么样的品质,
附加的支持观测值能从哪些源得到。在没有地图或者方向参考的前提下,对机器人的当前位置估测是一个复杂的任务。[1]这里的"位置"可以简单指代机器人的所处方位,也可以包括它的姿势形态。

在这里插入图片描述

SLAM与视觉里程计(Visual Odometry)

人们有时候会混淆SLAM和视觉里程计的概念。应该说,视觉里程计是SLAM的一个模块,其目的在于增量式地估计相机运动。然而,完整的SLAM还包括添加回环检测和全局优化,以获得精确的、全局一致的地图。

视觉里程计通常作为SLAM系统的前端。它增量式的计算方法能估计邻近帧间的相机运动,但这也意味着邻近帧间的误差会影响之后的轨迹估计,意味着它会随着时间推移,产生漂移。同时,视觉里程计也不含有建图模块。一个完整的SLAM系统会关心相机轨迹和地图的全局一致性,但这也意味着需要更多的计算资源来计算全局的优化。在资源有限、不关心全局路径的场合(如无人机的着陆、短时间控制中),可以考虑只使用视觉里程计,而不必使用完整的SLAM。视觉里程计最主要的问题是如何从几个相邻图像中,估计相机的运动。

VO的目标是根据拍摄的图像估计相机的运动。它的主要方式分为特征点法和直接方法。其中,特征点方法目前占据主流,能够在噪声较大、相机运动较快时工作,但地图则是稀疏特征点;直接方法不需要提特征,能够建立稠密地图,但存在着计算量大、鲁棒性不好的缺陷。

Direct Line Guidance Odometry直线导航测距

Shi-Jie Li, Bo Ren, Yun Liu, Ming-Ming Cheng, Duncan Frost, Victor Adrian Prisacariu ICRA2018
加入直线结构提供整个SLAM系统定位的精度和鲁棒性

SLAM (simultaneous localization and mapping),也称为CML (Concurrent Mapping and Localization), 即时定位与地图构建,或并发建图与定位。问题可以描述为:将一个机器人放入未知环境中的未知位置,是否有办法让机器人一边逐步描绘出此环境完全的地图,所谓完全的地图(a consistent map)是指不受障碍行进到房间可进入的每个角落。

https://www.jianshu.com/p/484e4c2b020a

简介

现代视觉测距算法利用稀疏的基于点的特征进行跟踪,因为它们的计算成本低。当前最先进的方法分为处理从图像中提取的特征的间接方法和直接处理像素强度的间接方法。近年来,基于线的特征已经在SLAM中使用,并且尽管计算成本增加,但已经表现出性能的提高。在本文中,我们提出了基于点的直接单目视觉测距方法的扩展。我们利用线段来引导对关键点特征的有效选取,而不是将线段作为特征进行处理。在我们的方法中,相比于不位于线段上的点,在线段上的点将被作为更健壮的关键特征点进行对待,这样则使得点特征的提取避开了那些一般点特征,从而提高了效率。并且,结合位于线段上的点特征的像素灰度和几何信息,算法精度也会得到提升。

主要贡献:本文工作的目标是通过利用环境中的线段特征,提高特征点的处理效率,同时提高单目视觉里程计算法的性能。

1. 提出了一种基于线段引导的直接视觉里程计算法,简称DLGO(direct line guidance odometry)算法。
2. 根据3D空间中位于一条直线上的点在图像帧之间会一直保持共线这一事实,我们选择位于图像中线段上的点作为特征点,而将不在线段上的杂点去除,从而提高了特征提取的效率,降低了计算消耗。
3. 在每次相机位姿跟踪和地图更新之后,我们将原本位于一条线段上的点调整至共线,这样便在算法中融合了来自线段的几何信息,从而在几乎不增加额外计算负担的情况下,提升了算法精度和性能。

1.介绍

视觉测距(VO)[1]和同时定位与制图(SLAM) [2]是机器人领域中长期研究的主题,由于增强现实,自动驾驶汽车和无人驾驶飞行器的新应用,今天受到欢迎。视觉里程计算和SLAM与许多不同的传感器类型一起使用,例如单目相机[3] - [5],立体相机[6]或RGB-D相机。在这些传感器中,单目相机由于其低成本,功耗和重量而特别受欢迎。
目前的SLAM方法可以大致分为两类,即直接和间接方法。 间接方法[8],[9]从图像中提取关键点,并依靠强大的特征匹配来解决数据关联。通过最小化地标重投影和关键点测量之间的几何误差来构建和细化用于定位的稀疏地图。如果有足够的关键点可用,这些方法能够提供高精度的跟踪,但是在从图像中提取的关键点不足的无特征环境中,它们很容易失败。相比之下,直接方法[10],[11]跳过特征提取的过程,并使用光度误差模型直接对原始像素强度进行操作。由于相机本地化不需要点提取,因此在无特征环境中它们更好。 对于映射,点提取通常使用弱描述符(即梯度),允许在这些情况下提取足够的点。直接方法的性能对环境变化(例如亮度)敏感,这是不希望的。
为了平衡跟踪精度和稳健性,最近提出了基于线的方法。与基于点的特征相比,线对亮度变化不太敏感。 例如,在均匀环境中,由于图像梯度较小,因此不存在许多关键点,但我们通常可以检测到其中的许多边缘。基于线的方法在许多人为制造的环境中特别有用,在这些环境中,判别关键点非常少见。 目前基于点线的方法通常将该线视为一个更强大的特征,并将其视为关键点。 该方法通常计算成本高,对SLAM系统的运行时性能产生负面影响。
在本文中,我们提出了一种直接基于点线的视觉测距法 ,称为直线导引测距法(DLGO ,图1)。
在这里插入图片描述

该方法是对流行的基于点的直接方法的扩展。在传统的基于直接点的方法中,提取的特征点被独立处理,忽略它们之间可能的关系。对于我们提出的方法,我们利用3D空间中一条线上的事实点在帧与帧之间保持共线。此,我们有选择地使用位于图像中的线上的点。通过将它们的强度和几何信息组合在一起而不增加计算成本,使每条线上的点更加独特。通过去除不在线上的点,我们进一步降低了计算成本。在每个跟踪和映射阶段之后,我们调整属于同一行的点的位置,假设属于同一行的点在其整个生命周期中共线。这样,来自线的几何信息被融合到系统中,从而提高了准确性。 与当今流行的基于点的视觉测距方法相比,我们的点线扩展模型在精度和鲁棒性方面优于或获得类似的性能而不牺牲速度。

2.相关工作

3.方法

A 系统结构

由于我们的方法是[10]的扩展,我们的方法的结构遵循类似的模式。 这如图2所示。
图2

在这里插入图片描述

由于依赖于点梯度,直接方法通常会严重影响亮度变化.为了减少这种影响,我们的方法遵循[10]的流程,其考虑了亮度变化并采用更复杂的校准模型来减少这种影响。整个系统由跟踪和映射构成。在跟踪线程中,传入的帧被跟踪到最新的关键帧。之后,IP和IL的位置被更新。 (IP和IL在下一小节中定义。)
The details of this part are shown in Sec. IV.
在Mapping线程中,首先创建一个新的关键帧。 然后使用滑动窗口过滤器对活动关键帧中的所有变量进行局部优化。最后,在新的关键帧上提取新的IP和IL。We give a detailed description of this part in Sec. V.

B点线管理

在这项工作中,我们采用共同的反深度表示作为点参数化。通过其邻域中的梯度提取并描述点。 为了提高系统效率,我们将在线上采样的点应用到系统中,而不是使用复杂的线描述符。该线由其上采样的点描述。(用点代表线的思想值得学习,减少了计算的时间复杂度)。为了管理一条线上的点,我们用两个端点表示一条线。根据是否在优化中考虑,点和线可以分为两部分。优化中不考虑不成熟部分。 相反,有效部分参与优化。 对于未成熟部分,点称为IP(未成熟点),线表示为IL(不成熟线)。IL的两个端点称为ILEP(不成熟线路终点),IL上的其他点表示为ILCP(不成熟线路公共点) 。 我们在有效部分使用类似名称,例如AP(活动点),AL(活动线路),ALEP(活动线路端点)和ALCP(活动线路公共点) 。 这些变量的关系如图3所示。

C.光度误差模型

光度误差以类似的方式定义。在目标帧Ij中观察到Ii的的光度误差定义如下:

4.追踪

本节介绍整个系统的跟踪部分。 在跟踪线程中,首先将传入帧跟踪到最新的关键帧。然后,使用传入帧上的匹配来细化所有活动关键帧中的IP和IL的位置。 最后,如果传入帧远离最近的活动关键帧,它将进入映射线程。

A初始帧跟踪

根据上一个关键帧信息并利用传统的两帧直接图像对准方法来跟踪最新图像帧,在这过程中,一个多尺度图像金字塔和一个连续运动模型将被初始化。

B线段引导精炼

在这步中,所有有效关键帧中的IPs和ILs的位置都会被精炼。

(1) IP精炼
有效关键帧中IP的搜索是通过最小化光度误差在当前帧中进行的,在当前帧中,匹配点被用来更新相对应的IP的深度,若匹配点到IL超出了视图范围或者被更新深度的不确定性过大,则该IP被认为是精炼失败点,如图4中右上图中黑色实心圆所示。
在这里插入图片描述

(2) IL调整
对于一个IL,IL上的ILEPs和ILCPs以与IP精炼相同的方法被精炼。如果一个ILCP精炼失败,则直接将其从IL上去除。如果一个ILEP精炼失败,则对该IL上的所有ILEPs和ILCPs的精炼结果进行检查,进而去除精炼失败点,新的IL由剩下的点构成。如果剩下的点少于3个,则该IL被释放,IL上的点成为IP,如图4所示。

(3) IL精炼

通过将IL上的所有ILEPs和ILCPs投影到3D空间的方式将该IL投影到3D空间,这样形成了一个新的3D线段,进而将这个3D线段重投影至成像平面,得到一个新的IL。最后,通过在该新的IL上投影旧的ILEPs和ILCPs,从而得到新的ILEPs和ILCPs。
4. 新的关键帧决策
在跟踪线程的最后阶段,通过一个考虑相机视野变化、相机平移和相机曝光时间变化的加权和,系统会创造出一个新的关键帧。

第二部分 建图线程

  1. 滑动窗口优化

在优化之前,所有图像帧中的IPs和ILs均被初始化为APs和ALs,IPs和ILs的位置被当作APs和ALs中的初始值。这样APs和ALs就加入了优化中,在优化过程中,ALEPs和ALCPs被当作与APs相同的方式进行处理。总的光度误差如下式所示,

总的光度误差的优化由高斯-牛顿算法进行优化。

  1. AL精炼

优化的每一步迭代之后,都会执行一个AL精炼程序。这个过程类似于上文所述的IL精炼。我们的方法中,ALEPs和ALCPs应该是一直共线的。但是在高斯—牛顿算法中,每个变量是被独立处理的,这使得在优化过程中,这种共线性质可能会被改变,这是不允许的。我们进行AL精炼的目的就是使算法在优化过程中保持这种共线性质。最后,那些远离当前帧的APs、ALs和有效帧将会被边缘化,这使得优化中的变量数量保持一定的范围,从而提高算法的计算效率。

  1. IP和IL生成

(1) IP生成

构造一个3层的图像金字塔,进而对于每层金字塔,图像被分割成小的碎片。最后,在每个图像碎片中,灰度梯度值最高的点被选为关键点。通过这种方式,被选择的点得以均匀分布在图像中。

(2) IL生成

线段特征的提取采用LSD线段提取算法。输入的图像首先用高斯滤波进行处理,进而线段被检测。考虑到执行效率,那些太靠近线段的点将被滤除。对于每个线段,我们都对其应用了一种自适应的距离门槛。可能会存在线段之间互相重叠的现象,这会产生冗余计算。针对该问题,我们采用基于角度—栅格的方法来合并相似的线段。我们选择5度作为栅格尺寸。所有线段的角度首先被归一化,进而放在相应的栅格中。在每个栅格中,距离最小的线段将会被合并。

主要结果

分别在数据集ICL-NUIM、TUM RGB-D、TAMU RGB-D和Author-collected RGB-D dataset上,将LPVO算法与ORB、DEMO、DVO、MWO、OPVO算法进行对比试验 。其中,ORB、DEMO和DVO算法是对相机旋转运动和平移运动进行联合估计,MWO和OPVO算法是对旋转运动和平移运动进行独立估计。同时,为了使对比试验结果更具说服力,我们将ORB算法中的回环检测环节删去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值