基于深度学习的视觉SLAM系统

2019-01-21 06:50:02张国栋
电子制作 2019年1期
关键词:描述符坐标系语义

张国栋

(武侯中学,四川成都,610000)

1 语义地图的构建

首先机器人以一定的时间间隔、一定的角度姿态拍摄图像。 得到图像后,先利用FAST提取图像中的关键点,取以关键点为圆心一定半径的图像块,提取出来的图像块输入已经训练好的深度学习网络,得到其描述符。输出图像块描述符,用其描述符与上一幅图像提取出的描述符进行最近邻匹配,由公式1得,利用匹配点计算出相邻两帧图片之间的相对位姿。基于深度学习的场景识别方法在表征一篇图片时可以大大节约空间资源,在匹配过程中的速度也能有效提高,在构建场景识别的深度学习网络过程中我们使用三个结构完全相同,全职共享的CNN网络,用AlexNet提取图像的特征之后,计算参考帧和同类帧以及异类帧之间的距离,通过距离比较器和反向传播训练出一个深度学习模型。在实际使用时,我们使用一个net生成的全局描述符即可。如果检测到匹配帧则对误差就行修正。

人工智能现阶段的导航依靠坐标位置并不能有效完成,但视觉SLAM中的三维地图或网格地图都只能进行基本的路径规划功能,所以,我们要运用深度学习构建语义地图,来为机器人提供语义信息以辅助其导航。

在视觉SLAM中构建语义地图主要运用的是全卷积网络。这与传统的卷积神经网络不同,将全连接层改成卷积层,以将图像中各个像素区分开来,机器人要通过此来找准图中每个像素对应的是实际场景中的哪个物体,从而规划出准确的导航路线。语义地图是在三维坐标系中构建的,需要在坐标系中算出其位置,经变换,映射到初始坐标系中构成语义地图。人工智能就依靠此更加精确地运作。

2 国内外研究现状

二十世纪六十年代Slam技术第一次被提出到现在历经七十年的发展已经取得了瞩目的成就,特别是在二十一世纪初,其基本框架已开始成型。2007年,MonoSLAM系统[1]将扩展卡尔曼滤波应用到了后端优化中来减少累积误差[2]实现了slam系统在环境中实时定位并构建地图。考虑到视觉传感器的结构与人类的眼睛类似,所以基于视觉传感器的slam在室内外环境中应用较多。

国内对于语义地图方向的研究起步较晚北京科技大学首先完成了语义地图的建立,但采用了不正确的检测物体的方式,直接导致计算量过大。随后,中国科技大学完成了其中两个部分,场景识别和场景中物体的识别。

传统的室内机器人在移动过程中,需要依靠周围的几何信息定位,它们可以在基于视觉传感器的salm下运行。但他们忽略了环境中极其丰富的语义信息,这是未来服务机器人构建语义地图中不可缺少的信息。

3 相机模型

3.1 小孔成像模型

首先可以把一个光源看成由许多小发光点组成,每个发光点都朝着周围空间发射着光。总会有一束光笔直地穿过小孔,在白纸上形成一个小光斑。每一个发光点形成一个光斑,所以在白纸上就形成了由所有的光斑聚成的像,如图1所示。

从图中可以看到,A,B部分的光沿直线通过小孔,照在屏幕的C处,当孔较大时,A,B部分发出的光线会在屏幕C处重叠,故像不会清晰;当孔相当大时,光线不会到达一处,光信息会发生混乱,所以无法成像;当孔较小时,空的上下沿会遮住光的传播路径,物体不同部分的光会到达屏幕上的不同部分,而不会相互重叠,所以成的像会比较清晰。

图1 小孔成像原理图

所以如果孔的大小变大,那么成像的分辨率会下降,反之则会上升,即小孔成像的分辨率与像的清晰度成正比,与孔的大小呈反比(与物距相距均有关,但本文不做讨论)。

3.2 相机模型原理

相机成像的模型的过程实际是将三维空间还原成二维平面的一个过程,可简单用小孔成效模型描述此过程,如图2所示。

(1)首定义两个坐标系:相机坐标系(三维坐标系)—以相机焦点为原点和坐标轴X,Y,Z图像坐标系(二维坐标系)—以成像平面的中心O为坐标原点和坐标轴x,y。

图2 小孔相机模型

(2)小孔成像实际就是将相机坐标系中的三维坐标,变换到成像平面中的二维坐标。假设三维空间中存在某点P,在相机坐标系中的坐标为[X,Y,Z]其成像。

4 基于深度学习的局部描述符提取

由于手动设计出来的描述符很难确定参数配置,手动设计出的描述符很难同时具备较高的不变性、紧密型和独特性。近些年来局部不变描述符研究领域的一大热点是研究学者把机器学习的方法用于描述符的设计。因为机器学习的局部描述符具有独特的优势:可以利用训练数据学习最佳的参数配置和复杂模式。在本系统中,我们先用FAST提取特征点,然后再用深度网络计算这些特征点的描述子。

4.1 网络结构

我们构建场景识别系统的深度学习网络如图3所示,图中的三个net为CNN网络,这三个网络结构完全相同,权值共享。图中的x为参考帧,x+为同类帧,x-为异类帧,同类帧即与参考帧相似的图片,异类帧是与参考帧不同的图片。具体到我们的系统中,参考帧为一个具体的位置所拍摄的图片,同类帧这个位置临近区域内拍摄的图片,而异类帧则是离这个位置比较远的地点拍摄的图片。

在本文中我们使用AlexNet作为整幅图像的特征提取器,在获得三张图像各自的特征之后,我们分别计算了x和x+之间的距离d+即图中的同理可得d-。通过一个距离比较器和反向传播我们可以训练出一个场景识别的深度学习模型。在实际使用网络的时候,我们只需要使用一个net生成图像对应的全局描述符即可。

图3 场景识别网络结构

4.2 损失函数

其中L为损失函数,dij输入的两个特征点对应的描述符之间的距离,sij为1是表明输入的是两个相似的特征点对应的图像块,而sij为0是表明输入的是两个不相似的特征点对应的图像块。α为不相似的描述符之间的最小距离。

损失函数的图像如图4所示,当不相似的描述符之间的距离小于α的时候,损失函数大于0,网络将进行训练,反之表明网络已经满足要求。

图4 损失函数曲线

在训练完成之后,我们将不再需要两个网络,我们只需要使用一个网络来提取描述符。大量的前期工作表明这种方式训练得到的描述符远远由于手工提取的描述符,为了达到实时性的要求,我们使用GPU进行加速,因此完全可以满足机器人对实时性的要求。

5 基于深度学习的回环检测

回环检测是SLAM系统中非常重要的部分,由于我们在逐帧计算位姿的时候会有一定误差,随着时间的积累这个误差会变得越来越大,因此我们必须通过一定的手段来消除这种误差[3]。目前比较通用的便是回环检测,所谓回环检测就是一个场景识别系统,场景识别系统可以识别出来相同或者相近的地点。具体到机器人中,当机器人运动一段时间后又回到之前来过的地方,由于计算位姿的累积误差,所以机器人计算到的位置和原来的位置并不相同,那么此时我们可以通过回环检测重新计算两个回环匹配帧之间的位姿从而消除这种误差。

传统的回环检测主要是利用局部描述符构建了一个视觉词袋,由于局部描述符有着各种局限性所以这样方式构建的回环检测系统具有很多问题,比如对于光照变化,视角变化,环境变化不够鲁棒,此外视觉词袋规模较大,在系统运行的过程中需要加载到内存中,消耗了大量的资源。基于深度学习的场景识别可以有效地克服视角,光照和环境等变化,此外由于基于深度的场景识别可以生成全局的描述符,因此表征一幅图片可以用更少的空间,大大节约了资源,在匹配阶段也可以加快速度。因此在本文中我们将使用基于深度学习的场景识别系统来进行回环检测。

所谓场景识别系统,即将高维空间的图像映射成一个维度较低的空间中的描述符,映射过程中我们需要低维度的描述符可以保持图像之间的相似关系。因此我们采用triplet形式的损失函数来对网络进行训练。我们为提取到的样本特征选取邻近的同类样本特征和邻近的异类样本特征,以此来构建一个三元组,对于N个训练样本,可以随机产生大量的三元组,本文涉及到的基于三元组约束的距离度量学习模型(point to point Relative Distance Constrained Metric Learning,RDCML)要求同类样本特征的距离和异类样本特征的距离被一个大的间隔分开。基于上述的描述,我们的损失函数为如下公式,其中α为正负样本之间的间隔,即正样本之间的距离要比负样本之间的距离小α以上。在训练过程中α由人为指定,α越小网络越容易收敛,然而效果会比较差,α越大网络越难收敛会导致训练时间变长甚至不收敛,但是效果会比较好,因此我们需要在训练过程中对训练时间和精度进行权衡。

6 基于深度学习的SLAM系统

基于深度学习的SLAM系统如图5所示,首先机器人以一定的时间间隔、一定的角度姿态拍摄图像。 得到图像后,先利用FAST提取图像中的关键点,取以关键点为圆心一定半径的图像块,提取出来的图像块输入已经训练好的深度学习网络,得到其描述符。输出图像块描述符,用其描述符与上一幅图像提取出的描述符进行最近邻匹配,利用匹配点计算出相邻两帧图片之间的相对位姿。

基于深度学习的场景识别方法在表征一篇图片时可以大大节约空间资源,在匹配过程中的速度也能有效提高,在构建场景识别的深度学习网络过程中我们使用三个结构完全相同,全职共享的CNN网络,用AlexNet提取图像的特征之后,计算参考帧和同类帧以及异类帧之间的距离,通过距离比较器和反向传播训练出一个深度学习模型。在实际使用时,我们使用一个net生成的全局描述符即可。如果检测到匹配帧则对误差就行修正。

人工智能现阶段的导航依靠坐标位置并不能有效完成,但视觉SLAM中的三维地图或网格地图都只能进行基本的路径规划功能,所以,我们要运用深度学习构建语义地图,来为机器人提供语义信息以辅助其导航。

在视觉SLAM中构建语义地图主要运用的是全卷积网络。这与传统的卷积神经网络不同,将全连接层改成卷积层,以将图像中各个像素区分开来,机器人要通过此来找准图中每个像素对应的是实际场景中的哪个物体,从而规划出准确的导航路线。语义地图是在三维坐标系中构建的,需要在坐标系中算出其位置,经变换,映射到初始坐标系中构成语义地图。人工智能就依靠此更加精确地运作。

图5 改进后的视觉SLAM系统

7 总结与展望

本文提出构建了一种基于深度学习的视觉SLAM系统,利用深度学习强大的特征抽取能力,我们构建的系统在理论上可以达到更高的精度。同时在内存消耗,提高效率方面也有着不俗的表现。同时我们构建的语义地图,可以有效地利用图像的信息,这些语义信息对于机器人导航非常有意义。但是目前计算量较大,无法用CPU进行实时计算,所以必须用GPU计算,后续可以针对计算量做一些优化。此外,我们只做了理论设计,没有进行实际的验证,所以我们后续还需要实现整套系统,从而验证我们设计的有效性。

猜你喜欢
描述符坐标系语义
基于结构信息的异源遥感图像局部特征描述符研究
测绘学报(2022年12期)2022-02-13 09:13:01
语言与语义
解密坐标系中的平移变换
Linux单线程并发服务器探索
坐标系背后的故事
数学大世界(2018年1期)2018-04-12 05:39:03
基于重心坐标系的平面几何证明的探讨
中等数学(2017年2期)2017-06-01 12:21:50
利用CNN的无人机遥感影像特征描述符学习
“上”与“下”语义的不对称性及其认知阐释
现代语文(2016年21期)2016-05-25 13:13:44
认知范畴模糊与语义模糊
极坐标系下移动机器人的点镇定