欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019105945645
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于视觉先验信息和地图恢复的SLAM方法,其特征在于,所述的基于视觉先验信息和地图恢复的SLAM方法实施在SLAM系统,包括以下步骤:步骤S1、以预设格式保存针对当前环境构建的SLAM地图,作为先验地图;

步骤S2、加载所述先验地图,使用重定位初始化算法完成初始化,固定SLAM坐标系后进行跟踪和建图;

步骤S3、当跟踪失败时,自动保存已构建的SLAM地图,作为跟踪成功地图,并采用自适应重新初始化方法完成重新初始化,继续进行跟踪与建图,并将重新初始化后构建的SLAM地图作为恢复地图;

步骤S4、采用回环检测算法获得跟踪成功地图与恢复地图之间的转换关系;

步骤S5、根据所述转换关系,采用地图恢复法拼接跟踪成功地图与恢复地图,得到当前环境的全局地图;

其中,所述回环检测算法,包括:

使用DBoW2库寻找当前地图的关键帧与子地图的关键帧之间的匹配项,并存入匹配集H={h1,...,hn}中,所述当前地图为恢复地图,所述子地图为先验地图或跟踪成功地图,所述匹配集H中的hq,q∈[1,n]表示DBoW2库找到的第q个匹配项,且其中, 表示第q个匹配项中当前地图的关键帧, 表示第q个匹配项中子地图的关键帧;

匹配集H中的两匹配项之间存在时序关系,即两匹配项

之间满足以下关系:

其中,q1,q2∈[1,n],且q2=1+q1,即两匹配项hq1和hq2为相邻匹配项;

若匹配集H中的匹配项|H|≥m,则认定当前地图与子地图之间出现重叠区域,停止匹配项的寻找,确定H={h1,...,hm}为最终的匹配集H;

从子地图中取一帧关键帧Ki,根据最终的匹配集H,采用Hom算法计算当前地图的坐标系到关键帧Ki的坐标系之间的转换矩阵Tcurr2i,并根据转换矩阵Tcurr2i得到从当前地图到子地图的坐标转换矩阵Tcurr2sub为:Tcurr2sub=Tcurr2i*Ti2sub

其中,Ti2sub为已知量,Ti2sub表示关键帧Ki的坐标系到子地图的坐标系之间的转换矩阵,且Tcurr2sub的具体形式为:Tcurr2sub=(Rcurr2sub,tcurr2sub,Scurr2sub)其中,Rcurr2sub和tcurr2sub代表当前地图到子地图的旋转变换矩阵与平移变换矩阵,scurr2sub代表当前地图与子地图之间的尺度关系。

2.如权利要求1所述的基于视觉先验信息和地图恢复的SLAM方法,其特征在于,所述预设格式为:(MapPoints,KeyFrames)

其中,MapPoints为地图点集合,KeyFrames为关键帧集合,且每一个地图点的格式为:(pid,xmap,ymap,zmap)

其中,pid为地图点的标识,xmap,ymap,zmap为地图点的坐标;

每一个关键帧的格式为:

(fid,time,quat,features,parentid,conidws)其中,fid为关键帧的标识,time为时间戳,quat为关键帧的位姿四元数,parentid为关键帧的父节点的标识,conidws为集合,conidws中的每一个元素表示与该关键帧相连的关键帧的标识以及这两个关键帧之间的权重,features为集合,features存储了该关键帧观测到的所有特征点,其中每一个特征点的记录格式为:(xkey,ykey,size,angle,response,octave,descriptor)其中,xkey,ykey为特征点的坐标,size为特征点的邻域直径,angle为特征点的方向,response为特征点的响应强度,代表了该点是特征点的程度,octave表示该特征点所在的图像金字塔的层级,descriptor表示该特征点的描述子。

3.如权利要求1所述的基于视觉先验信息和地图恢复的SLAM方法,其特征在于,所述重定位初始化算法,包括:SLAM系统对获取到的当前图像帧提取ORB特征,采用BOW模型确定当前图像帧与先验地图中的先验图像帧之间的转换矩阵;

根据确定的转换矩阵,采用PnP算法计算当前图像帧在先验地图中的位置,从而建立与先验地图中的坐标系一致的SLAM坐标系,完成初始化。

4.如权利要求1所述的基于视觉先验信息和地图恢复的SLAM方法,其特征在于,所述自适应重新初始化方法,包括:若在当前环境的场景照片中检测到灭点,即采用快速初始化方法,包括:假设找到的灭点为vi,提取到的特征点为pj,且特征点pj的深度值Dj为:其中,i∈[1,a],a为场景照片中找到的灭点数量,j∈[1,b],b为场景照片中找到的特征点数量,pj.x为特征点pj在x轴上的坐标值,pj.y为特征点pj在y轴上的坐标值,vi.x为灭点vi在x轴上的坐标值,vi.y为灭点vi在y轴上的坐标值;

计算所有特征点的深度值,并从所有特征点的深度值中选择最大与最小值,分别记为Dmax与Dmin;

对每一特征点的深度值进行归一化处理,归一化深度值区间为[0.5,1.5],得到特征点pj的归一化深度值pj_w_z为:pj_w_z=0.5+Dj/(Dmax‑Dmin)根据得到的特征点pj的深度信息,恢复特征点pj的三维坐标为:其中,xj,yj为特征点pj在图像上的坐标,cx、cy、fx、fy为相机的内参,则特征点pj的三维坐标为(X,Y,pj_w_z);

计算每一特征点的三维坐标,完成SLAM三维地图的构建,即完成初始化;

若在当前环境的场景照片中未检测到灭点,即采用简易初始化方法,包括:对当前获取到的每一帧图像提取ORB特征,根据ORB特征计算两帧图像之间的单应矩阵Hcr,通过分解单应矩阵Hcr和三角化方法获得点云地图,若点云地图中点数量大于l,则将该点云地图作为初始地图,完成重新初始化。

5.如权利要求1所述的基于视觉先验信息和地图恢复的SLAM方法,其特征在于,所述地图恢复法,包括:取当前地图到子地图的坐标转换矩阵Tcurr2sub,采用去除尺度关系的坐标转换矩阵T′curr2sub=(Rcurr2sub,tcurr2sub),将跟踪成功地图与恢复地图的坐标系对齐,保持跟踪成功地图与恢复地图的坐标系一致;

根据最终的匹配集H关联跟踪成功地图与恢复地图之间重叠区域的关键帧,并利用坐标转换矩阵Tcurr2sub合并重叠区域内的特征点,得到跟踪成功地图与恢复地图数据融合后的拼接地图;

利用求解能量方程的最小化问题恢复拼接地图的尺度,建立的能量方程包括三部分,curr sub第一部分为当前地图的位姿图E(ξ ),第二部分为子地图的位姿图E(ξ ),第三部分为当over前地图和子地图之间的重叠区域的位姿图E(ξ ),能量方程具体如下:curr sub

其中,ξ 为关键帧在当前地图中优化前的位姿,ξ 为关键帧在子地图中优化前的位over姿,ξ 为关键帧在当前地图与子地图重叠区域中优化前的位姿,ξ为关键帧优化后的融合位姿,E(ξ)为拼接地图优化后的位姿图, 为当前地图中的关键帧,为子地图中的关键帧, 为当前地图与子地图重叠区域中的关键帧,Λ为信息矩阵;

其中,关键帧 与 之间的位姿误差为:

关键帧 与 之间的位姿误差为:

关键帧 与 之间的位姿误差为:

其中,logSim(3)函数表示将李群转换成李代数, 为当前地图中的关键帧, 为子地图中的关键帧, 为当前地图与子地图重叠区域中的关键帧;

得到拼接地图优化后的位姿图E(ξ),使用重投影进行全局BA优化,建立最小化能量方程为:curr

其中,ρh为Huber函数,Ω为协方差矩阵,n为关键帧的数量,X 为当前地图的地图点;

取地图中任意前后关联的两关键帧设为关键帧1和关键帧2,且ecurr1为在当前地图中关键帧1的重投影误差,计算公式为:ecurr1=xcurr1,i‑π(S12,P2,j)其中,i,j为关键帧1与关键帧2之间的匹配点,xcurr1,i为匹配点i的像素坐标,S12=(R12,t12,s12)为关键帧1与关键帧2之间的7自由度相对位姿变换矩阵,P2,j代表在关键帧2中匹配点j的三维坐标,π为投影函数,公式如下:其中,fu与fv代表焦距,cu与cv代表主点,且x1、y1、z1满足如下关系:T

[x1 y1 z1]=s12R12P2,j+t12同理,ecurr2的计算公式如下:

其中,xcurr2,j为匹配点j的像素坐标,P1,i代表在关键帧1中匹配点i的三维坐标;并同理计算得到在子地图中两关键帧的重投影误差esub1和esub2,以及在重叠区域中两关键帧的重投影误差eover1和eover2;

根据对最小化能量方程的求解,完成全局BA优化,从而得到当前环境的全局地图。