一种基于卷积神经网络的视觉里程计方法与流程

文档序号:17594904发布日期:2019-05-03 22:23阅读:390来源:国知局
一种基于卷积神经网络的视觉里程计方法与流程

本发明涉及导航定位技术领域,尤其涉及一种基于卷积神经网络的视觉里程计方法。



背景技术:

视觉里程计技术主要用于机器人定位和导航中。近年来随着自动驾驶领域的研究热潮,视觉里程计技术得到了广泛的研究与应用。视觉里程计的方法克服了传统gps里程计在室内环境或者部分室外环境尤其是受到建筑物遮挡的环境中gps信号会受到干扰甚至阻断而无法提供稳定、准确的定位导航的问题。

传统的视觉里程计方法大都基于传统的特征点检测方法,而这些方法往往只关注单独一幅图片中局部区域的特征点,而不会关注前后相连帧之间的环境背景的变化与联系,因此往往会受到其影响,所以会存在许多的误匹配点对或者发生匹配到的点对不足的情况,最终导致无法避免的里程计估算误差。



技术实现要素:

为了克服已有视觉里程计方法估算误差较大的不足,本发明提供了一种基于卷积神经网络的视觉里程计方法,能够联系过滤前后帧环境之间的变化从而获得更加稳定的特征点,以增强匹配的准确率,从而减少视觉里程计的估算误差。

本发明解决其技术问题所采用的技术方案是:

一种基于卷积神经网络的视觉里程计方法,包括以下步骤:

步骤1,通过移动机器人所携带的摄像头采集原始环境数据,训练基于卷积神经网络的特征点检测器a;

步骤2,移动机器人执行待估算里程的运动,通过所携带的摄像头采集待估算的原始数据;

步骤3,对摄像头所采集到的待估算数据进行数据采样、剪裁预处理操作,获得待处理数据;

步骤4,利用特征点检测器a对待检测数据进行筛选,得到特征点信息;

步骤5,利用特征点信息结合对极约束法求解移动主体的运动估算矩阵,并进行里程坐标推算。

进一步,在所述步骤1中,特征点检测器的训练步骤如下:

步骤1-1,将摄像头放置在机器人上,放置高度尽可能保持距离地面一定距离以上,方向正对着主体的移动方向;利用摄像头分别采集直行、转弯、上下坡移动画面数据,并尽可能在场景中行走较长的距离以保证采集到的原始数据的丰富性;

步骤1-2,对原始数据的每一帧图片使用角点、斑点等检测方法标记出其中的特征点,根据连续多帧中同一特征点出现的频率将所检测到的所有特征点分为正样本点、负样本点以及垃圾点,并将正样本点以及负样本点在原图中的局部像素块提取出来组成原始的训练数据集

步骤1-3,对原始训练数据集进行预处理操作,包括像素值从彩色空间到灰度空间的转换操作、像素块的水平及垂直翻转操作以及像素块的小角度旋转操作,得到预处理后的训练数据集

步骤1-4,将经过预处理操作的训练数据集作为输入,训练特征点检测器a,得到特征点检测器a的最优参数解。

再进一步,在所述步骤1-4中,特征点检测器a是一种基于卷积神经网络的模型,其中结构包括卷积层、池化层、全连接层、softmax层,其输入为一个或多个像素块,输出为各类概率所组成的向量,优化方法采用随机梯度下降法。

更进一步,在所述步骤2中,移动机器人执行待估算里程的运动,将摄像头放置在距离地面一定距离以上的位置,且方向保持在水平方向上,得到待估算的原始数据sraw。

在所述步骤3中,对待估算的原始数据sraw进行预处理获得待检测数据sp的步骤如下:

步骤3-1,对sraw中的每一帧图片fraw进行水平以及垂直方向的剪裁,得到f′raw;

步骤3-2,对得到的f′raw进行彩色空间转灰度空间的转换,然后利用不同尺寸的滑动窗口以一定步长依次扫描剪裁出待检测的像素块,得到多尺度数据smp={pat,pos,scl},其中pat为每个待检测点周围的像素块数据,pos为该点在原图中的坐标,scl为提取该点时的滑窗尺寸;

步骤3-3,对smp进行尺度归一化操作,得到统一尺寸的待检测数据sp={pat,pos,scl},其中pat为经过尺寸归一化操作后的待检测点像素块数据,pos为该点在原图中的坐标,scl为提取该点时的滑窗尺寸。

在所述步骤4中,利用特征点检测器a对待检测数据进行筛选的步骤如下:

步骤4-1,将待检测数据sp作为特征点检测器a的输入进行前向计算得到每个待检测点是特征点的可能性得分,并将该得分合并到sp中得到待筛选特征点数据p={scr,pos,scl},其中scr为每个待筛选特征点的得分,pos为该点在原图中的坐标,scl为提取该点时的滑窗尺寸;

步骤4-2,利用双阈值法结合非局部极大值抑制法对待筛选的特征点数据p进行筛选后得到筛选后的特征点数据pnms={scr,pos,scl};

步骤4-3,对pnms中的每个点利用特征描述方法生成其对应的描述子,将其合并到数据中得到所有特征点的完整信息pk={scr,pos,scl,des},其中des为每个点所对应的描述子向量。

在所述步骤5中,利用特征点信息求解主体里程估计的步骤如下:

步骤5-1,利用特征点信息pk中的描述子信息计算两帧之间特征点的相似度,然后使用过滤匹配方法筛选出两帧之间的匹配点对信息;

步骤5-2,利用两帧之间的匹配点对信息结合相机内部参数,使用对极约束方法求解出相机的运动矩阵;

步骤5-3,根据从初始点开始的帧间连续的运动矩阵结合初始点的空间坐标,通过矩阵递推计算得出每一帧当前所在的里程坐标。

本发明的有益效果主要表现在:能够通过训练的方式学习适合于使用场景的特征点检测器,并且该视觉里程计方法可以过滤移动过程中环境变化引起的噪声,从而获得更加稳健的特征点,以得到更加精确的里程或位姿估计。

附图说明

图1为本发明的训练特征点检测器的流程图。

图2位本发明的特征点检测器的网络结构图。

图3为本发明的基于卷积神经网络的视觉里程计方法的流程图。

图4为本发明实施例中检测出点的重复率的实验结果图。

图5为本发明实施例中视觉里程计的转换矩阵估算误差的实验结果图。

具体实施方式

下面结合附图对本发明作进一步描述。

参照图1~图5,一种基于卷积神经网络的视觉里程计方法,包括以下步骤:

步骤1,通过移动机器人所携带的摄像头采集原始环境数据,训练基于卷积神经网络的特征点检测器a;

步骤2,移动机器人执行待估算里程的运动,通过所携带的摄像头采集待估算的原始数据;

步骤3,对摄像头所采集到的待估算数据进行数据采样、剪裁预处理操作,获得待处理数据;

步骤4,利用特征点检测器a对待检测数据进行筛选,得到特征点信息;

步骤5,利用特征点信息结合对极约束法求解移动主体的运动估算矩阵,并进行里程坐标推算。

进一步,在所述步骤1的流程如图1所示,特征点检测器的训练步骤如下:

步骤1-1,将摄像头放置在机器人上,放置高度尽可能保持距离地面一定距离以上,方向正对着主体的移动方向;利用摄像头分别采集直行、转弯、上下坡移动画面数据,并尽可能在场景中行走较长的距离以保证采集到的原始数据的丰富性;

步骤1-2,对原始数据的每一帧图片使用角点、斑点等检测方法标记出其中的特征点,根据连续多帧中同一特征点出现的频率将所检测到的所有特征点分为正样本点、负样本点以及垃圾点,并将正样本点以及负样本点在原图中的局部像素块提取出来组成原始的训练数据集

步骤1-3,对原始训练数据集进行预处理操作,包括像素值从彩色空间到灰度空间的转换操作、像素块的水平及垂直翻转操作以及像素块的小角度旋转操作,得到预处理后的训练数据集

步骤1-4,将经过预处理操作的训练数据集作为输入,训练特征点检测器a,得到特征点检测器a的最优参数解。

再进一步,在所述步骤1-4中,特征点检测器a是一种基于卷积神经网络的模型,其具体网络结构如图2所示,其中结构包括卷积层(conv)、池化层(maxpool)、全连接层(fc)、softmax层等相关的神经网络结构,其输入为一个或多个像素块,输出为各类概率所组成的向量,优化方法采用随机梯度下降法。

所述步骤2至步骤5的流程图如图3所示。

更进一步,在所述步骤2中,移动机器人执行待估算里程的运动,将摄像头放置在距离地面一定距离以上的位置,且方向保持在水平方向上,得到待估算的原始数据sraw。

在所述步骤3中,对待估算的原始数据sraw进行预处理获得待检测数据sp的步骤如下:

步骤3-1,对sraw中的每一帧图片fraw进行水平以及垂直方向的剪裁,得到f′raw;

步骤3-2,对得到的f′raw进行彩色空间转灰度空间的转换,然后利用不同尺寸的滑动窗口以一定步长依次扫描剪裁出待检测的像素块,得到多尺度数据smp={pat,pos,scl},其中pat为每个待检测点周围的像素块数据,pos为该点在原图中的坐标,scl为提取该点时的滑窗尺寸;

步骤3-3,对smp进行尺度归一化操作,得到统一尺寸的待检测数据sp={pat,pos,scl},其中pat为经过尺寸归一化操作后的待检测点像素块数据,pos为该点在原图中的坐标,scl为提取该点时的滑窗尺寸。

在所述步骤4中,利用特征点检测器a对待检测数据进行筛选的步骤如下:

步骤4-1,将待检测数据sp作为特征点检测器a的输入进行前向计算得到每个待检测点是特征点的可能性得分,并将该得分合并到sp中得到待筛选特征点数据p={scr,pos,scl},其中scr为每个待筛选特征点的得分,pos为该点在原图中的坐标,scl为提取该点时的滑窗尺寸;

步骤4-2,利用双阈值法结合非局部极大值抑制法对待筛选的特征点数据p进行筛选后得到筛选后的特征点数据pnms={scr,pos,scl};

步骤4-3,对pnms中的每个点利用特征描述方法生成其对应的描述子,将其合并到数据中得到所有特征点的完整信息pk={scr,pos,scl,des},其中des为每个点所对应的描述子向量。

在所述步骤5中,利用特征点信息求解主体里程估计的步骤如下:

步骤5-1,利用特征点信息pk中的描述子信息计算两帧之间特征点的相似度,然后使用过滤匹配方法筛选出两帧之间的匹配点对信息;

步骤5-2,利用两帧之间的匹配点对信息结合相机内部参数,使用对极约束方法求解出相机的运动矩阵;

步骤5-3,根据从初始点开始的帧间连续的运动矩阵结合初始点的空间坐标,通过矩阵递推计算得出每一帧当前所在的里程坐标。

本实施例,使用amos固定视角场景数据集、kitti动态视角场景数据集、以及使用移动机器人上搭载的摄像头采集的实地场景数据作为训练集。

首先,对训练数据集中的图片进行彩色空间转灰度空间操作,然后使用sift、orb、harris方法对其进行检测,将连续多帧中都被某种或多种方法检测出的点作为正样本,并将其信息提取出来包括其在图像中的坐标,检出时所属的尺度空间(如果存在的话)。同时将连续多帧中出现但被任意一种方法检出次数少于一定比例的点作负样本,并将其信息保存下来。对保存下来的正样本和负样本按照其信息提取出它们的局部像素块,大小为16x16的像素分辨率,如果存在尺度空间信息的话以该信息为尺度从原图中剪裁然后放缩回16x16的分辨率,然后在正样本与负样本的数据中分别添加上+1、-1的类别标签。

使用得到的训练数据对特征检测器模型进行训练,训练中在数据输入之前对其进行翻转、旋转等数据增强操作以提高模型的通用性,并使用dropout、bn等方法防止模型的过拟合。

在测试时,使用kitti数据集进行检出特征点的重复率测试。首先,使用三种分辨率的窗口在原图上扫描取出待检测的像素块然后将其放缩到16x16分辨率的大小再经过特征点检测器得到该点的得分,首先通过得分阈值法对初筛出一部分点,然后通过非局部极大值抑制法对特征点进行第二次的筛选,然后通过截取法选出所要的固定数量的特征点。从kitti数据集中选取city0005、city0014、city0104这三个子数据集进行测试,每一个子数据集中有近200帧图片,暂且以英文字母a、b来命名相邻两帧。实验时,首先检测出a中的特征点,然后检测出b中的特征点,将两帧中的特征点经过初步筛选后,使用最邻近距离的方法进行点对的匹配,通过两倍最小阈值法来判断匹配结果的好坏,即仅保留相似性距离小于所有点对中相似性距离最小值两倍的点对,计算得到的点对数量占初筛出点对的数量的比重,由此得到检出特征点的重复率,以检出点的数量为自变量,对比传统的sift、orb等方法,多次实验的平均结果如图4所示,可以发现本方法检出特征点的重复率要高于其他方法。

另外,在测试里程计位姿转换矩阵估算误差时,使用的是oxford数据集。首先将截取出的固定数量的特征点信息保存到数据缓冲区。然后,从数据缓冲区中取出相邻两帧的特征点数据,通过阈值、knn、ransac等方法相结合进行特征点对的过滤与匹配。之后,根据得到的匹配点对使用8点法计算出两帧之间的位姿转换矩阵。实验中使用的是oxford中的bikes、leuven、ubc这3个子数据集,其中每个子数据集都有5幅图,并提供了其中4对图之间的单应性映射矩阵的真实值。由此可以计算出本发明方法得到的转换矩阵和其真实值之间的误差,以检出点的数量为自变量,对比传统的sift、orb两种方法,多次实验的平均结果如图5所示,为方便显示图5中的误差值为实际数值误差的平方和取对数之后值,可以发现本发明方法的估算误差较小,结果较优。

以上实施方式仅用于说明本发明,而非对本发明的限制。尽管参照实施例对本发明进行了详细说明,本领域的技术人员应当理解,对本发明的技术方案进行各种组合、修改或者等同替换,都不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

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