一种融合几何信息的视觉SLAM回环检测方法与流程

文档序号:15449611发布日期:2018-09-14 23:48阅读:267来源:国知局

本发明属于同步定位与地图构建(slam)领域,尤其涉及一种融合几何信息的视觉slam回环检测方法。



背景技术:

同步定位与地图构建(slam)在小型移动平台上被广泛应用。近年来,随着slam技术的发展和小型平台运算能力的增强,手机,无人机,机器人等小型运动平台对slam的应用需求越来越多。小型平台应用场景对slam中的相关算法提出了一系列挑战。运算能力,传感器种类,复杂场景等各方面的限制对slam算法实现提出了更高的要求。现阶段的slam正朝着运算高速化,数据融合和场景适应能力更强等方面快速发展。视觉slam以其独特的低功耗,低成本特性受到诸多小型移动平台应用的青睐。一般来说,一套成熟的slam系统包括图像处理,跟踪(tracking),建图(mapping)和回环检测(loopclosing)四个模块。

回环检测模块的任务是让slam系统在回到原地时认出这个地点曾经来过,其作用是消除系统的累积误差。传统的回环检测方法利用图像检索的方式,搜索比对图像信息,若图像一致,则认为该地点被重复访问。

基于图像检索的回环检测利用bagofwords方法将每张图像转换成一个向量:bagofvector(bov),bov包含了图像中的特征信息。若两张图像的bov相似度很高,则可认为两张图在同一地点拍摄,完成回环检测。

由图像转化为bov的过程包含以下步骤。1)提取图像中所有的特征描述子;2)利用事先训练好的词典,将图中提取的每一个特征描述子对应成词典中的一个词汇;3)利用tf-idf对所有词汇进行统计算分,将该图包含的所有词汇所得分数组成向量即为bov。

在传统图像检索方法中,一般定义s作为两个bov之间的距离。

两个地点编号为i和j。定义η作为评价相似度。

其中vi-1表示离地点i最接近的另一个图像的bov。如果η高于某个门槛值t,则认为两个地点足够相似,检测到回环。

以上方法仅适用于回环时视角不改变的情况。对于同一地点,当视角变化较大时,图像会发生很大变化,因此相似度也会发生很大变化。图1展示了原地旋转η的变化情况,0度设为100%,之后每10度进行一次采样计算。可以看到,当原地旋转角度大于30度时,传统方法检测出的相似度衰减为原来的20%左右。对于室内等不同地点场景较为接近的情况,当t为0.2时,很容易产生错误的回环检测,而错误的回环检测则会导致slam利用错误的信息修改定位和地图,对整个定位系统产生巨大影响。因此对于这种情况,传统方法将难以为继。

对于视角变化的要求比较高的小型移动平台,比如:对于无人机平台,当无人机飞行到同一个地点时,无人机的朝向发生较大改变。对于这种情形,传统的基于图像检索的方法将很难检索到相同地点的信息,原因是在视角不同的情况下,很多时候图像中的信息发生了巨大变化。因此有些研究者希望使用其他传感器的信息来弥补这一缺陷:一种思路是使用全景相机来解决回环检测的问题,利用全景相机在视角变换时依旧拥有周边特征信息的特点完成检测。另一种思路是利用激光slam辅助,还有一些直接基于rgb-d信息来做。这些方法中虽然有些能够对于视角变换的问题提供相关解决方法,但是在现有的小型移动平台由于成本的限制,难以装载大型的激光雷达和全向摄像头等高性能设备。



技术实现要素:

本发明要解决的技术问题是提供一种融合几何信息的视觉slam回环检测方法,其不仅能够直接利用单目摄像头信息生成不同视角的回环检测信息,而且相比传统回环检测方法效率更高。

为解决上述问题,本发明的技术方案为:

一种融合几何信息的视觉slam回环检测方法,包括如下步骤:

s1:获取每一个真实相机在slam系统中对应的真实关键帧;

s2:在所述每一个真实相机周边确定对应的虚拟相机的视角变化,并计算所述虚拟相机在slam系统中的位姿;

s3:根据所述真实关键帧重构出slam系统中的三维点云;

s4:根据针孔相机模型和投影几何,计算出所述三维点云中的每个三维点在所述虚拟关键帧中的像素坐标;

s5:渲染出所述虚拟相机对应的虚拟关键帧;

s6:提取所述真实关键帧和所述虚拟关键帧的特征描述子;

s7:计算所述真实关键帧和所述虚拟关键帧的bov并加入数据库中,在进行回环检测时,搜索所述数据库中所有所述真实关键帧和所述虚拟关键帧,以获取回环检测信息。

根据本发明一实施例,所述步骤s2包括:

s21:设定所述虚拟相机相对于所述真实相机的视角变化量θ,即确定所述真实相机绕其y轴的旋转角度θ,y轴方向和所述真实相机的运动轨迹所在平面垂直;

s22:计算所述虚拟相机和所述真实相机之间的旋转矩阵和平移向量得到所述虚拟相机相对于生成其的所述真实相机的位姿rr2v|tr2v;

其中,

所述虚拟相机和所述真实相机之间的旋转矩阵和平移向量用如下公式表示:

rodrigues代表罗德里格斯旋转公式,用于将欧拉角转化为旋转矩阵;

s23:根据所述真实相机在slam系统中的位姿rk|tk,利用坐标系转换公式计算出所述虚拟相机在slam系统中的位姿rkv|tkv;

其中,

根据本发明一实施例,所述步骤s3中所述三维点云中的每个三维点由数张不同的所述真实关键帧重建获得,其坐标均为世界坐标系的三维坐标;所述三维点云的表达为:

v={x1,x2,x3,…,xp,…xq,…,xm}

每个xi代表一个三维点;

所述步骤s4中所述三维点云中的每个三维点在所述虚拟关键帧中的像素坐标为:

vkv={xj=sj-1k(rkvxj

+tkv)}wherexjisvisiblebyvirtualcamerakv,0<j≤m

其中k是相机内参,sj是虚拟相机kv坐标系下xj的深度,所述虚拟相机kv对应的真实相机记为真实相机k。

根据本发明一实施例,所述步骤s5包括:

s51:假设对于每个vkv中的每个像素坐标xj,以xj为中心,边长为l的正方形内,所有像素的深度与xj的深度一致;

s52:将所述边长为l的正方形内的像素点(α,β)反投影到三维空间中,生成所述边长为l的正方形内的像素点(α,β)对应的反投影三维点;

s53:将所述反投影三维点投影到真实相机k之前的p个真实相机当中;

若其中一个真实相机得到了合理的投影结果,则认为在该真实相机对应的真实关键帧中的像素点与像素点(α,β)的有一组对应关系,将该真实关键帧中的像素点的值复制到像素点(α,β)处;

若所述p个真实相机当中不存在合理的投影结果,则像素点(α,β)的值为0。

根据本发明一实施例,在所述步骤s6中采用surf64提取所述真实关键帧和所述虚拟关键帧中的特征描述子。

本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:

本发明的融合几何信息的视觉slam回环检测方法通过在每个真实相机周边构建不同视角的虚拟相机,针对每个虚拟相机渲染出对应的虚拟关键帧,当移动平台在同一位置进行回环检测时,在同一位置处构建出多个视角的虚拟关键帧提高了回环检测的效率。

本发明的融合几何信息的视觉slam回环检测方法能够直接利用单目摄像头信息生成不同视角的回环检测信息,相对于安装全景相机或者利用激光slam辅助的技术方案,节约了设备的成本。

附图说明

图1为回环检测时不同视角的评分统计图;

图2为虚拟相机生成示意图;

图3为三维几何信息和三维-两维关系示意图;

图4为surf64描述子精确度/召回率。

具体实施方式

以下结合附图和具体实施例对本发明提出的一种融合几何信息的视觉slam回环检测方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。

一种融合几何信息的视觉slam回环检测方法,包括如下步骤:

s1:获取每一个真实相机在slam系统中对应的真实关键帧;

s2:在每一个真实相机周边确定对应的虚拟相机的视角变化,并计算虚拟相机在slam系统中的位姿;

s3:根据真实关键帧重构出slam系统中的三维点云;

s4:根据针孔相机模型和投影几何,计算出三维点云中的每个三维点在虚拟关键帧中的像素坐标;

s5:渲染出虚拟相机对应的虚拟关键帧;

s6:提取真实关键帧和虚拟关键帧的特征描述子;

s7:计算真实关键帧和虚拟关键帧的bov并加入数据库中,在进行回环检测时,搜索数据库中所有真实关键帧和虚拟关键帧,以获取回环检测信息。

进一步的,参看图2,步骤s2包括:

s21:设定虚拟相机相对于真实相机的视角变化量θ,即确定真实相机绕其y轴的旋转角度θ,y轴方向和真实相机的运动轨迹所在平面垂直;具体的,在实际slam应用中,技术人员通过实验发现在旋转角度达到30度时,两个视角不同的相机之间的相似得分将会降低到相同视角之间得分的大约20%左右,该数值容易产生错误的回环检测。因此优选在每个真实相机周围每隔30度生成一个虚拟相机,即θ=30°,60°,-30°,-60°。对于更大的角度变化,由于系统计算资源有限,且大角度渲染的虚拟关键帧会失真严重,故不作为优选角度。

s22:计算虚拟相机和真实相机之间的旋转矩阵和平移向量得到虚拟相机相对于生成其的真实相机的位姿rr2v|tr2v;

其中,

虚拟相机和真实相机之间的旋转矩阵和平移向量用如下公式表示:

rodrigues代表罗德里格斯旋转公式,用于将欧拉角转化为旋转矩阵;

s23:根据真实相机在slam系统中的位姿rk|tk,利用坐标系转换公式计算出虚拟相机在slam系统中的位姿rkv|tkv;

其中,

进一步的,参看图3,步骤s4中三维点云中的每个三维点在虚拟关键帧中的像素坐标为:

vkv={xj=sj-1k(rkvxj

+tkv)}wherexjisvisiblebyvirtualcamerakv,0<j≤m

其中k是相机内参,sj是虚拟相机kv坐标系下xj的深度,虚拟相机kv对应的真实相机记为真实相机k。

相机位姿是相机坐标系相对于世界坐标系的旋转信息和平移信息的组合。对于slam系统中所有真实相机的相机位姿,定义为:

t={r1|t1,r2|t2…,rk|tk,…rn|tn}

其中ri代表旋转矩阵,ti代表平移向量,系统中共有n个真实相机。步骤s3中每个三维点由数个真实相机对应的真实关键帧重建获得,其坐标均定义为世界坐标系的三维坐标,三维点云表达为:

v={x1,x2,x3,…,xp,…xq,…,xm}

每个xi代表一个三维点。这些三维点是由邻近几个真实相机中的像素点重构获得。三维-两维的投影关系由图3中箭头表示。对于真实相机k,定义其能拍摄到的所有三维点为:

vk={xj}wherexjisvisiblebycamerak,0<j≤m

对于虚拟相机kv,定义其能拍摄到的所有三维点为:

vkv={xj}wherexjisvisiblebyvirtualcamerakv,0<j≤m

根据针孔相机模型和投影几何,步骤s4中这些三维点在虚拟相机kv所拍摄的虚拟关键帧中的像素坐标为:

vkv={xj=sj-1k(rkvxj

+tkv)}wherexjisvisiblebyvirtualcamerakv,0<j≤m

其中k是相机内参,sj是虚拟相机kv坐标系下xj的深度。

进一步的,参看图3,步骤s5利用slam系统中的投影关系,寻找虚拟关键帧的像素点在真实关键帧中的对应位置。可以理解,该方法需要首先知道虚拟关键帧中像素的深度,将该像素反投影算出其对应的三维点的坐标,之后再将三维点投影到其他真实相机中,则可找出虚拟关键帧中像素点和真实关键帧中像素点的对应关系。具体步骤如下:

(1)由于vkv中所有像素坐标已求,且vkv中像素深度已知。对于每个vkv中的每个像素坐标xj,本发明假设在虚拟关键帧中,以xj为中心,边长为l的正方形内,所有像素的深度与xj的深度一致,此时可以算出正方形像素对应的三维点的坐标,即:将正方形中的像素反投影到三维空间当中。设(α,β)为其中一个满足条件的像素坐标。即:

(2)之后再将生成三维点投影到相机k之前的p个真实相机当中,(注意之前计算的相机位姿rkv|tkv和像素对应关系都是虚拟相机kv的,而虚拟相机kv是由真实相机k生成的,如图3)。如果存在一个真实相机得到了合理的投影结果(投影到真实相机平面内),则找到了真实关键帧中像素与虚拟关键帧中像素的一组对应关系,因此可以将该真实相机中的像素值复制到虚拟相机的坐标(α,β)处。如果不存在合理的投影结果,则该点像素值为0。

具体的,本发明中所有真实关键帧和虚拟关键帧均采用surf64提取特征,使用dbow3开源程序库计算每张图的bov并使用存储到同一个数据库中。搜索时一并检索,选取与当前关键帧相似度最高的真实关键帧和虚拟关键帧作为最有可能的回环地点。若相似度不低于门槛值t,则可以认为现在的地点之前曾到过,检索到的真实关键帧和虚拟关键帧所在的位置即为之前到过的相机位置;若相似度低于t,则认为当前地点没有来过。

本发明的融合几何信息的视觉slam回环检测方法在每个真实相机周边构建不同视角的虚拟相机,针对每个虚拟相机渲染出对应的虚拟关键帧,当移动平台在同一位置进行回环检测时,在同一位置处构建出多个视角的虚拟关键帧提高了回环检测的效率。

本发明的融合几何信息的视觉slam回环检测方法能够直接利用单目摄像头信息生成不同视角的回环检测信息,相对于安装全景相机或者利用激光slam辅助的技术方案,节约了设备的成本。

图4展示了在实验室数据集中测试精确度(precision)-召回率(recallrate)曲线图。图中曲线上每个点代表固定门槛值时得出的精确度和召回率,通过改变t的值可绘处曲线,当t处于(0,1)中结果如图。可见,使用融合几何信息的回环检测方法,在精确度相同的情况下可以明显提升系统的召回率。因此在系统回到原地时,可以更好地完成回环检测,为视觉slam提供回环信息。一般的视觉slam为了要求检测不能有错误,会要求精确度为1,而牺牲召回率的性能。在精确度为1时,本文方法的召回率比dbow高出(0.425-0.328)/0.328=29.6%。

上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式。即使对本发明作出各种变化,倘若这些变化属于本发明权利要求及其等同技术的范围之内,则仍落入在本发明的保护范围之中。

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