文章快速检索  
  高级检索
基于点线特征和边缘特征的单目视觉里程计算法
陈小聪, 何元烈, 岑仕杰     
广东工业大学计算机学院, 广东 广州 510006
摘要: 针对快速运动的相机很容易因为运动模糊和纹理缺失而导致光流追踪失败的问题,设计了一种点、线、边缘特征结合的单目视觉里程计算法,突破原先算法仅包含点或线特征的思想.首先,在流行的半直接法PLSVO(Point-Line Semi-direct monocular Visual Odometry)算法上增加了边缘特征点提取,使算法提高定位精度,同时对低纹理和结构化环境具有鲁棒性.然后,利用关键帧提取策略提升算法的定位精度,同时加快地图点种子的收敛速度.最后,解决边缘特征点在算法中的图像对齐、图块特征点匹配、位姿优化和地图点优化问题.本文算法在EuRoC和TUM数据集上进行了估算.实验结果表明,本文算法的定位精度和稳健度都优于PLSVO算法.
关键词: 边缘特征     线特征     位姿优化     地图点优化     单目视觉同步定位与地图构建    
Monocular Visual Odometry Algorithm Based on Point-line and Edge Features
CHEN Xiaocong, HE Yuanlie, CEN Shijie     
School of Computers, Guangdong University of Technology, Guangzhou 510006, China
Abstract: To address the problem that fast-moving cameras can cause optical-flow tracking failures due to motion blurring and low-textured scenes, we design a monocular visual odometry algorithm based on points, lines, and edge features, whereas traditional algorithm contain only point or line features. First, we extend the popular semi-direct approach to monocular visual odometry known as point-line semi-direct monocular visual odometry (PLSVO) to include edge segments, thereby obtaining a more robust system capable of dealing with both low-textured and -structured environments. We use a keyframe extraction strategy to improve the localization accuracy of the algorithm and we use initialization optimization to speed up the convergence of the map points. Lastly, we optimize the pose and map points to solve four problems, i.e., image alignment of edge feature points, individual feature alignment, and pose and structure refinements. We thoroughly evaluate our method on the EuRoC and TUM datasets. The experimental results show that the proposed algorithm performs better than the PLSVO in terms of both tracking accuracy and robustness.
Keywords: edge feature     line feature     pose optimization     map-point optimization     monocular visual simultaneous localization and mapping    

0 引言

视觉同步定位与地图构建(vSLAM)[1]技术在机器人导航任务中越来越重要,被应用于无人机[2-3]和虚拟/增强现实[4]中.传统算法在很大程度上依靠特征提取和特征匹配的特征点法来估算运动和结构[4-5].近年来,直接法迅速普及[6-7].直接法利用图像中的像素光度值信息来进行追踪和优化,无需昂贵的特征提取和特征匹配.此外,直接法在低纹理场景中具有较大的稳健性和运用性.直接法虽然很好,但需利用整张图像的信息去进行追踪和优化,对内存资源是一个大挑战,单目无法达到实时性要求,所以稀疏直接法应运而生.

Engel提出了直接稀疏里程计(DSO)[7]和LSD-SLAM[8]. DSO算法利用光度标定建立相机模型,可提高定位精度,但会随着时间的推移而漂移,并且不会重复使用离开视场(FOV)的地图点. LSD-SLAM仅对梯度变化比较明显的像素进行跟踪并且构建半稠密的地图,但算法在定位精度上有限且计算量较大. Forster等[9]提出了一种基于Fast的半直接法单目视觉里程计(SVO)算法,计算速度大大提高,但该算法只用了点特征,无法在结构化环境和低纹理环境中找到特征点,从而导致算法运行失败.拥有点特征的视觉SLAM或里程计算法,过于依赖环境存在的角点.

由于点特征的不足,线特征作为一种新的发现,逐渐被运用于大多SLAM算法中. Gomez-Ojeda[10]在SVO的基础上提出了基于点线结合的半直接法单目视觉里程计,本文简称它为PLSVO(point-line SVO). Pumarola[11]提出了PL-SLAM(visual SLAM with points and lines),也是一种点线结合的单目视觉SLAM算法.空间线的表示方法,采用正交表示作为最小化参数来模拟线特征及点特征,可分析得出线参数重投影误差的雅可比矩阵.线段检测LSD(line segment detector)[12]算法被认为是比较好的方法.它是按照梯度方向一致性直接将临近像素编组为线段区域,能在线性时间内得出亚像素级的精度检测结果.

LSD算法虽然在速度和精度上取得不错效果,但采集特征时没有筛选和合并机制,导致在图像局部密集区域找到大量相似线段,算法难以区分.另一方面,线特征可以检测到图片区域中一定长度的线段,但是当线段发生误提取或者边缘断裂时,会导致算法误匹配.同时,PLSVO算法寻找相对较长的线特征,这样容易导致图片均匀分块进行特征提取时,线特征的长度远超过块区域的大小,所以线特征没有被考虑在分块提取特征策略中,而是在整张图片里面进行寻找.针对线特征的不足,本文提出边缘特征点.相比点线特征,能获得更多的结构化信息,从而增加算法的稳健性.同时,边缘特征提取作为一种新数据,能增强算法的数据关联性,从而提高算法的定位精度.本文在PLSVO的基础上设计了一种基于点线特征和边缘特征点[10]结合的单目视觉里程计算法(edge-point-line SVO,EPLSVO)算法,算法框架见图 1. EPLSVO算法的主要贡献有:

图 1 在PLSVO的基本框架上增加边缘特征且应用于图中每一步骤 Fig.1 Adding edge features to the basic framework of PLSVO and applying them to each step in the pipeline

1) 在点线特征的基础上,增加了边缘特征点,给出了边缘特征点参与稀疏点亮度的位姿估计、边缘特征点的块匹配、位姿的优化和地图点的优化的具体计算公式.

2) 修改原先关键帧的提取策略,提高了算法的定位精度,同时使算法在运行过程中不会轻易进入重定位模式.

3) 对当前关键帧新提取的种子(地图点)进行初始化改进,加快了种子的收敛速度.

本文使用了两个数据集对EPLSVO算法进行验证,并比较了EPLSVO算法与ORBSLAM2(open-source SLAM system for monocular)[13]和PLSVO[10]两个算法的定位精度. ORBSLAM2[13]是ORBSLAM[14]的提升版本.通过实验可见,EPLSVO算法的定位精度比PLSVO算法提高了64%.

1 边缘特征提取

本节内容主要涉及边缘特征提取.边缘特征的增加,提高数据关联性从而提高算法的定位精度.

1.1 特征提取

本文对图像进行点特征、线特征和边缘特征提取.边缘特征点的提取,主要寻找图像中比较小的边缘线段.边缘特征点和点特征形成互补,被EPLSVO算法运用于图像均匀分块特征提取中. EPLSVO算法在整个图像中寻找点特征、线特征和边缘特征,如图 2所示.红色点为边缘特征点,绿色为点特征,蓝色为线特征.

图 2 点、线、边缘特征提取效果图 Fig.2 The effect diagram of point feature, line feature and edge feature extraction

1) 点特征提取.在经典的VO或SLAM算法中,点特征的提取包含了SURF(speed up robust feature)[16],SIFT(scale invariant feature transforms)[15],FAST(feature from accelerated segment test)方法. SURF和SIFT方法提取到的点特征相对稳定,因为使用了高斯拉普拉斯来描述尺度空间,所以不会因为视角的变化和噪音的干扰而导致点特征消失,但实时性差. FAST方法提取到的特征点,速度快且质量好.所以,EPLSVO算法仍采用FAST方法来提取点特征.

2) 线特征提取.线特征提取使用LSD(line segment detector),核心是基于像素合并且误差控制. LSD是一种能够在线性时间内得到亚像素级精度的直线检测分割算法,并且可以设置采样率及判别两个像素是否能合并的方向差.图像中的直线寻找,相当于在图像中找到梯度变化较大的像素,也是在图像中寻找局部属于直的轮廓,这是其直线分割的原因. EPLSVO算法中,线特征是用其两个端点来表示.

3) 边缘特征点提取.在边缘特征点[17]的提取上,本文使用传统的Canny算法[18].该算法可以从不同的视觉对象中提取有用的信息,从而避免需要处理大量的数据量.本文算法对边缘特征提取主要有5个步骤:第1步,利用高斯滤波器滤除噪声,使图像平滑;第2步,计算图像中每个像素点的梯度方向和强度;第3步,利用非极大值抑制原理,用来消除边缘检测带来的杂散响应;第4步,应用双阈值原理来确定真实和潜在的边缘;第5步,通过抑制孤立的弱边缘从而实现从边缘检测中找到局部相对应的特征点.

EPLSVO算法保存了边缘特征点在图像中的像素位置及梯度方向.梯度方向是为边缘特征点的块匹配和位姿优化做准备.边缘检测的结果如图 3所示.

图 3 图像边缘检测 Fig.3 Image edge detection
1.2 特征均匀化

EPLSVO算法的图像图块均匀化特征提取效果比PLSVO算法好. PLSVO算法只是对点特征进行均匀化提取,使点特征分布于整张图片.但由于环境的复杂性,点特征通常无法均匀分布于整张图片中.本文在PLSVO算法的基础上增加了边缘特征点.边缘特征点拥有线段的性质,它是利用点的性质加上点的梯度来表示线.在代码中,PLSVO的点特征数量和EPLSVO的点特征加上边缘特征的阈值设置是一样的.从图 4可看到,EPLSVO算法比PLSVO算法的特征提取分布更加均匀,图 4(b)在点特征不存在的图块中寻找边缘特征点(红色).

图 4 EPLSVO和PLSVO均匀化处理比较 Fig.4 Comparison of EPLSVO and PLSVO homogenization
2 关键帧处理和初始化策略

关键帧提取策略可以解决算法一定程度的旋转问题,提高算法的定位精度.此外,种子初始化可以加快种子的收敛速度.

2.1 关键帧的提取策略

本文对PLSVO算法关键帧提取策略进行改进.使得算法能适应一定旋转度.

首先,PLSVO算法判断当前帧是否需要设置为关键帧,是先把所有地图点从世界坐标系转换到当前帧坐标系下,从而得到在当前帧坐标系下的地图点坐标.然后,用当前帧坐标系下的地图点的三维坐标的数据分别除以当前帧的场景深度,若得到的比值大于阈值,则设置为关键帧.

PLSVO算法的关键帧提取策略可以防止平移过大而导致跟踪失败的情况,但没有解决因旋转过大而导致跟踪失败的情况.为了解决旋转较大问题,本文EPLSVO算法使用相邻两帧的李代数的欧氏距离表示旋转的变化强度:

(1)

其中,k代表当前帧,k-1代表上一帧,ξk代表当前帧的李代数,uk-1,k代表当前帧和上一帧的李代数的变换差距.

两个关键帧之间会存在多帧普通帧,本文需要计算从第i帧到第j帧的李代数的变化强度,称为变换强度,可以通过式(2)获得:

(2)

当变换强度大于一定阈值时,EPLSVO算法则把当前帧设置为关键帧,从而改进PLSVO算法只考虑平移过大的情况.通过下面的实验结果可知,该改进也提升了算法的定位精度.

2.2 追踪初始化

本文主要借鉴文[19]中的初始化方法,使用H矩阵(单应矩阵)和E矩阵(本质矩阵)来对EPLSVO算法进行初始化.因为光流追踪会存在累计误差,所以追踪的质量一定程度上依靠初始化的质量.而对于选择H矩阵还是E矩阵来进行初始化,主要考虑光流法追踪前后像素位置差值的均方差来确定本文要使用的模型.若方差过大,则选择E本质矩阵求解初始位姿;若方差过小,则选择H单应矩阵求解初始位姿.

2.3 种子初始化

在建图线程上,EPLSVO算法使用的是贝叶斯模型(Beta+高斯均匀混合模型分布)[20],主要执行两个操作:1)如果处理的是关键帧,就提取关键帧上的新特征点,作为初始种子放到一个种子队列中,等待下一帧的到来进行更新. 2)如果处理的是普通帧,则用普通帧的信息来更新所有种子点的概率分布.如果某个种子点的深度分布已达到收敛,那么就把它放到地图中作为地图点,供追踪线程使用.

在第1个操作中,PLSVO算法每次检测到新的特征点时,使用上一个关键帧的平均深度初始化种子,并加入到种子队列中,等待下一帧的到来进行更新,这样导致种子收敛速度太慢,不能及时为跟踪线程提供足够的地图点,容易导致PLSVO算法跟踪失败.为了加速种子收敛速度,EPLSVO算法在关键帧中寻找新的特征点且设为新种子时,利用较好的深度值来初始化种子,从而可以加快种子的收敛速度.这样不会导致建图线程上的大多数种子未收敛,但追踪线程却一直在更新. EPLSVO算法的改进为:

1) 当获取的特征点为点特征时,构造以点特征为中心且半径为6个像素的圆,在圆内寻找与点特征像素值相差低于阈值的地图点,用地图点的深度值作为点特征初始化的深度值.若没找到,则以上关键帧平均深度为初始值.

2) 当获取的特征点为线特征时,构造以线特征两个端点分别为中心且半径为6个像素的圆,在圆里寻找与线特征端点像素值相差低于阈值的地图点,用地图点的深度值作为线特征端点初始化的深度值.若没找到,则以上关键帧平均深度为初始值.

3) 当获取的特征点为边缘特征点时,构造以边缘特征点为中心且半径为6个像素的圆,在圆内寻找与边缘特征点像素值相差低于阈值的地图点,用地图点的深度值作为边缘特征点初始化的深度值.若没找到,则以上关键帧的平均深度为初始值.

3 地图点和位姿优化

EPLSVO算法使用边缘特征点作为位姿估计的一部分,算法需不断地去追踪每一帧中的边缘特征点以此求解位姿,然后进行边缘特征点的图块匹配,最后通过BA[21]去优化位姿和地图点.

3.1 稀疏点亮度的位姿估计

当前帧追踪主要使用图像对齐跟踪[22]. EPLSVO与PLSVO算法一样,是以当前帧的投影点像素值为基准,通过优化参考帧投影过来的像素点位置,以此优化这两个像素之间的残差.通过文[9]可以得到点特征的像素残差为δIp(ξk-1,kui).

边缘特征点和点特征都是点表示,可以通过点特征的像素残差来推导出两帧之间的边缘特征点(对应同一个地图点的边缘特征点)的像素残差公式,本文使用δΙe(ξk-1,kvk)来表示.对于线特征的像素残差,本文使用文[10]的像素残差δIl(ξk-1,klj).

对于位姿增量ξk-1,k*的求解可以由式(3)的总损失函数公式求解得到,其中,下标p代表点特征,下标I代表线特征,下标e代表边缘特征;ρLE分别代表所观测到的点特征、线特征和边缘特征.式(4)是边缘特征点对应的雅可比矩阵推导,ek是地图点,对应的边缘特征点为vk.损失函数(3)的求解通过高斯牛顿最小二乘迭代下降法,最后得出更新后的位姿ξk-1,k.但经多次实验,列文伯格-马夸尔算法收敛更快,所以在EPLSVO算法里面,使用列文伯格—马夸尔算法.

(3)
(4)
3.2 图块的特征点匹配

首先,通过3.1小节的求解过程,把所有关键帧图像上分散的5个点(4个顶点和一个中点)向当前帧投影,若能投影成功,则认为该关键帧与当前帧是共视.然后,把所有的共视关键帧按照与当前帧的距离来排序,从近到远依次把这些关键帧上面的特征点对应的地图点在当前帧上进行投影,同一个地图点只被投影一次.对于那些能够成功投影且能以投影位置为中心取到8×8图块的地图点,将被算法储存利用.

EPLSVO算法利用与当前帧共视的地图点(包括点特征、线特征及边缘特征点)来计算它们在当前帧的投影位置.由于当前帧位姿估计的粗劣性,这个投影位置与真实的位置相差2~3个像素.点特征和线特征的图像特征块匹配可以参考文[9]和文[10]进行计算.边缘特征点的块匹配,首先把边缘地图点投影到当前帧上,得到边缘特征点的像素位置.然后把它作为中心并取10×10的图块,通过仿射矩阵的逆,可以得到对应参考帧上且对应层数图像上的像素点位置(相对图块中心点的).这些映射到参考帧位置的点组合起来,可以组成10×10(逻辑连续,物理不连续)的图块.从参考帧10×10图块中取出中间的8×8图块.对参考帧图块位置进行优化,使两帧之间图块残差最小.残差公式为

(5)

其中,g表示边缘特征点的梯度方向向量,⊙代表矩阵乘法Hadamard,δI(v)表示两个像素点的残差,v表示这个像素点在当前帧上且在对应目标图块上的位置,v表示像素点在参考帧上且在对应参考图块上的位置,Icur表示当前帧上点的像素值,Ir表示参考帧上点的像素值,m表示两个图像块的均值差.式(5)中,当两个像素值差为横向时,乘以梯度的横方向x值;当为纵方向时,则乘以梯度的y值.

m作为要优化变量.通过固定参考帧图块,优化当前帧图块.通过式(6)可以求得增量向量

(6)

代表参考图块上像素点的雅可比矩阵,是点v像素位置在参考帧图像块上关于横纵坐标的雅可比矩阵.对Ir图像块所有边缘特征点进行这样的操作,再通过列文伯格-马夸尔算法进行迭代,直到收敛时退出迭代.

边缘特征点仅在梯度的方向上进行调整.右左下上像素的变化,映射到梯度的方向上,得到该像素的雅可比矩阵在梯度方向上的变化.在获取边缘特征点时,梯度会被保存并用于算法的匹配模块和优化步骤中.

3.3 位姿优化

通过3.1小节可求取到粗糙的当前帧位姿,3.2小节可获得特征点的匹配.通过粗糙的位姿变换,把所有地图点投影到当前帧上,对投影成功的地图点存入到当前帧投影位置,且通过3.2小节到当前帧的特征点的像素位置来进行残差优化.

通过文[9]可知点特征和线特征的位姿残差计算公式.对于边缘特征点,本文使用了re(TkwVkk)来表示其残差,具体计算与点特征相似,其中,Tkw表示当前帧(第k帧)的相机位姿,w为世界坐标系,Vkk代表的是当前帧的第k个边缘特征点. 3种类型特征点的总损失函数为

(7)

其中,PjkQjk代表线特征两边的端点.

对于位姿的求解,EPLSVO算法依然使用列文伯格-马夸尔算法进行迭代求解,并且应用Cauchy核函数来调整误差的权重,收敛后停止更新.

3.4 地图点优化

地图点的优化与3.3小节的位姿优化一样,同样使用BA进行优化,其中位姿和地图点分开进行优化能提高优化速度.通过将地图点投影到每个关键帧上,并且与其匹配点进行重投影误差计算,最后优化地图点的3维位置.每个地图点分别进行5次优化,若优化的误差平方较上次优化的误差平方和小,则接受这个地图点的更新.

边缘特征增量矩阵求解:首先需要将重投影误差映射到梯度方向上,以求取误差和梯度方向的点积;然后,左乘梯度方向,相当于优化雅可比矩阵在梯度方向上的映射.点特征和线特征的增量矩阵更新公式见式(8),边缘特征的增量矩阵更新公式见式(9).

(8)
(9)

其中,J是雅可比矩阵,σ是需要更新的增量矩阵,δ是残差,grad是边缘特征点的梯度方向向量.

通过固定位姿来更新地图点的位置.地图点的优化本文也使用列文伯格-马夸尔算法进行迭代求解.

4 实验与分析

EPLSVO算法和PLSVO算法都是视觉里程计.为了公平起见,对ORBSLAM2算法关闭回环功能,开启追踪模式,并且使用EuRoC[23]和TUM[24]数据集.

验证基于点线特征和边缘特征的单目里程计算法的可行性,需统计EPLSVO算法在EuRoC数据集上每一帧的平均处理时间,并且将其与PLSVO,ORBSLAM2算法每一帧平均处理时间进行比较.通过在公共数据集上运行且与PLSVO和ORBSLAM2算法进行定位精度比较,来验证EPLSVO算法的有效性.实验环境为Ubuntu16.04,g2o[25].

4.1 算法耗时比较

PC平台配置为:CPU为Intel i7-9700处理器,主频2.6 GHz,内存16 G.算法使用EuRoC[23]数据集,每个数据集进行5次实验,统计出每个数据集每帧的平均处理时间,如表 1所示.

表 1 算法平均每一帧的处理时间/ms Tab.1 Average time costs of the algorithms of per-frame /ms
EuRoC序列 ORBSLAM2 PLSVO PLSVO+边缘特征 PLSVO+种子初始化 EPLSVO
MH_01 62.03 50.04 53.06 45.23 48.13
MH_02 60.34 41.52 44.08 37.21 39.71
MH_03 57.46 38.34 41.65 34.67 36.79
MH_04 58.28 34.83 37.89 29.88 31.67
MH_05 56.74 37.05 41.08 33.21 36.49
V1_01 58.93 38.34 43.47 34.26 37.06
V2_01 56.58 34.78 37.09 31.58 32.51

表 1可以看出,ORBSLAM2花费时间相对比较多,主要是因为每一帧都需要进行特征提取、特征匹配操作. PLSVO仅在关键帧上进行特征提取且无需匹配,因此花费时间相比ORBSLAM2少.本文在PLSVO基础上增加边缘特征,花费时间会比PLSVO多,增加的时间主要花费在Canny边缘特征提取上.对于最后EPLSVO算法在时间上比PLSVO少,主要是因为使用种子初始化策略,加快每一帧中地图点的收敛速度,从而减少每一帧的处理时间. PLSVO+种子初始化可以减少PLSVO的运行时间,一定程度上弥补了边缘特征带来的时间消耗. EPLSVO算法的关键帧策略只在关键帧上执行且计算量不大,则可以忽略不计.在同一数据集上运行PLSVO和PLSVO+种子初始化算法,得到它们的定位精度.实验结果可以发现,PLSVO+种子初始化仅缩短了时间的处理,但对定位精度几乎没有影响.

4.2 公开数据集仿真实验

本文对数据集EuRoC,TUM进行仿真实验,使用绝对轨迹误差(absolute trajectory error,ATE)来估计实验.绝对轨迹误差是计算估计位姿和真实位姿之间的欧氏距离均方根误差(root mean square error,RMSE),计算公式为

(10)

其中,h(x)为估计值,y为真实值,m为比较的个数. EuRoC和TUM数据集都是双目的数据,所以本次实验只使用EuRoC和TUM数据集的左摄像头数据进行实验.

4.2.1 在EuRoC数据集的实验结果

EuRoC数据集是苏黎世联邦理工学院公开的一个用于室内MAV的双目+IMU数据集.

本文使用EVO(evaluation of odometry and SLAM)工具,求得APE的RMSE. 表 2所示为EPLSVO算法与ORBSLAM2及PLSVO两个算法的对比实验.从表 2的7个数据集对比结果可得,本文的EPLSVO算法定位精度比PLSVO算法高64%,EPLSVO算法精度与ORBSLAM2算法相近.在MH05数据集上,EPLSVO算法定位精度比ORBSLAM算法高.在表 2中可发现,PLSVO+关键帧策略和PLSVO+边缘特征,在一定程度上改进了PLSVO算法的定位精度.边缘特征主要增加了数据的关联性,提高算法的定位精度. 图 5是3种算法与真实轨迹的对比图,图 6是EPLSVO算法在MH04和MH05数据集上与真实轨迹(虚线)的对比图.

表 2 EuRoC数据集下误差对比实验 Tab.2 Error comparison experiment in EuRoC dataset
EuRoC序列 绝对关键帧轨迹RMSE /m
ORBS-LAM2 PLSVO PLSVO+关键帧策略 PLSVO+边缘特征 EPL-SVO
MH_01 0.06 0.37 0.31 0.21 0.12
MH_02 0.11 0.75 0.67 0.29 0.23
MH_03 0.07 1.37 1.24 0.18 0.15
MH_04 0.37 1.44 1.37 0.63 0.58
MH_05 0.25 1.43 1.26 0.26 0.21
V1_01 0.16 0.59 0.49 0.31 0.26
V2_01 0.08 0.34 0.29 0.14 0.09
图 5 ORBSLAM2、EPLSVO和PLSVO在MH04和MH05数据集上与真实轨迹的比较 Fig.5 Comparison of ORBSLAM2, EPLSVO and PLSVO on absolute trajectories on MH04and MH05 data sets
图 6 EPLSVO和真实轨迹图(虚线)在MH04和MH05数据集的比较 Fig.6 Comparison of EPLSVO and absolute trajectory maps (dashed lines) in MH04 and MH05 datasets
4.2.2 在TUM数据集的实验结果

TUM数据集是德国慕尼黑工业大学公开的一种RGBD SLAM系统标准评价方案.该数据集同时提供了评估算法定位精度的真实轨迹.

表 3所示,在绝对轨迹误差上,EPLSVO算法比PLSVO算法定位精度高,与ORBSLAM2算法相近.在Fr1_floor数据集上,ORBSLAM2算法因为无法初始化则运行失败,但EPLSVO算法运行成功且取得不错的定位精度,说明EPLSVO算法在稳健性上表现更好.从表 3可得,对于关键帧策略和边缘特征的增加,在一定程度上提高了算法的精确度.例如在Fr1_room上,PLSVO+关键帧策略体现出比PLSVO算法更好的稳健性. 图 7表明EPLSVO算法和ORBSLAM2算法在Fr3_long_office_house数据集上紧贴真实轨迹(虚线),PLSVO背离真实轨迹.注:PLSVO给出的数据是个人在电脑上进行的实验且实验结果跟PLSVO原论文的结果数据相近,具有一定的参考性和真实性.

表 3 TUM数据集下误差对比实验 Tab.3 Error comparison experiment in TUM dataset
TUM序列 绝对关键帧轨迹RMSE /m
PLS-VO ORBS-LAM2 PLSVO+关键帧策略 PLSVO+边缘特征 EPLS-VO
Fr1_desk 0.61 0.01 0.57 0.13 0.04
Fr1_floor 0.26 - 0.25 0.22 0.22
Fr1_room - 0.19 0.96 0.52 0.40
Fr1_xyz 0.03 0.01 0.03 0.03 0.01
Fr2_xyz 0.04 0.01 0.03 0.02 0.01
Fr3_office 0.16 0.01 0.12 0.09 0.06
图 7 ORBSLAM2、EPLSVO和PLSVO在Fr3_long_office_house数据集上与真实轨迹的比较 Fig.7 Comparison of ORBSLAM2, EPLSVO and PLSVO on absolute trajectories on Fr3_long_office_house data sets
5 结论

本文结合点、线、边缘特征的方法,首先通过改进PLSVO,增加边缘特征点,使点特征和边缘特征点均匀分布于整个图像中,再单独提取线特征.进一步就是关键帧提取策略,种子初始化步骤进行改进.在特征匹配中,提出对边缘特征点进行块匹配的方法.在优化位姿和地图点的时候,利用了边缘特征点的梯度方向,使其更快收敛.最后EPLSVO算法相比于PLSVO的定位精确度(APE)提高了64%. EPLSVO在一定程度上改善了PLSVO算法,并且平均每一帧的处理速度比ORBSLAM2快,稳健性也比ORBSLAM2好.对于EPLSVO算法接下来主要将继续进行纯旋转和光照问题的解决.

参考文献
[1] 刘浩敏, 章国锋, 鲍虎军. 基于单目视觉的同时定位与地图构建方法综述[J]. 计算机辅助设计与图形学学报, 2016, 28(6): 855–868.
Liu H M, Zhang G F, Bao H J. A survey of monocular simultaneous localization and mapping[J]. Journal of Computer-Aided Design & Computer Graphics, 2016, 28(6): 855–868.
[2] Nistér D, Naroditsky O, Bergen J R. Visual odometry for ground vehicle applications[J]. Journal of Field Robotics, 2006, 23(1): 3–20.
[3] Lee S H, De Croon G. Stability-based scale estimation for monocular SLAM[J]. IEEE Robotics and Automation Letters, 2018, 3(2): 780–787. DOI:10.1109/LRA.2018.2789841
[4] Klein G, Murray D. Parallel tracking and mapping for small AR workspaces[C]//IEEE & ACM International Symposium on Mixed & Augmented Reality. New York, NJ, USA: ACM, 2007: 1-10.
[5] Davison A J, Reid I D, Molton N D, et al. MonoSLAM:Real-time single camera SLAM[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2007, 29(6): 1052–1067. DOI:10.1109/TPAMI.2007.1049
[6] Engel J, Schöps T, Cremers D. LSD-SLAM: Large-scale direct monocular SLAM[M]//Lecture Notes in ComputerScience: vol. 8690. Berlin, Germany: Springer-Verlag, 2014: 834-849.
[7] Engel J, Koltun V, Cremers D. Direct sparse odometry[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2018, 40(3): 611–625.
[8] Engel J, Schöps T, Cremers D. LSD-SLAM: Large-scale direct monocular SLAM[M]//Lecture Notes in ComputerScience: vol. 8690. Berlin, Germany: Springer-Verlag, 2014: 843-849.
[9] Forster C, Pizzoli M, ScaramuzzaD. SVO: Fast semi-direct monocular visual odometry[C/OL]//2014 IEEE International Conference on Robotics and Automation. Piscataway, NJ, USA: IEEE. (2014-09-29)[2019-12-01]. https://ieeexplore.ieee.org/document/6906584.
[10] Gomez-Ojeda R, Briales J, Gonzalez-Jimenez J. PL-SVO: Semi-direct monocular visual odometry by combining points and line segments[C/OL]//2016 IEEE/RSJ International Conference on Intelligent Robots and Systems. Piscataway, NJ, USA: IEEE. (2016-12-01)[2019-12-05]. https://ieeexplore.ieee.org/document/7759620/.
[11] Pumarola A, Vakhitov A, Agudo A, et al. PL-SLAM: Real-time monocular visual SLAM with points and lines[C]//2017 IEEE International Conference on Robotics and Automation. Piscataway, NJ, USA: IEEE. (2017-07-24)[2019-12-06]. https://ieeexplore.ieee.org/document/7989522.
[12] Gioi R G V, Jakubowicz J, Morel J M, et al. LSD:A fast line segment detector with a false detection control[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(4): 722–732. DOI:10.1109/TPAMI.2008.300
[13] Mur-Artal R, Tardos J D. ORB-SLAM2:An open-source slam system for monocular, stereo, and RGB-D cameras[J]. IEEE Transactions on Robotics, 2017, 33(5): 1255–1262. DOI:10.1109/TRO.2017.2705103
[14] Mur-Artal R, Montiel J M M, Tardos J D. ORB-SLAM:A versatile and accurate monocular SLAM system[J]. IEEE Transactions on Robotics, 2015, 31(5): 1147–1163. DOI:10.1109/TRO.2015.2463671
[15] Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91–110. DOI:10.1023/B:VISI.0000029664.99615.94
[16] Bay H, Ess A, Tuytelaars T, et al. Speeded-up robust features[J]. Computer Vision & Image Understanding, 2008, 110(3): 404–417.
[17] 李竹林, 王文东, 赵宗涛, 等. 改进的边缘特征点提取算法[J]. 计算机工程与应用, 2009, 45(2): 63–65.
Li Z L, Wang W D, Zhao Z T, et al. Advanced extracting algorithm for edge feature points[J]. Computer Engineering and Applications, 2009, 45(2): 63–65.
[18] Canny J. A computational approach to edge detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1986, PAMI-8(6): 679–698. DOI:10.1109/TPAMI.1986.4767851
[19] 王丹, 黄鲁, 李垚. 基于点线特征的单目视觉同时定位与地图构建算法[J]. 机器人, 2019, 41(3): 392–403.
Wang D, Huang L, Li Y. A monocular visual SLAM algorithm based on point-line feature[J]. Robot, 2019, 41(3): 392–403.
[20] Vogiatzis G, Hernández C. Video-based, real-time multi-view stereo[J]. Image & Vision Computing, 2011, 29(7): 434–441.
[21] Strasdat H, Montiel J M M, Davison A J. Real-time monocular SLAM: Why filter?[C/OL]//2010 International Conference on Robotics & Automation. Piscataway, NJ, USA: IEEE. (2010-07-15)[2019-12-01]. https://ieeexplore.ieee.org/document/5509636.
[22] Baker S, Matthews I. Lucas-Kanade 20 Years On:A unifying framework[J]. International Journal of Computer Vision, 2004, 56(3): 221–255. DOI:10.1023/B:VISI.0000011205.11775.fd
[23] Burri M, Nikolic J, Gohl P, et al. The EuRoC micro aerial vehicle datasets[J]. The International Journal of Robotics Research, 2016, 35(10): 1157–1163. DOI:10.1177/0278364915620033
[24] Engel J, Usenko V, Cremers D. A photometrically calibrated benchmark for monocular visual odometry[J]. arXiv: 1607.02555. (2016-10-08)[2019-12-01]. https://arxiv.org/abs/1607.02555.
[25] Kuemmerle R, Grisetti G, Strasdat H, et al. G2o: A general framework for graph optimization[C]//2011 IEEE International Conference onRobotics and Automation. Piscataway, NJ, USA: IEEE, 2011: 3607-3613.
http://dx.doi.org/10.13976/j.cnki.xk.2020.9704
中国科学院主管,中国科学院沈阳自动化研究所、中国自动化学会共同主办。
0

文章信息

陈小聪, 何元烈, 岑仕杰
CHEN Xiaocong, HE Yuanlie, CEN Shijie
基于点线特征和边缘特征的单目视觉里程计算法
Monocular Visual Odometry Algorithm Based on Point-line and Edge Features
信息与控制, 2020, 49(4): 396-403.
Information and Control, 2020, 49(4): 396-403.
http://dx.doi.org/10.13976/j.cnki.xk.2020.9704

文章历史

收稿/录用/修回: 2019-12-13/2020-03-04/2020-05-15

工作空间