一种地图构建方法、装置及电子设备与流程

文档序号:26906693发布日期:2021-10-09 14:05阅读:121来源:国知局
一种地图构建方法、装置及电子设备与流程

1.本发明涉及车辆定位领域,更具体的说,涉及一种地图构建方法、装置及电子设备。


背景技术:

2.车辆同时定位与地图构建(simultaneous localization and mapping,slam)是实现车辆自助驾驶的一项关键技术。该技术使车辆在未知环境移动过程中借助所携带的传感器实现对车辆的定位,同时完成车辆周围环境的地图构建。
3.在传感器采集到图像后,提取图像的点特征并基于点特征进行车辆周围环境的局部地图构建。在纹理比较稀疏的环境,如室内停车场,图像的点特征数量较少,使得车辆周围环境的局部地图构建的准确度较低。


技术实现要素:

4.有鉴于此,本发明提供一种地图构建方法、装置及电子设备,以解决在纹理比较稀疏的环境中,采集的图像的点特征的数量较少,使得车辆周围环境的局部地图构建的准确度较低的问题。
5.为解决上述技术问题,本发明采用了如下技术方案:
6.一种地图构建方法,包括:
7.获取关键帧集合;所述关键帧集合包括按照时间顺序排列的多个关键帧;所述关键帧为基于预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到;
8.将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,并确定与所述目标关键帧对应的共视关键帧;
9.对所述目标关键帧以及所述共视关键帧进行线特征匹配操作,得到匹配线特征组合;所述匹配线特征组合包括所述目标关键帧中的第一线特征以及所述共视关键帧中的第二线特征;
10.根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图。
11.可选地,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
12.在所述第一地图线特征的内容为空、且所述第二地图线特征为空的情况下,在目标局部地图中创建一个新的地图线特征,并建立所述第一线特征、所述第二线特征分别与所述新的地图线特征的对应关系;
13.设置所述新的地图线特征的特征标识为预设错误标识,并计算所述新的地图线特征的特征描述子,得到初始局部地图;
14.在所述第一地图线特征的内容与所述第二地图线特征的内容相同的情况下,若所述第一地图线特征对应的特征标识为预设错误标识,获取所述第一地图线特征对应的可观
测帧;
15.对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
16.在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
17.基于所述三维位置,生成初始局部地图。
18.可选地,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
19.在所述第一地图线特征的内容与所述第二地图线特征的内容不相同的情况下,若所述第二地图线特征对应的特征标识为预设错误标识、且所述第一地图线特征对应的特征标识为预设正确标识,将所述第二地图线特征投影到所述目标关键帧中,得到投影结果;
20.将所述投影结果与所述第一线特征进行比对,得到比对结果,并在所述比对结果小于预设阈值的情况下,删除所述第一地图线特征,得到初始局部地图;
21.在所述第一地图线特征的内容不为空,所述第二地图线特征的内容为空的情况下,将所述第二地图线特征设置为所述第一地图线特征;
22.在所述第一地图线特征对应的特征标识为预设错误标识的情况下,获取所述第一地图线特征对应的可观测帧;
23.对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
24.在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
25.基于所述三维位置,生成初始局部地图。
26.可选地,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
27.在所述第一地图线特征的内容为空,所述第二地图线特征的内容不为空的情况下,将所述第一地图线特征设置为所述第二地图线特征;
28.在所述第二地图线特征对应的特征标识为预设错误标识的情况下,获取所述第二地图线特征对应的可观测帧;
29.对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
30.在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第二地图线特征进行三角化处理,得到所述第二地图线特征的三维位置;
31.基于所述三维位置,生成初始局部地图。
32.可选地,所述关键帧的生成过程:
33.获取当前时刻采集的图像,并对所述图像进行点特征提取操作,得到点特征,并计算每一所述点特征的特征描述子;
34.对所述图像进行线特征提取操作,得到线特征,并计算每一所述线特征的特征描述子;
35.对所述线特征进行关联操作,得到关联线特征,并对关联线特征设置关联标识;
36.对所述当前时刻采集的图像与上一时刻采集的图像进行点特征匹配操作,得到点
特征匹配结果,以及进行线特征匹配操作,得到线特征匹配结果;
37.基于所述点特征匹配结果以及所述线特征匹配结果,确定所述当前时刻采集的图像是否满足预设关键帧筛选规则,并在满足所述预设关键帧筛选规则的情况下,将所述当前时刻采集的图像确定为关键帧。
38.可选地,对所述线特征进行关联操作,得到关联线特征,并对关联线特征设置关联标识,包括:
39.基于所述线特征在所述当前时刻采集的图像的位置,以及所述当前时刻采集的图像中的各个分界线在所述当前时刻采集的图像的位置,确定出与任一所述分界线的位置的距离在预设距离范围内的线特征,并确定为目标线特征;
40.依据预设端点位置确定规则,确定所述目标线特征的端点位置;
41.基于所述目标线特征的端点位置、所述目标线特征与所述当前时刻采集的图像对应的立方体贴图的立方体体心的相对位置关系,确定出对应同一实体边界的多个目标线特征,并分别作为关联线特征,并为所述关联线特征设置关联标识。
42.可选地,基于所述点特征匹配结果以及所述线特征匹配结果,确定所述当前时刻采集的图像是否满足预设关键帧筛选规则,并在满足所述预设关键帧筛选规则的情况下,将所述当前时刻采集的图像确定为关键帧,包括:
43.获取所述点特征匹配结果中匹配的点特征对的第一数量;
44.获取所述线特征匹配结果中匹配的线特征对的第二数量;
45.在所述第一数量和所述第二数量中的任一个满足预设数量规则的情况下,将所述当前时刻采集的图像确定为关键帧。
46.一种地图构建装置,包括:
47.关键帧获取模块,用于获取关键帧集合;所述关键帧集合包括按照时间顺序排列的多个关键帧;所述关键帧为基于预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到;
48.关键帧确定模块,用于将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,并确定与所述目标关键帧对应的共视关键帧;
49.匹配模块,用于对所述目标关键帧以及所述共视关键帧进行线特征匹配操作,得到匹配线特征组合;所述匹配线特征组合包括所述目标关键帧中的第一线特征以及所述共视关键帧中的第二线特征;
50.地图生成模块,用于根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图。
51.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的地图构建方法。
52.一种电子设备,包括:存储器和处理器;
53.其中,所述存储器用于存储程序;
54.处理器调用程序并用于:
55.获取关键帧集合;所述关键帧集合包括按照时间顺序排列的多个关键帧;所述关键帧为基于预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到;
56.将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,并确定与所述目标关键帧对应的共视关键帧;
57.对所述目标关键帧以及所述共视关键帧进行线特征匹配操作,得到匹配线特征组合;所述匹配线特征组合包括所述目标关键帧中的第一线特征以及所述共视关键帧中的第二线特征;
58.根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图。
59.相较于现有技术,本发明具有以下有益效果:
60.本发明提供了一种地图构建方法、装置及电子设备,本实施例中的关键帧集合中的关键帧是预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到,并且,在得到关键帧集合后,使用了包括目标关键帧中的第一线特征以及共视关键帧中的第二线特征的匹配特征组合,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图。即本发明在生成初始局部地图时,不仅使用了点特征,还引入了线特征,由于线特征具有准确表达环境信息的特性,所以本发明使用线特征进行局部地图的构建时,能够更准确地构建局部地图,提高局部地图生成的准确性。
附图说明
61.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
62.图1为本发明实施例提供的一种地图构建方法的方法流程图;
63.图2为本发明实施例提供的另一种地图构建方法的方法流程图;
64.图3为本发明实施例提供的一种校正场景示意图;
65.图4为本发明实施例提供的一种图像拆分场景示意图;
66.图5为本发明实施例提供的一种边缘标记场景示意图;
67.图6为本发明实施例提供的一种立方体体心定义的场景示意图;
68.图7为本发明实施例提供的一种地图点、线特征结果的场景示意图;
69.图8为本发明实施例提供的一种地图构建装置的结构示意图。
具体实施方式
70.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
71.车辆同时定位与地图构建(simultaneous localization and mapping,slam)是实现车辆自助驾驶的一项关键技术。该技术使车辆在未知环境移动过程中借助所携带的传感器实现对车辆的定位,同时完成车辆周围环境的地图构建。
72.视觉传感器具有体积小、成本低、易于安装、且包含丰富的环境信息。因而被广泛
应用于slam中。
73.当前的单目相机同步建图与定位的技术方案中,主要以基于点特征的方法进行追踪定位。该方法主要提取图像中的点作为特征进行定位于建图,点特征比较容易提取,且所构建的地图为点云地图。但在纹理比较稀疏的环境,如室内停车场环境等,会出现墙壁纹理少,点特征不足或不稳定的情况。并且该方法构造的地图往往不够稠密,也难以准确描绘周围环境的结构信息。
74.为了解决这一技术问题,发明人经过研究发现,相比于点特征,线特征更能准确表达环境信息,特别是在人造场景,如街道、室内停车场等,具有明显优势。另外特征受环境影响较点特征更小,因此在特定环境下,能够很好地辅助slam系统,提高系统的鲁棒性和精度。所以,本发明实施例中可以将点特征和线特征结合来实现slam技术。
75.另外,发明人发现,常见的单目相机,使用的是针孔模型,会将鱼眼相机经过畸变矫正,投影到针孔模型的相机平面上,没有充分利用鱼眼相机的视角大小。而车辆运动时,速度相对较快,距离相机较近的线特征很快就会被图像边缘截断或者消失在图像中,无法充分利用利用线特征的优势。所以,发明人进一步提出充分利用鱼眼相机的方案。
76.具体的,在上述内容的基础上,本发明实施例提供了一种地图构建方法,应用于处理器,处理器可以是车辆上的电子控制单元ecu。参照图1,地图构建方法可以包括:
77.s11、获取关键帧集合。
78.在实际应用中,所述关键帧集合包括关键帧序列,关键帧序列包括按照时间顺序排列的多个关键帧;所述关键帧为基于预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到。
79.s12、将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,并确定与所述目标关键帧对应的共视关键帧。
80.具体的,在实际应用中,随着处理时间的不断增加,关键帧集合中会存储有越来越多的关键帧,这些关键帧按照确定的时间先后进行排序,本实施例中,对于关键帧也是顺序处理,所以本实施例中,将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,在确定了目标关键帧之后,按照设定的共视关键帧确定方式,确定该目标关键帧对应的共视关键帧。
81.更具体的,从关键帧集合中获得时间戳最早的一帧,更新所述最早关键帧与局部地图中匹配到的三维点与线的orb描述子,并更新与已有帧的共视关系,此处更新分别为共视图(covisibilitygraph)与最小生成树(spanning tree)关系,用于全局优化。
82.计算与目标关键帧有共视关系的其余共视关键帧,按照共视关系程度大小降序排列,本例中,共视关系程度是指共同观测到的地图点特征数量。
83.s13、对所述目标关键帧以及所述共视关键帧进行线特征匹配操作,得到匹配线特征组合。
84.所述匹配线特征组合包括所述目标关键帧中的第一线特征以及所述共视关键帧中的第二线特征。
85.在实际应用中,按照共视关系从高到低排序,按照所述排列顺序与所述目标关键帧逐帧对有共视关系的帧之间的点特征与线特征进行匹配,本例中所述匹配方式使用了dbow2词典加速匹配。
86.s14、根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图。
87.具体的,对所述目标关键帧中每一个线特征进行编号,对于所述目标关键帧中的每一线特征,在对所述共视帧队列进行逐帧匹配时,当所述每一线特征在共视帧中获得对应匹配时,进行极平面检测、三角化检测、三角化方程组条件数检测,视检测结果进行改变标识、三角化、擦除等处理,本例中三角化检测线重叠度阈值设置在0.85,极平面检测阈值为5度,三角化方程组条件数为15。
88.在得到初始局部地图之后,对于局部地图进行非线性优化,所述局部地图的优化项包括滑动窗口中的关键帧位姿、地图点特征三维坐标、地图线特征端点三维坐标等信息。
89.在实际应用中,利用非线性优化工具包g2o对于局部地图进行非线性优化,所使用位姿顶点为g2o库中的李代数顶点vertexse3expmap,线特征与点特征均以二元边定义误差,二元边继承库中的虚拟类baseunaryedge,针对立方体贴图(cubemap)进行了投影调整,所述局部地图的优化项包扩所述滑动窗口中的关键帧位姿、地图点特征三维坐标、地图线特征端点三维坐标等信息,本例中滑动窗口长度保持在20个关键帧。
90.利用非线性优化工具g2o进行图优化的过程为:将要优化的关键帧序列进行检索,将每一所述关键帧的位姿进行优化,非线性优化中的顶点为李代数表示的6自由度顶点,表述为六维向量,即将旋转位移矩阵其中,t
cw
表示4*4旋转位移矩阵,r
cw
、t
cw
分别代表旋转矩阵与位移向量,通过罗德里格斯公式:
91.r=i

n
·
sinθ+n
·
n
t
(1

cosθ)
92.其中,r为3*3旋转矩阵,i为单位矩阵,n为旋转单位向量,θ为旋转角度。
93.通过上述的罗德里格斯公式转化为对应的李代数,所述李代数表述为[p
t

t
],其中φ为李代数旋转向量,p为李代数上的位移向量。
[0094]
将所述关键帧序列可观测到的所有地图点特征与地图线特征建立为其他顶点,所述地图点特征顶点为三维坐标表示的空间点,所述地图线特征对应的顶点为所述地图线特征两端点所对应的空间三维坐标,即所述每一地图线特征对应两个图优化顶点。
[0095]
每一关键帧对应的顶点与所述关键帧可观测的地图点特征与地图线特征对应的顶点组成二元边,对于所述关键帧位姿与地图点特征组成的二元边,具体为所述地图点特征投影到所述关键帧相平面与对应像素点的二维距离误差,对于某地图点p
w
、对应在所述关键帧中的像素点p
uv
、所述关键帧的旋转位移矩阵t
cw
、对应能量方程为:
[0096]
e
p
=‖p
uv

k
·
t
cw
·
p
w

[0097]
e
p
表示点能量方程对应值,k表示相机投影矩阵。
[0098]
所述关键帧位姿与地图线特征组成的二元边,为所述地图线特征的端点投影到所述关键帧相平面到对应线特征的垂直距离,即该二元边所对应的能量方程为:
[0099]
e
l
=‖f
kl
·
k
·
t
cw
·
l
ed
‖2[0100]
其中,f
kl
表示能量函数权重,k表示相机投影矩阵,l
ed
表示线的端点,e
l
表示线能量方程对应值。
[0101]
将上述二元边集合进行优化,所用非线性算法为拉文伯格(levenberg

marquardt)算法,求解:
[0102]
(h+λi)δx
k
=g
[0103]
其中,h为海森(hessian)矩阵,λ为拉格朗日乘子,δx
k
为优化方向,i为单位矩阵,g为增量方程。
[0104]
算法中的海森矩阵采用提前设置的雅可比矩阵j进行近似表示,即h=j
·
j
t
,之后进行迭代求解,所述雅可比矩阵是利用线特征的普吕克表述[n
t
,d
t
]求导得到,其中,d
t
是直线的方向向量,n
t
是直线与光心所成平面的法向量,利用ransac方式进行错误边筛选,并使用huber核函数对误差较大的边进行控制。
[0105]
在进行非线性优化之后,对所述关键帧进行检测,判断所述关键帧是否形成回环,对全局的点线特征、轨迹进行整体优化,具体子步骤如下:
[0106]
1、利用dbow2词典对所述关键帧中的点特征描述子进行对比,通过共享单词数目来选取闭环的参考帧。
[0107]
2、对所述闭环的参考帧与所述关键帧进行点特征匹配,若所述点特征匹配数量超过设定阈值,则认为回环正确,进入步骤3。
[0108]
3、将所述关键帧与所述闭环的参考帧通过匹配的特征点进行相对位姿计算,修正目标关键帧的绝对位姿,并通过位姿图优化方式消除漂移与累计误差,进行轨迹修正。最后输出轨迹与地图点特征、地图线特征结果,具体参照图7。
[0109]
上述实施例提及了获取关键帧集合,现对具体获取过程进行介绍,具体的,参照图2,可以包括:
[0110]
s21、获取当前时刻采集的图像,并对所述图像进行点特征提取操作,得到点特征,并计算每一所述点特征的特征描述子。
[0111]
在车辆移动过程中,获取车辆的单目相机,具体是鱼眼相机采集的图像。需要说明的是,本实施例也可以使用其他类型的相机,本发明不做要求。
[0112]
在采集得到图像之后,会对图像进行矫正,得到立方体投影贴图。具体的矫正过程如下:
[0113]
参照图3,对鱼眼图像进行如图3所示的矫正方法,获得立方体投影贴图。本实施例获得的立方体投影贴图的大小为1536
×
1536,对应每个面的大小为512
×
512。
[0114]
在矫正完后,在所述的立方体贴图中,提取点特征与线特征。具体子步骤如下:
[0115]
将立方体投影贴图分为编号为如图4所示的0,1,2,3,4五张面图像,分别在5张面图像上提取点特征与线特征。对每个面建立图像金字塔,具体层数与缩放比例可以结合所需要的运行速度以及实验效果进行调节,本实施例中将金字塔分成8层,层间的缩放比例为1.2。
[0116]
针对点特征,图像金字塔每层利用orb(oriented fast and rotated brief)特征提取算法提取点特征,并计算每个点特征的特征描述子。orb算法改进了fast(features from accelerated segment test)检测子方向性的问题,并采用速度极快的brief(binary robust independent elementary features)描述子,使图像点特征提取速度大大提升。
[0117]
s22、对所述图像进行线特征提取操作,得到线特征,并计算每一所述线特征的特征描述子。
[0118]
针对线特征,在图像金字塔每层利用lsd(line segment detector,直线段检测)
或者edl ine(edgedraw lines.边缘绘制直线检测)算法提取线特征,并计算每条线特征的特征描述子。其中,edl ine提取速度相对更快。
[0119]
s23、对所述线特征进行关联操作,得到关联线特征,并对关联线特征设置关联标识。
[0120]
在实际应用中,由于实际空间中的实体边界,如线段投影到立方体贴图中时,可能跨越多个面图像,所以需要找出不同面上属于同一条线段的投影。因此,需要对不同面图像上提取的线特征进行关联。
[0121]
本发明的另一实现方式中,步骤s23可以包括:
[0122]
1)基于所述线特征在所述当前时刻采集的图像的位置,以及所述当前时刻采集的图像中的各个分界线在所述当前时刻采集的图像的位置,确定出与任一所述分界线的位置的距离在预设距离范围内的线特征,并确定为目标线特征。
[0123]
2)依据预设端点位置确定规则,确定所述目标线特征的端点位置。
[0124]
具体的,将每个面图像的4个边缘(即上述的分界线)分别标记为如图5所示的0,1,2,3。在每个面图像上寻找线段端点接近各边缘的线特征,并保存该端点的一个位置。对于接近0,1边缘的线段,所述位置为该端点的x坐标,对于接近2,3边缘的线段,所述位置为该端点的y坐标。其中,接近是指距离在预设距离范围内。
[0125]
3)基于所述目标线特征的端点位置、所述目标线特征与所述当前时刻采集的图像对应的立方体贴图的立方体体心(图6)的相对位置关系,确定出对应同一实体边界的多个目标线特征,并分别作为关联线特征,并为所述关联线特征设置关联标识。
[0126]
具体的,将接近同一边缘的线段进行比较,包括面0的边0与面3的边1,面0的边1与面4的边0,面0的边2与面1的边3,面0的边3与面2的边2,面1的边0与面3的边2,面1的边1与面4的边2,面2的边0与面3的边3,面2的边1与面4的边3。
[0127]
进行比较的线段,若同时满足:
[0128]
1)端点位置之差小于一定阈值;在本实施例中,该阈值为4像素。
[0129]
2)所述立方体投影贴图的立方体体心分别与所述进行比较的线段组成两个平面,所述两个平面之间的夹角小于一定的阈值。本实施例中,该阈值为3
°

[0130]
则可以认为是空间中同一条线段的投影。将认为是同一条空间线段的投影在数据上进行关联,两个线特征进行关联后,称为关联线特征,并会为关联线特征设置关联标识。本实施例中,为关联线特征中的每个线特征设计添加了一个变量associate_lines。该变量为长度为5的数组,分别对应5个面上的线特征编号。若某一面不存在相关的线特征,则记为

1。例如面0上编号为a的线特征与面2上编号为b的线特征相关联,a线特征以及b线特征的变量associate_lines均记为[a,

1,b,

1,

1]。
[0131]
以面0上的点和面1上的线特征为例,在如图5所示的空间坐标系中,假设立方体体心o'空间坐标为(0,0,0),立方体的边长为2d,面0上的线特征l0两个端点e1、e2的坐标分别为(x1,y1)、(x2,y2),在面1上线特征l1两个端点e3、e4的坐标分别为(x3,y3)、(x4,y4)。则
[0132]
e1、e2、e3、e4在所述空间坐标系对应的三维坐标e1′
、e
′2、e3′
、e
′4分别为:
[0133]
e
′1=(x1‑
d,y1‑
d,d)
[0134]
e
′2=(x2‑
d,y2‑
d,d)
[0135]
e
′3=(

d,y3‑
d,x3‑
d)
[0136]
e
′4=(

d,y4‑
d,x4‑
d)
[0137]
其中,d是立方体边长的1/2。
[0138]
则l0与光心构成平面的法向量可以表示为:
[0139]
n0=(e
′1‑
o

)
×
(e
′2‑
o

)
[0140]
则l1与光心构成平面的法向量可以表示为:
[0141]
n1=(e
′3‑
o

)
×
(e
′4‑
o

)
[0142]
设平面的夹角为α,可以通过法向量进行计算:
[0143]
|n1||n2|cosα=n1·
n2[0144][0145]
其中,n0、n1、n2分别表示面0、面1和面2的法向量,α表示面0与面1法向量之间夹角。
[0146]
s24、对所述当前时刻采集的图像与上一时刻采集的图像进行点特征匹配操作,得到点特征匹配结果,以及进行线特征匹配操作,得到线特征匹配结果。
[0147]
具体的,先判断处理器是否进行了初始化,如果未进行初始化,则先进行初始化,若进行了初始化,则对所述当前时刻采集的图像与上一时刻采集的图像进行点特征匹配操作,得到点特征匹配结果,以及进行线特征匹配操作,得到线特征匹配结果。
[0148]
在实际应用中,初始化的过程如下:
[0149]
如果当前帧为第一帧,则将当前帧存储为初始帧,并等待下一帧进入。如果当前帧为第二帧,则遍历前一帧图像获得的点特征,根据位置在当前帧上一所述位置为中心,筛选大小适当的区域,在区域内选取点特征作为候选点;分别计算所述候选点与所述前一帧点特征的描述子距离,因为本实施例中点特征描述子采用的为二进制表示的brief,所以采用汉明距离进行计算。若距离小于要求阈值,本实施例的阈值设置为30,则匹配成功。将匹配成功的点特征按照描述子距离由低到高进行排序。如果匹配成功的点特征对数大于阈值(本实施例设置的匹配对数阈值为500),则按照所述排序,选取要求数目的特征点对。如果匹配成功的特征点对数小于阈值,将筛选的区域放大一倍,重新进行匹配。如果依然小于阈值,则初始化失败,等待下一帧重新开始初始化。
[0150]
若上述完成匹配的点特征对数不小于阈值,则利用所述点特征对进行初始化,获得第一帧与第二帧的位姿,并根据点特征对建立地图点。
[0151]
在进行了初始化之后,根据上述获取的点特征、线特征以及关联线特征(其中,一个关联线特征,仅使用其中的一个线特征进行后续匹配,具体选择哪一线特征,可随意选取),进行点特征点与线特征的匹配。并进行关键帧筛选。其具体步骤如下:
[0152]
1)首先设置当前帧的初始位姿,可以通过匀速运动假设,也可以利用imu(惯性测量单元)等其他传感器获得。
[0153]
2)对于获取的点特征,利用描述子距离与前一帧中的点特征进行跟踪,获取相匹配的点特征对。
[0154]
具体的,对于上一帧中点特征对应的地图点,根据设置当前帧的初始位姿,将地图点的坐标投影到当前帧的图像上。在当前帧上筛选出大小适当的区域,在区域内选取点特征作为候选点;分别计算所述候选点与所述前一帧点特征的描述子距离,若距离小于要求阈值,则匹配成功。将匹配成功的点特征按照描述子距离由低到高进行排序。如果匹配成功
的点特征对数大于要求,则按照所述排序,选取要求数量的点特征对。如果匹配成功的点特征对数目小于要求数目,则将筛选区域进行放大(具体放大可以是上述的放大一倍),并重新进行匹配。
[0155]
3)对于获取的线特征,利用描述子距离与前一帧中的线特征进行跟踪,获取相匹配的线特征对。
[0156]
具体的,对于上一帧中线特征对应的地图线特征,利用相机位姿,将地图线特征两个端点的三维坐标投影到当前帧的图像上。
[0157]
遍历当前帧图像获得的线特征,在各个面图像上选择对应的角度范围(技术人员依据实际场景设定)内,将位于该角度范围内的线特征作为候选线特征。
[0158]
在所述候选线特征中,计算每条候选线特征的两个端点到所述线段投影的距离之和。将距离之和小于阈值的线特征作为新候选线特征。分别计算所述新候选线特征与所述地图线特征的描述子距离,并按照所述描述子距离,由小到大进行排序,若最小的描述子距离小于阈值,则所述最小描述距离对应的当前帧线特征与所述地图线特征匹配成功。
[0159]
4)结合前一帧的位姿,与匹配好的点特征对、线特征对,对当前帧位姿进行优化。
[0160]
s25、基于所述点特征匹配结果以及所述线特征匹配结果,确定所述当前时刻采集的图像是否满足预设关键帧筛选规则,并在满足所述预设关键帧筛选规则的情况下,将所述当前时刻采集的图像确定为关键帧。
[0161]
具体的,根据上述的点特征对与线特征对,判断是否将当前帧判断为关键帧。如果判断为关键帧,则对于该关键帧执行后续的步骤s12;如果不选取为关键帧,则等待下一帧的输入。
[0162]
在实际应用中,步骤s25可以包括:
[0163]
1)获取所述点特征匹配结果中匹配的点特征对的第一数量;
[0164]
2)获取所述线特征匹配结果中匹配的线特征对的第二数量;
[0165]
3)在所述第一数量和所述第二数量中的任一个满足预设数量规则的情况下,将所述当前时刻采集的图像确定为关键帧。
[0166]
具体的,根据所述的点特征对与线特征对,判断是否将当前帧判断为关键帧。
[0167]
本实施例中的判断依据为:
[0168]
匹配上的点特征对数目小于上一个关键帧对应的地图点特征数的80%,则创建关键帧。
[0169]
或,匹配上的线特征对数目小于上一个关键帧对应的地图线特征数的80%,则创建关键帧。
[0170]
如果判断为关键帧,则对于该关键帧执行后续的步骤s12;如果不选取为关键帧,则等待下一帧的输入。
[0171]
本实施例中,给出了确定关键帧的具体过程,进而就能够根据确定的关键帧进行局部地图的构建。
[0172]
上述实施例中,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图,并基于局部地图得到地图点、线特征结果,具体参照图7。
[0173]
本发明的另一实施例中,给出了“根据所述第一线特征对应的第一地图线特征、所
述第二线特征对应的第二地图线特征,生成初始局部地图”的具体实现过程,具体的,对所述目标关键帧中每一个线特征进行编号,对于所述目标关键帧中的每一线特征,在对所述共视帧队列进行逐帧匹配时,当所述每一线特征在共视帧中进行对应匹配时,视以下所述几种情况进行处理:
[0174]
1)根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0175]
1.1)在所述第一地图线特征的内容为空、且所述第二地图线特征为空的情况下,在目标局部地图中创建一个新的地图线特征,并建立所述第一线特征、所述第二线特征分别与所述新的地图线特征的对应关系;
[0176]
1.2)设置所述新的地图线特征的特征标识为预设错误标识,并计算所述新的地图线特征的特征描述子,得到初始局部地图。
[0177]
具体的,若所述关键帧与所述共视帧中的对应匹配线特征均无对应的地图线特征,则建立一个新的地图线特征(mapline),并将所述对应匹配线特征指向所述新地图线特征,对所述新的地图线特征标记标识flag标记为false(预设错误标识),并且计算所述新的地图线特征的描述子,插入局部地图中,得到初始局部地图。
[0178]
2)根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0179]
2.1)在所述第一地图线特征的内容与所述第二地图线特征的内容相同的情况下,若所述第一地图线特征对应的特征标识为预设错误标识,获取所述第一地图线特征对应的可观测帧;
[0180]
2.2)对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0181]
2.3)在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
[0182]
2.4)基于所述三维位置,生成初始局部地图。
[0183]
具体的,若所述关键帧与所述共视帧中的所述对应匹配线特征均对应同一地图线特征,若所述对应的同一地图线特征标识为false,则对该地图线特征所指向的可观测帧进行遍历,对所述可观测帧、所述关键帧与所述共视帧中的对应线特征进行极平面检测与三角化检测,若通过(极平面检测的检测结果与三角化检测的检测结果均小于预设阈值),则对所述第一地图线特征进行三角化并将其标识flag设置为true(预设正确标识),然后基于所述三维位置,调整局部地图,得到初始局部地图。
[0184]
3)根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0185]
3.1)在所述第一地图线特征的内容与所述第二地图线特征的内容不相同的情况下,若所述第二地图线特征对应的特征标识为预设错误标识、且所述第一地图线特征对应的特征标识为预设正确标识,将所述第二地图线特征投影到所述目标关键帧中,得到投影结果;
[0186]
3.2)将所述投影结果与所述第一线特征进行比对,得到比对结果,并在所述比对
结果小于预设阈值的情况下,删除所述第一地图线特征,得到初始局部地图。
[0187]
具体的,若所述关键帧与所述共视帧中的所述对应匹配线特征对应不同地图线特征,若所述共视帧中的第二线特征对应的地图线特征标识为true,且所述关键帧中的第一线特征对应的地图线特征标识为false,则将所述共视帧中的第二线特征对应的地图线特征投影到所述目标关键帧中,与所述目标关键帧中的对应线特征进行对比,若误差小于对应阈值,则将目标关键帧中第一该线特征指向的第一地图线特征观测进行擦除,并指向所述共视帧中的对应线特征指向的地图线特征,得到初始局部地图。
[0188]
4)根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0189]
4.1)在所述第一地图线特征的内容不为空,所述第二地图线特征的内容为空的情况下,将所述第二地图线特征设置为所述第一地图线特征;
[0190]
4.2)在所述第一地图线特征对应的特征标识为预设错误标识的情况下,获取所述第一地图线特征对应的可观测帧;
[0191]
4.3)对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0192]
4.4)在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
[0193]
4.5)基于所述三维位置,生成初始局部地图。
[0194]
具体的,若所述关键帧中线特征对应地图线特征存在,并且所述共视帧中线特征无对应地图线特征,则将所述共视帧中线特征指向所述关键帧中线特征对应的地图线特征,并且若该地图线特征标识为false,则对该地图线特征所指向的可观测帧进行遍历,对所述可观测帧、所述关键帧与所述共视帧中的对应线特征进行极平面检测与三角化检测,若通过(极平面检测的检测结果与三角化检测的检测结果均小于预设阈值)则对所述地图线特征进行三角化并将其标识flag设置为true,然后基于所述三维位置,调整局部地图,得到初始局部地图。
[0195]
5)根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0196]
5.1)在所述第一地图线特征的内容为空,所述第二地图线特征的内容不为空的情况下,将所述第一地图线特征设置为所述第二地图线特征;
[0197]
5.2)在所述第二地图线特征对应的特征标识为预设错误标识的情况下,获取所述第二地图线特征对应的可观测帧;
[0198]
5.3)对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0199]
5.4)在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第二地图线特征进行三角化处理,得到所述第二地图线特征的三维位置,并将三角化处理后的第二地图线特征对应的特征标识为预设正确标识;
[0200]
5.5)基于所述三维位置,生成初始局部地图。
[0201]
具体的,若所述共视帧中线特征存在对应地图线特征,并且所述关键帧中无对应
地图线特征,则将所述关键帧中的线特征指向所述共视帧中线特征存在对应地图线特征,并且若该地图线特征标识为false,则对该地图线特征所指向的可观测帧进行遍历,对所述可观测帧、所述关键帧与所述共视帧中的对应线特征进行极平面检测与三角化检测,若通过则对所述地图线特征进行三角化并将其标识flag设置为true,然后基于所述三维位置,生成初始局部地图。
[0202]
特别的,若检测到关键帧的地图线特征标识为false并且可观测帧数量大于等于5,则将该地图线特征视为劣质地图线特征并擦除。
[0203]
其中,上述的极平面检测的实现方式:将所述目标关键帧、所述共视关键帧及所述地图线特征的可观测帧的线特征与对应光心形成的极平面,所述极平面的法向量n
p
由光心o到归一化平面上线特征两端点l
sp
、l
ep
的归一化向量求取叉积得到,即:
[0204]
n
p
=norm(o

l
sp
)
×
norm(o

l
ep
)
[0205]
所述三平面两两相交形成的三条直线进行平行度检测,三条直线所对应的方向向量l
n
由极平面两两作叉乘得到,即:
[0206][0207]
其中,两极平面相交形成方向向量为l
n
直线,n
1p
为其中一个极平面的法向量,n2p为另外一个极平面的法向量。
[0208]
若任意两条直线夹角的余弦值超出阈值,则不能通过所述极平面检测。
[0209]
另外,上述的三角化检测的实现方式:三角化得到的地图线特征投影到所述目标关键帧、所述共视关键帧及所述地图线特征的可观测帧的线特征,其重叠度不得小于所设置阈值,对于每帧中的关键线特征方程f
kl1
、f
kl2
、f
kl3
,其中,f
kl1
为目标关键帧的关键线特征方程,f
kl2
为共视关键帧中的关键线特征方程,f
kl3
为另外一个共视关键帧的关键线特征方程。
[0210]
对于线特征在所述关键帧中的某一端点在世界坐标系中的表述l
ed
,在当前关键帧中的像素坐标表述p
ed
,三角化所用公式如下所示:
[0211]
f
kl2
·
k
·
t
cw2
·
l
ed
=0
[0212]
f
kl3
·
k
·
t
cw3
·
l
ed
=0
[0213]
p
ed
×
(k
·
t
cw1
)=0
[0214]
其中,k表示相机投影矩阵。t
cw1
为目标关键帧的旋转位移矩阵,t
cw2
为共视关键帧的旋转位移矩阵,t
cw3
为另外一个共视关键帧的旋转位移矩阵。
[0215]
为了提升三角化方式的鲁棒性,利用齐次方程的谱范数的条件数衡量其病态性,当条件数超出某一阈值时,即认为方程不稳定,放弃三角化,对于如上述表示的方程组对应的矩阵a,其谱范数条件数表示为:
[0216]
cond2(a)=‖a‖2‖a
‑1‖2[0217]
本实施例中,采用的点特征与线特征的同步定位与建图方法,在使用过程中,可以发现在人造环境结构中,点特征会有很大一部分存在与动态物体上,以地下车库场景为例,点特征在车辆上会分布较多。而线特征更多存在于环境静态结构中。因此,线特征能在这类场景中,能增强定位的精度与鲁棒性。另外在建图方面,线特征更具有几何表示的意义,可以更好的表征真实场景。本发明一个具体实施例的建图效果如图7所示。
[0218]
可选地,在上述地图构建方法的实施例的基础上,本发明的另一实施例提供了一
种地图构建装置,参照图8,可以包括:
[0219]
关键帧获取模块11,用于获取关键帧集合;所述关键帧集合包括按照时间顺序排列的多个关键帧;所述关键帧为基于预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到;
[0220]
关键帧确定模块12,用于将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,并确定与所述目标关键帧对应的共视关键帧;
[0221]
匹配模块13,用于对所述目标关键帧以及所述共视关键帧进行线特征匹配操作,得到匹配线特征组合;所述匹配线特征组合包括所述目标关键帧中的第一线特征以及所述共视关键帧中的第二线特征;
[0222]
地图生成模块14,用于根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图。
[0223]
进一步,所述地图生成模块包括:
[0224]
第一创建子模块,用于在所述第一地图线特征的内容为空、且所述第二地图线特征为空的情况下,在目标局部地图中创建一个新的地图线特征,并建立所述第一线特征、所述第二线特征分别与所述新的地图线特征的对应关系;
[0225]
第一处理子模块,用于设置所述新的地图线特征的特征标识为预设错误标识,并计算所述新的地图线特征的特征描述子,得到初始局部地图;
[0226]
第一帧获取子模块,用于在所述第一地图线特征的内容与所述第二地图线特征的内容相同的情况下,若所述第一地图线特征对应的特征标识为预设错误标识,获取所述第一地图线特征对应的可观测帧;
[0227]
第二处理子模块,用于对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0228]
第三处理子模块,用于在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
[0229]
第一地图生成子模块,用于基于所述三维位置,生成初始局部地图。
[0230]
进一步,所述地图生成模块包括:
[0231]
投影子模块,用于在所述第一地图线特征的内容与所述第二地图线特征的内容不相同的情况下,若所述第二地图线特征对应的特征标识为预设错误标识、且所述第一地图线特征对应的特征标识为预设正确标识,将所述第二地图线特征投影到所述目标关键帧中,得到投影结果;
[0232]
删除子模块,用于将所述投影结果与所述第一线特征进行比对,得到比对结果,并在所述比对结果小于预设阈值的情况下,删除所述第一地图线特征,得到初始局部地图;
[0233]
第四处理子模块,用于在所述第一地图线特征的内容不为空,所述第二地图线特征的内容为空的情况下,将所述第二地图线特征设置为所述第一地图线特征;
[0234]
第二帧获取子模块,用于在所述第一地图线特征对应的特征标识为预设错误标识的情况下,获取所述第一地图线特征对应的可观测帧;
[0235]
第五处理子模块,用于对所述可观测帧、所述目标关键帧和所述共视帧进行极平
面检测与三角化检测;
[0236]
第六处理子模块,用于在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
[0237]
第二地图生成子模块,用于基于所述三维位置,生成初始局部地图。
[0238]
进一步,所述地图生成模块包括:
[0239]
设置子模块,用于在所述第一地图线特征的内容为空,所述第二地图线特征的内容不为空的情况下,将所述第一地图线特征设置为所述第二地图线特征;
[0240]
第三帧获取子模块,用于在所述第二地图线特征对应的特征标识为预设错误标识的情况下,获取所述第二地图线特征对应的可观测帧;
[0241]
第七处理子模块,用于对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0242]
第八处理子模块,用于在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第二地图线特征进行三角化处理,得到所述第二地图线特征的三维位置;
[0243]
第三地图生成子模块,用于基于所述三维位置,生成初始局部地图。
[0244]
进一步,还包括关键帧生成模块,关键帧生成模块包括:
[0245]
特征提取子模块,用于获取当前时刻采集的图像,并对所述图像进行点特征提取操作,得到点特征,并计算每一所述点特征的特征描述子;
[0246]
特征处理子模块,用于对所述图像进行线特征提取操作,得到线特征,并计算每一所述线特征的特征描述子;
[0247]
关联子模块,用于对所述线特征进行关联操作,得到关联线特征,并对关联线特征设置关联标识;
[0248]
匹配子模块,用于对所述当前时刻采集的图像与上一时刻采集的图像进行点特征匹配操作,得到点特征匹配结果,以及进行线特征匹配操作,得到线特征匹配结果;
[0249]
关键帧确定子模块,用于基于所述点特征匹配结果以及所述线特征匹配结果,确定所述当前时刻采集的图像是否满足预设关键帧筛选规则,并在满足所述预设关键帧筛选规则的情况下,将所述当前时刻采集的图像确定为关键帧。
[0250]
进一步,关联子模块具体用于:
[0251]
基于所述线特征在所述当前时刻采集的图像的位置,以及所述当前时刻采集的图像中的各个分界线在所述当前时刻采集的图像的位置,确定出与任一所述分界线的位置的距离在预设距离范围内的线特征,并确定为目标线特征;
[0252]
依据预设端点位置确定规则,确定所述目标线特征的端点位置;
[0253]
基于所述目标线特征的端点位置、所述目标线特征与所述当前时刻采集的图像对应的立方体贴图的立方体体心的相对位置关系,确定出对应同一实体边界的多个目标线特征,并分别作为关联线特征,并为所述关联线特征设置关联标识。
[0254]
进一步,关键帧确定子模块具体用于:
[0255]
获取所述点特征匹配结果中匹配的点特征对的第一数量;
[0256]
获取所述线特征匹配结果中匹配的线特征对的第二数量;
[0257]
在所述第一数量和所述第二数量中的任一个满足预设数量规则的情况下,将所述当前时刻采集的图像确定为关键帧。
[0258]
本实施例中,关键帧集合中的关键帧是预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到,并且,在得到关键帧集合后,使用了包括目标关键帧中的第一线特征以及共视关键帧中的第二线特征的匹配特征组合,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图。即本发明在生成初始局部地图时,不仅使用了点特征,还引入了线特征,由于线特征具有准确表达环境信息的特性,所以本发明使用线特征进行局部地图的构建时,能够更准确地构建局部地图,提高局部地图生成的准确性。
[0259]
需要说明的是,本实施例中的各个模块和子模块的工作过程,请参照上述实施例中的相应说明,在此不再赘述。
[0260]
可选地,在上述地图构建方法及装置的实施例的基础上,本发明的另一实施例提供了一种电子设备,包括:存储器和处理器;
[0261]
其中,所述存储器用于存储程序;
[0262]
处理器调用程序并用于:
[0263]
获取关键帧集合;所述关键帧集合包括按照时间顺序排列的多个关键帧;所述关键帧为基于预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到;
[0264]
将所述关键帧集合中的对应时间点最早的关键帧确定为目标关键帧,并确定与所述目标关键帧对应的共视关键帧;
[0265]
对所述目标关键帧以及所述共视关键帧进行线特征匹配操作,得到匹配线特征组合;所述匹配线特征组合包括所述目标关键帧中的第一线特征以及所述共视关键帧中的第二线特征;
[0266]
根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,并对所述初始局部地图进行非线性优化操作,得到局部地图。
[0267]
进一步,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0268]
在所述第一地图线特征的内容为空、且所述第二地图线特征为空的情况下,在目标局部地图中创建一个新的地图线特征,并建立所述第一线特征、所述第二线特征分别与所述新的地图线特征的对应关系;
[0269]
设置所述新的地图线特征的特征标识为预设错误标识,并计算所述新的地图线特征的特征描述子,得到初始局部地图;
[0270]
在所述第一地图线特征的内容与所述第二地图线特征的内容相同的情况下,若所述第一地图线特征对应的特征标识为预设错误标识,获取所述第一地图线特征对应的可观测帧;
[0271]
对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0272]
在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
[0273]
基于所述三维位置,生成初始局部地图。
[0274]
进一步,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0275]
在所述第一地图线特征的内容与所述第二地图线特征的内容不相同的情况下,若所述第二地图线特征对应的特征标识为预设错误标识、且所述第一地图线特征对应的特征标识为预设正确标识,将所述第二地图线特征投影到所述目标关键帧中,得到投影结果;
[0276]
将所述投影结果与所述第一线特征进行比对,得到比对结果,并在所述比对结果小于预设阈值的情况下,删除所述第一地图线特征,得到初始局部地图;
[0277]
在所述第一地图线特征的内容不为空,所述第二地图线特征的内容为空的情况下,将所述第二地图线特征设置为所述第一地图线特征;
[0278]
在所述第一地图线特征对应的特征标识为预设错误标识的情况下,获取所述第一地图线特征对应的可观测帧;
[0279]
对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0280]
在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第一地图线特征进行三角化处理,得到所述第一地图线特征的三维位置,并将三角化处理后的第一地图线特征对应的特征标识为预设正确标识;
[0281]
基于所述三维位置,生成初始局部地图。
[0282]
进一步,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图,包括:
[0283]
在所述第一地图线特征的内容为空,所述第二地图线特征的内容不为空的情况下,将所述第一地图线特征设置为所述第二地图线特征;
[0284]
在所述第二地图线特征对应的特征标识为预设错误标识的情况下,获取所述第二地图线特征对应的可观测帧;
[0285]
对所述可观测帧、所述目标关键帧和所述共视帧进行极平面检测与三角化检测;
[0286]
在极平面检测的检测结果与三角化检测的检测结果均为预设结果的情况下,对所述第二地图线特征进行三角化处理,得到所述第二地图线特征的三维位置;
[0287]
基于所述三维位置,生成初始局部地图。
[0288]
进一步,所述关键帧的生成过程:
[0289]
获取当前时刻采集的图像,并对所述图像进行点特征提取操作,得到点特征,并计算每一所述点特征的特征描述子;
[0290]
对所述图像进行线特征提取操作,得到线特征,并计算每一所述线特征的特征描述子;
[0291]
对所述线特征进行关联操作,得到关联线特征,并对关联线特征设置关联标识;
[0292]
对所述当前时刻采集的图像与上一时刻采集的图像进行点特征匹配操作,得到点特征匹配结果,以及进行线特征匹配操作,得到线特征匹配结果;
[0293]
基于所述点特征匹配结果以及所述线特征匹配结果,确定所述当前时刻采集的图像是否满足预设关键帧筛选规则,并在满足所述预设关键帧筛选规则的情况下,将所述当前时刻采集的图像确定为关键帧。
[0294]
进一步,对所述线特征进行关联操作,得到关联线特征,并对关联线特征设置关联标识,包括:
[0295]
基于所述线特征在所述当前时刻采集的图像的位置,以及所述当前时刻采集的图像中的各个分界线在所述当前时刻采集的图像的位置,确定出与任一所述分界线的位置的距离在预设距离范围内的线特征,并确定为目标线特征;
[0296]
依据预设端点位置确定规则,确定所述目标线特征的端点位置;
[0297]
基于所述目标线特征的端点位置、所述目标线特征与所述当前时刻采集的图像对应的立方体贴图的立方体体心的相对位置关系,确定出对应同一实体边界的多个目标线特征,并分别作为关联线特征,并为所述关联线特征设置关联标识。
[0298]
进一步,基于所述点特征匹配结果以及所述线特征匹配结果,确定所述当前时刻采集的图像是否满足预设关键帧筛选规则,并在满足所述预设关键帧筛选规则的情况下,将所述当前时刻采集的图像确定为关键帧,包括:
[0299]
获取所述点特征匹配结果中匹配的点特征对的第一数量;
[0300]
获取所述线特征匹配结果中匹配的线特征对的第二数量;
[0301]
在所述第一数量和所述第二数量中的任一个满足预设数量规则的情况下,将所述当前时刻采集的图像确定为关键帧。
[0302]
本实施例中,关键帧集合中的关键帧是预设关键帧筛选规则对采集的图像的点特征和线特征进行处理得到,并且,在得到关键帧集合后,使用了包括目标关键帧中的第一线特征以及共视关键帧中的第二线特征的匹配特征组合,根据所述第一线特征对应的第一地图线特征、所述第二线特征对应的第二地图线特征,生成初始局部地图。即本发明在生成初始局部地图时,不仅使用了点特征,还引入了线特征,由于线特征具有准确表达环境信息的特性,所以本发明使用线特征进行局部地图的构建时,能够更准确地构建局部地图,提高局部地图生成的准确性。
[0303]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1