基于卷积神经网络的描述符提取在SLAM中的应用

2019-10-11 01:38王郅佶
电子制作 2019年18期
关键词:池化坐标系卷积

王郅佶

(大连市第八中学,辽宁大连,116021)

0 引言

在现在的人们生活要求下,智能化也在走入实际生活的应用之中,于是智能家居,智能管家,智能机器人也在逐渐进入大众的视野[1],在智能家居之中,最重要的则是系统如何对家内物品的掌握,于是室内建模也就油然而生,建模不仅可以对屋内基本数据进行整合,也为室内设计的最优化提供了基本素材。但是对于实际的家中情况,不同人家有不同设计,相同的人家的家具摆设也会时常变动,所以对于室内建模,尤其是实时化的更新,也就显得尤为重要。传统的室内建模是基于传感器,传感器的制作过于昂贵,无法使用与家居生活。GPS 定位准确度不够,无法用于室内定位。而在日常的家中,对于室内建模[2],扫描方法或者数字建模技术都过于昂贵,而在建模之后,对于实时变化的更新,也显示出其不足之处。

机器人在室内自由移动时,在对周围环境不受到干扰的情况下,对室内每个角落进行拍照获得信息,并且对其中的特征信息进行提取,在了解自己位置以及行进方向的同时,对室内物品以及结构进行建模处理,并且在行进时遇到的位置偏移,自主进行解决调整[3]。

本设计的主要目的是让智能家居真正走入平常人的家中,让每个人都能享受到科技变革带来的智能化体验,使智能不再是高居与研发室里的试验品,而是让大家都能使用并且获益的技术,并且通过在现有技术的改进以及简化,大大降低产品的成本让其能成为可以真正量产的商品。

目前传统的SLAM 都使用人为设计的描述符进行定位和建图,目前深度学习被证明有着极强自学习性以及适应能力。针对环境的变化以及光照的明暗变化都能较好的进行自我学习。基于卷积的图像特征学习是现在最为流行的图像处理手段,对于卷积网络的特征学习可以到达实时以及准确的性能。通过对图像以及机器人的标定完成室内建图,以及环境变化之后,譬如家居移动以及环境迁移,深度学习都有着比较强的适应能力,相对于描述符而言可以比较好地解决这些问题。

1 卷积神经网络

目前深度学习比较常用的算法为反向传播算法,最原始的网络都使用全连接网络,这种网络在处理维度很高的图像数据时需要很多的计算资源和内存空间,因此卷积神经网络应运而生。

对于卷积,首先将信息,即为像素,以矩阵的方式输入,圈定卷积的格式,以5×5 用3×3 卷积为例从任意边缘(一般为左上角开始),以步长为1 移动,提取特征信息所以在5×5 的信息中可以提取到3×3 的卷积结果在卷积的过程中,3×3 的格中,必须对其信息进行处理所以要将每个格的数据进行加权处理比如,对于3×3 的卷积核,可以把(1,1)(1,3)(2,2)(3,1)(3,3)进行加权为1 而剩下部分则权值为0 这样就能有效的提取到信息并且加以简化突出[4]。

并且在卷积的过程中采用三个通道提取信息(RGB)红,绿,蓝三维提取,在三个维度同时对一张图片进行提取,提取在三个维度上的不同特征,增加了特征的含量也降低了因为特征不够突出或者周围环境影响而造成的误差[5]。而在三维的提取过程中,为了之后数据处理的方便,将三维度的信息提取的权值共享

而对于边缘信息,在每次的卷积中,提取的信息量过于少,为排除因为边缘信息缺失而带来的误差,通过增边所以在输入矩阵的过程中,对这个矩阵进行增边处理,即为在边缘外扩一圈信息全部为0 的信息,外圈信息虽然没有任何对于特征提取的贡献,把原来边缘上的信息多次提取,即为使他输入格式等于输出格式,增加了提取信息的丰富度,并且排除了边缘信息缺失造成的误差问题。假设输入的数据大小为a×a×b,卷积的尺寸为c×c×b,其中a>c,那么输出的大小为(a-c+1)×(a-c+1)×1。

在卷积之后,对于提取后的信息[6],加以池化,仍以3×3 的池化为例,此时要以步长3 的方式运动,但是此时被池化的矩阵边长一定要是池化边长的整数倍,最后对于6×6 若要以3×3 池化,则可化为2×2 的矩阵,在池化的过程中,采用两个处理取最大值或者取平均值,取最大值则是提取卷积后的信息中每次池化取最大值,而平均值池化则是在信息中提取平均值,两个方法都有其优性对于最大值池化可以最大的突出想要的特征,但是也有可能会将其他较为重要的信息忽略而对于平均值池化能更客观提取信息,但是一对于显著特征的提取就略显不足[7]。

但是为什么不直接使用全连接神经网络进行整合呢,首先,对于图片的参考数量太多,如果输入1000×1000 像素的图片,输入层则会有1000000 个节点如果第一个隐藏层有100 个节点,那么这一层就会有一亿个参数,如果图像再大一点,数据更是无法想象,对于本身信息太多极其容易过拟合。而第二点,全连接网络仅仅是对信息进行对应,没有像素之间的关系,对所有的像素平等对待,这个和特征提取的目标是相违背的,并且当完成了学习之后发现大量的信息其实所带有权重的很小的,大量学习本来不需要的信息,会大大降低学习的效率。所以通过卷积神经网络,不仅达到了学习的目的,还提高了学习效率[8]。

2 刚体变换

在机器人于家中运动时需要时时刻刻判断自己的位置,才能对位置进行自我定位。

而仅仅依靠速度和时间的计算,即便在理论上没有误差,但是在实际生活中,无论是轮毂半径还是引擎的实时转速都无法达到准确,毕竟每一步都存在误差,在不断地积累中,就会造成较大的偏差,以来对机器人自我判断以及建模的准确性上带来错误。所以需要实时进行修正。

为解决这个问题,采取了不会受到自身的误差影响的坐标系,即是世界坐标系,而在机器人本身上建立机器人坐标系,而在机器人运动的过程中通过图片上提取的信息进行匹配来自我调整移动的路径和速度,而在这个时候,为了使其自我判断,需要用到深度学习技术,通过实时图片的信息处理,判断自己的位置。而在机器人的运动中,分为旋转和平动,对于平动则比较简单,通过在世界坐标系中的矢量加减就可以对自己位置判断。而对于机器人的旋转,在坐标系中建立矢量判断,在坐标系中获得三个标量再将他们和单位矢量相乘,作为旋转的原位置的参考值,也就是旋转的原位置在发生转动的过程中,无法用矢量表示,所以设某坐标系e1,e2,e3 发生了一次旋转,变成了e'1,e'2,e'3。对于某个固定的向量a,它的坐标怎么变化。

坐标关系然后设定一个转动的矢量,就是转动角度的参数,然后进行左乘得到。

所得出的转动矢量,就可以作为录入系统的参数,从而达成判断位置的目的,这之后再深度学习之后得到与图像匹配的理论位置进行比对,得出之后的路径判断。对于在不同的环境下,机器人可能会遇到不同的地貌,发生倾斜也会是常事,那么对于机器人自己能否自主的进行倾斜程度的判断,就显得尤为重要,在之前的机器人转动中,采取了同样建立机器人自我坐标系的方法将机器人本身的运动方向作为一个单位矢量在机器人倾斜的时候本身的坐标系也会发生整体的偏转。所以,要判断自身旋转的多少,也需要一个外界不会随着机器人本身变化的量作为本身旋转的标准。所以,仍旧借助照相后得到的图片信息,通过图片的特征辨识,得到前后特征的位置变化,得到一个旋转的三角函数判断自身坐标系,变化前与变化后的夹角。

所以机器人的移动,就可以用;它的旋转,平动一起表示对于平移而言pa=αpb+pjorg而对于旋转,pa=αpb所以对于平移后旋转pa=αpb+pjorg而对于转后的平移pa=α(pb+pjorg)注意,此处的Pjorg 是对于原坐标系而定的所以,可以把一个平移变换矩阵,和一个旋转变换矩阵加和成为一个齐次坐标变化矩阵反过来说,任何一个齐次坐标变化矩阵,均可分解为一个平移变换矩阵与一个旋转变换矩阵。在最后通过全连接神经网络将图片信息和运动信息进行整合,使用梯度下降法训练。

3 流程

由于传统的SLAM 中使用传统的人工设计的特征点以及描述符进行匹配之后进行跟踪和场景识别,这些人工设计的描述符在常规场景下都很稳定,但是在遇到纹理比较弱,光照强度变化大,环境变化大的时候都会失效。而深度学习已经在图像分类,图像分割,目标检测等领域获得了很好的成绩,因此本文将采用卷积神经网络进行描述符的学习。主要流程如图1 所示。

如图首先对图片进行特征点的提取,其次使用卷积神经网络进行描述符的计算,所使用的卷积网络为提前训练好的网络,之后在计算好的描述符基础上进行特征的匹配,之后根据匹配结果进行位姿计算,局部优化等操作,最后进行后端优化。

图1 基于卷积神经网络的SLAM 流程

图2 所示为使用孪生网络进行描述符提取的结构。

图2 CNN 网络提取描述符

图中的两个网络为结构完全相同,参数共享的网络。在进行训练时首先以特征点为中心取其周围的图像块,然后对这些图像块两个为一组根据其是否对应于真实空间的同一个点进行归类,在训练时将一组图像块输入到两个网络,经过网络之后生成描述符,根据其相似关系对网络进行调整。在使用时只需要使用一个网络,对一个图像块进行特征提取即可。

4 结论

为了解决现有建模技术的技术和成本限制性,通过拍照与机器人运动相结合的方法,大大降低了室内建模的成本,先通过拍照,提取外界的信息,在以矩阵的方式输入系统中,为避免过拟合,通过卷积神经网络进行特征提取,通过(rgb)三维的不同特征,权值共享的提取,之后将提取过的信息输入池化层,然后进行池化进行信息的简化处理。在同时,建立世界坐标系和机器人坐标系,通过旋转矢量,平动矢量,判断机器人位置,并且规划路线,在遇到复杂地形时,也可以图片前后变化判断机器人的偏转方向,进行自我的姿态调整,最后将提取的信息和运动的数据,通过全连接网络进行整合,在经过梯度下降法的训练之后,达成深度学习和室内建模的目的。

猜你喜欢
池化坐标系卷积
基于高斯函数的池化算法
基于全卷积神经网络的猪背膘厚快速准确测定
独立坐标系椭球变换与坐标换算
卷积神经网络中的自适应加权池化
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
用于手写汉字识别的文本分割方法
坐标系背后的故事
三角函数的坐标系模型