CN111127557A - 一种基于深度学习的视觉slam前端位姿估计方法 - Google Patents
一种基于深度学习的视觉slam前端位姿估计方法 Download PDFInfo
- Publication number
- CN111127557A CN111127557A CN201911278664.3A CN201911278664A CN111127557A CN 111127557 A CN111127557 A CN 111127557A CN 201911278664 A CN201911278664 A CN 201911278664A CN 111127557 A CN111127557 A CN 111127557A
- Authority
- CN
- China
- Prior art keywords
- network
- training
- layer
- pose
- feature extraction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30241—Trajectory
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种基于深度学***。
Description
技术领域
本发明涉及视觉导航领域,尤其是一种视觉SLAM前端位姿估计方法。采用端到端的形式在得到连续的图像帧输入后,实时对帧间的位姿变换进行估算,能够为无人机提供基于深度学习的高鲁棒性的视觉SLAM方法。
背景技术
同时定位与地图构建(SLAM)是无人机等智能体携带其传感器在运动过程中实现周围环境地图的建立并且根据建立的环境地图来进行自身的定位的技术。当无人机进入某些特殊环境作业时,易受到环境的干扰使得GPS信号变弱或者完全失效,为了弥补无人机基于GPS导航***的不足,在GPS不能正常使用的环境中,SLAM也可以作为一种有效的替代方案实现在未知环境中的实时导航。一个完整的SLAM框架由以下4个方面组成:前端跟踪、后端优化、回环检测、地图重建。前端跟踪即视觉里程计,负责初步估计相机帧间位姿及地图点的位置;后端优化负责接收视觉里程计前端测量的位姿信息并计算最大后验概率估计;回环检测负责判断机器人是否回到了原来的位置,并进行回环闭合修正估计误差;地图重建负责根据相机位姿和图像,构建与任务要求相适应的地图。
但自2017年以来,传统的视觉SLAM方案再没有取得实质性的进展,在光照条件恶劣或光照变化较大等不利条件下,算法的鲁棒性不是很高;
随着深度学***。传统SLAM算法中的特征点提取易受场景因素尤其是光照强度和场景内容的影响,而深度网络所提取的特征则具有较好的泛化性能。
视觉位姿估计则是视觉SLAM***的基础组成模块,实现了该***的前端-视觉里程计的功能。目前的视觉里程计主要是通过学习法和几何法实现。对于学习法而言,其主要是结合深度学习的优势,使用网络来进行图像识别、检测与分剖,进而估算相机的运动位置和姿态:对于几何法而言,其主要是提取两幅连续图片中的特征(例如ORB特征、S1FT特征等),并在两幅图片中进行匹配和计算的方式实现。
然而,上述两种方法均存在一定的缺陷:对于学习法而言,其普适性差,尤其当测试数据的场景与训练场景变化较大或者运动速度变化时,算法的性能会受到很大的影响:对于几何法而言,首先,其实时性不好,其次,在光线昏暗环境以及照片模糊情况下,其特征检测困难,从而导致位姿跟丢,鲁棒性不好。
发明内容
为了克服现有技术的不足,本发明提供一种基于深度学习的视觉SLAM前端位姿估计方法。解决现有采用学习法实现的视觉位姿估计所存在的普适性差的技术问题,以及采用几何法实现的视觉里程计存在的实时性差、特征检测困难以及鲁棒性不好的技术问题。
本发明解决其技术问题所采用的技术方案的具体步骤如下:
步骤1):对训练数据集进行数据预处理;
1.1)首先对KITTI数据库中图像进行裁剪,裁剪到尺寸相同;
1.2)然后利用相邻帧之间转换矩阵进行数据集扩充;
选择步长为N进行扩充:原始数据集数量为S,设时刻i和j间位姿变换矩阵为Tij,则时刻t和(t+N)之间的位姿矩Tt,t+N=Tt,t+1·Tt+1,t+2·Tt+2,t+3....Tt+N-1,t+N,利用此转换关系,选择扩充步长为N,将数据集扩充为NS,S为KITTI数据集提供的训练样本数;
1.3)数据转换;
利用Peter Corke的Robotics Toolbox将KITTI提供的轨迹数据从位姿矩阵形式转化为相邻帧之间的相对位姿变换向量,即旋转矩阵转化为欧拉角,位移部分转化为位移向量;
步骤2):离线深度神经网络模型的构建;
设帧间位姿估计6自由度参数为f,目标f输入参数变量x映射得到,则x为辅助参数;w为训练的数据集获得的训练序列系数,b为真实值与计算值的残差值,用以修正;
2.1)训练集和验证集的划分:由于KITTI提供的数据集只有00-10序列可以离线训练使用,将KITTI提供的数据集00-10序对中的前M个序列作为训练集,后11-M个序列作为测试集,用训练集进行网络训练,并用测试集验证网络学习的精度;
2.2)离线学习深度神经网络模型的搭建;
2.2.1)搭建光流提取网络,利用相邻图像帧完成初始的光流场的提取:采用Brox算法网络作为光流提取器,计算时间t和t+1的两帧图像之间的光流,用RGB编码量化计算出来的光流场,因此输入数据为三通道、八位的深度图像格式;
2.2.2)搭建全局特征提取网络;
对整个图像进行T1次下采样后进行深度网络训练,选用卷积神经网络进行特征提取,利用光流图全局信息进行训练,获取光流图的全局特征;
2.2.3)搭建局部特征提取网络;
将深度图像分成四个子图像,每个象限下采样T2次,然后通过CNN滤波器进行训练,对每个子图像进行两级训练CNN1和CNN2,最后一层级联全连接层;
局部特征提取网络的第一部分由四个分支组成,对每个子图像进行分别训练;图像的四个象限每一个都包含运动信息用来计算运动估计;然后,将第一个CNN-pooling层对的输出与第二个CNN-pooling层相关联;CNN1和CNN2从光流图像中提取不同的信息;CNN1提取更精细的细节,而CNN2提取粗糙一些的细节,并且这些信息并不完全重叠;
将四个复杂的特征组合在一起以形成包含全局的图像信息特征,因此网络能够用对称信息解决运动模糊,最后一层连接一个全连接网络,该网络使用两种分辨率下所有四个象限的信息;
2.2.4)合并全局特征提取网络及局部特征提取网络,搭建成光流图特征提取网络;
使用全局特征提取网络和局部特征提取网络的CNN滤波器将其输出馈送到下一层全连接层网络,利用全局特征提取网络的全局信息与局部特征提取网络的局部信息合并提高网络的性能;
2.2.5)构建位姿估计网络,位姿估计网络则负责整合所有特征,最终完成帧间位姿向量的估计任务;
位姿估计网络是最终完成帧间位姿向量估计的回归器,采用卷积网络和全连接网络相结合的形式,将特征提取网络提取的特征全部输入到全连接网络中,全连接层负责最后的特征整合,并回归拟合位姿估计问题在几何映射中的非线性关系;全连接层共包括三层,由最后一层将特征向量最终拟合为六维的位姿向量,实现对位姿向量y的估算;
步骤3):选择网络损失函数;
选用欧氏距离损失函数作为误差计算方式,该误差利用当前批次训练集中所有样本的预测值和真实标签首先计算欧氏距离,然后对所有距离的平方计算平均值,即均方误差MSE;
假设模型函数的预测值与真实值之间符合正态分布,若使得模型与测量值最接近,则需要上式中所有样本的概率乘积最大,然后进行相关推导,得到最终结果:平方和最小公式。所以,欧氏距离损失函数其中,W表示网络模型的权重参数,为网络的输出模型,Yi为标准的真实位姿向量,N为训练集大小;
步骤4):训练网络;
4.1)使用高斯分布随机初始化网络参数;
4.2)用贪婪逐层预训练逐层优化网络参数;
贪婪逐层预训练方法为每层的滤波器系数找到最优的局部最小值,然后再进行全局训练对权重值进行微调;对于每个分支,使用其连接全连接层训练CNN1滤波器及全接连层,然后丢弃全连接层,将CNN1的输出馈送到CNN2并仅训练新的全连接层;再次丢弃全连接层,连接CNN的两个输出并训练第三个估计器;为每个分支重复此过程,然后丢弃最后完全连接的层并将四个象限输出连接到最后一个完全连接的网络,网络训练最终的估计器并精细调整CNNs系数;
4.3)针对批归一化层,在训练过程中,将use-global-stats参数设为为false,而测试过程中则需要将其设定为true,网络采用欧氏距离损失函数;
训练时将对所有样本进行随机打散,并采用深度学习模型的mini-batch的方式进行网络参数的调整优化;采用adam算法优化网络。
所述步骤1.1)中目标图像的尺寸大小为图像序列中图像尺寸大小数目最多的尺寸。
所述步骤1.2)中选择步长为N=2。
所述步骤2.1)中M=8。
所述步骤2.2.2)中T1为8。
所述步骤2.2.3)中T2为4。
本发明的有益效果在于:
A)与传统的几何-优化算法不同,本发明结合深度学习算法的特点,在不需要任何相机外部参数的前提下,通过训练过程,学习拟合位姿估计函数,同时解决了单目视觉中真实尺度估计问题。
B)能够使用全局信息和局部信息来提取相机运动和比例信息,同时处理输入中的噪声,使用的CNN提取的新特征在不同的对比度和模糊参数的图像中具有很强的鲁棒性。
C)深度学***。传统SLAM算法中的特征点提取易受场景因素尤其是光照强度和场景内容的影响,而深度网络所提取的特征则具有较好的泛化性能。
附图说明
图1是本发明基本流程图示意图。
图2是本发明构建局部特征提取网络。
图3是本发明构建的离线深度神经网络模型。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
采用端到端的形式在得到连续的图像帧输入后,实时对帧间的位姿变换进行估算。首先对原始数据集进行数据预处理,包括扩充数据集及数据集数据转换,然后构建Brox网络对输入的连续帧图像进行稠密光流提取;对提取的光流图分两个网络进行特征提取,对一个分支采用全局信息提取高维特征,在另一个分支对光流图划分成4个子图像,分别下采样获取图像特征;并在最后将两个分支训练得到的特征进行融合。在最后级联全连接网络进行位姿估计获取相邻两帧之间的位姿。对网络进行训练得到合适的参数。利用训练完的网络在测试集数据上进行精度及时间的测试。在不采用任何明确的几何运算和外部参数的前提下,利用网络结构自动学习输入数据与位姿估计之间存在的函数关系。CNN架构优于现有技术的帧间估计方法并且保证在图像异常时(例如,模糊,对比度和亮度变化较大)算法的鲁棒性。采用深度学习的方法解决SLAM视觉里程计存在的实时性差、鲁棒性不好的问题,解决无人机等智能载体在未知环境下的快速定位问题。
步骤1):对训练数据集进行数据预处理;
1.1)首先对KITTI数据库中图像进行裁剪,裁剪到尺寸相同;
1.2)然后利用相邻帧之间转换矩阵进行数据集扩充;
由于扩充后的图像需要存在一定的重叠区域,选择步长为N进行扩充:原始数据集数量为S,设时刻i和j间位姿变换矩阵为Tij,则时刻t和(t+N)之间的位姿矩阵Tt,t+N=Tt,t+1·Tt+1,t+2·Tt+2,t+3....Tt+N-1,t+N,利用此转换关系,选择扩充步长为N,将数据集扩充为NS,S为KITTI数据集提供的训练样本数;
1.3)数据转换;
借助Peter Corke的Robotics Toolbox将KITTI提供的轨迹数据从位姿矩阵形式(行主序拉伸为一行)转化为相邻帧之间的相对位姿变换向量,即旋转矩阵转化为欧拉角,位移部分转化为位移向量;
步骤2):离线深度神经网络模型的构建,如图3所示。
根据传统的函数映射f=wx+b分析,目标值f为系数w与变量x的乘积再加上偏置值而得;设帧间位姿估计6自由度参数为f,目标f输入参数变量x映射得到,则x为辅助参数,因为离散空间辅助参数的不一致性,导致x和f理论上一一映射;w被视为训练的数据集获得的训练序列系数,而b为真实值与计算值的残差值,用以修正;
2.1)训练集和验证集的划分:由于KITTI提供的数据集只有00-10序列可以离线训练使用,将KITTI提供的数据集00-10序对中的前M个序列作为训练集,后11-M个序列作为测试集,用训练集进行网络训练,并用测试集验证网络学习的精度;
2.2)离线学习深度神经网络模型的搭建;
2.2.1)搭建光流提取网络,利用相邻图像帧完成初始的光流场的提取;采用Brox算法网络作为光流提取器,计算时间t和t+1的两帧图像之间的光流,用RGB编码来量化计算出来的光流场,因此输入数据为三通道、八位的深度图像格式;
2.2.2)搭建全局特征提取网络;
对整个图像进行T1次下采样后进行深度网络训练,选用卷积神经网络进行特征提取,利用光流图全局信息进行训练,获取光流图的全局特征;
2.2.3)搭建局部特征提取网络;
将深度图像分成四个子图像,每个象限下采样T2次,然后通过CNN滤波器进行训练,对每个子图像进行两级训练CNN1和CNN2,最后一层级联全连接层;
局部特征提取网络的第一部分由四个分支组成,对每个子图像进行分别训练;图像的四个象限每一个都包含一些运动信息用来计算运动估计;然后,将第一个CNN-pooling层对的输出与第二个CNN-pooling层相关联;CNN1和CNN2从光流图像中提取不同的信息;假设CNN1提取更精细的细节,而CNN2提取粗糙一些的细节,并且这些信息并不完全重叠;
在此阶段之后,将四个复杂的特征组合在一起以形成包含全局的图像信息特征,因此网络能够用对称信息解决运动模糊。最后一层连接一个全连接网络,该网络使用两种分辨率下所有四个象限的信息。
2.2.4)合并全局特征提取网络及局部特征提取网络搭建成光流图特征提取网络;
使用全局特征提取网络和局部特征提取网络的CNN滤波器将其输出馈送到下一层全连接层网络,利用全局特征提取网络的全局信息与局部特征提取网络的局部信息合并提高网络的性能;
2.2.5)构建位姿估计网络,位姿估计网络则负责整合所有特征,最终完成帧间位姿向量的估计任务;
位姿估计网络是最终完成帧间位姿向量估计的回归器,整体上仍然采用卷积网络和全连接网络相结合的形式,将特征提取网络提取的特征全部输入到全连接网络中,全连接层负责最后的特征整合,并回归拟合位姿估计问题在几何映射中的非线性关系;全连接层共包括三层,由最后一层将特征向量最终拟合为六维的位姿向量,实现对位姿向量y的估算;
步骤3):选择网络损失函数;
因为此问题是一般性的回归问题,选用欧氏距离损失函数作为误差计算方式,该误差利用当前批次训练集中所有样本的预测值和真实标签首先计算欧氏距离,然后对所有距离的平方计算平均值,即均方误差MSE;
假设模型函数的预测值与真实值之间符合正态分布,若使得模型与测量值最接近,则需要上式中所有样本的概率乘积最大,然后进行相关推导,得到最终结果:平方和最小公式。所以,欧氏距离损失函数其中,W表示网络模型的权重参数,为网络的输出模型,Yi为标准的真实位姿向量,N为训练集大小;
步骤4):训练网络;
4.1)使用高斯分布随机初始化网络参数;
4.2)用贪婪逐层预训练逐层优化网络参数;
贪婪逐层预训练方法为每层的滤波器系数找到最优的局部最小值,然后再进行全局训练对权重值进行微调;对于每个分支,使用其连接全连接层训练CNN1滤波器及全接连层,然后丢弃全连接层,将CNN1的输出馈送到CNN2并仅训练这个新的全连接层;再次丢弃全连接层,连接CNN的两个输出并训练第三个估计器;为每个分支重复此过程,然后丢弃最后完全连接的层并将四个象限输出连接到最后一个完全连接的网络,该网络训练最终的估计器并精细调整CNNs系数;
4.3)针对批归一化层,在训练过程中,将use-global-stats参数设为为false,而测试过程中则需要将其设定为true,网络采用欧氏距离损失函数;
由于数据集中存在多种相机内参数的图像序列,为了提高网络的训练速度和训练质量,避免位姿回归器偏向于某一分布,训练时将对所有样本进行随机打散,并采用深度学习模型优化时常用的mini-batch的方式进行网络参数的调整优化。采用adam算法优化网络,学习率的数值对于网络的训练有较大影响,这是通过多次实验选取的较好的参数。
所述步骤1.1)中目标图像的尺寸大小为图像序列中图像尺寸大小数目最多的尺寸,将图像调整成统一尺寸,方便后续图像处理以及简化训练。
所述步骤1.2)中选择步长为N=2。图像序列具有一定的连续性,连续相邻帧之间可以通过位姿矩阵变换的方式获得不同间隔的图像帧之间的位姿向量,从而扩充数据集。因为扩充后的数据集相邻帧图像之间需要存在一定的重叠区域,步长选择过大会造成相邻帧间无重叠区域。
所述步骤2.1)中M=8。因为需要大量的训练集进行训练,但是也需要足够量的测试集进行测试。本方法选择M为8,既保证了训练集的数量也保证了测试的验证。
所述步骤2.2.2)中T1为8,对图像进行8次下采样,既能保证图像特征,又不会有过大的运算量。
所述步骤2.2.3)中选择T2为4,对图像进行4次下采样,既能保证图像特征,又不会有过大的运算量。
实施例如图1所示:一种基于深度学习的视觉SLAM前端位姿估计方法,具体实施步骤如下:
步骤1):对训练数据集进行数据预处理;
1.1)首先对KITTI数据库前4个序列。00-03序列的图像进行裁剪,裁剪到和后面7个序列的图像尺寸一样大,为1226*370大小的;
1.2)然后利用相邻帧之间转换矩阵进行数据集扩充:原始数据集数量为S,设时刻i和j间位姿变换矩阵为Tij,则时刻t和(t+2)之间的位姿矩阵Tt,t+2=Tt,t+1·Tt+1,t+2。利用此转换关系,选择扩充步长为2,将数据集扩充为2S个。S为KITTI数据集提供的训练样本数。将原始数据Tt,t+1,Tt+1,t+2增加一个Tt,t+2。
1.3)数据转换
借助Peter Corke的Robotics Toolbox将KITTI提供的轨迹数据从位姿矩阵形式(行主序拉伸为一行)转化为相邻帧之间的相对位姿变换向量,即旋转矩阵转化为欧拉角,位移部分转化为位移向量。
步骤2):离线深度神经网络模型的构建。
根据传统的函数映射f=wx+b分析,目标值f为系数w与变量x的乘积再加上偏置值而得。利用该思想,设帧间位姿估计6自由度参数为f,则目标f应当由输入参数变量x映射得到,则x可理解为辅助参数,因为离散空间辅助参数的不一致性,导致x和f可以理论上一一映射;w可被视为训练的数据集获得的训练序列系数,而b可理解为真实值与计算值的残差值,用以修正。
2.1)训练集和验证集的划分。由于KITTI提供的数据集只有00-10序列可以离线训练使用。将00-10序对中的前八个序列(00-07)作为训练集,后三个序列(08-10)作为测试集。用训练集进行网络训练,并用测试集来验证网络学习的精度。
2.2)离线学习深度神经网络模型的搭建。
2.2.1)搭建光流提取网络,利用相邻图像帧完成初始的光流场的提取;采用Brox算法网络作为光流提取器,计算时间t和t+1的两帧图像之间的光流,用RGB编码来量化计算出来的光流场,因此输入数据为三通道、八位的深度图像格式。
2.2.2)搭建全局特征提取网络;
对整个图像进行八次下采样后进行深度网络训练,利用全局信息进行训练。2.2.3)搭建局部特征提取网络如图2所示;
将深度图像分成四个子图像。每个象限下采样4次,然后通过特征提取网络的CNN滤波器进行训练。训练最后一层使用四个CNN网络的输出层来得到全局帧间估计。
局部特征提取网络的第一部分由四个分支组成,复杂度相同,但分别训练,执行前两个卷积步骤(CNN1和CNN2)注意,图像的四个象限中的每一个包含一些运动信息可以用来计算运动估计。然后,将第一个CNN-pooling层对的输出与第二个相关联。CNN1和CNN2从光流图像中提取不同的信息。假设CNN1提取更精细的细节,而CNN2提取粗糙一些的细节,并且这些信息并不完全重叠。
在此阶段之后,将四个复杂的特征组合在一起以形成包含全局的图像信息特征,因此此网络能够用对称信息解决运动模糊。最后一层连接一个全连接网络,该网络使用两种分辨率下所有四个象限的信息。
2.2.4)合并全局特征提取网络及局部特征提取网络搭建成光流图特征提取网络
使用全局特征提取网络和局部特征提取网络的CNN滤波器将其输出馈送到下一层全连接层网络。利用全局特征提取网络的全局信息与局部特征提取网络的局部信息合并提高网络的性能。
2.2.5)构建位姿估计网络,位姿估计网络则负责整合所有特征,最终完成帧间位姿向量的估计任务。
位姿估计网络是最终完成帧间位姿向量估计的回归器,整体上仍然采用卷积网络和全连接网络相结合的形式。将特征提取网络网络提取的特征全部输入到全连接网络中,全连接层负责最后的特征整合,并回归拟合位姿估计问题在几何映射中的非线性关系。该全连接层共包括三层,由最后一层将特征向量最终拟合为六维的位姿向量,实现对位姿向量y的估算。
步骤3):网络损失函数;
因为此问题是一般性的回归问题,选用欧氏距离损失函数作为误差计算方式,该误差利用当前批次训练集中所有样本的预测值和真实标签首先计算欧氏距离,然后对所有距离的平方计算平均值,即均方误差MSE。
假设模型函数的预测值与真实值之间符合正态分布,若使得模型与测量值最接近,则需要上式中所有样本的概率乘积最大,然后进行相关推导,就得到了最终结果:平方和最小公式。所以,欧氏距离损失函数如下式所示:
步骤4):训练网络;
使用深层网络的贪婪逐层预训练方法进行训练。
4.1)使用高斯分布随机初始化网络参数,
4.2)用贪婪逐层预训练逐层优化网络参数。
贪婪逐层预训练方法为每层的滤波器系数找到最优的局部最小值,然后再进行全局训练以对它们进行微调。对于每个分支,使用其连接全连接层训练CNN1滤波器及全接连层,然后丢弃全连接层,将CNN1的输出馈送到CNN2并仅训练这个新的全连接层。再次丢弃全连接层,连接CNN的两个输出并训练第三个估计器。为每个分支重复此过程,然后丢弃最后完全连接的层并将四个象限输出连接到最后一个完全连接的网络,该网络训练最终的估计器并精细调整CNNs系数。
4.3)针对批归一化层,在训练过程中,将use-global-stats参数设为为false,而测试过程中则需要将其设定为true。该网络采用欧氏距离损失函数.
由于数据集中存在多种相机内参数的图像序列,为了提高网络的训练速度和训练质量,避免位姿回归器偏向于某一分布,训练时将对所有样本进行随机打散,并采用深度学***均50次迭代左右可以遍历整个训练集。采用adam算法优化网络,将学习率设定为0.0002,将momentum参数设为0.9,学习率的数值对于网络的训练有较大影响,这是通过多次实验选取的较好的参数。
步骤5)数据集测试;为了评估提出的方法,使用公开的数据集进行实验。为了进一步探索架构的稳健性,测试的序列进行人工修改,增加模糊度及改变对比度和亮度,并模拟复杂场景的多种环境,如低亮度和运动模糊。
在视觉SLAM以及视觉里程计领域最常用的公共数据集是KITTI数据集,这是许多视觉算法的常见测试平台。它由自动汽车驾驶平台通过左右两个镜头在城市街道进行采集,并提供精确的轨迹数据,供单目视觉和双目视觉乃至激光相关研究工作使用,其中,对于单目视觉研究而言,仅采用单个镜头的图像序列即可。图像已经没有失真,有分辨率为1240×386,帧速率为10Hz(某些情况下)序列的分辨率略高:在这些情况下我们执行简单裁剪以统一所有帧。
该数据集总共提供22个图像帧序列,其中前11个序列向用户开放下载,后11个序列只能在线提交结果,作为算法性能竞争的依据。因此,在设计位姿估计模型时只可以使用00-10共11列。前8个用作训练集,最后评估三个序列08,09和10作为测试集。
本发明与ORB-SALM进行对比。对比发现使用深度学***均位移误差维持在10%左右,不随序列的不同而导致性能的剧烈差异。采用TensorFlow框架实现网络结构,并使用NVIDIA GTX1080Ti GPU进行训练.所有算法流程环节累计时间不超过40ms,而KITTI数据集中每秒大概会有十几帧图像,足够满足实时计算需求。
Claims (6)
1.一种基于深度学习的视觉SLAM前端位姿估计方法,其特征在于包括下述步骤:
步骤1):对训练数据集进行数据预处理;
1.1)首先对KITTI数据库中图像进行裁剪,裁剪到尺寸相同;
1.2)然后利用相邻帧之间转换矩阵进行数据集扩充;
选择步长为N进行扩充:原始数据集数量为S,设时刻i和j间位姿变换矩阵为Tij,则时刻t和(t+N)之间的位姿矩Tt,t+N=Tt,t+1·Tt+1,t+2·Tt+2,t+3....Tt+N-1,t+N,利用此转换关系,选择扩充步长为N,将数据集扩充为NS,S为KITTI数据集提供的训练样本数;
1.3)数据转换;
利用Peter Corke的Robotics Toolbox将KITTI提供的轨迹数据从位姿矩阵形式转化为相邻帧之间的相对位姿变换向量,即旋转矩阵转化为欧拉角,位移部分转化为位移向量;
步骤2):离线深度神经网络模型的构建;
设帧间位姿估计6自由度参数为f,目标f输入参数变量x映射得到,则x为辅助参数;w为训练的数据集获得的训练序列系数,b为真实值与计算值的残差值,用以修正;
2.1)训练集和验证集的划分:由于KITTI提供的数据集只有00-10序列可以离线训练使用,将KITTI提供的数据集00-10序对中的前M个序列作为训练集,后11-M个序列作为测试集,用训练集进行网络训练,并用测试集验证网络学习的精度;
2.2)离线学习深度神经网络模型的搭建;
2.2.1)搭建光流提取网络,利用相邻图像帧完成初始的光流场的提取:采用Brox算法网络作为光流提取器,计算时间t和t+1的两帧图像之间的光流,用RGB编码量化计算出来的光流场,因此输入数据为三通道、八位的深度图像格式;
2.2.2)搭建全局特征提取网络;
对整个图像进行T1次下采样后进行深度网络训练,选用卷积神经网络进行特征提取,利用光流图全局信息进行训练,获取光流图的全局特征;
2.2.3)搭建局部特征提取网络;
将深度图像分成四个子图像,每个象限下采样T2次,然后通过CNN滤波器进行训练,对每个子图像进行两级训练CNN1和CNN2,最后一层级联全连接层;
局部特征提取网络的第一部分由四个分支组成,对每个子图像进行分别训练;图像的四个象限每一个都包含运动信息用来计算运动估计;然后,将第一个CNN-pooling层对的输出与第二个CNN-pooling层相关联;CNN1和CNN2从光流图像中提取不同的信息;CNN1提取更精细的细节,而CNN2提取粗糙一些的细节,并且这些信息并不完全重叠;
将四个复杂的特征组合在一起以形成包含全局的图像信息特征,因此网络能够用对称信息解决运动模糊,最后一层连接一个全连接网络,该网络使用两种分辨率下所有四个象限的信息;
2.2.4)合并全局特征提取网络及局部特征提取网络,搭建成光流图特征提取网络;
使用全局特征提取网络和局部特征提取网络的CNN滤波器将其输出馈送到下一层全连接层网络,利用全局特征提取网络的全局信息与局部特征提取网络的局部信息合并提高网络的性能;
2.2.5)构建位姿估计网络,位姿估计网络则负责整合所有特征,最终完成帧间位姿向量的估计任务;
位姿估计网络是最终完成帧间位姿向量估计的回归器,采用卷积网络和全连接网络相结合的形式,将特征提取网络提取的特征全部输入到全连接网络中,全连接层负责最后的特征整合,并回归拟合位姿估计问题在几何映射中的非线性关系;全连接层共包括三层,由最后一层将特征向量最终拟合为六维的位姿向量,实现对位姿向量y的估算;
步骤3):选择网络损失函数;
选用欧氏距离损失函数作为误差计算方式,该误差利用当前批次训练集中所有样本的预测值和真实标签首先计算欧氏距离,然后对所有距离的平方计算平均值,即均方误差MSE;
假设模型函数的预测值与真实值之间符合正态分布,若使得模型与测量值最接近,则需要上式中所有样本的概率乘积最大,然后进行相关推导,得到最终结果:平方和最小公式;所以,欧氏距离损失函数其中,W表示网络模型的权重参数,为网络的输出模型,Yi为标准的真实位姿向量,N为训练集大小;
步骤4):训练网络;
4.1)使用高斯分布随机初始化网络参数;
4.2)用贪婪逐层预训练逐层优化网络参数;
贪婪逐层预训练方法为每层的滤波器系数找到最优的局部最小值,然后再进行全局训练对权重值进行微调;对于每个分支,使用其连接全连接层训练CNN1滤波器及全接连层,然后丢弃全连接层,将CNN1的输出馈送到CNN2并仅训练新的全连接层;再次丢弃全连接层,连接CNN的两个输出并训练第三个估计器;为每个分支重复此过程,然后丢弃最后完全连接的层并将四个象限输出连接到最后一个完全连接的网络,网络训练最终的估计器并精细调整CNNs系数;
4.3)针对批归一化层,在训练过程中,将use-global-stats参数设为为false,而测试过程中则需要将其设定为true,网络采用欧氏距离损失函数;
训练时将对所有样本进行随机打散,并采用深度学习模型的mini-batch的方式进行网络参数的调整优化;采用adam算法优化网络。
2.根据权利要求1所述的一种基于深度学习的视觉SLAM前端位姿估计方法,其特征在于:
所述步骤1.1)中目标图像的尺寸大小为图像序列中图像尺寸大小数目最多的尺寸。
3.根据权利要求1所述的一种基于深度学习的视觉SLAM前端位姿估计方法,其特征在于:
所述步骤1.2)中选择步长为N=2。
4.根据权利要求1所述的一种基于深度学习的视觉SLAM前端位姿估计方法,其特征在于:
所述步骤2.1)中M=8。
5.根据权利要求1所述的一种基于深度学习的视觉SLAM前端位姿估计方法,其特征在于:
所述步骤2.2.2)中T1为8。
6.根据权利要求1所述的一种基于深度学习的视觉SLAM前端位姿估计方法,其特征在于:
所述步骤2.2.3)中T2为4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911278664.3A CN111127557B (zh) | 2019-12-13 | 2019-12-13 | 一种基于深度学习的视觉slam前端位姿估计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911278664.3A CN111127557B (zh) | 2019-12-13 | 2019-12-13 | 一种基于深度学习的视觉slam前端位姿估计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111127557A true CN111127557A (zh) | 2020-05-08 |
CN111127557B CN111127557B (zh) | 2022-12-13 |
Family
ID=70498943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911278664.3A Active CN111127557B (zh) | 2019-12-13 | 2019-12-13 | 一种基于深度学习的视觉slam前端位姿估计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111127557B (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598951A (zh) * | 2020-05-18 | 2020-08-28 | 清华大学 | 一种识别空间目标的方法、装置和存储介质 |
CN111667535A (zh) * | 2020-06-04 | 2020-09-15 | 电子科技大学 | 一种针对遮挡场景下的六自由度位姿估计方法 |
CN111833400A (zh) * | 2020-06-10 | 2020-10-27 | 广东工业大学 | 一种相机位姿定位方法 |
CN111931873A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 图像识别方法和装置 |
CN111967542A (zh) * | 2020-10-23 | 2020-11-20 | 江西小马机器人有限公司 | 一种基于深度特征点的表计识别二次定位方法 |
CN112344922A (zh) * | 2020-10-26 | 2021-02-09 | 中国科学院自动化研究所 | 单目视觉里程计定位方法及*** |
CN112446328A (zh) * | 2020-11-27 | 2021-03-05 | 汇纳科技股份有限公司 | 单目深度的估计***、方法、设备及计算机可读存储介质 |
CN112733921A (zh) * | 2020-12-31 | 2021-04-30 | 深圳辰视智能科技有限公司 | 一种预测刚体6d姿态的神经网络损失函数计算方法及*** |
CN113239936A (zh) * | 2021-04-26 | 2021-08-10 | 大连理工大学 | 一种基于深度学习与特征点提取的无人机视觉导航方法 |
CN113436251A (zh) * | 2021-06-24 | 2021-09-24 | 东北大学 | 一种基于改进的yolo6d算法的位姿估计***及方法 |
CN113724325A (zh) * | 2021-05-31 | 2021-11-30 | 西安理工大学 | 一种基于图卷积网络的多场景单目相机位姿回归方法 |
CN113989318A (zh) * | 2021-10-20 | 2022-01-28 | 电子科技大学 | 基于深度学习的单目视觉里程计位姿优化与误差修正方法 |
CN114415698A (zh) * | 2022-03-31 | 2022-04-29 | 深圳市普渡科技有限公司 | 机器人、机器人的定位方法、装置和计算机设备 |
CN115187638A (zh) * | 2022-09-07 | 2022-10-14 | 南京逸智网络空间技术创新研究院有限公司 | 一种基于光流遮罩的无监督单目深度估计方法 |
CN115358962A (zh) * | 2022-10-18 | 2022-11-18 | 中国第一汽车股份有限公司 | 一种端到端视觉里程计方法及装置 |
CN117495970A (zh) * | 2024-01-03 | 2024-02-02 | 中国科学技术大学 | 基于模板多级匹配的化学仪器位姿估计方法、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106658023A (zh) * | 2016-12-21 | 2017-05-10 | 山东大学 | 一种基于深度学习的端到端视觉里程计及方法 |
CN108921893A (zh) * | 2018-04-24 | 2018-11-30 | 华南理工大学 | 一种基于在线深度学习slam的图像云计算方法及*** |
CN110490928A (zh) * | 2019-07-05 | 2019-11-22 | 天津大学 | 一种基于深度神经网络的相机姿态估计方法 |
-
2019
- 2019-12-13 CN CN201911278664.3A patent/CN111127557B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106658023A (zh) * | 2016-12-21 | 2017-05-10 | 山东大学 | 一种基于深度学习的端到端视觉里程计及方法 |
CN108921893A (zh) * | 2018-04-24 | 2018-11-30 | 华南理工大学 | 一种基于在线深度学习slam的图像云计算方法及*** |
CN110490928A (zh) * | 2019-07-05 | 2019-11-22 | 天津大学 | 一种基于深度神经网络的相机姿态估计方法 |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598951B (zh) * | 2020-05-18 | 2022-09-30 | 清华大学 | 一种识别空间目标的方法、装置和存储介质 |
CN111598951A (zh) * | 2020-05-18 | 2020-08-28 | 清华大学 | 一种识别空间目标的方法、装置和存储介质 |
CN111667535A (zh) * | 2020-06-04 | 2020-09-15 | 电子科技大学 | 一种针对遮挡场景下的六自由度位姿估计方法 |
CN111833400A (zh) * | 2020-06-10 | 2020-10-27 | 广东工业大学 | 一种相机位姿定位方法 |
CN111833400B (zh) * | 2020-06-10 | 2023-07-28 | 广东工业大学 | 一种相机位姿定位方法 |
CN111931873A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 图像识别方法和装置 |
CN111931873B (zh) * | 2020-09-28 | 2020-12-22 | 支付宝(杭州)信息技术有限公司 | 图像识别方法和装置 |
CN111967542A (zh) * | 2020-10-23 | 2020-11-20 | 江西小马机器人有限公司 | 一种基于深度特征点的表计识别二次定位方法 |
CN111967542B (zh) * | 2020-10-23 | 2021-01-29 | 江西小马机器人有限公司 | 一种基于深度特征点的表计识别二次定位方法 |
CN112344922A (zh) * | 2020-10-26 | 2021-02-09 | 中国科学院自动化研究所 | 单目视觉里程计定位方法及*** |
CN112446328B (zh) * | 2020-11-27 | 2023-11-17 | 汇纳科技股份有限公司 | 单目深度的估计***、方法、设备及计算机可读存储介质 |
CN112446328A (zh) * | 2020-11-27 | 2021-03-05 | 汇纳科技股份有限公司 | 单目深度的估计***、方法、设备及计算机可读存储介质 |
CN112733921A (zh) * | 2020-12-31 | 2021-04-30 | 深圳辰视智能科技有限公司 | 一种预测刚体6d姿态的神经网络损失函数计算方法及*** |
CN112733921B (zh) * | 2020-12-31 | 2024-05-17 | 深圳辰视智能科技有限公司 | 一种预测刚体6d姿态的神经网络损失函数计算方法及*** |
CN113239936A (zh) * | 2021-04-26 | 2021-08-10 | 大连理工大学 | 一种基于深度学习与特征点提取的无人机视觉导航方法 |
CN113239936B (zh) * | 2021-04-26 | 2024-05-28 | 大连理工大学 | 一种基于深度学习与特征点提取的无人机视觉导航方法 |
CN113724325A (zh) * | 2021-05-31 | 2021-11-30 | 西安理工大学 | 一种基于图卷积网络的多场景单目相机位姿回归方法 |
CN113724325B (zh) * | 2021-05-31 | 2024-05-28 | 西安理工大学 | 一种基于图卷积网络的多场景单目相机位姿回归方法 |
CN113436251A (zh) * | 2021-06-24 | 2021-09-24 | 东北大学 | 一种基于改进的yolo6d算法的位姿估计***及方法 |
CN113436251B (zh) * | 2021-06-24 | 2024-01-09 | 东北大学 | 一种基于改进的yolo6d算法的位姿估计***及方法 |
CN113989318A (zh) * | 2021-10-20 | 2022-01-28 | 电子科技大学 | 基于深度学习的单目视觉里程计位姿优化与误差修正方法 |
CN113989318B (zh) * | 2021-10-20 | 2023-04-07 | 电子科技大学 | 基于深度学习的单目视觉里程计位姿优化与误差修正方法 |
CN114415698A (zh) * | 2022-03-31 | 2022-04-29 | 深圳市普渡科技有限公司 | 机器人、机器人的定位方法、装置和计算机设备 |
CN114415698B (zh) * | 2022-03-31 | 2022-11-29 | 深圳市普渡科技有限公司 | 机器人、机器人的定位方法、装置和计算机设备 |
CN115187638A (zh) * | 2022-09-07 | 2022-10-14 | 南京逸智网络空间技术创新研究院有限公司 | 一种基于光流遮罩的无监督单目深度估计方法 |
CN115358962B (zh) * | 2022-10-18 | 2023-01-10 | 中国第一汽车股份有限公司 | 一种端到端视觉里程计方法及装置 |
CN115358962A (zh) * | 2022-10-18 | 2022-11-18 | 中国第一汽车股份有限公司 | 一种端到端视觉里程计方法及装置 |
CN117495970A (zh) * | 2024-01-03 | 2024-02-02 | 中国科学技术大学 | 基于模板多级匹配的化学仪器位姿估计方法、设备及介质 |
CN117495970B (zh) * | 2024-01-03 | 2024-05-14 | 中国科学技术大学 | 基于模板多级匹配的化学仪器位姿估计方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111127557B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111127557B (zh) | 一种基于深度学习的视觉slam前端位姿估计方法 | |
CN110111366B (zh) | 一种基于多级损失量的端到端光流估计方法 | |
CN111862126B (zh) | 深度学习与几何算法结合的非合作目标相对位姿估计方法 | |
US10719940B2 (en) | Target tracking method and device oriented to airborne-based monitoring scenarios | |
CN109840471B (zh) | 一种基于改进Unet网络模型的可行道路分割方法 | |
CN109341703B (zh) | 一种全周期采用CNNs特征检测的视觉SLAM算法 | |
CN111311666B (zh) | 一种融合边缘特征和深度学习的单目视觉里程计方法 | |
CN110781776B (zh) | 一种基于预测和残差细化网络的道路提取方法 | |
CN111709410B (zh) | 一种强动态视频的行为识别方法 | |
CN111986240A (zh) | 基于可见光和热成像数据融合的落水人员检测方法及*** | |
CN112949493B (zh) | 一种结合语义分割和注意力机制的车道线检测方法及*** | |
RU2476825C2 (ru) | Способ управления движущимся объектом и устройство для его осуществления | |
CN109584299B (zh) | 一种定位方法、定位装置、终端及存储介质 | |
CN112419317B (zh) | 一种基于自编码网络的视觉回环检测方法 | |
CN110929649B (zh) | 一种面向小目标检测的网络和困难样本挖掘方法 | |
CN116434088A (zh) | 基于无人机航拍图像的车道线检测及车道辅助保持方法 | |
CN115063717B (zh) | 一种基于重点区域实景建模的视频目标检测与跟踪方法 | |
CN113888629A (zh) | 一种基于rgbd相机的快速物体三维位姿估计方法 | |
CN114419421A (zh) | 一种基于影像的地铁隧道裂缝识别***及方法 | |
CN112561807A (zh) | 一种基于卷积神经网络的端到端径向畸变校正方法 | |
CN113034398A (zh) | 基于人工智能的城市测绘果冻效应消除方法与*** | |
CN116883457B (zh) | 一种基于检测跟踪联合网络和混合密度网络的轻量化多目标跟踪方法 | |
CN111160115B (zh) | 一种基于孪生双流3d卷积神经网络的视频行人再识别方法 | |
CN116402690A (zh) | 一种基于多头自注意力机制的高分辨率遥感影像中道路提取方法、***、设备及介质 | |
CN115984592A (zh) | 基于SuperPoint+SuperGlue的点线融合特征匹配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |