动态环境下基于Mask R-CNN的ORB-SLAM研究

2020-07-09 22:56王伟良
现代信息科技 2020年21期

摘  要:随着智能时代的到来,视觉机器人在自然场景中会遇到行人位姿变化、障碍物遮挡等复杂环境,使特征点误匹配。文章先对Mask R-CNN算法应用于动态环境下的SLAM中进行研究。通过深度神经网络优化SLAM视觉前端,使得神经网络能够对动态物体进行检测并能在很大程度上识别动态特征点,减少了特征点的误匹配,提高了相机位姿估计的准确性。最后与ORB-SLAM2进行仿真对比,结果表明,该文算法和ORB-SLAM2算法相比精度提高了96%以上,能够明显的提高SLAM算法匹配的正确率。

关键词:Mask R-CNN;动态环境;特征点匹配;视觉SLAM

中图分类号:TP391.41;TP242     文献标识码:A 文章编号:2096-4706(2020)21-0080-04

Research on ORB-SLAM Based on Mask R-CNN in Dynamic Environment

WANG Weiliang

(Shenyang Jianzhu University,Shenyang  110168,China)

Abstract:With the advent of the intelligent era,visual robots will encounter complex environments such as pedestrian pose change and obstacles occlusion in natural scenes,which makes feature points mismatched. The article first studies the Mask R-CNN algorithm applied to SLAM in a dynamic environment. The SLAM vision front end is optimized by the deep neural network,so that the neural network can detect dynamic objects and identify dynamic feature points to a large extent,reduce the mismatch of feature points,and improve the accuracy of camera pose estimation. Finally,a simulation comparison with ORB-SLAM2 shows that the accuracy of this algorithm is improved by more than 96% compared with ORB-SLAM2,which can significantly improve the accuracy of SLAM algorithm matching.

Keywords:Mask R-CNN;dynamic environment;feature point matching;visual SLAM

0  引  言

近幾年,以机器学习、深度学习为代表的人工智能技术逐渐变得越来越普及。从家用扫地机器人到无人自动驾驶技术的成熟发展,大家已经越来越依赖机器人视觉导航科技带给我们的便利。这些技术的成熟运用离不开人工智能技术与SLAM技术的长期研究,特别是最近这几年,得益于数据的增多、计算能力的增强、学习算法的成熟以及应用场景的丰富,越来越多的人开始关注深度学习与SLAM结合的问题。但目前视觉SLAM在动态环境下还未形成统一成熟方案,现在依然处于各个算法错综复杂,因此研究在语义环境下SLAM算法有着很大的意义。

本文来源于课题“基于环境感知的室内移动机器人定位与导航关键技术研究”,是沈阳自动化研究所是SLAM定位机器人的子课题,应用于工业或家用机器人的算法优化方面,对于整个机器人学研究有着重要的意义。

同步定位与建图(Simultaneous Localization And Mapping,SLAM)技术是实现视觉机器人自主导航的一项关键性技术,视觉SLAM是使用相机作为传感器进行实时定位和绘制地图的一种重要方法。随着现有技术性能的不断提高,视觉SLAM算法在视觉算法上也取得了长足的进步,无论是无人驾驶还是家用智能机器人,视觉SLAM技术均成为研究的热点。当下视觉SLAM的主要研究方向偏向于静态场景下的定位与建图,对于动态环境下的视觉SLAM研究还没有形成成熟可靠的方案,并且大部分动态环境下视觉SLAM的准确率较差且运行实时效率较低。

在动态背景环境下,用深度学习算法基于目标环境检测主要有两个大类,分别为:

(1)基于神经网络候选区上,分为两个步骤进行检测的算法,例如:区域卷积神经网络(Regions with CNN features,R-CNN)、Fast R-CNN等算法。

(2)基于端到端,只需一个阶段就能完成检测的算法,如:YOLO、YOLOv3等。

本文使用Mask R-CNN算法进行动态物体的像素进行分割。Mask R-CNN是在R-CNN系列目标检测模型框架下进行改进的。与Fast R-CNN算法相比,Mask R-CNN用ROI Align替代了ROI Pooling,并增加了全卷积网络来产生对应分支:分类预测(class)和分割掩码(mask)的分支。Mask R-CNN对于每个class类别都一一对应一个mask类别,避免了相同类别间的模块竞争,使算法的检测性能有了明显的提升。因此进一步提高了算法的性能与速度。

本文采用ORB-SLAM算法进行特征点提取并在视觉前端部分做出了改进,增加了在动态环境下物体识别的分支任务,利用Mask R-CNN算法将环境中移动人员进行识别,并使用神经网络对动态物体进行检测与剔除,使得SLAM算法能够处理室内动态场景。最后通过与ORB-SLAM2对比验证本文算法的精确性与时效性。

1  基于Mask R-CNN动态物体检测

1.1  Mask R-CNN算法

R-CNN是最先运用于目标检测的一种神经网络算法。R-CNN算法首先对输入数据选择若干个提议区域并对其类目判定和边界框分别进行有效标注;其次,用卷积神经网络模型对每一个提议区前反馈计算选择特征;最后,再与识别库中类别进行类目对比和对边界框划定。Mask R-CNN在R-CNN系列目标检测模型框架下进行改进,如图1所示。Mask R-CNN算法用ROI Align代替了原有的ROI Pooling,同步对分割掩码的分支进行了有效补充。Mask R-CNN网络模型是由输入数据生成其对应的候选区域。开始基础的特征提取网络,Mask R-CNN采用残差网络(ResNet)和特征金字塔网络(Feature Pyramid Networks,FPN)的组合的方式对输入数据的特征进行提取,输出经过候选区域网络RPN判断背景进行二值分类并生成候选框,同时生成的候选框通过RoI Align输出与特征图中的像素一一对应,之后的一个分支用于分目的判断和反馈回归,另一个分支分割生成mask。

Mask R-CNN定义了一个多任务的损失函数:

L=Lcls+Lbox+Lmask

其中,Lcls和Lbox为分类误差和检测误差,计算公式为:

Lmask为分割分支的损失,输入mask分支的每个特征图经过一系列卷积操作后输出特征图,Ncls为每维度分类误差,Nreg为每个维度二值交叉熵函数,pi、pi*为特征图维度类别,λ为维度系数,ti、ti*为像素值,Lreg为平均二值交叉熵函数,该函数会对每一个像素进行分类,判断是否为此类别。本文算法流程图如图2所示。

R-CNN具体算法步骤为:

(1)首先将卷积层变换卷积神经网络的输出进行输出,输出的通道数记为c,得到一个长度为c的新特征。

(2)以特征图每个单元为中心,标注每个单元不同大小和画面比的锚框。

(3)用锚框中心单元长度为c的特征函数分别预测该锚框的二元类目和边界框的范围。

(4)用非极大值抑制原理,从预测类别为目标的预测边界中剔除相似的特征值。最后输出的预测边界框即兴趣区域池化层所需要的提议区域。

1.2  动态特征点的判别

本文采用五个相邻帧去判断特征点是否为移动目标。对于一个新到的帧,选择和它重叠区域最大的先前特征点,数目为五是为了考虑了计算成本和精度。

计算先前帧的所有特征点到当前帧的对应点和投影深度,并计算对应点和3D点之间的视差角,如果这个角度大于30度,则认为这个点“堵塞了”,选择放弃。因为当这个角度大于30度后,视角的不同会导致一些静态目标被误认为是动态目标。动态环境下识别的特征点与动态特征点轨迹如图3所示。

计算当前点对应投影深度和(RGB-D相机对应的深度)之间的重投影误差,当这个误差大于门限值时(0.4 m),则认为这个点是动态点,从而找出动态目标区域。从动态特征点开始在深度图中进行区域增长,比较动态点和邻居点之间的深度差,如果不超过门限(0.2 m),就认为属于同一个几何动态区域,将这两种结果融合最终得到动态目标区域。识别的动态区域为实验员的座椅和手中的书本。

2  实验与分析

为了验证本文算法的性能,在公开数据集进行了两组数据集的对比实验。实验的操作系统为Ubuntu16.04,CPU为i5-7300HQ,8 GB内存。SLAM系统主要用C++和Python编程语言进行编写,配置的环境主要有SciPy、OpenCV2.4.11、Tensorflow1.12.3、Keras2.0.9等。

本实驗使用德国TUM大学的Computer Vison小组提供的公开视频数据资源作为数据集。因为本文研究的是动态环境下视觉SLAM,所以选用了rgbd_dataset_freiburg3_long_office_household、freiburg3_walking_xyz具有大量运动篇幅的数据集,如图4所示。

为了对本文视觉SLAM精度进行准确的评估,本文将绝对轨迹误差(Absolute Trajectory Error,ATE)作为参照依据。绝对轨迹误差表示真实轨迹点坐标与SLAM系统定位点坐标的误差,用两者的轨迹误差均方根进行计算:

其中, 为SLAM系统估计的某个相机位姿,xi为对应的真实坐标位姿,n为坐标位姿采集次数。

本文在两组公开数据集下进行了实验,本文算法视觉SLAM和ORB-SLAM2进行对比实验。图中内侧黑色线条轨迹表示视觉相机的真实轨迹位姿,外侧虚线线条轨迹表示为SLAM算法估计得到的相机轨迹位姿,中间区域表示同一时间相机估计位姿与真实位姿之间的位姿误差距离,可以得出延伸越长以及扇形灰色区域越大表示误差越大,位姿估计的准确性越低。最后通过计算ATE来评估系统,实验结果为:

数据集1:freiburg3_long_office_household如图5所示。

数据集2:freiburg3_walking_xyz如图6所示。

将实验得到的ATE进行汇总,如表1、表2所示。

3  结  论

本文将Mask R-CNN深度学习网络应用于动态环境下的视觉SLAM中。通过深度神经网络优化视觉前端,使用深度学习算法进行动态物体识别,并能在很大程度上剔除动态特征点以及动态区域中包含的特征点,减少了特征点的误匹配;最后通过仿真对比试验表1、2得出,本文算法与ORB-SLAM2算法相比精度提高了96%以上,执行速度和原有的ORB-SLAM2算法执行速度基本相差不大,精度的提升完全没有影响到本文算法的执行速度。表明了本文SLAM算法在动态场景下能够具有较大优势,定位的准确度更高。

参考文献:

[1] 张文.基于多传感器融合的室内机器人自主导航方法研究 [D].合肥:中国科学技术大学,2017.

[2] GRISETTI G,STACHNISS C,BURGARD W. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters [J].IEEE Transactions on Robotics,2007,23(1):34-46.

[3] 石杏喜,赵春霞,郭剑辉.基于PF/CUKF/EKF的移动机器人SLAM框架算法 [J].电子学报,2009,37(8):1865-1868.

[4] 刘雅彬,陈万米.融合激光与视觉信息的自主移动机器人的SLAM研究 [J].工业控制计算机,2015,28(9):70-72+74.

[5] 侯荣波,魏武,黄婷,等.基于ORB-SLAM的室内机器人定位和三维稠密地图构建 [J].计算机应用,2017,37(5):1439-1444.

[6] SIMONYAN K,ZISSERMAN A. Two-stream convolutional networks for action recognition in videos [C]//Proceedings of the 27th International Conference on Neural Information Processing Systems.Cambridge:MIT Press,2014:568-576.

作者简介:王伟良(1995.06—),男,汉族,辽宁沈阳人,研究生在读,研究方向:移动机器人控制技术。