一种基于像素级语义信息的SLAM方法与流程

文档序号:21984438发布日期:2020-08-25 19:21阅读:434来源:国知局
一种基于像素级语义信息的SLAM方法与流程

本发明涉及视觉分析系统技术领域,具体为一种基于像素级语义信息的slam方法。



背景技术:

同时定位与地图构建(simultaneouslocalizationandmapping,slam)是一种同时获取未知环境三维结构和环境中传感器运动的技术。语义slam将语义信息包含到slam流程中,通过提供高层语义信息来增强slam系统的性能。将深度学习等人工智能方法与slam结合在一起,可以同时实现场景几何地图构建和语义信息提取的计算,这对于智能机器人定位与规划具有重要意义,传统方法的语义分割技术由于硬件设备的限制,只能处理灰度图像。主要是通过图像特征进行分割,并不能达到实际意义上的语义分割效果。在2012年的目标识别挑战大赛上,krizhevsky提出的基于alexnet的语义分割方法,引发了将深度学习应用到语义分割领域的热潮。之后提出的语义分割算法主要是利用卷积神经网络实现,通过传统分割方法获得图像级别的处理结果,之后再利用卷积神经网络模型训练特征分类器。但这种方法还是受限于传统语义分割方法,所以分割结果并不优秀。2015年的ieee国际计算机视觉与模式识别会议上,long等人提出的全卷积神经网络为语义分割技术水平带来了巨大进步。如今,深度学习方法已经成为了实现语义分割主要方法。2018年,由michaelis等人提出的将语义分割技术与目标检测技术结合,实现了对图片中同一类别物体进行不同的语义信息标注。上述研究工作主要是为了弥补由于网络中不断的下采样造成的不可忽视的信息损失,以此来提高分割精度,但是精度提高的同时处理单帧图像的时间也随之增加。然而很多应用场景下,比如自动驾驶,实时性要求是不可或缺的。因此,如何在保证精确度的同时提高分割速度成为近年来的研究重点。本发明通过对基于视觉特征的语义slam方法进行了研究,基于深度学习的像素级语义分割网络,对场景中的动态目标进行滤除。在跟踪定位中添加语义约束提高精度,并将语义信息映射到三维地图中,构建三维语义地图。



技术实现要素:

将实时语义分割网络icnet作为语义slam其中的一个线程,对输入图像帧进行语义分割得到每个特征点的语义类别,将特征点的语义类别作为约束条件添加到特征点匹配中,在计算出空间中对应地图点的坐标后也将语义类别添加到地图点中,通过地图点与投影坐标点计算相机位姿时,将语义类别作为约束进行计算。

实时语义分割

综合运行速度和准确度,选择了icnet网络来进行语义分割部分的工作。icnet的基本内容:如图1所示,icnet将图片分为缩放尺度为1、1/2、1/4三路输入到网络中,其中分辨率最低的输入,通过一个基于全连接卷积网络fcn的psp金字塔场景解析网络架构,输出只有原始图像尺寸1/32的特征图。对于原始图像1/2尺寸的中分辨率输入图像,通过几个降采样率为8的卷积层,输出原始图像尺寸1/16的特征图。对于原始图像,也是通过卷积层处理,得到1/8尺寸的特征图。将每个分辨率下的输出特征图上采样两倍,通过图中的cff单元将图通分辨率输入的级联特征进行融合。训练icnet网络时,定义损失函数:

在测试阶段,丢弃低分辨率分支的部分,只保留高分辨率分支。这样使梯度优化更平滑,训练更容易。由于每个分支的学习能力都更强,最终的预测图不会仅仅受控于任何单个分支。icnet由于高分辨率的输入,在级联结构中,只将最低分辨率的输入输入到较复杂的cnn中,大大减少了计算量,从而得到粗略的语义预测。高分辨率的输入被设计来逐步恢复和细化模糊边界和缺失细节的预测。级联特征融合单元和级联标签引导策略融合了中、高分辨率特征,逐步细化粗略语义图,icnet实现了高效准确的分割结果。

语义关键帧和地图点

基于经典orb_slam2系统设计像素级语义slam系统,利用实时语义分割模型对orb_slam2筛选出的图像关键帧进行语义标记,本发明提出对于每一帧输入图像,由以下四点决定,其中只要有一点符合即可,也就是四者之间为或的关系,在跟踪部分就做为关键帧插入:

1)距离上一次全局重定位操作已经过去了超过20帧输入图像;

2)局部地图已经暂停或者距离上一次插入关键帧已经过去了超过20帧输入图像;

3)当前帧中跟踪到的特征点超过50个;

4)当前帧中跟踪到的地图点比参考关键帧要多90%以上;

对于筛选出的关键帧ki,其组成部分包括相机位姿、相机内参和提取出的所有orb特征点。对每一个关键帧ki进行语义分割获得对应的语义分割图si,其大小和关键帧大小相同,ki中提取出的特征点集合,对应在语义分割图si中对应点集合,其中集合中各个点所在位置的rgb值对应了语义类别集合c中的一类。

每个点云的组成部分包括三维世界坐标、视角、对应orb特征点的描述符和该点被观测到的最大距离和最小距离。在获得对应特征点的语义类别后,更新地图点对应的语义类别。当新的图像帧xi到达时,首先提取特征点得到特征点集合,与此同时语义分割线程对该帧进行语义分割获得对应的语义分割图像si,获得相应的语义标记其中。根据不同的跟踪方式,当前帧与参考帧进行特征点匹配时或者与三维地图点投影匹配时,添加语义约束进行优化。由于系统只需要对关键帧进行语义分割,并且使用的语义分割网络icnet可以达到实时性能,因此将icnet作为线程加入到orb_slam2方法中同样能够保证系统的实时性。

语义约束

在orb_slam2中增加线程,并行运行实时语义分割网络icnet网络对每一帧图像进行分割并保存分割结果,同时维护n帧的surf特征点提取结果,当orb特征点缺失,或者大部分匹配特征点在两帧之间视差小于阈值时,对当前帧的surf特征提取结果和语义分割结果与前面保存的n帧结果进行匹配,首先对surf特征进行匹配,然后根据语义分割结果进行筛选,最后根据保留的匹配点对集合通过ransac算法进行提出误匹配,获得最终的位姿变换结果。

语义信息相比于底层特征来说能够更好地完成跟踪工作,随着车辆的前进,图像块的外观发生了巨大变化,但是其语义类别保持不变,因此当基于图像块特征跟踪失败时,可以使用语义信息来建立约束。由于语义分割网络icnet的miou(准确度)大概在71%,虽然能够实时处理,但是分割错误的情况还是不容忽视。

定义输入图像集合,相机位姿,地图点集合表示的是三维地图点对应的特征点坐标,那么视觉里程计的代价函数为:

其中,表示的是表示的是第i个点在第k个相机下的代价。定义表示的是pi的语义类别是c的概率。对每一帧图像进行语义分割,语义类别集合记为c,对应的结果图像记为,每个像素是指经过特征输出的像素的二维向量,都对应了一种语义类别。定义三维地图点pi的空间坐标为xi,对应的语义标签,pi的语义类别为c的概率可以记为:

定义语义代价函数为:

根据两个代价函数结合可以得到整体代价函数:

那么如何具体的定义语义代价函数实现将语义约束加入到位姿优化中,定义观测模型:,地图点在中的重投影坐标记为,如果投影点的语义类别也是c的话,我们认为满足了语义约束,但是由于语义分割的精确度是不能百分百正确的,所以不能用满足或不满足语义约束来分类,更好的方式是定义一个概率值,根据投影点和最近的类别为c的点的距离来定义概率值,那么记投影点和最近的类别为c的像素点的距离为,然后定义观测值概率为:

其中σ的值根据语义分割网络的准确性来设置,采用高斯分布将距离值转化成概率值。综上,语义代价函数可以定义为:

其中的值根据pi每次被观测到时属于的语义类别来更新。

有益效果

本发明公开了一种基于像素级语义信息的slam方法,将基于深度学习的目标检测模块加入到orb_slam2中,在tum数据集上取得了良好的效果,很好的消除了动态目标所造成的位姿跟踪误差,但当场景中动态目标占据大部分比例时,根据目标检测获得的目标框进行特征点滤出,导致场景中特征点数量不足,导致跟踪丢失,提出更精细地在像素级别区分语义类别。由于目前语义分割网络的运行速度和准确度存在着反比的关系,本发明通过实时的语义分割网络icnet网络获得语义信息引入经典视觉slam系统orb_slam2中,解决了单目场景下由于环境中的视觉特征点过少,或者大多数视觉特征点深度太大导致两帧匹配时视差极小的问题,通过提取稳定的surf特征点,并添加语义约束,有效的提升了orb_slam2的性能。

附图说明

图1为像素级语义信息的slam方法基本框架。

图2为icnet网络结构图。

图3为语义关键帧选择方法图。

图4为相对位姿误差对比图;对比了orb_slam2和本方法在kitti数据集上单目运行效果对比,可以看出添加了语义约束后有效地提升了orb_slam2系统的性能。

具体实施方式

本部分实验基于orb_slam2在tum和kitti数据集上进行测试,kitti数据集是目前最大的自动驾驶场景下的计算机视觉算法评测数据集,由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办。该数据集包含市区、乡村和高速公路等场景下采集的图像数据。icnet在kitti数据集上,在每秒十几帧的速度下,获得了很好的分割效果。针对orb_slam2在单目情况下跟踪丢失问题,采用surf特征和语义信息结合的方式来辅助跟踪,当orb特征点匹配数量过低,或者场景中提取出的orb特征点深度较大导致匹配失败或者匹配点视差太小,都会导致跟踪丢失,当发生这种情况时,通过提取图像的surf特征进行匹配,并添加语义约束。surf特征进行一次提取和匹配大约消耗了0.234s。图4对比了orb_slam2和本方法在kitti数据集上单目运行效果对比,其中trel表示子序列长度为100m到800m的平均位移均方根误差漂移量,rrel表示每一百米的平均旋转均方根误差漂移量(°/100m),seq为序列。可以看出添加了语义约束后有效地提升了orb_slam2系统的性能。

需要说明的是,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1