本技术实施例涉及ar,尤其涉及一种点云地图的匹配方法、装置、电子设备及存储介质。
背景技术:
1、相关技术中,云锚点是一种轻量级的ar(augmented reality,增强现实)分享应用,能够在不同的用户之间分享他们创作的ar内容或者标记点。例如,用户a可以在一场景(如园区)内识别点云地图,并且沿途标记自己走过的路线,当用户b进入同一场景后,可以从云端获取用户a创建的点云地图,并看到其绘制的虚拟路线。
2、由于云端可能同时存储着大量的点云地图,如何从云端快速获取对应的点云地图,是云锚点功能实现的难点,相关技术中,大多是采用类似于创建/加入房间等人为控制的方式进行地图的分发,例如:用户a创建房间,并分享房间号,用户b加入房间后,再向用户b分发点云地图。该方案增加了用户手动操作的步骤,很大程度上降低了用户的沉浸式体验感,且该方案所基于的描述子导致匹配的效率较低。
技术实现思路
1、本技术实施例提供一种点云地图的匹配方法、装置、电子设备及存储介质,以解决相关技术中的点云地图匹配方式降低了用户的沉浸式体验感,且匹配效率较低的问题。
2、第一方面,本技术实施例提供一种点云地图的匹配方法,所述方法包括:
3、获取用户输入的待查询点云地图;
4、提取所述待查询点云地图中,每个特征点的二维描述子;
5、根据所述二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图,并确定每一所述粗匹配点云地图和所述待查询点云地图之间的匹配点对;其中,所述匹配点对有第一预设数量组,所述第一预设数量为所述粗匹配点云地图的数量;
6、根据所述匹配点对中的匹配点,与所述匹配点所属的点云地图的重心之间的关系,在每一组所述匹配点对中,均筛选出正确的匹配点对;
7、分别确定每一组所述正确的匹配点对中,每对匹配点之间的转换关系;
8、对所述转换关系进行聚类处理,获取若干类;其中,所述类为最相似的一组转换关系的集合;
9、将转换关系数量最多的类,确定为所对应的粗匹配点云地图的对应类;
10、将转换关系数量最多的对应类所对应的粗匹配点云地图,确定为精匹配点云地图。
11、可选的,在提取所述待查询点云地图中,每个特征点的二维描述子之前,所述方法还包括:
12、生成所述二维描述子,其中包括:获取第一预设长度的shot描述子;
13、对所述第一预设长度的shot描述子进行等长划分,获取第二预设数量份描述子片段;
14、对每一描述子片段进行二进制转换;
15、将二进制转换后的描述子片段按顺序进行拼接,生成所述二维描述子。
16、可选的,对每一描述子片段进行二进制转换包括:
17、确定所述描述子片段中,每个值的总和;
18、若所述描述子片段中,存在一个大于所述总和与第一预设阈值的乘积的数值,则将所述数值用1表示,其余数值用0表示,并构建二维描述子片段;
19、若所述描述子片段中,存在二个大于所述总和与所述第一预设阈值的乘积的数值,则将二个数值用1表示,其余数值用0表示,并构建二维描述子片段;
20、以此类推,若所述描述子片段中,存在n-1个大于所述总和与所述第一预设阈值的乘积的数值,则将n-1个数值用1表示,其余数值用0表示,并构建二维描述子片段,其中,n为所述描述子片段的长度;
21、若所述描述子片段中,n个数值均为0,则将n个数值均用0表示,并构建二维描述子片段。
22、可选的,将二进制转换后的描述子片段按顺序进行拼接,生成所述二维描述子之后,所述方法还包括:
23、确定附加描述子;
24、将所述附加描述子与所述二维描述子进行拼接,获取拼接了所述附加描述子后的二维描述子;
25、根据所述二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图包括:
26、根据所述拼接了所述附加描述子后的二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图。
27、可选的,确定附加描述子包括:
28、确定以所述二维描述子所对应的特征点为中心的第一预设范围内的平均点云强度;
29、在以所述二维描述子所对应的特征点为中心的第二预设范围内,随机选取第三预设数量的单元,并确定每一单元的单元点云强度;其中,所述第二预设范围、所述第一预设范围均由若干单元组成;
30、根据所述单元点云强度和所述平均点云强度,确定附加描述符;
31、根据所述附加描述符确定所述附加描述子;其中,所述附加描述子包括第三预设数量的附加描述符;
32、其中,根据所述单元点云强度和所述平均点云强度,确定附加描述符通过如下公式实现:
33、
34、其中,t为第二预设阈值、iavg为所述平均点云强度、ir(i)为所述单元点云强度、battach(i)为与单元i对应的附加描述符、所述第三预设数量为所述第二预设数量/2。
35、可选的,根据所述二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图包括:
36、基于所述二维描述子构建词袋库,并通过所述词袋库确定所述待查询点云地图所对应的词袋向量;
37、基于所述词袋向量,在点云地图库中确定所述待查询点云地图的粗匹配点云地图。
38、可选的,基于所述词袋向量,在点云地图库中确定所述待查询点云地图的粗匹配点云地图通过如下公式实现:
39、当时,确定所述点云地图库中的第k个点云地图为所述粗匹配点云地图;
40、其中,表示所述待查询点云地图所对应的词袋向量,与所述第k个点云地图所对应的词袋向量做l1距离计算;wper表示所述l1距离计算得分的最高分与最低分的加权权重;smax以及smin分别表示所述l1距离计算得分的最高分与所述l1距离计算得分的最低分。
41、可选的,根据所述匹配点对中的匹配点,与所述匹配点所属的点云地图的重心之间的关系,在每一组所述匹配点对中,均筛选出正确的匹配点对包括:
42、确定粗匹配点云地图的重心;且构建所述粗匹配点云地图上,每个匹配点的局部参考坐标系;
43、将所述粗匹配点云地图上的每个匹配点与重心相连;获取每个匹配点相对于所述重心的投票向量;
44、根据所述局部参考坐标系、所述投票向量以及所述匹配点在所述待查询点云地图上的对应匹配点,确定所述待查询点云地图的重心区域;其中,所述待查询点云地图的重心区域为最多的对应匹配点所指向的区域;
45、将指向所述重心区域的对应匹配点所在的匹配点对,确定为正确的匹配点对。
46、可选的,分别确定每一组所述正确的匹配点对中,每对匹配点之间的转换关系通过如下公式实现:
47、
48、其中,所述表示所述粗匹配点云地图的坐标系到所述匹配点的局部参考坐标系lrf1的转换关系,表示所述匹配点的局部坐标系,到所述匹配点在所述待查询点云地图上的对应匹配点的局部参考坐标系lrf2之间的转换关系,表示所述待查询点云地图的坐标系到所述对应匹配点的局部参考坐标系lrf2的转换关系;所述表示正确的匹配点对中,每对匹配点之间的转换关系。
49、可选的,对所述转换关系进行聚类处理,获取若干类包括:
50、确定群集合;其中,所述群集合的初始值为空;
51、遍历一组正确的匹配点对中,每对匹配点之间的转换关系其中,i为正整数,i≤k,k为所述匹配点对的数量;
52、从所述群集合中,确定与当前转换关系最接近的群l;
53、判断是否成立;其中所述txyz为变换矩阵中xyz平移量的误差阈值,为变换矩阵中的偏航角的误差阈值;为所述群l的代表转换矩阵;
54、如果是,则将所述添加到所述群l中,并将所述更新为所述群l内所有的平均值;
55、如果否,则以所述新建一个群;
56、直至i=k,遍历结束,获取若干类,其中,每一类对应一个群。
57、第二方面,本技术实施例提供一种点云地图的匹配装置,所述装置包括:
58、获取模块,用于获取用户输入的待查询点云地图;
59、执行模块,用于提取所述待查询点云地图中,每个特征点的二维描述子;
60、根据所述二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图,并确定每一所述粗匹配点云地图和所述待查询点云地图之间的匹配点对;其中,所述匹配点对有第一预设数量组,所述第一预设数量为所述粗匹配点云地图的数量;
61、根据所述匹配点对中的匹配点,与所述匹配点所属的点云地图的重心之间的关系,在每一组所述匹配点对中,均筛选出正确的匹配点对;
62、分别确定每一组所述正确的匹配点对中,每对匹配点之间的转换关系;
63、对所述转换关系进行聚类处理,获取若干类;其中,所述类为最相似的一组转换关系的集合;
64、将转换关系数量最多的类,确定为所对应的粗匹配点云地图的对应类;
65、将转换关系数量最多的对应类所对应的粗匹配点云地图,确定为精匹配点云地图。
66、可选的,所述执行模块,还用于在提取所述待查询点云地图中,每个特征点的二维描述子之前,生成所述二维描述子,其中包括:获取第一预设长度的shot描述子;
67、对所述第一预设长度的shot描述子进行等长划分,获取第二预设数量份描述子片段;
68、对每一描述子片段进行二进制转换;
69、将二进制转换后的描述子片段按顺序进行拼接,生成所述二维描述子。
70、可选的,所述执行模块,还用于确定所述描述子片段中,每个值的总和;
71、若所述描述子片段中,存在一个大于所述总和与第一预设阈值的乘积的数值,则将所述数值用1表示,其余数值用0表示,并构建二维描述子片段;
72、若所述描述子片段中,存在二个大于所述总和与所述第一预设阈值的乘积的数值,则将二个数值用1表示,其余数值用0表示,并构建二维描述子片段;
73、以此类推,若所述描述子片段中,存在n-1个大于所述总和与所述第一预设阈值的乘积的数值,则将n-1个数值用1表示,其余数值用0表示,并构建二维描述子片段,其中,n为所述描述子片段的长度;
74、若所述描述子片段中,n个数值均为0,则将n个数值均用0表示,并构建二维描述子片段。
75、可选的,所述执行模块,还用于在将二进制转换后的描述子片段按顺序进行拼接,生成所述二维描述子之后,确定附加描述子;
76、将所述附加描述子与所述二维描述子进行拼接,获取拼接了所述附加描述子后的二维描述子;
77、根据所述二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图包括:
78、根据所述拼接了所述附加描述子后的二维描述子,在点云地图库中确定所述待查询点云地图的粗匹配点云地图。
79、可选的,所述执行模块,还用于确定以所述二维描述子所对应的特征点为中心的第一预设范围内的平均点云强度;
80、在以所述二维描述子所对应的特征点为中心的第二预设范围内,随机选取第三预设数量的单元,并确定每一单元的单元点云强度;其中,所述第二预设范围、所述第一预设范围均由若干单元组成;
81、根据所述单元点云强度和所述平均点云强度,确定附加描述符;
82、根据所述附加描述符确定所述附加描述子;其中,所述附加描述子包括第三预设数量的附加描述符;
83、其中,根据所述单元点云强度和所述平均点云强度,确定附加描述符通过如下公式实现:
84、
85、其中,t为第二预设阈值、iavg为所述平均点云强度、ir(i)为所述单元点云强度、battach(i)为与单元i对应的附加描述符、所述第三预设数量为所述第二预设数量/2。
86、可选的,所述执行模块,还用于基于所述二维描述子构建词袋库,并通过所述词袋库确定所述待查询点云地图所对应的词袋向量;
87、基于所述词袋向量,在点云地图库中确定所述待查询点云地图的粗匹配点云地图。
88、可选的,所述执行模块,还用于通过如下公式实现基于所述词袋向量,在点云地图库中确定所述待查询点云地图的粗匹配点云地图:
89、当时,确定所述点云地图库中的第k个点云地图为所述粗匹配点云地图;
90、其中,表示所述待查询点云地图所对应的词袋向量,与所述第k个点云地图所对应的词袋向量做l1距离计算;wper表示所述l1距离计算得分的最高分与最低分的加权权重;smax以及smin分别表示所述l1距离计算得分的最高分与所述l1距离计算得分的最低分。
91、可选的,所述执行模块,还用于确定粗匹配点云地图的重心;且构建所述粗匹配点云地图上,每个匹配点的局部参考坐标系;
92、将所述粗匹配点云地图上的每个匹配点与重心相连;获取每个匹配点相对于所述重心的投票向量;
93、根据所述局部参考坐标系、所述投票向量以及所述匹配点在所述待查询点云地图上的对应匹配点,确定所述待查询点云地图的重心区域;其中,所述待查询点云地图的重心区域为最多的对应匹配点所指向的区域;
94、将指向所述重心区域的对应匹配点所在的匹配点对,确定为正确的匹配点对。
95、可选的,所述执行模块,还用于通过如下公式实现分别确定每一组所述正确的匹配点对中,每对匹配点之间的转换关系
96、其中,所述表示所述粗匹配点云地图的坐标系到所述匹配点的局部参考坐标系lrf1的转换关系,表示所述匹配点的局部坐标系,到所述匹配点在所述待查询点云地图上的对应匹配点的局部参考坐标系lrf2之间的转换关系,表示所述待查询点云地图的坐标系到所述对应匹配点的局部参考坐标系lrf2的转换关系;所述表示正确的匹配点对中,每对匹配点之间的转换关系。
97、可选的,所述执行模块,还用于确定群集合;其中,所述群集合的初始值为空;
98、遍历一组正确的匹配点对中,每对匹配点之间的转换关系其中,i为正整数,i≤k,k为所述匹配点对的数量;
99、从所述群集合中,确定与当前转换关系最接近的群l;
100、判断是否成立;其中所述txyz为变换矩阵中xyz平移量的误差阈值,为变换矩阵中的偏航角的误差阈值;为所述群l的代表转换矩阵;
101、如果是,则将所述添加到所述群l中,并将所述更新为所述群l内所有的平均值;
102、如果否,则以所述新建一个群;
103、直至i=k,遍历结束,获取若干类,其中,每一类对应一个群。
104、第三方面,本技术实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的点云地图的匹配方法的步骤。
105、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的点云地图的匹配方法的步骤。
106、由此,本技术实施例提供了适用于3d特征点的二维描述子的设计方法,采用二进制算子,具备计算快、耗时低,且占用空间小的优点;此外,还提供了从点云地图库中,先确定粗匹配点云地图,再从中快速确定精匹配点云地图的方法,提高了确定精匹配点云地图的效率,且本技术实施例所示的匹配方法可减少用户的人工参与步骤,提高了用户的体验感。