陈孟元 张玉坤 田德红 丁陵梅
①(安徽工程大学电气工程学院 芜湖 241000)
②(高端装备先进感知与智能控制教育部重点实验室 芜湖 241000)
同时定位与地图创建(Simultaneous Location And Mapping, SLAM)是指在没有环境先验信息的情况下,使用自身携带的多种传感器采集环境信息,于运动过程中建立环境模型,并同时估计机器人自身运动。但SLAM存在计算量较大、复杂度较高等问题,SLAM的智能化水平相比于动物的导航能力较低。为此开发和研究新的SLAM算法,特别是借鉴鼠脑海马认知机理的方法,是近年来移动机器人SLAM领域的一个研究方向和重点[1–3]。
神经学家研究发现动物大脑中的海马体在导航中起着关键作用,海马体能够实现“空间认知地图”的构建,并在路径整合中发挥重要作用[4,5]。文献[6]表明哺乳动物海马体内的位置细胞和内嗅皮层的网格细胞能够对环境形成类似地图的空间表示,并把这种空间表示称为一种能够表示拓扑关系的认知地图。Hafting 等人[7]确定了路径整合器在大脑结构中的具体位置,其有力证据是在脑背侧内嗅皮层中发现一种在空间特定位置具有放电特性的网格细胞,当动物到达特定的位置点时该细胞总是被激活。Doeller等人[8]发表在Nature上的文章中也证实了人脑中网格细胞的存在。研究者认为网格细胞是动物空间导航的重要组成部分,近年来经过大量动物导航相关实验的研究,发现哺乳动物大脑海马中,参与构建“空间认知地图”相关性的细胞除了网格细胞外还有位置细胞[9]、边界细胞[10]、条纹细胞[11]等。研究人员根据这些细胞的特性设计多种数学模型,Barry等人[12]根据网格细胞的六边形放电结构提出振荡干涉模型对网格细胞进行建模,对速度信息和方向信息进行整合来获取大鼠在环境中的位置信息。但是缺乏生理学依据。Hardcastle等人[13]发现在不同的几何环境下网格细胞的分布规律会发生变化,在实验中将圆形环境换成六边形环境时网格细胞分布会重新排列且定位精度也发生了较大的变化。Jayakumar等人[14]针对不规则复杂环境场景对网格细胞分布的影响,引入边界信息对网格野相位进行周期性重置,提高了算法的定位精度。
随着学者探究发现,大鼠在进行导航时不仅仅依靠位置感知模型,还涉及外界的视觉线索,为了将视觉线索与海马体计算模型相融合,文献[15]借鉴灵长类动物大脑的一些特性,提取视觉信息并采用模糊自适应共振理论模型建立视觉记忆,实现对环境的认知与表征,但该模型没有考虑众多神经元细胞之间的联系,鲁棒性较差。Milford等人[16]提出基于鼠类定位与构图的导航算法(Rat Simultaneous Location and Mapping, RatSLAM),算法利用不同类型的定位细胞功能来完成空间导航任务。然而此算法实时性较低且受光照影响较大。文献[17]为了提高RatSLAM 算法实时性将FAB-MAP算法融入到RatSLAM中,改进后的算法采用了视觉词袋模型来进行闭环检测提高了系统在复杂环境中导航的实时性。Hou等人[18]为了解决光照对环境的影响通过PlaceCNN网络提取图像的显著性区域进行闭环检测,在复杂的光照情况下取得了较好的效果。李维鹏等人[19]针对闭环路径不一致、闭环视角较大等问题,提出基于场景显著性区域的闭环框架,提高了算法对歧义场景的分辨能力。
传统的显著性区域提取方法存在提取的冗余信息过多,影响闭环效率。基于此,本文提出一种基于兴趣倾向机制的仿生SLAM算法。利用LAHN构建与海马认知机理有关的位置感知模型。与此同时,在相似性场景匹配时通过兴趣倾向机制将提取出来的显著性区域进行兴趣赋值,减小冗余信息带来的影响。并引入关键帧评分策略避免了模糊关键帧,提高了算法闭环的准确率。将环境感知模型提取的视觉信息与位置感知模型竞争出来的位置细胞相融合,建立具有拓扑关系的认知地图,认知地图的构建过程如图1所示。
图1 认知地图构建
在哺乳动物的海马体中存在许多相互关联的神经元,这些神经元是大脑学习、形成场景记忆以及执行空间导航的关键中枢,位置细胞和网格细胞等定位细胞均被证实存在于大脑海马体中,其中位置细胞放电活动具有明显的位置选择性,与所处的位置信息有密切的关系,这种特异性放电活动能够帮助动物判断自身所处环境中的位置。当生物在2维空间自由活动时,网格细胞在特定的位置发生重复性的放电,其放电活动具有高度的稳定性,多个放电空间交叉叠加形成网格节点,连接网格节点便形成一个近似六边形的网格结构,覆盖整个环境空间,基于这种六边形网格结构,生物自由运动到网格节点时,相应的网格细胞会产生最大化放电活动,表明网格细胞相当于一个坐标系,度量生物的位置坐标[20]。
LAHN是一个无监督神经网络,从输入信息中提取最佳特征,当输入信息受到外界环境的限制时,可以通过网络的横向连接调整输出信息,能够针对环境的变化进行实时更新。考虑到不规则复杂环境场景对网格细胞分布规律的影响,本文采用LAHN对网格细胞进行建模。机器人匀速在二维平面上进行自由探索,以相同的概率到达平面内的任意一点,通过编码器获取瞬时角速度,将获取的瞬时角速度信息经过自组织映射算法对其进行训练,映射到LAHN层,为机器人在探索环境时的网格细胞提供运动方向信息,方向编码的更新规则如式(1)所示。
其中,κ为网格细胞空间尺度参数,v为机器人当前速度,µ为网格细胞放电幅值抑制常数,决定网格细胞放电率幅值,本文取值为1。χijnh的值为负数,为第j个网格细胞的抑制水平。χejxc的值为正数,为第j个网格细胞的兴奋水平。Rp为t时刻网格细胞放电率调节因子,根据边界信息调整网格细胞兴奋值,Xp为当前机器人的位置信息,Xw为正前方的边界位置信息。
LAHN激活函数采用双极性激活函数,激活函数取值范围[−1,1],当激活函数的输入与输出同号时,加大网络连接权重,否则,降低网络连接权重,网络输出值即为网格细胞响应值,其LAHN输出值如式(5)所示。
其中,qij是前向通道权值,wik是横向通道权值,ξk(t −1)为前一时刻的网格细胞响应值,m为在LAHN层中的神经元总数,n为网格细胞个数。
前向通道权值和横向通道权值更新规则如式(6)、式(7)所示。
其中,ηF和ηL本文取值0.9,分别是前向学习率和横向学习率。通过在环境中的探索与学习,更新后的突触权重呈六边形周期分布。得到稳定的网格细胞放电场。为了使突触权重产生周期性的空间分布,对权重更新进行非线性限制,分别设置权重的上边界和下边界,当所有突触的任一权重超出上边界或下边界之间的范围时,通过竞争对所有突触的权重等比例缩放,使得所有的突触权重在上边界和下边界之间。
图2(a)、图2(b)是分别在正方形和六边形环境中探索600s后生成的网格细胞分布图。因为探索时间过短,网格细胞分布规律较混乱。图2(c)、图2(d)是分别在正方形和六边形环境中探索1000 s之后生成的网格细胞分布图。探索时间充足,对环境场景更加熟悉,网格细胞分布均匀,能够较好地表征环境位置信息。
图2 网格细胞分布图
本文将网格细胞群的响应作为竞争神经网络的输入,通过竞争型神经网络对位置细胞进行建模,其位置细胞输出响应为如式(8)所示。
其中,σ为放电率调整参数,xi为第i个位置细胞的参考位置。
仅依靠鼠脑海马模型的内部路径整合功能进行导航,易受复杂环境因素影响而导致定位精度较差。本文引入外界视觉线索来修正路径整合带来的误差。机器人在自由探索环境时,将传感器采集环境中的图像信息与发生特异性响应的位置细胞进行关联,获取此时的位置信息。当机器人在环境中漫游发现熟悉场景时,使用该图像之前关联的位置信息修正当前位置信息。
视觉感知模板是可扩展的单元阵列,每个单元代表环境中独特的视觉场景,当机器人看到新的场景时,会创建新的视觉感知模板来记录该场景中的特征信息,并依据式(10)将视觉感知模板与同时发生特异性响应的位置细胞信息相关联[21]。
其中,φ取值0.8,为一个连接y强度常数,决定视觉信息对位置细胞活动的影响,δi为位置细胞与图像特征之间的连接矩阵,Vi为当前位置细胞对应的图像特征。
为了避免机器人在运动过程中因速度变化或者转弯处相机抖动导致采集的图像信息模糊,本文提出一种关键帧选取策略防止选取的关键帧中出现模糊帧图像,并将选取的关键帧与视觉感知模板相关联[22,23]。通过距离阈值和角度阈值选取预选关键帧,采用Tenengrad函数对预选关键帧进行清晰度评分,评分规则如式(11)所示。
其中,ℓ(t)为 第t帧图像的模糊评分值,ψt值为1时将预选关键帧设置为真正的关键帧,ψt值为0时将预选关键帧舍弃并将前一帧普通帧图像即t–1帧图像设置为预选关键帧,如果此预选关键帧满足评分要求,则将此帧图像设置为关键帧。
当人类观察某一场景时,往往会将注意力集中场景中的某些显著性区域部分,这些显著性区域部分往往也是从场景获取信息的关键,这些信息对于认知这一场景有着很强的指引作用,而自注意力机制就是一种模仿这一认知过程的特殊机制。
自注意力机制虽然提取出感知模板中的显著性区域,但会提取过多的冗余信息,使得在模板匹配时增大了负重。本文算法将提取出的显著性区域进行兴趣赋值,对提取出的显著性区域进行约束。首先使用融合自注意力机制的卷积神经网络来提取图像信息中的显著性区域,其网络结构如图3所示,然后通过兴趣倾向函数对提取的信息进行兴趣赋值,最终输出具有兴趣值的显著性区域。
图3 融合自注意力机制的卷积神经网络结构
融合自注意力机制的卷积神经网络参数设置如表1所示,其核心是学习图像中每个元素的重要性,将采集的图像作为输入,利用编码器中的卷积与池化操作提取输入图片的特征信息,通过中间区将采集的图像特征进行采样输出x∈Rc×n的特征张量,分别使用2个卷积核大小为1×1卷积网络将特征张量映射到特征空间f和g中,映射方式如式(13)所示。
表1 融合自注意力机制的卷积神经网络参数设置
其中,Wf ∈RC′×N,Wg ∈RC′×N,为映射权重矩阵,通过张量相乘的得到f和g2个特征空间的相似性sij, 并计算j位 置与i位 置参数之间权重的比值βji,为了缩短收敛时间,对特征空间相似性sij进行归一化处理:
其中,h为输入信息x与权重矩阵Wh ∈RC×N的乘积。通过上采样策略对输出特征进行解码,利用softmax函数来对解码出的显著性向量进行分类,其分类输出结果如式(16)所示。通过兴趣倾向函数对提取出来的显著性区域进行兴趣赋值,其兴趣倾向函数如式(17)所示。
其中,lb代表显著性区域向量所属类别的标签,Fc(·) 表 示全连接操作,s oftmax(·)表示分类函数,n为同一类别中的显著性区域向量个数,同一类别内出现的显著性区域向量越少,其兴趣值越大。将不同场景提取出来的显著性区域向量通过余弦距离进行相似性度量,兴趣值越大的显著性区域在进行匹配时所占的权重值越高。
图4(a)、图4(b)分别为KITTI数据集的城市道路提取效果图和乡村道路提取效果图。图中方框中标记的是图像的显著性区域,方框对应的数值是当前显著性区域的兴趣值。从图4(a)、图4(b)可以看出路灯在实验场景中也是显著性区域,但是对检测是否来过这一场景作用很小,因此通过本文算法计算出的兴趣值很低,对于一些具有标志性的显著性场景,例如路标,具有标志性的建筑物等对检测是否来过此场景有着极其重要的作用,通过本文算法计算出的兴趣值较高。从图4(b)还可以看出由于红绿灯这一显著场景的兴趣值较低,但是红绿灯这一场景与路标结合起来之后的兴趣值比原来的路标场景的值更高,这是因为路灯和路标结合之后形成了一种更具有信息传递的标志物。图4(c)、图4(d)为ORB特征提取效果图,图中可以看出提取的特征点出现大量重叠特征点,容易造成误匹配,并且占用系统计算时间。
图4 图像特征提取示意图
根据细胞路径积分获取的位置信息与视觉感知模板相关联,建立具有拓扑信息的认知节点,构建半拓扑认知地图,为载体运动提供空间坐标系。每一个具有拓扑关系的认知节点e包含了位置细胞的放电率p,与位置细胞相关联的视觉模板V以及认知节点之间的拓扑关系L,单个认知节点定义为
设定认知阈值为Gth,将当前位置认知点与已存在的认知点进行位置比较,得到一个位置度量G。
当认知节点的位置信息的运动量超过阈值或者当发现新的视觉场景时,地图上将会创建一个新的认知节点,新的认知节点表示为
其中, ∆L为上一个认知节点的间距。当视觉模板检测到回到以前场景时,为了确保地图构建的准确性,采用时间一致性和几何一致性来进行闭环验证,当验证成功时将在闭环处对所有的经验进行更新。
其中,ρ取值0.6,为认知速度常量,决定移动机器人对环境的学习速度。Nf为认知地图当前认知节点ei与其他节点的连接数量,Nt为其他认知节点与当前节点ei的连接数量。
本文运行程序电脑配置:CPU为i5处理器,内存8 GB,主频2.9 GHz,系统为Ubuntu18.04。使用公开的TUM, KITTI数据集和真实环境对本文算法进行验证。
为了验证本文算法的有效性,使用在室内环境采集的TUM数据集对本文算法进行评估,图5为本文算法、RatSLAM和ORB-SLAM算法的轨迹对比图。表2为3种算法在TUM数据集上运行时获取的对比数据。由图5可知本文算法获取的轨迹图更加接近真实轨迹。通过表3可得,在闭环准确率方面,本文算法与RatSLAM算法相比提高了约18.4%。这是由于本文算法提出的关键帧选取策略剔除了关键帧中的模糊帧图像,提高了本文算法闭环检测的准确率。在单帧图像处理时间方面,本文算法略高于ORB-SLAM,这是由于本文算法在剔除模糊帧图像时占用了一定的时间,但本文算法的单帧处理时间与RatSLAM相比有较大改善,缩减了约26.7%。在定位精度方面,本文算法的轨迹均方根误差与ORB-SLAM相比减少了约21.5%,与RatSLAM算法相比减少了约35.0%,这是由于本文算法通过不规则复杂环境边界信息对网格细胞进行校正提高了算法的定位精度。由此可见本文算法在闭环的准确率和定位精度方面与ORB-SLAM和RatSLAM相比有较大优势。
表2 各算法在TUM数据集上的结果对比
表3 各算法在KITTI数据集上的结果对比
图5 TUM部分序列轨迹对比图
为了进一步验证本文算法的有效性,使用在室外环境下采集的KITTI数据集对本文算法进行评估。如图6所示,图6(a)、图6(d)、图6(g)为未进行位置细胞修正的轨迹图,可见3个序列上的轨迹均存在明显的漂移。图6(b)、图6(e)、图6(h)中红色线条连接的部分是发生闭环的场景。图6(c)、图6(f)、图6(i)是本文算法经过位置细胞修正之后的轨迹图,并与RatSLAM和ORB-SLAM算法进行对比,可见本文经过位置细胞修正的轨迹图更接近于真实轨迹。在KITTI数据集不同序列下对比本文算法、RatSLAM和ORB-SLAM三者的位姿误差,相对平移误差(m)、相对旋转误差(°)和单帧图像处理时间 (ms)如表3所示,在00, 02, 05和06序列本文算法在相对平移误差和相对旋转误差与O R B-S L A M,RatSLAM相比有较大优势,因为本文算法通过兴趣倾向函数筛选掉冗余的显著性区域,提高了闭环的准确性。在01, 03和04序列与其他算法相比,提升没有太大明显,并且在这3个序列上本文算法、RatSLAM和ORB-SLAM三者的位姿误差都相对较大,是因为在这3个序列上没有闭环的路段,无法通过闭环修正漂移带来的误差。
图6 KITTI部分序列轨迹对比图
本文实验平台是轮式移动机器人,其硬件平台搭建如图7(a)所示。实验过程中主要参数设置如表4所示。选取学校会议室为室内实验场景,如图7(b)所示,大小为5 m×7 m。图7(c)为会议室场景的平面布局图,其中虚线部分为会议桌,阴影部分为桌子、椅子等障碍物。a,b,c为机器人在实验场景中的位置,移动机器人围绕会议桌运动的过程中实时获取图像信息并处理。
图7 硬件平台及真实实验环境场景
表4 主要参数设置
移动机器人从a点位置出发,围绕会议桌做逆时针运动两圈,最后回到a点位置。图8(a)、图8(d)、图8(g)为里程计轨迹,图8(b)、图8(e)、图8(h)则是本文算法的运行轨迹,图8(c)、图8(f)、图8(i)为当前时刻的位置细胞放电响应图。从图中可以看出,当到达c点位置时,本文算法和里程计信息都存在漂移现象,但当运行第2圈到b点位置时,本文算法检测到是之前来到过的熟悉场景,开始对位置细胞进行重定位,并且修正之前的位置信息。通过运行完的轨迹线路来看,本文算法由于闭环实时校正,所得结果与真实路径相似,而里程计信息出现了较大的偏差。图9是本文算法和里程计在不同时刻下的相对平移误差和相对旋转误差,从图中可以看出本文算法在未进行位置细胞修正之前,误差随着时间的增加而增大,经过熟悉场景时,本文算法开始修正当前的位置信息,误差逐渐减小且趋于稳定状态,而传统的里程计没有位置修正这一环节,所以随着时间的增加,漂移误差越来越大。
图8 移动机器人路径图
图9 视觉里程计与本文算法定位误差对比图
为了提高移动机器人在复杂环境中的定位精度和闭环准确率,本文提出一种基于兴趣倾向机制的仿生SLAM算法。本文所提算法具有以下优点:(1)解决了不规则复杂环境场景对网格细胞分布的影响,使得移动机器人能够应用在复杂环境场景中进行实时定位与建图。(2)引入关键帧评分策略解决了关键帧中出现模糊帧图像问题。提高了闭环检测的准确率。(3)采用兴趣倾向机制对提取的显著性区域进行兴趣赋值,减小冗余环境信息对闭环检测环节产生的干扰。实验结果表明移动机器人在漫游和导航的过程中能够动态形成和更新认知地图。下一步将在本文研究的基础上,融合IMU、激光雷达等较精确的传感器提高机器人遇到动态障碍物的鲁棒性,引入深度学习方法赋予机器人语义功能实现机器人自主导航等。