本发明属于视觉同步定位与地图构建(slam)技术领域,涉及一种基于预变换的大视角变化下视觉同时定位与绘图方法。
背景技术:
随着人工智能技术的快速发展,智能机器人开始广泛应用于工业生产、军事作战以及居民生活的方方面面。同步定位与地图构建,它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,并同时估计自己的运动,这是实现真正智能化和完全自主移动的关键技术。视觉传感器因其成本低、探测范围宽、信息量大、图像特征易于提取等特点,已被广泛地应用在基于视觉的同步定位与地图构建(visual-basedsimultaneouslocalizationandmapping,v-slam)中。但是在移动机器人进行slam的过程中,往往由于复杂环境中光照、地形等外部环境条件的影响,机器人位姿变化会使图像观测视角发生较大变化,以致相邻帧图像之间特征点匹配数目骤减,匹配精度降低,导致系统性能下降甚至失效,严重时会发生相机同步定位和地图构建的失败。针对上述问题,如何来对大视角变化下的图像进行特征检测和匹配以及构建大视角的v-slam系统就具有非常重要的意义。
技术实现要素:
本发明的目的是提供一种基于预变换的大视角变化下视觉同时定位与绘图方法,解决了基于视觉特征点匹配的slam方法在大视角变化下可靠性较差、不够稳定的技术问题。
本发明所采用的技术方案是,一种基于预变换的大视角变化下视觉同时定位与绘图方法,具体按以下步骤实施:
步骤1,在slam系统中,输入大视角变化下相机获取的图像信息;
步骤2,对图像进行预变换,建立相邻图像之间的对应关系,粗略地估计两帧之间的相机运动和场景结构;
步骤3,利用步骤2获得的信息构建局部地图;
步骤4,对地图进行全局优化,生成场景的稀疏三维重建结果。
本发明的特点还在于,
步骤1中图像信息包括连续的多帧单目灰度图像及其所对应的时间戳。
步骤2具体为:
2.1对于大视角变化下的图像,利用仿射相机模型矩阵采样,来模拟相机在不同视角下成像的方法来获取模拟图像序列集;
2.2对获取的模拟图像集中不同视角的图像两两进行特征检测,提取orb特征,最终获得所有正确的相互匹配的特征点,使其具备完全仿射不变性;
2.3在得到匹配信息之后,求初始相机位姿和确定较为准确的3d点;
2.4实时跟踪特征点,实时输出相机位姿和筛选的关键帧。
步骤2.1中,仿射相机模型矩阵为:
其中,θ和ψ分别为对应光轴的纬度和经度;tx、ty为两方向的平移变量;
其采样规则是:引入倾斜度
步骤2.3具体为:采用随机采样一致法同时计算单应性矩阵模型h和基础矩阵模型f,分别得到两个矩阵的最优矩阵,然后选择合适的矩阵模型,恢复相机运动;
最优矩阵h/f模型选择机制如下:
采用m代表矩阵模型,首先给每个模型m计算一个分值sm,以评估哪个模型更合适,计算的方法如下所示,其中sm统一表示sh和sf:
其中
模型m越准,所有匹配点对的重投影误差越小,sm的值就越大。从单应矩阵和基本矩阵的计算中选择分值最高的,分别记作为sh和sf;
当场景是一个平面、或近似为一个平面、或者视差较小的时候,可以使用单应性矩阵h;而使用基础矩阵f恢复运动,需要场景是一个非平面、视差大的场景。此时使用下面所示的机制,来判断如何选择两个模型:
如果rh>0.45,表示二维平面和低视差的情况,选择计算单应矩阵;其他的情况,选择基础矩阵;
选择好模型后,使用奇异值分解和八点法恢复相机的旋转矩阵r和平移向量t;
同时,采用线性三角形法中的齐次方法进行三角测量恢复匹配点对应的3d信息。
步骤2.4具体为:
2.4.1利用恒速运动模型,首先假设相机恒速,即旋转矩阵r和平移向量t与上一帧相同,通过pnp方法估计相机位姿,进行一次ba算法,通过最小二乘法优化相机的位姿;
2.4.2如果匹配点数目较少,说明恒速模型失效,则按照参考帧模型来进行跟踪,即尝试和最近一个关键帧去做匹配,根据两帧之间的约束关系来求解位估算位姿。
关键帧是指其与当前帧至少匹配到了50个mappoint。
步骤3具体为:把关键帧插入到3d地图点中,并对局部地图进行ba优化。
步骤4具体为:
4.1对地图进行回环检测
首先离线训练大量的基于orb描述的词袋,计算关键帧和在共视图中与其相连关键帧的词袋之间的相似度;然后对每一个候选关键帧检测其与之前回环的一致性,通过连续三次的关键帧对应相同的候选闭环帧,则认为该帧为闭环帧。
4.2sim3优化
将当前关键帧地图点和闭环关键帧地图点进行bow匹配,匹配上的两组3d点集之间用ransas求解sim3变换,从而获得当前关键帧相对于闭环关键帧的sim3,然后传播到相连关键帧,并调整地图点,从而完成闭环调整;
4.3本质图优化
使用本质图优化位姿图,将闭环的误差分散到整个图中。
本发明的有益效果是,本发明一种基于预变换的大视角变化下视觉同时定位与绘图方法,在视角发现较大变化的情况下,针对视觉同步定位与地图构建系统性能下降的问题,基于asift原理,对相机旋转造成的经度角及纬度角进行模拟,提出了一种基于orb的抗视角变化图像特征匹配算法。本发明方法能在视角发生较大变化情况下有效地估计相机运动轨迹并生成以关键帧为场景的稀疏三维重建结果,解决了基于视觉特征点匹配的slam方法在大视角变化下(大于60°)可靠性较差、不够稳定的技术问题。
附图说明
图1是一种基于预变换的大视角变化下视觉同时定位与绘图方法过程示意图;
图2是模拟图像集的采样示意图;
图3是系统初始化模型选择流程图;
图4是实时跟踪特征点和建图流程图;
图5是传统方法与本发明方法在大视角变化图像特征匹配中的结果图,其中图a、b为传统方法视角变化为40°和80°的特征匹配结果,图c、d本发明方法视角变化为40°和80°的特征匹配结果。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明提供了一种基于预变换的大视角变化下视觉同时定位与绘图方法,其流程如图1所示,包含四个部分:输入、前端、后端以及最终轨迹与地图。输入为连续的多帧图像及其所对应的时间戳,所述图像为单目灰度图像;前端主要负责对大视角变化下相机获取的图像信息进行预变换,通过基于orb的抗视角变化图像特征提取及匹配算法来建立相邻图像之间的对应关系,粗略地估计两帧之间的相机运动和场景结构;后端主要对位姿进行优化以及闭环检测;最后得到在大视角变化下的相机轨迹以及场景的稀疏的三维重建结果。
具体按照以下步骤实施:
步骤1,在slam系统中,输入大视角变化下相机获取的连续的多帧单目灰度图像及其所对应的时间戳;
步骤2,对图像进行预变换:
本发明采用基于orb的抗视角变化图像特征提取及匹配算法来建立相邻图像之间的对应关系,粗略地估计两帧之间的相机运动和场景结构,包括:大视角变化下的特征检测与匹配,根据上一帧进行初始位姿估计,然后跟踪已经重建的局部地图,进行位姿优化,再根据一些规则确定新的关键帧。
具体步骤如下:
2.1对于大视角变化下的图像,通过定义经度角和纬度角的概念,利用仿射相机模型矩阵采样,来模拟相机在不同视角下成像的方法来获取模拟图像序列集;
仿射相机模型矩阵为:
其中,θ和ψ分别为对应光轴的纬度和经度,引起图像的纵向切变与旋转;tx、ty为两方向的平移变量;
模拟采样采样点的获取方法如图2所示。
其采样规则是:引入倾斜度
2.2对获取的模拟图像集中不同视角的图像两两进行特征检测,提取orb特征,最终获得所有正确的相互匹配的特征点,使其具备完全仿射不变性。
2.3在得到匹配信息之后,系统进行初始化,其目的是求初始相机位姿和确定较为准确的3d点(即mappoint)。其流程如图3所示,具体为:
采用随机采样一致法(ransac)同时计算两个模型:用于平面场景的单应性矩阵h和用于非平面场景的基础矩阵f,并行计算单应性矩阵模型和基础矩阵模型,通过一个评分规则来选取最优的模型,然后确定采用哪个模型用以恢复相机的旋转矩阵r和平移向量t。
h和f分别满足下列关系:
xc=hxr,
其中xc,xr是空间中任意点x分别在两图像的投影坐标,
其中,(x',y')是参考图像的点,(x,y)是待匹配图像中与(x',y')相对应的点。
最优矩阵h/f模型选择机制如下:
首先给每个模型m(h表示单应矩阵,f表示基本矩阵)计算一个分值sm,以评估哪个模型更合适。计算的方法如下所示,其中sm统一表示sh和sf:
其中
当场景是一个平面、或近似为一个平面、或者视差较小的时候,可以使用单应性矩阵h,而使用基础矩阵f恢复运动,需要场景是一个非平面、视差大的场景。这个时候,使用下面所示的一个机制,来判断如何选择两个模型:
如果rh>0.45,这表示二维平面和低视差的情况,我们将选择计算单应矩阵。其他的情况,我们选择基础矩阵。选择好模型后,使用奇异值分解和八点法恢复相机运动。
同时,采用线性三角形法中的齐次方法(dlt)进行三角测量恢复匹配点对应的3d信息。
2.4实时跟踪特征点,实时输出相机位姿和筛选的关键帧,其流程如图4所示:
2.4.1利用恒速运动模型,首先假设相机恒速,即旋转矩阵r和平移向量t与上一帧相同,通过pnp方法估计相机位姿,进行一次ba算法,通过最小二乘法优化相机的位姿。
2.4.2如果匹配点数目较少,说明恒速模型失效,则按照参考帧模型来进行跟踪。即尝试和最近一个关键帧(与当前帧至少匹配到了50个mappoint)去做匹配,根据两帧之间的约束关系来求解位估算位姿。
步骤3,局部地图构建:
局部地图构建的主要任务就是等待跟踪过程判断是否应该插入一个新的关键帧,并把关键帧插入到3d地图点中,并对局部地图进行ba优化。
步骤4,对地图进行全局优化,生成场景的稀疏三维重建结果:
4.1对地图进行回环检测(loopclosuredetection)
在没有回环检测的时候,误差将对后续计算产生影响,当入回环检测之后,整个运动过程之间就增加了约束,因此,误差就相对减少了。
闭环条件的检测,离线训练了大量的基于orb描述的词袋,计算关键帧和在共视图中与其相连关键帧的词袋(bow)之间的相似度。
对每一个候选关键帧检测其与之前回环的一致性。主要就是通过连续三次的关键帧对应相同的候选闭环帧,则认为该帧为闭环帧。
4.2sim3优化
单目slam一般都会发生尺度漂移,其优化的目标是矫正尺度因子,使得其尺度一致。将当前关键帧地图点和闭环关键帧地图点进行bow匹配,匹配上的两组3d点集之间可以用ransas求解sim3变换,从而获得当前关键帧相对于闭环关键帧的sim3,然后传播到相连关键帧,并调整地图点,从而完成闭环调整。
4.3本质图优化
为了有效地完成闭环,使用本质图(essentialgraph)去优化位姿图。这样就可以将闭环的误差分散到整个图中。
下面采用具体测试实例来说明。
下表为测试数据集:
表1
表2是大视角变化下特征匹配算法的正确率对比表,正确的匹配率计算如下:
表2
由表2可知,本发明方法的特征匹配正确率可达90%以上,可见本发明方法较好的保持了asift算法的仿射不变性。
表3为本发明方法与asift算法的耗时比对结果
表3
由表3中数据可知,asift耗时约为本发明方法的2倍,故本发明方法在实时性方面更具优势。
图5是分别采用传统方法和本发明方法进行两组不同的图像在大视角变换下的特征点对匹配结果,其中左侧图(a和c))视角变化为40°,右侧图(b和d)的视角变化为80°,可明显看出,在同样的角度变换下,本发明方法能提取到更多的特征点并且可以正确的匹配说明本发明所提方法相比传统orb算法具有良好的抗视角变化能力。