APP下载

基于局部熵的SLAM 视觉里程计优化算法

2021-07-25于雅楠卫红陈静

自动化学报 2021年6期
关键词:里程计信息熵位姿

于雅楠 卫红 陈静

在移动机器人研究领域,同步定位与地图创建(Simultaneous localization and mapping,SLAM)技术使机器人从未知环境的未知地点出发,在运动过程中通过机器人搭载视觉、激光等传感器重复观测到的地图特征定位自身位置和姿态,再根据自身位置增量式地构建地图,从而达到同时定位和地图构建的目的,为机器人自主定位、避障、导航、路径规划等任务提供必要的支持.鉴于SLAM 技术是使机器人真正实现完全自动化的关键技术之一,其应用已广泛覆盖无人驾驶汽车、无人机、人机交互、虚拟现实、增强现实等人工智能领域[1−3],并且结合深度学习的SLAM 也成为近两年的研究热点[4−6].在SLAM 应用中,相比能够测试环境范围的激光传感器而言,可直接获取图像信息的视觉传感器(包括单目、双目、深度相机)在环境的可视化上具备更多优势,对移动机器人进行场景识别以及感知理解具有更广泛的应用前景.

在视觉SLAM 中,视觉里程计作为SLAM 系统前端,其意义在于依靠图像信息来增量式地估计相机运动.视觉里程计根据其原理不同主要分为非直接方法与直接方法两类[7],最本质区别在于,传统的非直接方法借助于人工提取的图像特征信息,通过优化特征的重投影误差来计算相机的姿态运动,而直接方法借助于图像包含的全部像素信息,即优化像素灰度误差来计算相机的姿态运动.除此之外,完整的SLAM系统还包括运动回环检测、精确地图创建、轨迹与地图的全局优化.SLAM 系统框架如图1 所示.

图1 SLAM 系统框架Fig.1 SLAM framework

SLAM 研究仍然存在诸多挑战,在利用稀疏特征的非直接方法中,存在如何设计一种最优表示图像信息的特征、如何使特征在光照变化、相机参数改变或纹理信息不足的环境中具有较高鲁棒性等问题.在直接方法中,虽然图像信息可以最大化被利用,但如果存在遮挡、漫反射或光线变化等特殊情况,以优化像素值为目标函数的前提假设则不成立.除上述讨论的关键技术外,SLAM 研究对于应用环境也有特别的要求,在复杂以及多动态目标运动环境中SLAM 系统显得更为脆弱[8],长时间或远距离的实时应用对系统的鲁棒性需求更高.另外,SLAM 位置及姿态跟踪结果对于突然的环境亮度变化极为敏感[9],过曝光或欠曝光等情况使成像区域出现饱和现象,从而影响特征提取以及深度估计.

本文提出一种基于局部图像熵的细节增强优化算法,改善视觉里程计中由于特征不充分而造成的图像匹配失败以及跟踪丢失等问题,提高移动机器人视觉定位精度和系统鲁棒性.首先介绍了SLAM 关键技术及可行性,结合应用中面临的实际问题,即图像纹理或结构特征不丰富、视觉传感器快速运动或大角度转动时出现跟踪丢失等问题,提出基于信息熵的图像特征提取方法,构建SLAM 系统,对比ORBSLAM2 系统进行了开源数据集验证及分析,最后得出相关结论.

1 相关研究

1.1 SLAM 技术

2007 年Davison 等开发的基于单目摄像头的Mono-SLAM[10]系统成功实现了机器人视觉SLAM.2007 年英国牛津大学Klein 和Murray 发布了独特创新的双线程并行追踪与建图SLAM 算法[11],即前端跟踪后端建图的PTAM,引入关键帧的特征分析和姿态跟踪后,使得SLAM 在实时性及稳定性上有了较大的突破.2014 年德国弗赖堡大学Endres等开发的RGBD-SLAM[12]与2015 年西班牙萨拉戈萨大学Mur-Artal 等开发的ORB-SLAM[13]开源系统都是目前非常成功的PTAM 的延伸.其中,ORB-SLAM2[14]基于orb特征完成图像序列的匹配及跟踪,甚至回环检测和再定位,并且提供的接口可以实现在单目、双目、RGB-D 及ROS(机器人操作系统)下的使用.由于ORB-SLAM2 构建的是稀疏三维点图,在避障和导航等实际任务中无法直接使用,2017年Lv 等基于该系统利用八叉树结构以及空间预测扩展了密集型三维地图[15].

与基于稀疏特征的非直接方法不同,2011 年Newcombe等提出的DTAM 解决特征不丰富情况下最大化地利用图像的全部像素信息进行精细化建图[16].为了减小稠密SLAM计算量并提高同步性,作为半稠密型的代表,Engel 等先后于2014 年发布的LSD-SLAM[17]和2018 年发布的DSO 视觉里程计[18]只关注有信息区域或有纹理区域的像素信息估计,解决大尺度空间机器人定位及稠密地图创建的系统性能问题.2014 年Forster 等开发的SVO-SLAM[19]结合稀疏特征与直接法,只在前端的图像配准部分根据特征点周围信息采用直接法计算,又称半直接法.

1.2 相机运动估计

视觉里程计作为SLAM 前端能够计算任意两帧图像之间的转换关系,进而估计出粗略的相机运动.相比直接法,基于稀疏特征的非直接法更加稳定,并且对光照变化的鲁棒性更高.通过依次提取相邻帧图像特征点、计算特征描述子、匹配特征以确定图像之间的关联性,估计相机运动姿态.

基于RGB-D 相机获取的彩色图像以及深度信息,通常采用迭代最近点方法(ICP)将稀疏特征点对齐,并求解位姿估计问题.假设已根据提取的RGB-D 数据特征点找到两幅图像之间的特征匹配关系,计算出空间坐标分别为P1={p11,p12,···,p1n}与P2={p21,p22,···,p2n}.两组空间点之间存在姿态变换R、t,使得任意特征点有

构造目标函数对投影误差作最小化处理,得到最优的位姿估计,即:

此处,n表示参与优化的图像特征点个数.

将当前帧特征点与临近帧特征点以及关键帧特征点进行数据关联,从而得到机器人局部和全局的位姿估计值.

1.3 本文贡献

在实际应用中,目前主流的基于稀疏特征的SLAM 系统无论是在视觉里程计环节、闭环检测环节亦或是重定位环节,都依靠从图像提取的具有表征性的大量特征点,无论采用何种特征提取方法,在特征定位上都需要耗费大量时间.除此之外,由于特征不足而造成的轨迹跟踪丢失也是基于稀疏法的SLAM 系统常常遇到的问题.例如,在使用ORB-SLAM2系统对开源TUM RGB-D 数据集fr1_desk 相机运动进行跟踪时,在已与深度图像关联的RGB 图像序列中,第158 帧与第159 帧之间,如图2 所示,由于相机发生了快速的转动,导致图像序列中的144 帧数据跟踪失败.

图2 帧间相机大角度转动Fig.2 Big camera rotation in adjacent images

为解决此类问题,本文提出了一种图像关联准确率相对较高的SLAM 视觉里程计优化算法,提出根据局部信息熵值来筛选图像有效信息,解决系统在提取特征点、匹配特征点、定位特征点上消耗大量的时间问题.另外,本文对局部图像进行细节增强,改善视觉里程计中由于特征不足而造成的图像匹配失败等问题,提高移动机器人视觉定位精度和系统鲁棒性.

2 系统构建

2.1 算法改进

本文采用基于图像熵的视觉里程计优化算法,其系统流程如图3 所示.

图3 视觉里程计优化算法Fig.3 Optimization visual odometry algorithm

首先,构建图像金字塔,增加特征的尺度不变特性.由于每层图像都根据尺度因子进行了缩放处理,为了使图像特征实现均匀化提取,并且降低后续图像匹配时的复杂度,在不同的尺度空间下,根据图像块的尺寸定义(width,height)对图像进行区域分割.

逐层对每个图像块进行角点特征的快速提取,通过四叉树方式对关键点进行分配和管理,根据预先设定的阈值选取影响度大的特征(最强壮的特征)作为该结点的特征进行保留,以此实现图像特征的均匀分布.同时,增加特征的旋转不变特性,计算特征点在图像中的实际位置,并生成特征描述子进行保存.

在原有算法中,为了使特征在整幅图像中均匀分布,算法对每个图像块均做提取角点的操作.这样做的结果是,既增加了无纹理或像素梯度不明显区域的计算量,又可能造成某些区域保留下来的角点与相邻帧图像该区域角点并不能建立有效的匹配关系,反而其他区域中表征纹理或结构信息的角点被删除掉以满足预先设定的特征参数阈值.

另外,原算法对光照变化的容忍度低,一幅图像中存在曝光不足或过曝光时,算法中特征提取能力并不会因此而改变,从而影响特征的检测能力.在图3 中,虚线框中为视觉里程计的优化方法,增加基于局部信息熵的细节增强模块,改善连续的帧间图像匹配效果.

2.2 基于局部信息熵筛选

信息熵最先由美国工程师Shannon 提出[20],在图像处理技术层面上,图像的信息熵能够直接表示图像中含有的信息量,也是对图像中信息的不确定性的一种度量方式.本文中,为更有效提取能够表征图像纹理或结构信息的特征,同时减小特征提取计算量,利用图像熵的信息特征统计形式,对图像块进行灰度分布及概率计算:

其中,图像一维熵H(x)表示图像灰度分布的聚集特征,p(xi)表示灰度为i(i=0,···,255)的像素在图像中出现的概率.如果像素灰度值分布范围大,则信息熵值较大,图像纹理信息丰富或图像像素梯度变化明显.反之,图像灰度单一,信息熵较小,则认为该图像无纹理信息或图像像素梯度变化不明显,在该图像块中提取的特征对图像匹配贡献不大,可进行区域剔除.

通过对图像块进行信息特征统计,H(x)越接近0,表明该图像块内像素梯度值越小,图像内纹理或结构信息不足.故将H(x)与块剔除阈值R进行比较,完成筛选.这里阈值R为经验值,可根据视频序列中特征的丰富程度来定义.

2.3 光照自适应调整

提出一种光照自适应优化方法,对保留的局部图像进行非线性调整,降低图像局部的阴影和光照变化所造成的影响,增强该区域中亮与暗的对比度,增加图像细节并抑制噪音干扰.目前,Gamma 矫正是成像设备中普遍使用的一种亮度非线性逐点调整方法[21−22].图像亮度Gamma 矫正函数:

其中,I(x,y)是像素(x,y)的灰度值,G(x,y)是像素(x,y)的校正值,γ为校正参数.如图4 所示,γ取值小于1 可提高图像亮度;相反,γ取值大于1 可降低图像亮度.

图4 Gamma 非线性曲线Fig.4 Gamma nonlinear curves

分别选取γ=0.4 和γ=2.2 对两幅图片进行亮度调整,与原图对比结果如图5 所示,图中局部区域对比度在Gamma 修正后有所增加,但同时其他区域的图像也相应受到抑制.

图5 Gamma 修正Fig.5 Gamma correction

为了只对局部图像进行自适应调整,这里,γ由图像块的平均灰度值决定:

其中,µ为图像灰度校正阈值,取值范围在(0,1)之间,当图像平均灰度值大于255·µ时根据γ值暗化图像,相反,当图像平均灰度值小于255·µ时根据γ值亮化图像.当µ取值0.5 时,γ参数曲线如图6 所示.

图6 γ 参数曲线Fig.6 γ parameter curve

3 实验结果

系统分别采用RGB-D 数据集fr1_desk、fr1_360、fr1_floor 和fr1_room 进行实验验证,图像序列读取速度设为30 帧/秒,跟踪结果与标准轨迹数据进行误差计算,同时与开源ORB-SLAM2 系统进行对比与分析.所有实验在Intel CoreTMi5-3470 CPU、主频3.20 GHz、四核、内存15.6 GB 配置的台式机上完成,系统后端采用G2O 进行基于姿态图的位姿优化,生成运动轨迹.

3.1 基于图像熵的视觉里程计

以fr1_desk 数据集为例,提取数据集中彩色单帧图像,首先进行灰度化处理,采用双线性插值采样方法建立图像金字塔.在金字塔图像中划分图像块,基于信息熵阈值R=5对图像块进行筛选,减小无纹理或像素梯度不明显区域对计算资源的占用,在保留的图像区域中通过自适应光照调整,增强对比度与图像细节.如表1 所示,通过分析图像灰度校正阈值µ对跟踪精度以及跟踪效果的影响,系统选用µ=0.5.

表1 阈值选取Table 1 Threshold selection

图像块筛选及局部细节增强结果如图7 所示.

图7 处理结果Fig.7 Processing results

提取计算速度较快的orb 特征,根据生成的描述算子进行相邻帧图像匹配.优化后任意相邻图像的匹配结果如图8所示.

图8 匹配结果Fig.8 Matching results

如前文所述,运行测试数据集fr1_desk 时,相机在第158帧与第159 帧之间发生了快速的转动,由于缺少有效特征作为匹配依据,从而导致图像序列中的144 帧数据跟踪失败.采用本文提出的图像块筛选及局部细节增强技术,在相机发生大角度转动位置,相邻帧之间的特征匹配效果发生明显的改善,优化前后匹配结果如图9 所示.

图9 匹配结果对比Fig.9 Matching results compared

图9 中,由于利用了图像块的信息熵值判断其信息量大小,对比度低以及梯度变化小的图像块被自动剔除,对保留的图像块进行亮度自适应调整,增强局部图像细节,尽可能多地提取能够表征图像信息的局部特征点作为相邻帧匹配以及关键帧匹配的关联依据,进一步提高相机运动的鲁棒性,避免由于帧间匹配失败而造成的运动跟踪丢失问题.

根据匹配结果计算帧间的R,t变换关系,后端采用G2O进行基于姿态图的位姿优化,最终生成运动轨迹,如图10 所示.

图10 运动轨迹Fig.10 Motion trajectory

3.2 SLAM 结果分析

3.2.1 跟踪精度

在跟踪精度上,绝对轨迹误差反映了运动估计值与标准值之间的差异.以fr1_desk 数据集为例,算法优化后的运动轨迹与标准值之间的误差如图11 所示.

图11 绝对轨迹误差Fig.11 Absolute trajectory error

采用反映测量精密度的绝对轨迹误差均方根(Root mean square error,RMSE)作为评价标准,绝对轨迹误差均方根RMSE(x)定义如下:

其中,xe,i表示图像序列中第i帧的位置估计值,xs,i表示图像序列中第i帧的位置标准值.

除此之外,相对位姿误差是一种相对位姿转换的标准度量,由于相对位姿包括平移分量和旋转分量,故通常将相对位姿分解为位姿平移部分和位姿旋转部分分别进行评价.算法优化后的相对位姿与标准相对位姿之间的误差如图12 所示.

图12 相对位姿误差Fig.12 Relative pose error

同样,采用反映测量精密度的相对位姿误差均方根(RMSE)作为评价标准,相对位姿误差均方根RMSE(T)定义如下:

其中,Te,ij=Te,i −Te,j表示估计位姿在图像序列中第i帧和第j帧之间的相对变换,Ts,ij=Ts,i −Ts,j表示标准位姿在图像序列中第i帧和第j帧之间的相对变换.

通过对比ORB-SLAM2 算法与优化SLAM 算法的运动轨迹误差,本文提出的方法在运动跟踪精度上有所改善,基于RGB-D 数据集的测试结果如表2 所示.其中,由于对局部图像进行细节增强,平均处理时间略有增加,但在跟踪轨迹误差、平移误差和旋转误差等指标上均有所下降.

表2 轨迹分析结果Table 2 Trajectory analysis results

3.2.2 光照自适应

本文提出的优化算法对于环境光照变化具有自适应性,提高算法在低暗区域和高亮区域中的特征提取效果,有效突出或增强更多的纹理细节信息,解决由于特征不足而造成的匹配失败以及运动跟踪丢失等问题.在图13 和图14 中,图(a)为正常光照条件下提取的orb 特征点分布情况,当光照条件发生变化后,图像中存在欠曝光或过曝光成像时,与图(a)相比,部分区域无法提取足够的特征信息,图像处理结果如图(b)和图(c)所示.然而,经过算法中的局部光照自适应调整和细节增强后,特征提取效果有所改善,图像处理结果如图(d)和图(e)所示,减小了环境光照变化对系统性能的影响.

图13 光照自适应调整效果AFig.13 Effect A of adaptive illumination adjustment

图14 光照自适应调整效果BFig.14 Effect B of adaptive illumination adjustment

若图像中存在过曝光或欠曝光区域,将无法产生带有信息的特征用于视觉SLAM 当中,故选取不同亮度值的相同数据集作为测试验证对象,对比分析局部光照自适应调整前后的系统跟踪精度.以fr1_room 为例,测试结果如图15 所示,当环境光照发生变化时,系统跟踪精度随之受到影响,而本文提出的方法可以改善光照条件不理想情况下的绝对轨迹误差,提高系统性能.

图15 不同光照条件下跟踪精度Fig.15 Tracking accuracy in different illumination conditions

3.2.3 运动鲁棒性

本文提出的优化算法在视觉传感器快速运动方面表现出了较强的鲁棒性,可以解决由于帧间匹配失败而造成的运动跟踪丢失问题.

以fr1_desk 数据集为例,其SLAM 跟踪结果如图16 所示.图16(a)中由于无法利用帧间特征进行有效匹配,所以只有当相机重新定位到原来的位置时才能继续跟踪.图16(b)中由于增强了基于信息熵筛选后保留下来的图像细节信息,增加有用特征提高匹配成功率,所以跟踪成功.多组测试结果显示,使用ORB-SLAM2 对fr1_desk 数据集进行跟踪时的成功率不足10%,而应用优化算法进行SLAM 的运动跟踪成功率可提升至60% 以上.

图16 轨迹跟踪结果Fig.16 Trajectory tracking result

4 结论

在移动机器人同步定位与地图构建中,本文提出了一种基于局部信息熵的细节增强视觉里程计优化算法,利用局部信息熵值判断图像信息大小,剔除对比度低以及梯度变化小的图像区域,对保留的区域进行亮度自适应调整,增强局部图像细节,将其作为相邻帧匹配以及关键帧匹配的关联依据,提高机器人运动跟踪精度.

虽然本优化算法在处理时间上有所增加,但能够实现移动机器人在视觉传感器发生大角度转动时的有效运动估计.分别在TUM RGB-D 数据集fr1_desk、fr1_360、fr1_floor、fr1_room 上进行验证,应用本文提出的优化算法使运动跟踪成功率最大可提升至60% 以上,同时使预测轨迹误差值减小.该算法对于环境的光照变化具有自适应性,并且对于相机的运动具有较强鲁棒性,当视觉传感器快速运动时,可以解决移动机器人在纹理信息不足情况下的正常轨迹跟踪问题.

猜你喜欢

里程计信息熵位姿
室内退化场景下UWB双基站辅助LiDAR里程计的定位方法
基于信息熵可信度的测试点选择方法研究
一种单目相机/三轴陀螺仪/里程计紧组合导航算法
基于模板特征点提取的立体视觉里程计实现方法
一种基于信息熵的雷达动态自适应选择跟踪方法
基于共面直线迭代加权最小二乘的相机位姿估计
基于CAD模型的单目六自由度位姿测量
大角度斜置激光惯组与里程计组合导航方法
小型四旋翼飞行器位姿建模及其仿真
基于信息熵的IITFN多属性决策方法