动态环境下基于卷积神经网络的视觉SLAM方法
2022-11-24王伟良孙明智
张 凤, 王伟良, 袁 帅, 孙明智
(沈阳建筑大学 信息与控制工程学院, 沈阳 110168)
在计算机视觉同时定位与建图(SLAM)[1]方面,大多数SLAM主要应用在静态环境中,且要求满足确定的环境条件,才可以正常运行工作.少数成熟的视觉SLAM方法具有实时动态兼容性能,在环境中实时动态物品非常显著或偶尔产生的时候,可以正常运行工作,而环境中动态物体实时移动时,就会失去效能.欧阳豪[2]和程珉等[3]应用稠密光流法对环境里运动物品进行测试,在位姿估测前除去运动物品,从而提高实时动态条件下的定位准确性,但稠密光流法不能满足实时在线性等多种要求,对精确度的提高也有限.牛青青[4]根据改进光流法对运动物品进行全面处理,应用RGSA方法完成环境的动静脱离,从而避免产生特征点误匹配,稠密光流法其精确度尚可,但实时性较差.张凤等[5]改进了RANSAC算法[6],可以高效去除动态特征点,该方法表现出非常好的鲁棒性,但耗时严重,不能满足实时需求.
为了解决传统SLAM在动态环境下准确性较差的问题,本文采用ORB SLAM算法进行特征点提取,并在视觉前端部分做出了改进,增加了在动态环境下识别的分支任务.运用Mask R-CNN算法对动态物体进行检测与剔除,从而实现在室内动态环境下的同时定位与建图.最后与ORB SLAM2进行对比分析,本文算法有效地提高了定位精度.
1 算法理论依据
1.1 ORB特征点提取
ORB[7](oriented FAST and rotated BRIEF)突出的优势是结合了FAST[8]特征角点检测与BRIEF[9]描述子,其主要由三个部分构成:提取图像FAST特征点、构建特征点描述向量、匹配特征点.其中提取特征点,即从图像中提取若干FAST特征点,构建相应的高斯金字塔.
FAST特征点相邻矩阵为
(1)
式中:(x,y)为相对FAST特征点的位置;I(x,y)为图像灰度值.FAST特征点的方向为
(2)
由于FAST特征点本身缺乏旋转特性,所以通常借助灰度质心法来保持其旋转特性.构建特征点描述向量时,借助BRIEF描述子来对FAST特征点进行描述,最后借助汉明距离方式来匹配特征点.在特征点中选取一定比例的像素点,比较灰度值形成特征描述子,对于描述子分段函数组成图像点可表示为
(3)
式中,d(x)与d(y)为相邻处的灰度函数.选择的特征点数量不多,但都具有角点,实时性较好,可以满足实时处理.
1.2 ORB SLAM系统
就ORB SLAM系统[10]算法而言,主要由线程跟踪、定位、闭环检测等构成.跟踪线程的主要作用是提取当前图像的ORB特征,再匹配上一幅图像的特征,从而对相机位姿加以估计,得出相机的运动轨迹,若跟踪失败可凭借与上一个关键帧图像进行匹配,来对相机姿势进行重新初始化设置.基于已构建的局部地图,对当前相机位姿进行优化,凭借地图点数量及运行时间来决定是否生成关键帧.定位线程的主要作用是针对SLAM系统构建局部特征点轨迹,大致实现流程如下:首先,当跟踪线程存在关键帧插入时,会筛选新生成的特征地图点;然后,基于BA优化对相机位姿及生成的地图点进行调整;最后,处理插入的关键帧.就闭环检测线程而言,其主要作用是实现对SLAM系统的回环检测及闭环修正.
1.3 Mask R-CNN算法
Mask R-CNN[11]为掩码区域卷积神经网络,根据操作需要,对高维语义信息进行专业性的训练和技术支持,从而实现图片像素等级的分割操作应用,这是一类实时动态物品图片像素等级分割的神经网络分割模型.Mask R-CNN主要是以R-CNN系列框架为基础,进行应用技术的改进与功能优化.较上一代Faster R-CNN[12]神经网络模型来说,Mask R-CNN添加了专门的分割掩码分支.图1为Mask R-CNN网络模型.
图1 Mask R-CNN网络模型Fig.1 Mask R-CNN network model
Mask R-CNN网络结构前半部分,能根据图片生成与之相匹配的候选区域.Mask R-CNN通过残差网络ResNet与FPN之间有效的结合,完成整个过程中图像特征的提取.
Mask R-CNN神经网络结构的后半部分是根据ROI完成3个关键的工作任务:候选框物品的分类、候选框bbox分布坐标回归以及所需要的分割掩码.由于候选区域的实际大小不等,要求最先展开ROI Align,使其归一化,将ROI Pooling[13]里的取整具体量化全面处理,把计算求解中间数值的模式转化为保存浮点数并且展开双线性插值的操作应用模式.根据图1中的相关信息可知,经过归一化的ROI在此阶段能够进入到全连接网络,并实现候选区类别分类和bbox回归.把分类工作任务里的最终一个Softmax[14]分类层的种类,改成要求展开测试的实时动态物品种类,从而高效完成迁移学习.
2 基于Mask R-CNN改进ORB SLAM算法
在ORB SLAM的基础上融和Mask R-CNN,利用Mask R-CNN信息辅助定位对相机实现定位,利用Mask R-CNN生成的掩模信息筛选所需的特征点.将图像的ORB特征[15]作为整个过程中的视觉SLAM路标特征,利用极线几何的动态特征点剔除方法对卷积神经网络不能识别的动态物体进行剔除,保留了前景物体的特征点,经过筛选后的特征点归属于不同的物体.因此,ORB特征点描述子的相似性大大降低.图2为本文算法流程图.
图2 本文算法流程图Fig.2 Flow chart of as-proposed algorithm
对于ORB SLAM实现一组特征点匹配,需要整幅图像的特征点,整体运算效率较低,而Mask R-CNN主要采用边界框,将视觉图像划分成有语义标记的多种不同实例区域,在进行特征匹配的操作过程中,仅需在同一实例区域进行小范围的匹配操作,有助于从整体上提升特征匹配质量效果与位姿匹配的估算精度,大大地降低了匹配错误率.
对于Mask R-CNN不能识别的物体,例如书本、桌椅等,对实际移动的物体使用极线几何方法进行剔除.图3为相邻两帧图像之间的几何关系图.
图3 极线几何模型Fig.3 Epipolar geometry model
将前帧图像到后帧图像空间几何变换记为(R,t),则有
(4)
(5)
(6)
(7)
式中,F为基础矩阵.式(7)对一正确匹配像素点对的约束关系进行详细描述,如果某一像素特征点为另一像素特征点的精准匹配,这就说明其必在图像平面的极线上,进而能够估算出比较准确的帧间基本矩阵.但是,此矩阵通常受一些因素的影响,存在一定的误差,造成实际计算中特征点无法正好落在所计算的极线上.基于此,采用每个特征点到各自极线的距离对匹配点对的可靠性进行综合性衡量.
(8)
式中,X、Y、Z为极线方程向量.像素点x2到极线的距离为
(9)
式中,D为x2到极线l1两者之间的具体距离.在实际环境中会造成距离D过大,特征点处于动态目标中,一般涉及到两种不同的情况:特征点不匹配、环境中产生了一些动态目标.约束距离D可以有效剔除不匹配点及其中的异常点.若D≥θ,则说明所判断点是动态目标中的异常点.其中,θ为滤除阈值,其表达式为
(10)
式中:N为ORB特征点提取数;Di为第i个特征点到极线之间的具体距离.图4为残余物体去除前后Mask对比图.
图4 残余物体去除前后Mask对比Fig.4 Mask comparison before and after residual object removal
3 实验与分析
本文选用了德国慕尼黑工业(TUM)大学计算机视觉小组提供的两个公开数据集,作为动态环境下的相机定位数据集,即freiburg3_walking_xyz与freiburg3_walking_halfsphere,该数据集包括两名研究人员绕工位不停缓慢走动,最后两人依次回到座位上交谈的场景.相机处于高角度进行视频采集,相机往复旋转与左右移动的同时对两名研究人员进行图像采集工作.除此之外,还有一部深度相机对此相机的移动进行了数据采集,能得到此相机的真实轨迹,并用来做精度分析.这两个数据集中研究人员移动占整个视频时长较长,因此能满足本文研究应用背景.图5为数据集的某两帧场景.
图5 TUM数据集场景图像Fig.5 TUM dataset scene images
采用本文SLAM视觉算法和ORB SLAM2算法对两个数据集依次进行处理.图6a为使用ORB SLAM2算法得到的相机特征点与研究人员移动轨迹情况;图6b为使用ORB SLAM2算法得到的视频内对应帧图像的特征点.图7a为使用本文算法得到的相机特征点与研究人员移动轨迹情况;图7b为使用本文算法得到的视频内对应帧图像的特征点.
图6 基于ORB SLAM2移动轨迹与特征点图像Fig.6 Moving trajectory and feature point images based on ORB SLAM2
图7 基于本文算法的移动轨迹与特征点图像Fig.7 Moving trajectory and feature point images based on as-proposed algorithm
由图6~7可知,本文算法得到的特征点并不在移动的研究人员身上,而ORB SLAM2得到的特征点很多且在移动的人员身上,这是导致最后相机定位不准确的原因.
图8为使用freiburg3_walking_halfsphere数据集(即数据集1)得到的估计位姿与真实位姿轨迹图,图9为使用freiburg3_walking_xyz数据集(即数据集2)得到的估计位姿与真实位姿轨迹图.在位姿关系对比图中,黑色线条轨迹表示视觉相机通过深度相机得到的真实轨迹位姿,蓝色线条轨迹表示SLAM经过估计后得到的相机变化坐标,红色线条表示同一时间相机估计位姿与真实位姿之间的位姿误差距离,红色线段越长以及红色区域越大表示误差越大,位姿估计的准确性越低.
为了对相机精度进行评估,本文采用绝对轨迹误差(ATE)表示真实轨迹点坐标与采用本文SLAM系统得到的定位点坐标的误差,用两者的轨迹误差均方根[16]进行计算,即
(11)
将数据集实验得到的绝对轨迹误差进行对比,结果如表1所示.表2为每帧算法执行时间对比.
图8 数据集1的估计位姿与真实位姿轨迹Fig.8 Estimated pose and real pose trajectory by dataset 1
图9 数据集2的估计位姿与真实位姿轨迹Fig.9 Estimated pose and real pose trajectory by dataset 2
表1 两种算法ATE对比Tab.1 ATE comparison of two algorithms
表2 两种算法执行时间对比Tab.2 Execution time comparison of two algorithms
通过表1~2数据分析可以看出,在动态环境中,精度有了明显的提升,与ORB SLAM2算法相比至少提升了96%.在运行效率上,并没有大幅度降低系统的时效性,因此,本文算法处理动态环境下的相机定位问题是可行的,对精度的提升效果十分明显.
4 结 论
本文将Mask R-CNN卷积神经网络与ORB SLAM进行结合,在动态物体移动的情况下,对相机进行精准定位,解决了移动机器人在室内有干扰的情况下进行位姿信息获取的问题.利用Mask R-CNN网络对动态物体进行目标检测,使特征点提取范围转移到不移动的区域上.经过数据信息集对照测试与ORB SLAM2对比分析,测试实验结果表明,在满足实时在线的环境里,本文算法的精度提高了96%以上.