一种SLAM方法与流程

文档序号:29165464发布日期:2022-03-09 02:21阅读:125来源:国知局
一种SLAM方法与流程
一种slam方法
1.本技术是分案申请,原申请的申请号为202110658243.4,申请日为2021年6月15日,发明名称为“一种高效的长时大尺度slam方法和系统”。
技术领域
2.本发明涉及汽车同步定位与地图构建技术领域,更具体地说,尤其涉及一种slam方法。


背景技术:

3.slam,是simultaneous localization and mapping的简称,其直译为:同步定位与地图构建;该技术是汽车能够实现自主导航定位、构建环境地图的核心技术(其属于智能交通领域的支撑软件)。
4.现有的visual slam算法,面对长时(long-term)和大尺度(large-scale)场景时,面临的主要问题是需要存储大量的历史信息以能在更大尺度和更长时间范围内进行回环检测(loop closure detection)来减少累积偏差.这对终端智能设备的存储和检索计算带来巨大的性能挑战.如何能够解决更长时-更大尺度范围的visual slam的高效算法是本领域的核心问题。
5.例如,cn111767854a提出的结合场景文本语义信息的slam回环检测方法,其核心步骤在于:对于关键帧集合中的任一关键帧,计算其总信息向量与当前帧总信息向量的余弦相似度,取相似度大于一定阈值且不与当前帧直接相邻的关键帧作为回环候选帧。作为该方法而言,就会存在前述的问题,要存储每一个关键帧的信息向量。这对于硬件存储设备的压力非常大。


技术实现要素:

6.本发明的目的在于提供一种slam方法,其解决了现有技术中的不足之处。
7.一种slam方法,包括以下步骤:
8.对机器视觉所接收到的图像抽象和表达为不同层级的信息;
9.越高层的信息单个存储量越低,越低层的信息单个存储量越高(也即,x
j,β
单个所占用的存储空间是小于x
j+1,β
单个所占用的存储空间);
10.越高层的信息编号越多;越低层的信息编号越少(即下述的qj》q
j+1
)。
11.一种高效的长时大尺度slam方法,其包括如下步骤:
12.s100,建立关键帧的信息层级序列:
13.关键帧的信息层级序列,按照层级逐级降低的顺序,表达为:第1层级信息、第2层级信息、第j层级信息
………
、第k层级信息:
14.s200,确定关键帧的各个信息层级的存储量:
15.第1层级信息的存储量为q1,第2层级信息的存储量为q2…………
第j层级信息的存储量为qj…………
第k层级信息的存储量为qk:
16.对于q1~qk而言,有:q1》q2》
……qj-1
》qj》
……
qk;
17.s300,当前关键帧为第y个关键帧,从第y个关键帧提取第1~k层的信息:x
1,y
、x
2,y

……
x
j,y

……
x
k,y
;同时计算第y个关键帧提取第1~k层的信息的存储重要性系数:z
1,y
、z
2,y

……zj,y

……zk,y

18.x
1,y
、x
2,y

……
x
j,y

……
x
k,y
分别表示:第y个关键帧的第1层级信息,第y个关键帧的第2层级信息、
……
第y个关键帧的第j层级信息、
……
第y个关键帧的第k层级信息;
19.z
1,y
、z
2,y

……zj,y

……zk,y
分别表示:第y个关键帧的第1层级信息的存储重要性系数,第y个关键帧的第2层级信息的存储重要性系数、
……
第y个关键帧的第j层级信息的存储重要性系数、
……
第y个关键帧的第k层级信息的存储重要性系数;
20.s400,将当前第y个关键帧提取的第1~k层的信息的存储重要性系数:z
1,y
、z
2,y

……zj,y

……zk,y
加入到当前的关键帧层级信息的存储重要性系数矩阵中(将第y个关键帧的提取的第1~k层级信息的存储重要性参数全部存储进入当前的关键帧层级信息的存储重要性系数矩阵);
21.s500,
22.将当前第y个关键帧提取的第1~k层的信息:x
1,y
、x
2,y

……
x
j,y

……
x
k,y,
加入到当前的关键帧层级信息矩阵中:
23.当0《y≤qk时,将第y个关键帧的提取的第1~k层级信息全部存储进入当前关键帧集合中;
24.上述步骤采用下式表达为:
[0025][0026]
x
j,i
表达第i个关键帧的第j层级信息;
[0027]
当qj《y≤q
j-1
时,j表示2至k的任意自然数;
[0028]
将第y个关键帧的第1~j-1层级信息全部存储进入当前关键帧集合中,上述步骤采用下式表达为:
[0029][0030]
对于第y个关键帧的第j~k层级信息而言,逐层进行计算,决定是否存储:
[0031]
对于第j~k层中的任意第β层而言:
[0032]
首先,从z
β,1
,z
β,2
……zβ,i
……zβ,y-1
,寻找取最小值,其采用z
β,m
来表示,即第m个关键帧第β层级信息存储重要性参数最小;
[0033]
其次,根据z
β,m
、z
β,y
的大小,决定是否存储第y个关键帧的第β层级信息x
β,y

[0034]
当z
β,m
》z
β,y
[0035]
则z
β,y
赋予新的数值,使得z
β,y
不再参与排序;
[0036]
x
β,y
赋予新的数值null或者0,即将第y个关键帧的第β层级信息不存储;
[0037]
当z
β,m
≤z
β,y
[0038]
则z
β,m
赋予新的数值,使得z
β,m
不再参与排序;
[0039]
x
β,m
赋予新的数值null或者0,即将第m个关键帧的第β层级信息删去,将第y个关键帧的第β层级信息x
β,y
存储,即将第m个关键帧的第β层级信息的存储空间让与第y个关键帧的第β层级信息存储空间,即第β层级信息的存储量始终保持在q
β

[0040]
当q1《y时:
[0041]
对于第y个关键帧的第1~k层级信息而言,逐层进行计算,决定是否存储:
[0042]
对于第1~k层中的任意第β层而言,
[0043]
首先,从z
β,1
,z
β,2
……zβ,i
……zβ,y-1
,寻找取最小值,其采用z
β,m
来表示,即第m个关键帧第β层级信息存储重要性参数最小;
[0044]
其次,根据z
β,m
、z
β,y
的大小,决定是否存储第y个关键帧的第β层级信息x
β,y

[0045]
当z
β,m
》z
β,y
[0046]
则z
β,y
赋予新的数值,使得z
β,y
不再参与排序;
[0047]
x
β,y
赋予新的数值null或者0,即将第y个关键帧的第β层级信息不存储;
[0048]
当z
β,m
≤z
β,y
[0049]
则z
β,m
赋予新的数值,使得z
β,m
不再参与排序;
[0050]
x
β,m
赋予新的数值null或者0,即将第m个关键帧的第β层级信息删去,将第y个关键帧的第β层级信息x
β,y
存储,即将第m个关键帧的第β层级信息的存储空间让与第y个关键帧的第β层级信息存储空间,即第β层级信息的存储量始终保持在q
β

[0051]
进一步,步骤s500中的“当z
β,m
》z
β,y
,z
β,y
赋予新的数值”,赋予null或者+∞。
[0052]
进一步,步骤s100中,4≤k。
[0053]
本发明的有益效果在于:
[0054]
第一,本技术的基础构思在于:对机器视觉所接收到的信息进行不同语义层级的抽象和表达,从信息层级来进行编码;越高层语义的特征存储的信息量约精简宏观,抽取的频次越高,对于slam系统内存储的时间越久;相反,越低层的点云特征存储的数据量越大越细致,抽取的频次越低,在slam系统内存储的时间越短。通过设置不同的存储与检索索引配置,达到可自由调配存储/检索与长时大尺度slam回环检测的性能与高效性。
[0055]
第二,基于本技术的基础构思,提出了slam关键帧矩阵存储方法:通过双系数的方式来确定存储,即:存储重要性系数矩阵与当前的关键帧层级信息矩阵来共同确定新采集的第y个关键帧的第1~k层级信息如何存储进入当前的关键帧层级信息矩阵中。
附图说明
[0056]
下面结合附图中的实施例对本发明作进一步的详细说明,但并不构成对本发明的任何限制。
[0057]
图1是实施例一的信息层级序列设计图。
[0058]
图2是实施例一的“原图像-稠密点云特征”提取示意图。
具体实施方式
[0059]
一种高效的长时大尺度slam方法,其包括如下步骤:
[0060]
s100,建立关键帧的信息层级序列:
[0061]
关键帧的信息层级序列,按照层级逐级降低的顺序,表达为:第1层级信息、第2层级信息、第j层级信息
………
、第k层级信息:
[0062]
s200,确定关键帧的各个信息层级的存储量:
[0063]
第1层级信息的存储量为q1,第2层级信息的存储量为q2…………
第j层级信息的存储量为qj…………
第k层级信息的存储量为qk:
[0064]
对于q1~qk而言,有:q1》q2》
……qj-1
》qj》
……
qk;
[0065]
s300,当前关键帧为第y个关键帧,从第y个关键帧提取第1~k层的信息:x
1,y
、x
2,y

……
x
j,y

……
x
k,y
;同时计算第y个关键帧提取第1~k层的信息的存储重要性系数:z
1,y
、z
2,y

……zj,y

……zk,y

[0066]
x
1,y
、x
2,y

……
x
j,y

……
x
k,y
分别表示:第y个关键帧的第1层级信息,第y个关键帧的第2层级信息、
……
第y个关键帧的第j层级信息、
……
第y个关键帧的第k层级信息;
[0067]z1,y
、z
2,y

……zj,y

……zk,y
分别表示:第y个关键帧的第1层级信息的存储重要性系数,第y个关键帧的第2层级信息的存储重要性系数、
……
第y个关键帧的第j层级信息的存储重要性系数、
……
第y个关键帧的第k层级信息的存储重要性系数;
[0068]
s400,将当前第y个关键帧提取的第1~k层的信息的存储重要性系数:z
1,y
、z
2,y

……zj,y

……zk,y
加入到当前的关键帧(此时,对应的当前的关键帧有第1~y-1个关键帧)存储重要性参数集合(即加入到当前的关键帧层级信息的存储重要性系数矩阵)中:
[0069]
将第y个关键帧的提取的第1~k层级信息的存储重要性参数全部存储进入当前的关键帧层级信息的存储重要性系数矩阵;
[0070]
上述步骤采用下式可表达为:
[0071][0072]
s500,
[0073]
将当前第y个关键帧提取的第1~k层的信息:x
1,y
、x
2,y

……
x
j,y

……
x
k,y,
加入到当前的关键帧集合(即加入到当前的关键帧层级信息矩阵)中:
[0074]
当0《y≤qk时,将第y个关键帧的提取的第1~k层级信息全部存储进入当前关键帧集合中;
[0075]
上述步骤采用下式可表达为:
[0076][0077]
x
j,i
表达第i个关键帧的第j层级信息(其他的表达式的含义均能够从中知晓,例如:x
k,y
表达为第y个关键帧的第k层级信息)。
[0078]
当qk《y≤q
k-1
时,将第y个关键帧的第1~k-1层级信息全部存储进入当前关键帧集合中,上述步骤采用下式可表达为:
[0079][0080]
对于第y个关键帧的第k层信息:
[0081]
首先,从z
k,1
,z
k,2
……zk,i
……zk,y-1
,寻找取最小值,其采用z
k,m
来表示,即第m个关键帧第k层级信息存储重要性参数最小;
[0082]
其次,根据z
k,m
、z
k,y
的大小,决定是否存储第y个关键帧的第k层级信息x
k,y

[0083]
当z
k,m
》z
k,y
[0084]
则z
k,y
赋予新的数值(例如:null或者+∞)(使得z
k,y
不再参与排序);
[0085]
x
k,y
赋予新的数值null或者0,即将第y个关键帧的第k层级信息不存储;
[0086]
当z
k,m
≤z
k,y
[0087]
则z
k,m
赋予新的数值,使得z
k,m
不再参与排序;
[0088]
x
k,m
赋予新的数值null或者0,即将第m个关键帧的第k层级信息删去,将第y个关键帧的第k层级信息x
k,y
存储,即将第m个关键帧的第k层级信息的存储空间让与第y个关键帧的第k层级信息存储空间(即第k层级信息的存储量始终保持在qk)。
[0089]
……
[0090]
当qj《y≤q
j-1
时,将第y个关键帧的第1~j-1层级信息全部存储进入当前关键帧集合中,上述步骤采用下式可表达为:
[0091][0092]
对于第y个关键帧的第j~k层级(需要说明的是:本技术中j表示[1,k]之间的任意自然数,而非k-1,即j,k在英文中的顺序在本技术中不代表两者之间的间距)信息而言,逐层进行计算,决定是否存储:
[0093]
对于第y个关键帧的第j层级信息而言:
[0094]
首先,从z
j,1
,z
j,2
……zj,i
……zj,y-1
,寻找取最小值,其采用z
j,m
来表示,即第m个关键帧第j层级信息存储重要性参数最小;
[0095]
其次,根据z
j,m
、z
j,y
的大小,决定是否存储第y个关键帧的第j层级信息x
j,y

[0096]
当z
j,m
》z
j,y
[0097]
则z
j,y
赋予新的数值(例如:null或者+∞),使得z
j,y
不再参与排序;
[0098]
x
j,y
赋予新的数值null或者0,即将第y个关键帧的第j层级信息不存储;
[0099]
当z
j,m
≤z
j,y
[0100]
则z
j,m
赋予新的数值,使得z
j,m
不再参与排序;
[0101]
x
j,m
赋予新的数值null或者0,即将第m个关键帧的第j层级信息删去,将第y个关键帧的第j层级信息x
j,y
存储,即将第m个关键帧的第j层级信息的存储空间让与第y个关键帧的第j层级信息存储空间(即第j层级信息的存储量始终保持在qj)。
[0102]
对于第y个关键帧的第j+1层级信息而言:
[0103]
首先,从z
j+1,1
,z
j+1,2
……zj+1,i
……zj+1,y-1
,寻找取最小值,其采用z
j+1,m
来表示,即第m个关键帧第j+1层级信息存储重要性参数最小;
[0104]
其次,根据z
j+1,m
、z
j+1,y
的大小,决定是否存储第y个关键帧的第j+1层级信息x
j+1,y

[0105]
当z
j+1,m
》z
j+1,y
[0106]
则z
j+1,y
赋予新的数值(例如:null或者+∞),使得z
j+1,y
不再参与排序;
[0107]
x
j+1,y
赋予新的数值null或者0,即将第y个关键帧的第j+1层级信息不存储;
[0108]
当z
j+1,m
≤z
j+1,y
[0109]
则z
j+1,m
赋予新的数值,使得z
j+1,m
不再参与排序;
[0110]
x
j+1,m
赋予新的数值null或者0,即将第m个关键帧的第j+1层级信息删去,将第y个关键帧的第j+1层级信息x
j+1,y
存储,即将第m个关键帧的第j+1层级信息的存储空间让与第y个关键帧的第j+1层级信息存储空间(即第j+1层级信息的存储量始终保持在q
j+1
)。
[0111]
………
[0112]
对于第y个关键帧的第k层信息:
[0113]
首先,从z
k,1
,z
k,2
……zk,i
……zk,y-1
,寻找取最小值,其采用z
k,m
来表示,即第m个关键帧第k层级信息存储重要性参数最小;
[0114]
其次,根据z
k,m
、z
k,y
的大小,决定是否存储第y个关键帧的第k层级信息x
k,y

[0115]
当z
k,m
》z
k,y
[0116]
则z
k,y
赋予新的数值(例如:null或者+∞)(使得z
k,y
不再参与排序);
[0117]
x
k,y
赋予新的数值null或者0,即将第y个关键帧的第k层级信息不存储;
[0118]
当z
k,m
≤z
k,y
[0119]
则z
k,m
赋予新的数值,使得z
k,m
不再参与排序;
[0120]
x
k,m
赋予新的数值null或者0,即将第m个关键帧的第k层级信息删去,将第y个关键帧的第k层级信息x
k,y
存储,即将第m个关键帧的第k层级信息的存储空间让与第y个关键帧的第k层级信息存储空间(即第k层级信息的存储量始终保持在qk)。
[0121]
……
[0122]
当q2《y≤q1时,
[0123]
将第y个关键帧的第1层级信息全部存储进入当前关键帧集合中,上述步骤采用下
式可表达为:
[0124]
|x
1,1
x
1,2
......x
1,i
......x
1,y-1
|—》|x
1,1
x
1,2
......x
1,i
......x
1,y-1
x
1,y
|
[0125]
对于第y个关键帧的第2~k层级信息而言,逐层进行计算,决定是否存储:
[0126]
对于第y个关键帧的第2层级信息而言:
[0127]
首先,从z
2,1
,z
2,2
……z2,i
……z2,y-1
,寻找取最小值,其采用z
2,m
来表示,即第m个关键帧第2层级信息存储重要性参数最小;
[0128]
其次,根据z
2,m
、z
2,y
的大小,决定是否存储第y个关键帧的第2层级信息x
2,y

[0129]
当z
2,m
》z
2,y
[0130]
则z
2,y
赋予新的数值(例如:null或者+∞),使得z
2,y
不再参与排序;
[0131]
x
2,y
赋予新的数值null或者0,即将第y个关键帧的第2层级信息不存储;
[0132]
当z
2,m
≤z
2,y
[0133]
则z
2,m
赋予新的数值,使得z
2,m
不再参与排序;
[0134]
x
2,m
赋予新的数值null或者0,即将第m个关键帧的第2层级信息删去,将第y个关键帧的第2层级信息x
2,y
存储,即将第m个关键帧的第2层级信息的存储空间让与第y个关键帧的第2层级信息存储空间(即第2层级信息的存储量始终保持在q2)。
[0135]
对于第y个关键帧的第3层级信息而言:
[0136]
首先,从z
3,1
,z
3,2
……z3,i
……z3,y-1
,寻找取最小值,其采用z
3,m
来表示,即第m个关键帧第3层级信息存储重要性参数最小;
[0137]
其次,根据z
3,m
、z
3,y
的大小,决定是否存储第y个关键帧的第3层级信息x
3,y

[0138]
当z
3,m
》z
3,y
[0139]
则z
3,y
赋予新的数值(例如:null或者+∞),使得z
3,y
不再参与排序;
[0140]
x
3,y
赋予新的数值null或者0,即将第y个关键帧的第3层级信息不存储;
[0141]
当z
3,m
≤z
3,y
[0142]
则z
3,m
赋予新的数值,使得z
3,m
不再参与排序;
[0143]
x
3,m
赋予新的数值null或者0,即将第m个关键帧的第3层级信息删去,将第y个关键帧的第3层级信息x
3,y
存储,即将第m个关键帧的第3层级信息的存储空间让与第y个关键帧的第3层级信息存储空间(即第3层级信息的存储量始终保持在q3)。
[0144]
………
[0145]
对于第y个关键帧的第k层信息:
[0146]
首先,从z
k,1
,z
k,2
……zk,i
……zk,y-1
,寻找取最小值,其采用z
k,m
来表示,即第m个关键帧第k层级信息存储重要性参数最小;
[0147]
其次,根据z
k,m
、z
k,y
的大小,决定是否存储第y个关键帧的第k层级信息x
k,y

[0148]
当z
k,m
》z
k,y
[0149]
则z
k,y
赋予新的数值(例如:null或者+∞)(使得z
k,y
不再参与排序);
[0150]
x
k,y
赋予新的数值null或者0,即将第y个关键帧的第k层级信息不存储;
[0151]
当z
k,m
≤z
k,y
[0152]
则z
k,m
赋予新的数值,使得z
k,m
不再参与排序;
[0153]
x
k,m
赋予新的数值null或者0,即将第m个关键帧的第k层级信息删去,将第y个关键帧的第k层级信息x
k,y
存储,即将第m个关键帧的第k层级信息的存储空间让与第y个关键帧
的第k层级信息存储空间(即第k层级信息的存储量始终保持在qk)。
[0154]
当q1《y时:
[0155]
对于第y个关键帧的第1~k层级信息而言,逐层进行计算,决定是否存储:
[0156]
对于第y个关键帧的第1层级信息而言:
[0157]
首先,从z
1,1
,z
1,2
……z1,i
……z1,y-1
,寻找取最小值,其采用z
1,m
来表示,即第m个关键帧第1层级信息存储重要性参数最小;
[0158]
其次,根据z
1,m
、z
1,y
的大小,决定是否存储第y个关键帧的第1层级信息x
1,y

[0159]
当z
1,m
》z
1,y
[0160]
则z
1,y
赋予新的数值(例如:null或者+∞),使得z
1,y
不再参与排序;
[0161]
x
1,y
赋予新的数值null或者0,即将第y个关键帧的第1层级信息不存储;
[0162]
当z
1,m
≤z
1,y
[0163]
则z
1,m
赋予新的数值,使得z
1,m
不再参与排序;
[0164]
x
1,m
赋予新的数值null或者0,即将第m个关键帧的第1层级信息删去,将第y个关键帧的第1层级信息x
1,y
存储,即将第m个关键帧的第1层级信息的存储空间让与第y个关键帧的第1层级信息存储空间(即第1层级信息的存储量始终保持在q1)。
[0165]
对于第y个关键帧的第2层级信息而言:
[0166]
首先,从z
2,1
,z
2,2
……z2,i
……z2,y-1
,寻找取最小值,其采用z
2,m
来表示,即第m个关键帧第2层级信息存储重要性参数最小;
[0167]
其次,根据z
2,m
、z
2,y
的大小,决定是否存储第y个关键帧的第2层级信息x
2,y

[0168]
当z
2,m
》z
2,y
[0169]
则z
2,y
赋予新的数值(例如:null或者+∞),使得z
2,y
不再参与排序;
[0170]
x
2,y
赋予新的数值null或者0,即将第y个关键帧的第2层级信息不存储;
[0171]
当z
2,m
≤z
2,y
[0172]
则z
2,m
赋予新的数值,使得z
2,m
不再参与排序;
[0173]
x
2,m
赋予新的数值null或者0,即将第m个关键帧的第2层级信息删去,将第y个关键帧的第2层级信息x
2,y
存储,即将第m个关键帧的第2层级信息的存储空间让与第y个关键帧的第2层级信息存储空间(即第2层级信息的存储量始终保持在q2)。
[0174]
对于第y个关键帧的第3层级信息而言:
[0175]
首先,从z
3,1
,z
3,2
……z3,i
……z3,y-1
,寻找取最小值,其采用z
3,m
来表示,即第m个关键帧第3层级信息存储重要性参数最小;
[0176]
其次,根据z
3,m
、z
3,y
的大小,决定是否存储第y个关键帧的第3层级信息x
3,y

[0177]
当z
3,m
》z
3,y
[0178]
则z
3,y
赋予新的数值(例如:null或者+∞),使得z
3,y
不再参与排序;
[0179]
x
3,y
赋予新的数值null或者0,即将第y个关键帧的第3层级信息不存储;
[0180]
当z
3,m
≤z
3,y
[0181]
则z
3,m
赋予新的数值,使得z
3,m
不再参与排序;
[0182]
x
3,m
赋予新的数值null或者0,即将第m个关键帧的第3层级信息删去,将第y个关键帧的第3层级信息x
3,y
存储,即将第m个关键帧的第3层级信息的存储空间让与第y个关键帧的第3层级信息存储空间(即第3层级信息的存储量始终保持在q3)。
[0183]
………
[0184]
对于第y个关键帧的第k层信息:
[0185]
首先,从z
k,1
,z
k,2
……zk,i
……zk,y-1
,寻找取最小值,其采用z
k,m
来表示,即第m个关键帧第k层级信息存储重要性参数最小;
[0186]
其次,根据z
k,m
、z
k,y
的大小,决定是否存储第y个关键帧的第k层级信息x
k,y

[0187]
当z
k,m
》z
k,y
[0188]
则z
k,y
赋予新的数值(例如:null或者+∞)(使得z
k,y
不再参与排序);
[0189]
x
k,y
赋予新的数值null或者0,即将第y个关键帧的第k层级信息不存储;
[0190]
当z
k,m
≤z
k,y
[0191]
则z
k,m
赋予新的数值,使得z
k,m
不再参与排序;
[0192]
x
k,m
赋予新的数值null或者0,即将第m个关键帧的第k层级信息删去,将第y个关键帧的第k层级信息x
k,y
存储,即将第m个关键帧的第k层级信息的存储空间让与第y个关键帧的第k层级信息存储空间(即第k层级信息的存储量始终保持在qk)。
[0193]
一种高效的长时大尺度slam系统,包括:信息层级序列建立模块、信息层级的存储量建立模块、当前关键帧信息提取模块、当前关键帧信息存储重要性系数计算模块、关键帧集合层级信息存储重要性系数计算与存储模块;关键帧集合层级信息计算与存储模块;
[0194]
所述信息层级序列建立模块、所述信息层级的存储量建立模块分别与当前关键帧信息提取模块连接;
[0195]
所述信息层级序列建立模块、所述信息层级的存储量建立模块分别与当前关键帧信息存储重要性系数计算模块连接;
[0196]“所述当前关键帧信息存储重要性系数计算模块”和“所述关键帧集合层级信息存储重要性系数计算与存储模块”连接;
[0197]
所述当前关键帧信息提取模块、所述关键帧集合层级信息存储重要性系数计算与存储模块分别与所述关键帧集合层级信息计算与存储模块连接;
[0198]
所述信息层级序列建立模块用于建立关键帧集合的信息层级序列,以及用于指导当前关键帧信息提取模块提取当前关键帧图像的信息,是步骤s100运行的载体;
[0199]
所述信息层级的存储量建立模块用于建立关键帧集合不同层级信息存储空间,是步骤s200运行的载体;
[0200]
所述当前关键帧信息提取模块用于从当前关键帧图像中提取不同层级的信息,是步骤s300运行的载体;
[0201]
所述当前关键帧信息存储重要性系数计算模块用于计算当前关键帧的不同层级信息的存储重要性系数;
[0202]
所述关键帧集合层级信息存储重要性系数计算与存储模块用于存储当前关键帧集合的不同层级信息的存储重要性系数;
[0203]
所述关键帧集合层级信息计算与存储模块用于决定当前关键帧信息提取模块传递来的当前关键帧图像中提取不同层级的信息的存储方式(即决定其是否存储)。
[0204]
需要说明的是:信息层级序列建立模块、信息层级的存储量建立模块,这两个模块并非必要技术特征,也即,s100与s200并非一定需要通过这两个模块来设定,设计人员可以直接在软件系统中设定相关参数。
[0205]
实施例一:如图1所示,一种高效的长时大尺度slam方法,对关键帧集合的信息进行分层处理;包括以下步骤:
[0206]
s100,建立关键帧集合的信息层级序列:
[0207]
第1层级信息:场景的特征词集合(即bow模型);
[0208]
第2层级信息:空间实体的空间关系表达;
[0209]
第3层级信息:点/线/面特征;
[0210]
第4层级信息:稠密点云特征。
[0211]
s200,根据步骤s100建立的信息层级序列建立关键帧集合的信息的存储优先级:层级高的信息级别的存储量大于层级低的信息级别的存储量,且层级高的信息级别的存储时间大于层级低的信息级别的存储时间。
[0212]
具体而言,s200要确定关键帧的第1~4信息层级的存储量:
[0213]
第1层级信息的存储量为q1=50000,第2层级信息的存储量为q2=40000,第3层级信息的存储量为q3=10000,第4层级信息的存储量为q4=700:
[0214]
s300,当前关键帧为第y个关键帧,如图1所示:从第y个关键帧提取第1~4层的信息:x
1,y
、x
2,y
、x
3,y
、x
k,y

[0215]
同时计算第y个关键帧提取第1~k层的信息的存储重要性系数:z
1,y
、z
2,y
、z
3,y
、z
k,y
;存储重要性系数的计算原则,系统设计人员可以根据实际需求以及环境来具体确定以及调整。例如:我司在室内模拟环境中给予机器的设计为:十字路口的存储重要性系数定位1.0,丁字路口的存储重要性系数定位0.8,路中间的存储重要性系数定位0.5。
[0216]
x
1,y
、x
2,y
、x
3,y
、x
4,y
分别表示:第y个关键帧的第1层级信息,第y个关键帧的第2层级信息、第y个关键帧的第3层级信息、第y个关键帧的第4层级信息;
[0217]z1,y
、z
2,y
、z
3,y
、z
4,y
分别表示:第y个关键帧的第1层级信息的存储重要性系数、第y个关键帧的第2层级信息的存储重要性系数、第y个关键帧的第3层级信息的存储重要性系数、第y个关键帧的第4层级信息的存储重要性系数;
[0218]
s400,将当前第y个关键帧提取的第1~4层的信息的存储重要性系数:z
1,y
、z
2,y
、z
3,y
、z
4,y
加入到当前的关键帧层级信息的存储重要性系数矩阵中:
[0219]
将第y个关键帧的提取的第1~4层级信息的存储重要性参数全部存储进入当前的关键帧层级信息的存储重要性系数矩阵;
[0220]
上述步骤采用下式可表达为:
[0221][0222]
s500,将当前第y个关键帧提取的第1~4层的信息:x
1,y
、x
2,y
、x
3,y
、x
4,y,
加入当前的关键帧层级信息矩阵中:
[0223]
将当前第y个关键帧提取的第1~4层的信息:x
1,y
、x
2,y
、x
3,y
、x
4,y,
加入到当前的关键帧层级信息矩阵中:
[0224]
当0《y≤q4时,将第y个关键帧的提取的第1~4层级信息全部存储进入当前关键帧集合中;
[0225]
上述步骤采用下式可表达为:
[0226][0227]
当qj《y≤q
j-1
时,将第y个关键帧的第1~j-1层级信息全部存储进入当前关键帧集合中,上述步骤采用下式可表达为:
[0228][0229]
对于第y个关键帧的第j~4层级信息而言,逐层进行计算,决定是否存储:
[0230]
对于第j~4层中的任意第β层而言,
[0231]
首先,从z
β,1
,z
β,2
……zβ,i
……zβ,y-1
,寻找取最小值,其采用z
β,m
来表示,即第m个关键帧第β层级信息存储重要性参数最小;
[0232]
其次,根据z
β,m
、z
β,y
的大小,决定是否存储第y个关键帧的第β层级信息x
β,y

[0233]
当z
β,m
》z
β,y
[0234]
则z
β,y
赋予新的数值(例如:null或者+∞),使得z
β,y
不再参与排序;
[0235]
x
β,y
赋予新的数值null或者0,即将第y个关键帧的第β层级信息不存储;
[0236]
当z
β,m
≤z
β,y
[0237]
则z
β,m
赋予新的数值,使得z
β,m
不再参与排序;
[0238]
x
β,m
赋予新的数值null或者0,即将第m个关键帧的第β层级信息删去,将第y个关键帧的第β层级信息x
β,y
存储,即将第m个关键帧的第β层级信息的存储空间让与第y个关键帧的第β层级信息存储空间(即第β层级信息的存储量始终保持在q
β
)。
[0239]
当q1《y时:
[0240]
对于第y个关键帧的第1~4层级信息而言,逐层进行计算,决定是否存储:
[0241]
对于第1~4层中的任意第β层而言,
[0242]
首先,从z
β,1
,z
β,2
……zβ,i
……zβ,y-1
,寻找取最小值,其采用z
β,m
来表示,即第m个关键帧第β层级信息存储重要性参数最小;
[0243]
其次,根据z
β,m
、z
β,y
的大小,决定是否存储第y个关键帧的第β层级信息x
β,y

[0244]
当z
β,m
》z
β,y
[0245]
则z
β,y
赋予新的数值(例如:null或者+∞),使得z
β,y
不再参与排序;
[0246]
x
β,y
赋予新的数值null或者0,即将第y个关键帧的第β层级信息不存储;
[0247]
当z
β,m
≤z
β,y
[0248]
则z
β,m
赋予新的数值,使得z
β,m
不再参与排序;
[0249]
x
β,m
赋予新的数值null或者0,即将第m个关键帧的第β层级信息删去,将第y个关键帧的第β层级信息x
β,y
存储,即将第m个关键帧的第β层级信息的存储空间让与第y个关键帧的第β层级信息存储空间(即第β层级信息的存储量始终保持在q
β
)。
[0250]
需要说明的是,从实施例一可知知晓:对于任意一个第i个关键帧第j层信息x
j,i

言,其值并不限于一定是一个数值,也即,其可以是一个字符集合,例如实施例一的:x
1,i
是bow模型数据,也可以是一个数据集,例如:实施例一的:x
4,i
是稠密点云数据集。
[0251]
以上所举实施例为本发明的较佳实施方式,仅用来方便说明本发明,并非对本发明作任何形式上的限制,任何所属技术领域中具有通常知识者,若在不脱离本发明所提技术特征的范围内,利用本发明所揭示技术内容所作出局部更动或修饰的等效实施例,并且未脱离本发明的技术特征内容,均仍属于本发明技术特征的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1