基于HSV图像匹配的改进型RatSLAM算法研究
2018-11-22秦国威孙新柱陈孟元
秦国威, 孙新柱, 陈孟元
(安徽工程大学安徽省电气传动与控制重点实验室, 安徽 芜湖 241000)
引 言
同步定位与地图构建(Simultaneous Localization and Mapping, SLAM)是移动机器人目前面临的一项重大难题,此问题的求解即是在一个未知环境中创建地图的过程,要求机器人在一个陌生环境中首先要探索环境,从而了解环境,同步运用地图追踪机器人在该环境中的位置[1-2]。然而,在实际的复杂场景下,解决SLAM邻域的定位精度问题存在一定的难度,因为移动机器人实质上就是移动的传感器平台,传感器虽然类型和能力各有不同,但是广泛存在里程计漂移、不同的噪声等问题[3]。因此,SLAM过程中的定位精度得到了人们的广泛关注。现行的室内定位技术主要有WIFI定位技术、仿生模型定位技术等。
WIFI定位技术与其他定位技术相比具备价格低、易布设、范围广、受非视距影响小等众多优势,但是考虑到WIFI定位技术易受到空间分辨率的限制,不能解决旋转误差累积问题,也不能克服WIFI架构的固有局限性,使得WIFI定位精确度受到很大的束缚。因此,相比较而言,基于啮齿类动物RatSLAM模型的仿生定位技术更为大众所接受,此算法表现出完美的生物合理性和对自然环境的高度适应性[4],是一种纯视觉的仿生SLAM算法。实验表明RatSLAM模型能够满足室内静态场景下的导航,目前广泛应用于定位导航等相关领域中[5-8]。然而,依靠纯视觉的RatSLAM算法在光线变换等复杂环境下,其核心部分视觉里程计存在可靠性低、图像匹配精度有限、环境适应性较差等问题[9-11],因此RatSLAM模型仿生算法精度还有很高的提升空间。在文献[12]中,Berkvens等人通过在RatSLAM模型中引入地磁定位的思想,目的在于提高定位的精度,但是由于电气设备相互的影响,此方法并不能实现精准定位。此外,对于常见的车载导航系统,由于单独的RatSLAM算法无法修正里程计误差累积,张潇等[13]将光学双轴传感器和MIMU信息引入RatSLAM模型中,虽然精度得到些许的提升,但是随之带来系统的鲁棒性变差,实时性降低等问题。在文献[14]中,针对原始的RatSLAM算法仅用一维向量描述视觉图像的特征,及在视觉模板校正过程中易出现匹配效率很低和误匹配的情况,提出将ORB算法与RatSLAM算法结合,用ORB算法提取RGB图像的特征,完成特征描述子的匹配。
本文提出将ORB和SURF算法融合提取图像的HSV特征进行匹配,进而完成视觉模板的校正,此融合算法不仅匹配的精度得到了明显的提高,且匹配的效率、鲁棒性皆显著增强。
1 RatSLAM仿生SLAM算法
RatSLAM仿生SLAM算法的结构框图如图1所示。其中,位姿细胞和经历图在此算法中扮演着十分重要的角色。位姿细胞以(x,y,θ)的样式排列,使得机器人能够同时运用x,y,θ表征其所在的位置和方向。位姿细胞的激活程度表示机器人在该位置和方向的可能性大小。视觉模板和视觉里程计信息分别修正和更新位姿细胞的活性,每一幅视觉模板是通过获取局部场景的图像信息特征得到。视觉里程计信息是通过对每幅图像特定区域提取速度、角度等信息并经过路径积分加工,进而实现位姿细胞的实时更新。视觉里程计的实时更新与视觉模板的修正机制共同作用能够获得机器人的空间经历图。
图1 RatSLAM模型结构框图
1.1 位姿表征
位姿细胞是一个三维结构体,表示载体在三维空间里的位置和方向,机器人的位姿信息被编码在一个名为位姿细胞中的单独的竞争型吸引子网络(CAN)中。CAN模型是模拟头部方向细胞和位置细胞的功能建立的模型,通过对位姿细胞激活程度进行合理地刺激或抑制,达到始终控制位姿细胞内部活动的目的,保证位姿细胞激活程度的动态稳定。
可用一个三维离散高斯分布来创建刺激权重矩阵εdef:
(1)
因局部的刺激而使位姿感知细胞激活程度产生变化为:
(2)
其中:kxy和kθ分别为(x,y)平面和θ维的方差常数;d、e、f是x、y、θ的分布系数;Nx、Ny、Nθ是在(x,y,θ)空间中的位姿感知细胞三维矩阵元素。
对位姿细胞激活程度的抑制可表示为:
(3)
式中:δ是三维离散高斯分布的抑制权重矩阵。
(1) 路径积分
路径积分就是通过转换每个位姿细胞基于里程计速度和(x,y,θ)坐标的活动来更新姿态细胞的活动。在上述的三维竞争型吸引子网络中,不仅要保持稳定的内部活动,还要具备良好的路径积分特性,本文采用的路径积分方法是转换现有位姿细胞的活性而不是立即将当前活性复制传递。此方法不仅能够生成更加精确的机器人行走路线,并且中途不需要参数调整。在路径积分之后,被更新的位姿感知细胞活性为:
(4)
式中:δx0,δy0,δθ0为在x,y,θ方向被四舍五入后的整数偏差,计算如下:
(5)
式中:v为机器人移动速度,ω为旋转角速度,θ为首选细胞方向,kx、ky、kθ为路径积分常数。
(2) 视觉模板修正
在路径积分过程中,由于外界因素的突变和阻碍,经常会产生位置和方向上的累积误差,这可以通过绝对差综合模型(SAD)进行修正。SAD模型将从局部场景中获取的每个图像与模板库中的图像进行比较,与模板图像充分相似的图像被再次识别出来,同时有显著差异的图像就成为新的图像模板并加入到模板库中。对于一个新的视觉模板V,在模板库中与模板之间建立联系β:
(6)
(7)
将di与距离阈值d作比较:
(8)
如果距离di小于阈值d,当前获取的视觉场景作为新的视觉模板Vi保存在数据库中,否则认为是熟悉的模板,回到经历过的地方,由视觉模板引起的位姿细胞活动的变化,即对位姿细胞激活程度的修正为:
(9)
1.2 经历图
经历图是由众多的经历e构成的,每个经历都具有一个活性水平,活性水平由位姿感知细胞的激活程度和视觉模板所决定。每个经历ei由经历活性水平Ei、位姿细胞激活程度Pi和视觉场景模板Vi构成:
ei={Ei,Pi,Vi}
(10)
经历能级水平Ei按下式计算:
(11)
Exyθ=
式中:xpc、ypc和θpc为最大活性姿态细胞的坐标;xi、yi、θi为与该经历相关的位姿感知细胞的坐标;ra为(x,y)平面的区域常数;θa为θ维上的区域常数;Vcurr为当前场景;Vi为与经历i相关的场景。
2 改进型RatSLAM仿生SLAM算法
原始RatSLAM模型中采用绝对差总和(SAD)模型进行RGB图像视觉模板的校正,考虑到RGB图像与人类的视觉感知差别较大,而且进行视觉模板匹配的鲁棒性较差,匹配的效率有待提高。本文使用H(色度)、S(饱和度)、V(亮度)表示图像的内容,首先利用HSV图像特征进行全局特征匹配,得到粗匹配图像;再利用SURF与ORB融合算法进一步进行局部特征匹配,进而得到更好的匹配效果。图像匹配流程如图2所示。
图2 图像匹配流程图
2.1 全局特征匹配
全局特征匹配首先运用颜色矩表示图像的颜色特征,再利用汉明距离完成特征模板颜色匹配。将图像中的颜色分布用矩表示即构成颜色矩,其中,一阶矩表示颜色平均值,二阶矩表示颜色方差,三阶矩表示颜色的偏斜度。利用颜色矩的表示方法具有无需量化描述特征和颜色向量维数低的优势。3个颜色矩的数学表示为:
(13)
(14)
(15)
式中:ui、σi、si分别表示颜色分量i的均值、方差和斜度,N表示图像的总像素数,pi,j表示图像中第j个像素的第i个颜色分量。图像的3个颜色分量的3阶颜色矩组成一个9维向量,则图像的颜色特征表示为:
Fcolor=[uH,σH,sH,uS,σS,sS,uL,σL,sL]
(16)
由移动机器人获取图像,输出最相似和次相似的两幅模板图像。颜色矩向量生成后,利用欧式距离计算当前图像与模板两幅图像的相似度。欧式距离计算公式为:
(17)
式中:CI(k)和CJ(k)分别表示图模板库中图像I和当前图像J的颜色矩分量。当欧式距离D(I,J)在既定的阈值内,则匹配成功;反之,则匹配失败。
2.2 局部特征匹配
全局特征匹配之后得到的仅为粗匹配图像,因此,仍需进一步验证局部特征匹配情况,在此采用SURF与ORB融合算法来完成。
STEP1:积分图像。积分图像的概念是由Viola和Jones提出的。积分图像中任意一点(i,j)的值为原图像左上角到任意点(i,j)相应的对焦区域的灰度值的总和,任取一幅灰度原始图像G,其积分图像为GΣ(x,y),二者关系如下:
(18)
STEP2:Hession矩阵探测。为避免从图像中获取的特征点是重复的,SURF算法通过将高斯微分模板和图像的卷积转化为方框滤波,进而利用不同尺寸大小的方框滤波器对待处理图像进行滤波处理,构成图像金字塔,之后运用Hession矩阵探测器对金字塔每层的特征点进行极值点检测。Hession矩阵就是利用二阶微分来进行斑点检测,给定图像G中一个点(x,y),在(x,y)处,尺度为σ的Hession矩阵H(x,σ)定义为:
(19)
式中:Lxx(x,σ)是高斯二阶微分∂2g(σ)/∂(x2)在点x处与图像G的卷积,Lxy(x,σ)与Lyy(x,σ)的意义非常相似。
对Hession矩阵的行列式进行简化,近似可得:
|H(x,σ)|=DxxDyy-0.9Dxy
(20)
式中:Dxx、Dyy和Dxy分别是Lxx、Lyy和Lxy的近似取值。
STEP3:选取特征点。利用上述方法获取图像相关区域的极值后,实现以此极值点为中心的3×3×3立体区域内的非极大值抑制。若某一点的极值相对于同层与上下两层所有像素点的极值是最大或者最小的,则称此极值点成为候选特征点,之后分别在图像和相应的尺度空间中进行一系列的插值运算以最终确定特征点,以及特征点在图像中的区域分布。
STEP4:特征点描述子。得到特征点后需要以某种方式描述这些特征点的属性,这些属性的输出称之为该特征点的描述子,在此使用具有旋转不变性的BRIEF即rBRIEF。它的思想为在特征点周围以一定模式遴选出指定数量的点对,把这些点对的比较结果组合起来作为描述子。
(1) 确定特征点方向。为了使算法具有旋转不变性,需要提前为每个特征点分配方向。为此,以特征点为中心,也即为坐标系的坐标原点,在其周围邻域S内利用积分计算质心位置。以特征点为起点、质心为终点构造出的向量作为特征点的方向。计算过程如下:
(21)
(22)
(23)
(2) rBRIEF为一种二进制码串形式的描述子,在特征点周围的邻域内选取的点对可以用灰度值对比来表达。定义操作准则T为:
(24)
式中:p(x)为邻域内x处的灰度函数。
(3)当在邻域内选择m个(x,y)点对时,描述子就是一个包含m个二进制准则的码串,如下式所示:
(25)
(4) 将第(1)步计算出的特征点方向信息添加至描述子中,使描述子包含有特征点的方向信息,在点对位置(x,y)处,由下式定义一个2×m的矩阵:
(26)
式中:每个(xi,yi)表示一个测试点对,利用特征点方向θ所对应的旋转矩阵Rθ,构造的特征点对矩阵为Qθ=RθQ,这样就可以得到具备旋转不变性的描述子:
gm(p,θ)=fm(p)|(xi,yi)∈Qθ
(27)
(5) 采用贪婪搜索的方法,找出256个像素块对,使其相关性最低,并构成所需的描述子。
STEP5:特征点匹配。利用融合算法快速提取两幅图像的特征点和特征描述子,运用特征描述子描述的图片之间的相似度判断两个关键点之间是否匹配。
3 实验及分析
为了验证本文算法的可行性与正确性,在基于Windows7操作系统、处理器为i3-3240、运行内存为3 GHz的PC机上进行多次仿真实验。实验场景为一9 m×6 m的会议室,真实环境如图3所示,平面结构如图4所示。实验中运用轮式移动机器人,如图5所示。通过机器人上装有的摄像头采集场景信息,并将其通过无线传输给上位机,并用MATLAB2015a进行仿真实验。
图3 会议室环境
图4 会议室平面图
图5 移动机器人
3.1 经历节点模板匹配图
RatSLAM模型经历节点模板匹配图如图6所示。在图6中,一个经历就是经历图中的一个节点,由基于传感器和位姿数据的位姿细胞产生。当前的视觉场景与储存的场景模板足够地相似时,就发生了一次模板匹配,每个点表示在此时创建或匹配了一个经历节点。位姿细胞更新以后,进一步进行位姿细胞活性的修正,完成经历的匹配。
实验进行三次,分别在260 s、520 s走完了场景的第一圈和第二圈。起点和终点为同一点的位置A,在模板匹配图中已进行了标注,走完场景一圈时,将其定位到初始时刻点的位置,重新跟随先前看到的场景进行图像信息匹配。从图6可以看出,当出现熟悉模板时,图6(b)几乎可以准确无误地与模板进行匹配,误匹配变少,匹配的精度明显更高。
图6 经历节点匹配图
3.2 经历图对比
原始RatSLAM与改进型RatSLAM产生的经历图如图7所示。对比两种算法的经历图可以看出,运用新颖图像匹配算法改进的RatSLAM算法对于复杂环境适应性明显更强,鲁棒性更强。
图7 经历图
3.3 定位误差的比较
为了直观比较RatSLAM改进前后定位的误差因素,选择25个测试点测试其性能。本文用均方根误差作为标准,假设待定位点的实际位置为(xa,ya),估计位置为(xe,ye),则实际位置与测量位置的均方根误差e表示为:
(28)
两种算法的误差累计分布图(CDF)如图8所示,其在定位累计误差概率为30%、60%、90%时所对应的定位精度见表1。从表1可知:在定位累计误差概率分别为30%、60%、90%时,相较于原始的RatSLAM算法,改进型算法的精度分别提升了7.5%、23.9%、39.8%,说明改进后的匹配算法精度明显高于原始的匹配算法。
图8 定位结果误差累计分布图
表1 不同定位误差概率精度对比
4 结束语
本文系统研究了基于HSV图像匹配的改进型RatSLAM算法,采用一种新颖的图像匹配算法,替代原有的绝对差总和(SAD)匹配方法,更好地完成了视觉模板的匹配,匹配的准确率显著增强,最终产生更为准确的经历图。既改进了原有RatSLAM对于室内复杂环境适应性差、视觉里程计可靠性低的问题,又使得系统的鲁棒性变强,定位的性能也得到了很大的改善。但是本文对于算法实时性的作用并无太大改观,这是接下来要重点研究的方向。