一种动态场景下基于深度学习的鲁棒视觉SLAM方法与流程

文档序号:24160370发布日期:2021-03-05 16:00阅读:101来源:国知局
一种动态场景下基于深度学习的鲁棒视觉SLAM方法与流程
一种动态场景下基于深度学习的鲁棒视觉slam方法
技术领域
[0001]
本发明属于人工智能与机器人和计算机视觉领域,特别涉及基于动态场景下基于深度学习的鲁棒视觉slam方法。


背景技术:

[0002]
近年来,同时定位与地图构建(simultaneous localization and mapping,slam)已成为人工智能与机器人和计算机视觉的一个重要研究领域,动态场景下的定位与建图是其中一个热门的研究方向,广泛应用于室内服务机器人、室外自动驾驶汽车等方面。
[0003]
目前大多数视觉slam方法基于观测环境是静态的假设,由于现实环境中包含动态对象,传统的slam方法很容易由于跟踪特征的错误对应或者遮挡而导致没有足够多的特征匹配从而位姿估计会发生漂移甚至丢失,从而导致系统在动态环境下精度低、鲁棒性差。
[0004]
一些现有检测动态特征的方法依赖几何信息,通过定义几何约束,如果后续帧中的匹配特征距离极线很远,则被认为是动态的,或者将前一帧的特征投影到当前帧,计算特征跟踪的重投影误差,如果误差很大,则被认为是动态的,这些方法仅仅依赖几何信息从而无法建立动态对象的先验语义信息,不能提供对周围环境中动态对象的高级理解,从而导致系统在动态环境中的精度不佳;还有一些方法依赖语义信息,根据人的经验和尝试,将可以自己移动的对象视为动态物体,通过目标检测或者语义分割获取动态对象的语义信息,并剔除动态对象上的特征点,这些方法不能有效去除潜在动态对象上的不稳定特征点。
[0005]
动态特征检测是构建鲁棒视觉slam的关键步骤,只有动态特征被很好的检测出来才能对其进行剔除,并利用稳定的静态特征点进行位姿估计。由于动态场景复杂,以及跟踪特征的错误对应或者遮挡等因素的影响,使得动态场景下检测动态特征从而构建鲁棒的视觉slam成为一项极具挑战性的课题。可以通过一种先进的深度学习方法来检测动态对象,使用语义分割网络对动态对象进行分割,获得动态对象的像素级语义分割作为语义先验知识,并通过运动一致性检测算法进一步检测潜在动态的移动对象,利用语义信息和几何信息结合的方法会将动态特征更好的检测出来。


技术实现要素:

[0006]
本发明的目的在于克服现有技术的上述不足,采用一种动态场景下基于深度学习的鲁棒视觉slam方法。该方法将语义分割技术与运动一致性检测算法相结合,首先用mask r-cnn网络对图像进行语义分割,建立动态对象的先验语义信息,然后通过运动一致性检测算法进一步剔除属于动态物体的特征点,最后用静态特征点进行特征匹配和位姿估计。本发明可以减小slam系统的绝对轨迹误差和相对位姿误差,提高了slam系统位姿估计的准确性和鲁棒性。
[0007]
本发明采用的技术方案为一种动态场景下基于深度学习的鲁棒视觉slam方法,该方法包括如下步骤:
[0008]
(1)对相机采集的图像序列利用基于深度学习的语义分割网络将图像中的对象划
分成静态对象和动态对象,动态对象的像素级语义分割作为语义先验知识;
[0009]
1.1)搭建mask r-cnn分割网络,采用mask r-cnn网络进行潜在动态对象的语义分割。为了对动态对象进行分割并覆盖掩膜,首先设置mask r-cnn网络模型及其损失函数,mask r-cnn将完成掩码预测、回归预测和分类预测三个任务,损失函数使用的是平均二值交叉熵损失与二分类交叉熵损失。mask r-cnn网络训练的总体损失函数为分类误差、回归误差和分割误差三者之和:
[0010]
l=l
cls
+l
box
+l
mask
[0011]
其中l为网络训练的总体损失函数;l
mask
为掩码预测的损失函数;l
cls
为分类预测的损失函数;l
box
为回归预测的损失函数。
[0012]
1.2)利用ms coco数据集作为训练样本对maskr-cnn网络进行训练。ms coco数据集包含80多种不同的物体类别。所需的类别分为两种:一种是动态置信度高的移动对象,例如人、汽车、猫、狗等;另一种是静态置信度高的对象或潜在动态的移动对象,如椅子、书、杯子等。
[0013]
1.3)mask r-cnn网络的输入为m
×
n
×
3的rgb图像,输出为m
×
n
×
l的矩阵,其中l为图像中物体的数量。对于每个输出通道i∈l,将获得一个二进制掩码,矩阵中只有1和0两个数字,数字1对应于静态场景,数字0对应于动态对象。通过将所有的输出通道合并成一个通道,可以获得出现在一个场景图像中的所有动态对象的分割。
[0014]
(2)由于语义分割在对象边界附近的分割结果模糊仍不可避免并且不能有效去除潜在动态对象上的不稳定特征点,因此需要利用对极几何特性的几何约束进一步检查特征是否是动态特征,具体步骤如下:
[0015]
2.1)对输入的图像序列进行orb特征点提取;
[0016]
2.2)采用光流法获取像素在图像中的运动,从而实现像素点的追踪;具体步骤如下:
[0017]
2.2.1)假设相机获取的图像是由着时间进行变化的,图像中的像素点(x,y)的灰度值为i(x,y,t),由于同个空间点的灰度值随着时间的变化在平面上始终保持一致,则满足:i(x,y,t)=i(x+dx,y+dy,t+dt)
[0018]
假设运动比较小(即时间的变化不会引起目标位置的剧烈变化,相邻帧之间的位移达到毫米级)的情况下,则展开得到:
[0019][0020]
结合两式得:
[0021][0022]
为该点沿x轴的运动速度,为该点沿y轴的运动速度,光流算法假定图像块内的像素运动是一样。最后通过进行多次迭代,就能够获取像素在图像中的运动,从而实现像素点的追踪。
[0023]
2.2.2)根据前一帧特征点集合p1,利用光流法计算当前帧中匹配的特征点集合p2,如果匹配对太靠近图像的边缘,或者匹配对中心的3
×
3图像块的像素差太大,则匹配对将
被丢弃。
[0024]
2.3)使用经典的八点法估计基础矩阵f;
[0025]
2.4)假设p1和p2为一对匹配的特征点对,齐次坐标如下所示:
[0026]
p1=[u1,v1,1],p2=[u2,v2,1]
[0027]
其中u,v是对应的像素横、纵坐标,使用基础矩阵f和特征点计算当前帧中特征点对应的极线:
[0028][0029]
2.5)计算p2到p1对应极线的距离与预定阈值的关系来判断特征点是否移动,点p2到极线l1之间的距离d通过下式计算:
[0030][0031]
如果距离大于预定阈值,则将p2加入到动态特征点集合s,否则,将其视为相对稳定的静态特征点,用于后续位姿估计。
[0032]
(3)在之前的跟踪线程中,得到新的关键帧。通过插入关键帧、删除冗余地图点和关键帧、局部集束调整进行局部建图;具体步骤如下:
[0033]
3.1)将新的关键帧作为新的节点加入图中,并且更新与那些能够共享地图点的关键帧节点相连接的边。同时更新关键帧的生长树,并计算表示关键帧词袋bow;
[0034]
3.2)为保存地图点,必须在创建该点云的前三帧测试通过约束,少于三个关键帧能观察到该点时将当前地图点删除;
[0035]
3.3)对于未匹配的点,与其他关键帧中未被匹配的特征点进行匹配,orb特征点对三角化后,检查正向景深、视差、反投影误差和尺度一致性,创建新的地图点;
[0036]
3.4)局部集束调整对当前处理的关键帧进行优化;
[0037]
3.5)为控制重建的紧凑度,通过局部建图检测冗余的关键帧,将90%的点能够被超过三个关键帧观察到的关键帧认为是冗余关键帧,将其删除。
[0038]
(4)由于视觉里程计在跟踪的过程中会有累计误差,通过闭环来检测是否曾经来过此处,进行后端优化,消除这段时间相机运动产生的累计误差;具体步骤如下:
[0039]
4.1)检测对列中是否有新的关键帧,如果地图中的关键帧数小于10,那么不进行闭环检测;
[0040]
4.2)检测闭环:
[0041]
4.2.1)获取共视关键帧,并计算他们和当前关键帧之间的bow分数,求得最低分;
[0042]
4.2.2)通过计算出的最低分数到数据库中查找出候选关键帧,相当于找到了曾经到过此处的关键帧;
[0043]
4.2.3)对候选关键帧集进行连续性检测。
[0044]
4.3)上一步已经检测到了闭环,需要进行后端优化。主要工作是在当前关键帧和闭环帧之间找到更多的对应点,并通过这些对应点计算当前关键帧和闭环帧之间的sim3变换,求解出rt和s;
[0045]
4.4)计算闭环、融合位图。最终实现对所有匹配的点云进行更加有效的数据融合。
[0046]
本发明采用相机作为图像采集装置,双目、深度相机均可。
[0047]
与现有的基于静态环境假设的slam技术相比较,本发明通过结合基于深度学习的mask r-cnn语义分割网络与运动一致性检测算法,可以减小slam系统的绝对轨迹误差和相对位姿误差,提高了slam系统位姿估计的准确性和鲁棒性。
附图说明
[0048]
图1为本发明方法的流程图。
[0049]
图2为运动一致性检测算法流程图。
具体实施方式
[0050]
图1为本发明方法的流程图,参照图1,本发明提供一种动态场景下基于深度学习的鲁棒视觉slam方法。四个线程在系统中并行运行:跟踪、语义分割、局部地图、闭环检测.当原始rgb图像抵达后,同时传入语义分割线程和跟踪线程,两者并行地对图像进行处理。语义分割线程采用mask r-cnn网络将物体分为动态对象和静态对象,把动态对象的像素级语义标签提供给跟踪线程,并通过几何约束的运动一致性检测算法进一步检测潜在动态特征点异常值,然后剔除动态对象中的orb特征点并利用相对稳定的静态特征点进行位姿估计。并通过插入关键帧、删除冗余地图点和关键帧、局部集束调整进行局部建图,以及通过闭环来检测是否曾经来过此处,进行后端优化,将累计误差缩小到一个可接受的范围内。
[0051]
图2为运动一致性检测算法流程图,参照图2,以检测潜在动态的移动对象的动态特征,首先根据前一帧特征点集合p1,利用光流法计算当前帧中匹配的特征点集合p2。如果匹配对太靠近图像的边缘,或者匹配对中心的3
×
3图像块的像素差太大,则匹配对将被丢弃.然后可以用至少五对特征估计基础矩阵f,通常使用经典的八点法,再使用基础矩阵f计算当前帧中的极线.最后,通过计算p2到p1对应极线的距离与预定阈值的关系来判断特征点是否移动。
[0052]
在机器人感知的环境中包含动态对象的情况下,则需要经过权利要求书中的步骤2从相邻帧中利用运动一致性检测算法检测动态特征。
[0053]
以上所述仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改,等同替换以及改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1