同步定位与地图构建( SLAM)已广泛应用于服务机器人、无人驾驶、虚拟现实等领域[1-2],与人们日常生活密切相关。而室内场景中的动态对象会严重影响相机位姿估计的准确性,从而降低地图创建的效果,因此室内动态场景SLAM成为了一个研究热点[3]。
视觉SLAM在动态场景下仍然存在很大的挑战,而且目前SLAM通常建立稀疏点云地图[4],缺少对环境地图信息的理解,因此基于深度学习的室内动态场景SLAM逐渐受到人们的关注[5-6]。
ORB-SLAM2[7]被认为是目前最完整的SLAM框架之一,但是在动态场景中ORB-SLAM2系统定位与建图效果并不理想,并且仅创建稀疏点云地图,无法用于移动机器人后续导航工作。本文以提高室内动态场景下相机位姿估计准确性以及地图创建效果为目的,在目前相对完整的ORB-SLAM2框架的基础上进行优化,将深度学习与SLAM相结合,剔除分布在动态物体内的特征点,减少动态对象对相机位姿估计的影响,同时提高移动机器人对周围环境的理解能力,利用背景修复[8]和点云拼接技术[9]相结合的方法建立无动态物体干扰的实例级稠密点云地图[10]以及语义八叉树地图[11],大大减少了地图存储空间。
1 本文SLAM系统框架本文SLAM系统采用ORB-SLAM2框架来提供SLAM方案,并行运行实例分割、特征点提取与跟踪、局部建图、闭环检测和地图构建5个线程。本文SLAM系统框架如图1所示。首先由彩色和深度(red,green,blue and depth,RGBD)相机捕获的彩色(red,green and blue,RGB)图像经过实例分割线程处理,得到每个像素实例级别标签;特征点提取与跟踪线程负责提取静态物体内的特征点,并且利用多视几何方法[8,12]进一步剔除潜在外点;最后利用筛选后的静态点估计相机位姿,地图构建线程负责建立无动态物体干扰的实例级稠密点云地图以及语义八叉树地图。
![]() |
Download:
|
图 1 本文SLAM系统框架 |
Mask RCNN[13]是一个基于深度学习的图像实例分割框架,它利用检测框物体分类、检测框坐标回归和检测框逐像素分割3个卷积网络分支来完成实例分割任务,改进了特征金字塔网络的感兴趣区域池化,在区域生成网络 (region proposal network, RPN)顶部添加了并列的全卷积网络 (fully convolutional networks, FCN)层来扩展Faster R-CNN[14],并且计算掩码损失。每个类对应一个掩码可以有效避免类间竞争,通过双线性插值使候选区域和卷积特征对齐,不因量化而损失信息。
Mask RCNN实例分割网络不仅可以实现对图像中物体语义信息的标注,而且可以准确区分同类物体中的不同个体,这对于帮助移动机器人理解周围环境起着重要的作用。
本文SLAM系统采用Mask RCNN实例分割网络进行动态物体检测,在实际室内场景中,人、狗、猫被认为是主要动态对象。若实例分割后的结果中含有上述动态对象,则将动态对象内部特征点剔除,这样可以显著降低动态对象的影响。
2.2 多视几何通过使用Mask RCNN,大多数动态物体可以被分割并且不被用于跟踪和建图。但是,由于一些可移动物体不是先验动态的,因此不能被该方法检测到。本文SLAM系统利用多视几何方法进一步检测动态物体,判断动态物体示意如图2所示。对于每个输入帧,选择之前具有最大重叠的关键帧,然后计算每个关键点
![]() |
Download:
|
图 2 多视几何判断动态物体示意 |
经过动态检测并剔除动态特征点,即可仅利用静态特征点进行相机位姿估计,从而提高相机位姿计算精度。假设筛选后的静态特征点
$ s\left[ \begin{gathered} x \hfill \\ y \hfill \\ 1 \hfill \\ \end{gathered} \right] = {\boldsymbol{K}}\left( {{\boldsymbol{R}}\left[ \begin{gathered} X \hfill \\ Y \hfill \\ Z \hfill \\ \end{gathered} \right] + {\boldsymbol{T}}} \right) $ |
式中:
设对应点
$ f({\boldsymbol{R}},{\boldsymbol{T}}) = (P' - 1/s{\boldsymbol{K}}({\boldsymbol{R}}P + {\boldsymbol{T}})) $ |
式中
对相邻关键帧中的所有特征点构建最小二乘问题:
$ {({\boldsymbol{R}},{\boldsymbol{T}})^*} = \arg \min \dfrac{1}{2}\displaystyle\sum\limits_{l = 0}^s {f({\boldsymbol{R}},{\boldsymbol{T}})_2^2} $ |
式中
为了创建无动态物体干扰的地图,需要将图像中的动态对象滤除。本系统采用将之前20关键帧彩色图像和深度图像投影到当前帧上的方法实现背景填充,背景修复前后图像如图3和图4所示。
![]() |
Download:
|
图 3 背景修复前图像 |
![]() |
Download:
|
图 4 背景修复后图像 |
本文选用TUM RGB-D公开数据集[16]中的动态序列f3_w_xyz、f3_w_halfsphere和f3_w_static对本文系统和ORB-SLAM2进行对比测试,运行平台为配备Intel Core i7处理器、GeForce GTX 1050Ti型号GPU、8 GB内存的台式电脑。
5.1 相机位姿估计误差本文使用绝对轨迹误差(absolute trajectory error, ATE)值(eATE)作为评价指标,利用evo工具绘制相机的轨迹,并评估估计轨迹与真值的误差。ORB-SLAM2和本文系统在3个公开数据集上的绝对轨迹误差测试结果分别如表1和表2所示,其中均方根误差(ermse)反映估计值与真实值之间的偏差;平均误差(emean)反映所有估计误差的平均水平;中值误差(emedia)代表所有误差的中等水平;标准偏差(estd)反映系统轨迹估计的离散程度。
![]() |
表 1 ORB-SLAM2绝对轨迹误差结果
|
![]() |
表 2 本文系统绝对轨迹误差结果
|
本文利用evo工具分别对ORB-SLAM2系统与本文系统绘制相机的轨迹,并评估估计轨迹与真值的误差,在f3_w_xyz数据集下的实验结果如图5~8所示。
由以上实验结果可以看出:在室内动态场景数据集f3_w_xyz、f3_w_halfsphere和f3_walking_static中,相对ORB-SLAM2系统来说,本文系统绝对轨迹均方根误差分别降低了97.59%、93.49%和98.18%,本文SLAM系统相机位姿估计误差明显降低,其原因在于本文系统增加了对动态物体的处理,利用动态检测方法筛选后的静态特征点进行位姿估计,从而提升精度。
5.2 地图创建本文利用实例分割后的图像与相机运动轨迹创建静态语义地图,将二维信息投影到三维地图中,赋予地图物体实例信息,经过实例分割并滤除动态对象后的稠密点云地图如图9所示。
![]() |
Download:
|
图 5 ORB-SLAM2系统相机估计轨迹与真实轨迹及误差 |
![]() |
Download:
|
图 6 本文系统相机估计轨迹与真实轨迹及误差 |
![]() |
Download:
|
图 7 ORB-SLAM2系统相关误差曲线 |
![]() |
Download:
|
图 8 本文系统相关误差曲线 |
从图9可以看出,对背景修复和实例分割后的图像进行点云拼接,可以将二维信息投影到三维地图中,其中不同颜色代表不同物体实例,然而在背景填充过程中难免存在始终被遮挡区域,造成图像出现裂痕。
![]() |
Download:
|
图 9 实例级稠密点云地图 |
相对于实例级稠密点云地图,语义八叉树地图所占的空间(3 MB)约是点云地图(14.8 MB)的20%,能够节省大量存储空间,为机器人提供含有环境物体信息的导航地图。本文系统生成的语义八叉树地图如图10所示。
![]() |
Download:
|
图 10 语义八叉树地图 |
本文提出了一种基于实例分割的室内动态场景SLAM系统。
1)该系统实例分割网络不仅可以应用于对环境动静物体的分割,而且可以在地图中添加物体实例信息,有效减小动态对象对相机位姿估计的影响,同时提高地图构建的准确性,弥补了ORB-SLAM2应用于动态场景下的缺陷。
2)构建的实例级稠密点云地图和语义八叉树地图有助于机器人理解环境,对后续导航工作有着重要的意义。
然而,本文SLAM系统在减小误差的同时,也增加了运行时间,在接下来的工作中,将进一步提升实例分割网络性能以减小相机位姿估计误差,并且保证系统的实时性。
[1] |
LEE T J, KIM C H, CHO D I D. A monocular vision sensor-based efficient SLAM method for indoor service robots[J]. IEEE transactions on industrial electronics, 2019, 66(1): 318-328. DOI:10.1109/TIE.2018.2826471 (![]() |
[2] |
陈世浪, 吴俊君. 基于RGB-D相机的SLAM技术研究综述[J]. 计算机工程与应用, 2019, 55(7): 30-39. DOI:10.3778/j.issn.1002-8331.1812-0148 (![]() |
[3] |
SAPUTRA M R U, MARKHAM A, TRIGONI N. Visual SLAM and structure from motion in dynamic environ-ments: a survey[J]. ACM computing surveys, 2018, 51(2): 37. (![]() |
[4] |
沈克贤. 基于图像序列的稀疏点云重建[D]. 重庆: 重庆大学, 2018: 49-58.
(![]() |
[5] |
赵洋, 刘国良, 田国会, 等. 基于深度学习的视觉SLAM综述[J]. 机器人, 2017, 39(6): 889-896. (![]() |
[6] |
XIAO Linhui, WANG Jinge, QIU Xiaosong, et al. Dynamic-SLAM: semantic monocular visual localization and mapping based on deep learning in dynamic environment[J]. Robotics and autonomous systems, 2019, 117: 1-16. DOI:10.1016/j.robot.2019.03.012 (![]() |
[7] |
MUR-ARTAL R, TARDÓS J D. ORB-SLAM2: an open-source SLAM system for monocular, stereo, and RGB-D cameras[J]. IEEE transactions on robotics, 2017, 33(5): 1255-1262. DOI:10.1109/TRO.2017.2705103 (![]() |
[8] |
BESCOS B, FÁCIL J M, CIVERA J, et al. DynaSLAM: tracking, mapping, and inpainting in dynamic scenes[J]. IEEE robotics and automation letters, 2018, 3(4): 4076-4083. DOI:10.1109/LRA.2018.2860039 (![]() |
[9] |
高翔, 张涛, 刘毅, 等. 视觉SLAM十四讲: 从理论到实践[M]. 2版. 北京: 电子工业出版社, 2019: 152-153.
(![]() |
[10] |
吴皓, 迟金鑫, 田国会. 基于视觉SLAM的物体实例识别与语义地图构建[J]. 华中科技大学学报(自然科学版), 2019, 47(9): 48-54. (![]() |
[11] |
YU Chao, LIU Zuxin, LIU Xinjun, et al. DS-SLAM: a semantic visual SLAM towards dynamic environments[C]//Proceedings of the 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems. Madrid, Spain, 2018: 1168–1174.
(![]() |
[12] |
谢理想. 基于多视图几何的无人机稠密点云生成关键技术研究[D]. 郑州: 解放军信息工程大学, 2017: 40-49.
(![]() |
[13] |
HE Kaiming, GKIOXARI G, DOLLÁR P, et al. Mask R-CNN[C]//Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy, 2017: 2980–2988.
(![]() |
[14] |
REN Shaoqing, HE Kaiming, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 (![]() |
[15] |
房立金, 刘博, 万应才. 基于深度学习的动态场景语义SLAM[J]. 华中科技大学学报(自然科学版), 2020, 48(1): 121-126. (![]() |
[16] |
STURM J, ENGELHARD N, ENDRES F, et al. A benchmark for the evaluation of RGB-D SLAM systems[C]//2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. Vilamoura-Algarve, Portugal, 2012: 573–580.
(![]() |