文献标识码:A
DOI:10.16157/j.issn.0258-7998.183046
中文引用格式:成怡,佟晓宇. 基于改进ORB算法的移动机器人视觉SLAM方法研究[J].电子技术应用,2019,45(1):10-13,18.
英文引用格式:Cheng Yi,Tong Xiaoyu. Research on visual SLAM method of mobile robot based on improved ORB algorithm[J]. Application of Electronic Technique,2019,45(1):10-13,18.
0 引言
作为移动机器人实现智能化的关键技术,同步定位与地图创建(Simultaneous Localization And Mapping,SLAM)[1]在移动机器人的自主导航、自主控制中发挥着重要的意义。随着视觉传感器[2]的发展,视觉SLAM在移动机器人中的应用越趋普遍。视觉信息与惯性导航系统相结合,可以避免移动机器人对有源信号的依赖,更满足于无源条件下的导航需求,具有体积小、重量轻、安装方便等优点。根据使用视觉传感器类型的不同,将视觉SLAM划分为:单目(Monocular)视觉SLAM、双目(Binocular)视觉SLAM和深度(RGB-D)视觉SLAM。深度视觉SLAM利用深度相机记录周围场景的同时,能够输出RGB-D图像信息(彩色图像与深度图像),有效地解决了单目相机没有深度信息、双目相机求解深度信息计算量繁重的问题。在RGB-D SLAM算法中,特征提取算法的选择会影响整个系统的实时性。目前,在RGB-D SLAM算法中应用最为广泛的特征点检测与提取算法有SIFT[3]、SURF[4]和ORB[5]3种。
尺度不变的特征变换(Scale-invariant Feature Transform,SIFT)是一种特征检测与描述子提取算法。该算法在旋转、尺度的缩放、光照条件的变化、噪声干扰等方面受到的影响较小,具有较好地稳定性。加速鲁棒性特征(Speeded Up Robust Features,SURF)算法是对SIFT算法的改进,其具有稳健的局部特征点检测和描述符特征。与SIFT算法相比,SURF算法采用了积分图像和Harr特征使得SURF算子在速度上有了一定的提高。但上述两种算法都要求建立高维描述符,需要大量的内存空间和较长的运行时间[6],该两种特征点提取算法都不适合应用在对系统实时性要求较高的RGB-D SLAM算法中。
为满足RGB-D SLAM算法对系统实时性的要求,在此使用运算速度较快的ORB(Oriented FAST and rotated BRIEF)算法。该算法的运算速度是SIFT的100倍,是SURF的10倍[7]。但是,ORB算法存在特征点分布不均匀、输出重叠特征点较多等问题。因此,本文提出一种改进ORB算法,并且使用一种特征点分布均匀度的评价方法计算特征点的分布情况。
1 基本原理
1.1 RGB-D SLAM算法
RGB-D SLAM算法由前端数据处理和后端优化处理两部分组成。前端数据处理主要对Kinect相机采集的彩色图像与深度图像进行处理,得到相邻两帧图像之间的运动关系,进而定量地估计相机的运动情况,恢复三维场景的空间结构。后端优化处理主要对前端生成的数据结果进行优化,使用滤波与非线性优化方法、引入回环检测解决RGB-D SLAM过程中存在的噪声问题,最终生成全局最优的运动轨迹和三维空间环境地图。
1.2 ORB算法基本原理
在ORB算法中,特征点提取采用改进FAST(oFAST)算法,特征点描述子采用具有旋转不变性的BRIEF(rBRIEF)算法。ORB算法对角点方向测量时使用灰度质心法[8]。假设某角点的灰度与其所在的邻域重心没有完全重合,发生了偏移,可以通过角点灰度坐标到质心之间形成的向量计算出角点的主方向。定义角点邻域的(p+q)阶矩,如式(1)所示:
由式(4)可知,角点的方向可由角点与质心的夹角表示。I(x,y)中的x和y的范围控制在半径为r的圆形区域内,提取到的角点具有旋转不变性。
rBRIEF算法的主要思想是采用了随机选点的机制,在特征点的周围选取一定数量的像素点,比较这些像素点与特征点对应的灰度值。具体步骤如下:
(1)在FAST特征点周围选取31×31的邻域窗口,并在邻域窗口内随机选择5×5的像素块对,比较二者像素的大小,对其进行二进制赋值,相应图像块的描述子分段函数τ定义为:
式中,p(x)和p(y)是邻域内随机点x(u1,v1)和y(u2,v2)的灰度函数。
(2)在窗口中以特征点p为核心,选取n个(xi,yi)位置点对,得到n维二进制码串,如式(6)所示:
(3)设定特征点描述子的方向使其具有旋转不变性。在(xi,yi)位置点处,对n个二进制测试向量,设定一个2×n矩阵Q,如式(7)所示:
(4)利用贪婪搜索算法,找出256个点对使其相关性最低,得到带有方向的特征描述子rBRIEF。
2 改进ORB算法
在RGB-D SLAM算法中,前端数据处理部分使用传统ORB算法对图像进行特征点检测与提取,会导致提取到的特征点分布不均匀,并且还会在图像中的某一区域出现特征点重叠的情况。特征点分布不均匀以及重叠特征点的出现会影响移动机器人运动状态的估计。针对上述问题,本文提出了一种改进ORB算法,改进ORB算法的流程如图1所示。
2.1 改进自适应阈值FAST角点提取
首先,构建图像尺度金字塔,将高斯金字塔的每一层进行网格划分,增加空间尺度信息;其次,在进行FAST角点提取时,对图像边界进行处理、设置感兴趣区域[9];然后,使用初始阈值对特征点进行提取,并对较难提取到的特征点所在的网格部分,采用先降低阈值再检测的方法,同时对特征点为空的情况,设置最小阈值;最后,实现FAST角点自适应阈值提取。改进自适应阈值FAST角点提取流程图如图2所示。
图2中,在构建图像尺度金字塔网格划分时需对参数进行初始化,设置网格个数,其中,i是网格行数,j是网格列数,rows和cols是金字塔分割的行、列数。感兴趣区域随着行数i和列数j数值大小的变化而变化。并对已在感兴趣区域中提取到的特征点位置还原至已划分的网格区域中。
2.2 引入非极大值抑制的方法剔除重叠点
非极大值抑制算法(Non-Maximum Suppression,NMS)[10]的本质是在图像中对需要检测的目标搜索局部极大值,并抑制非极大值元素。当出现多个候选结果时,根据设定的目标条件对其进行筛选并选择最优的效果。本文在对特征点输出时,为防止重叠特征点的出现,选用非极大值抑制的方法。以图像建立的尺度空间金字塔顶层为基准,选取在每层金字塔上都出现的特征点pi,pi∈P,P={p1,p2,…,pi}作为已有特征点。对候选特征点qj(非每层均出现),qj∈Q,Q={q1,q2,…,qj}进行非极大值抑制剔除,防止特征点的重叠输出。该剔除重叠特征点的方法步骤如下:
(1)在特征点输出时,计算图像中现有的候选特征点qj所在的某网格区域与已有特征点pi坐标之间的距离。设定距离的临界阈值为l,候选特征点所在的坐标和Harris角点响应阈值为qj={xj,yj,εj};
(2)求解出候选特征点qj={xj,yj,εj}与特征点P={p1,p2,…,pi}之间的坐标距离,筛选出距离不大于l的候选特征点q′j={xj,yj,εj};
(3)计算按照步骤(2)求出的距离值不超过l的候选特征点q′j={xj,yj,εj}的Harris角点响应阈值ε′j,根据候选特征点响应阈值的激烈程度(即ε′j数值大小)将这些候选特征点进行从大到小排序;
(4)根据非极大值抑制算法的原理,将Harris角点响应阈值ε′j极大值所在的候选特征点q′j={xj,yj,εj}保留下来,得到特征点所处最佳位置的邻近特征点。并将低阈值的邻近候选特征点剔除,减少重叠特征点的输出。
2.3 图像特征点分布均匀性评价方法
图像特征点分布均匀性评价用来判断图像中特征点分布是否均匀。如果图像中不同分割区域内特征点的数目相等或者接近,说明图像中的特征点分布较为均匀;反之,特征点分布不均匀。鉴于上述评价方法,本文在计算特征点分布情况时首先对待检测的图像进行区域划分,如图3所示;接着,统计每个区域内的特征点数量;然后,计算特征点区域统计分布的方差数值;最后,根据方差数值的大小判断图像特征点分布的均匀情况。从特征点方差数值的大小关系可以看出,方差数值越大,代表特征点数量的波动越大,间接地反映特征点分布不均匀。
3 实验结果与分析
本实验基于实验室自主研发的轮式移动机器人开展,如图4所示。其配有Kinect1.0深度摄像机,系统操作环境是一台配置为i3处理器、内存为4.0 GB的电脑,运行环境为Ubuntu14.04的32位indigo的开源机器人操作系统(Robot Operating System,ROS)[11]。采集实验室场景的图像信息,并对该场景实现移动机器人的同步定位与地图创建。
3.1 图像特征点提取实验
轮式移动机器人采集的实验室数据集包含彩色图像与深度图像,均为640×480的png格式。其中,深度图像的位深度为16 bit,彩色图像的位深度为24 bit。为使实验操作简洁方便,适合PCL可视化工具数据的读取,两种图片的像素坐标均已通过OpenNI[12]处理,实现一一对应的坐标关系。使用传统ORB算法和改进ORB算法对同一张图像进行特征点提取。实验结果如图5所示。
从图5可以看出,传统ORB算法输出的特征点提取效果分布情况较为密集,改进ORB算法的特征点提取效果分布情况较为均匀。为了量化传统ORB算法与改进ORB算法图像特征点分布的均匀情况,引入文中提出的图像特征点分布均匀性评价方法计算特征点在图像中的分布情况,如表1所示。
从表1中可以看出,当特征点期望数值相同时,改进ORB算法提取到特征点的方差数值比传统ORB算法提取到特征点的方差数值小。并且,随着特征点期望数值的增加,相同图像特征点数量的方差数值也在增加,即特征点在图像中分布的均匀度降低。由于方差数值越大,表示图像中特征点分布的波动越大,即图像特征点分布的均匀情况较差,因此,该实验结果显示,改进ORB算法提取到的图像特征点分布的均匀情况较好。
3.2 重叠特征点的剔除
传统ORB算法在特征点进行输出时,输出的特征点会在图像中出现重叠现象。改进ORB算法在特征点输出时,采取非极大值抑制的算法对其进行处理,减少重叠特征点的输出。待检测的图像是否采用非极大值抑制算法进行重叠特征点剔除的实验结果如图6所示。
图6(a)是传统ORB算法未使用非极大值抑制对输出特征点进行处理的整张图像的视觉效果,图6(b)是改进ORB算法使用非极大值抑制对输出特征点进行处理的整张图像的视觉效果。选择图像中的某一区域进行放大对比,可以看出改进ORB算法的重叠特征点的数量明显减少,有效地抑制低阈值特征点的输出。
3.3 算法实时性分析
由于RGB-D SLAM算法对实时性的要求较为严格,对比改进ORB算法与传统ORB算法在特征点提取与匹配消耗的时间,比较结果如表2所示。
从表2中可以看出,ORB算法的实时性与特征点期望的数值有着紧密的联系,即特征点期望的数值越大,特征点提取与匹配消耗的时间就越长;当特征点期望的数量相同时,同一张图像改进ORB算法比传统ORB算法消耗的时间少。实验结果表明,改进ORB算法可以更好地应用在RGB-D SLAM算法中。
4 结论
本文在传统ORB算法的基础上,针对其存在特征点分布不均匀、重叠特征点较多的问题,提出一种改进ORB算法,并将该算法应用在移动机器人视觉导航中的RGB-D SLAM算法中。使用实验室自主研发的轮式移动机器人分别从图像特征点分布的均匀情况、特征点输出的重叠情况以及特征点提取与匹配消耗的时间情况三个方面比较传统ORB算法与改进ORB算法。实验结果表明,改进ORB算法特征点的分布较为均匀、输出特征点重叠数量较少、执行时间较短,可以更好地应用在RGB-D SLAM算法中。
参考文献
[1] KHAIRUDDIN A R,TALIB M S,HARON H.Review on simultaneous localization and mapping(SLAM)[C].IEEE International Conference on Control System,Computing and Engineering.IEEE,2016:85-90.
[2] 党宏社,候金良,强华,等.基于视觉引导的SCARA机器人自动装配系统[J].电子技术应用,2017,43(5):21-24.
[3] LOWE D G.Distinctive image features from scale-invariant keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[4] BAY H,ESS A,TUYTELAARS T,et al.Speeded-up robust features(SURF)[J].Computer Vision & Image Understanding,2008,110(3):346-359.
[5] RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:an efficient alternative to SIFT or SURF[C].International Conference on Computer Vision.IEEE,2012:2564-2571.
[6] 刘宏伟,余辉亮,梁艳阳.ORB特征四叉树均匀分布算法[J].自动化仪表,2018,39(5):52-54,59.
[7] 毛星云.OpenCV3编程入门[M].北京:电子工业出版社,2015.
[8] XU J,CHANG H W,YANG S,et al.Fast feature-based video stabilization without accumulative global motion estimation[J].IEEE Transactions on Consumer Electronics,2012,58(3):993-999.
[9] PRIVITERA C M,STARK L W.Algorithms for defining visual regions-of-interest: comparison with eye fixations[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2000,22(9):970-982.
[10] HOSANG J,BENENSON R,SCHIELE B.A convnet for non-maximum suppression[M].Pattern Recognition.Springer International Publishing,2016:192-204.
[11] KEI O.ROS(robot operating system)[J].Journal of the Robotics Society of Japan,2012,30(9):830-835.
[12] 宋艳.基于图像特征的RGB-D视觉SLAM算法[D].青岛:中国海洋大学,2015.
作者信息:
成 怡1,2,佟晓宇1,2
(1.天津工业大学 电气工程与自动化学院,天津300387;
2.天津工业大学 天津市电工电能新技术重点实验室,天津300387)