视觉定位方法及相关装置、电子设备和存储介质与流程

专利检索2022-05-11  25



1.本技术涉及计算机视觉技术领域,特别是涉及一种视觉定位方法及相关装置、电子设备和存储介质。


背景技术:

2.在城市中,根据拍摄到的场景图像估计相机位姿是一种极具应用价值的技术,其可以应用于城市级ar(augmented reality,增强现实)、自动驾驶等领域,并起到重要作用。
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.图1是本技术视觉定位方法一实施例的流程示意图;
34.图2是建筑地图一实施例的示意图;
35.图3是基于图2所示建筑地图进行视觉定位一实施例的示意图;
36.图4是本技术视觉定位方法一实施例的过程示意图;
37.图5是普通场景和建筑场景的点云对比示意图;
38.图6是特征提取一实施例的流程示意图;
39.图7是特征提取模型一实施例的框架示意图;
40.图8是本技术视觉定位装置一实施例的框架示意图;
41.图9是本技术电子设备一实施例的框架示意图;
42.图10是本技术计算机可读存储介质一实施例的框架示意图。
具体实施方式
43.下面结合说明书附图,对本技术实施例的方案进行详细说明。
44.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
45.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
46.请参阅图1,图1是本技术视觉定位方法一实施例的流程示意图。具体而言,可以包括如下步骤:
47.步骤s11:获取待定位图像及其拍摄位置,并获取拍摄位置处的建筑地图。
48.本公开实施例中,待定位图像中拍摄有第一建筑,且第一建筑具体是何建筑物可以不做限定。例如,第一建筑可以包括但不限于写字楼、博物馆、古建筑等地标建筑,或者,第一建筑也可以包括但不限于小区、自建房等普通建筑,在此不做限定。
49.在一个实施场景中,拍摄位置可以包括但不限于经纬度信息。需要说明的是,本技术公开实施例中,对于拍摄位置的精度不做严格要求,仅需与实际位置之间的误差在合理范围之内即可。此外,对于合理范围的具体限定,可以根据实际定位需求进行设置。例如,在对视觉定位的速度与精度要求均较高的情况下,合理范围可以设置地小一些,如20米、15米、10米等;或者,在对视觉定位的速度或精度要求相对宽松的情况下,合理范围可以设置地适当大一些,如50米、45米、40米等,在此不做限定。
50.在一个实施场景中,摄像设备可以集成有诸如gps(global positioning system,全球定位系统)、北斗等定位模块,以在摄像设备拍摄得到待定位图像时,同时获取当前所在的拍摄位置。
51.在一个实施场景中,摄像设备也可以未集成定位模块,在此情况下,可以获取摄像设备拍摄到待定位图像的拍摄时刻,并获取定位设备在拍摄时刻所定位得到的拍摄位置。例如,摄像设备可以是行车记录仪,定位设备可以是车载gps,在此情况下,若行车记录仪未集成定位模块,则可以获取行车记录仪拍摄到待定位图像的拍摄时刻,并获取车载gps在该拍摄时刻所定位得到的拍摄位置。
52.本公开实施例中,建筑地图中第二建筑为由面片构成的模型,即建筑地图中各个模型可以反映对应建筑的外形结构,但可以不包含纹理信息。此外,由于无需包含纹理信息,而模型通常又仅需少量面片即可反映建筑的外形结构,故能够进一步减少其资源占用。
53.在一个实施场景中,可以直接从卫星地图构建出建筑地图,从而能够有利于进一步降低建筑地图构建的成本,并进一步提升其在全球范围内应用的扩展能力。请结合参阅图2,图2是建筑地图一实施例的示意图。如图2所示,不同形状的灰色块均表示从卫星地图直接构建得到的模型。需要说明的是,图2未示意构成各个模型的面片,本公开实施例以及下述公开实施例中,构成模型的面片具体可以是三角形面片,三角形顶点为模型的顶点。例如,一个形状为长方体的模型,其任意一面可以由两个形状为直角三角形的面片构成,且直角三角形的斜边重合,直角三角形的顶点即为模型的顶点。其他情况可以以此类推,在此不再一一举例。
54.在一个实施场景中,诸如谷歌地图、openstreetmap等越来越的站点,开始将2.5d建筑地图(即2.5d building map)集成于各自的地图服务中。此外,2.5d建筑地图包含各个建筑的模型,且模型也由面片构成,故也可以直接根据拍摄位置从谷歌地图、openstreetmap等下载得到。例如,拍摄位置可以包括经纬度,则可以从上述站点下载该经纬度周边50米、100米等一定范围内的地图,得到建筑地图。故此,直接根据拍摄位置在地图站点下载周边的建筑地图,能够进一步降低地图构建成本并提升向大规模场景扩展的能力。
55.需要说明的是,尽管上述“第一建筑”、“第二建筑”在命名上存在区别,但并不代表
待定位图像中的建筑和建筑地图中的建筑在外形等方面是否存在区别,也就是说,上述“第一建筑”、“第二建筑”仅仅是为了便于在命名上进行区分,即待定位图像中拍摄到的建筑命名为“第一建筑”,建筑地图中的建筑命名为“第二建筑”。
56.在一个实施场景中,请参阅图3,图3是基于图2所示建筑地图进行视觉定位一实施例的示意图。如图3所示,左上矩形框内为待定位图像,待定位图像下方箭头所示为其对应的拍摄位置,基于该拍摄位置可以获取到图2所示的建筑地图,从而可以基于待定位图像和建筑地图进行定位分析,具体可以参阅本公开实施例以及下述相关公开实施例中描述,在此暂不赘述。
57.步骤s12:获取待定位图像中第一建筑的第一点云,并获取建筑地图中第二建筑的第二点云。
58.在一个实施场景中,可以获取待定位图像中属于第一建筑的第一像素点的第一深度,并基于第一像素点的第一深度进行反投影,得到第一点云。上述方式,在第一点云的获取过程中,仅需对待定位图像执行像素分割、深度预测等操作即可得到第一建筑的第一点云,故能够有利于提升点云获取效率。
59.在一个具体的实施场景中,请结合参阅图4,图4是本技术视觉定位方法一实施例的过程示意图。如图4所示,本技术公开实施例中视觉定位方法整体包括升维阶段、注册阶段和优化阶段共三个阶段。在升维阶段,可以对待定位图像分别进行语义分割和深度预测,从而得到分割图像is和深度图像id。需要说明的是,分割图像is中各个像素点的像素值表示待定位图像中对应位置处的像素点所属的语义类别,如在像素点的像素值为第一数值(如,165,42,42,即棕色)时,表示待定位图像中对应位置处的像素点属于建筑物,在像素点的像素值为第二数值(如,0,0,255,即蓝色)时,表示待定位图像中对应位置处的像素点属于天空,在像素点的像素值为第三数值(如,255,0,255,即紫色)时,表示待定位图像中对应位置处的像素点属于其他(如,道路等)。此外,深度图像id中各个像素点的像素值表示待定位图像中对应位置处的像素点的第一深度。在此基础上,可以基于分割图像is和深度图像id,待定位图像中属于第一建筑的第一像素点的第一深度。
60.此外,为了提升视觉定位效率,上述语义分割和深度预测可以分别由语义分割网络和深度预测网络执行。具体地,语义分割网络可以采用诸如u-net等网络模型,深度预测网络也可以采用诸如u-net等网络模型,在此不做限定。需要说明的是,尽管语义分割网络和深度预测网络可以采用相同的网络结构,但两者的网络参数并不相同。在此基础上,可以将待定位图像分别输入语义分割网络、深度预测网络进行处理,得到分割图像is和深度图像id。具体地,在训练阶段,可以预先采集样本图像,且样本图像标注有各个像素点的样本语义类别和样本深度值,从而可以将样本图像输入语义分割网络进行处理,得到样本图像中各个像素点的预测语义类别,并将样本图像输入深度预测网络进行处理,得到样本图像中各个像素点的预测深度值,进而可以根据样本语义类别和预测语义类别之间的差异,调整语义分割网络的网络参数,并根据样本深度值和预测深度值之间的差异,调整深度预测网络的网络参数。
61.在一个具体的实施场景中,除了通过前述神经网络预测得到深度信息之外,可以由双目相机获取深度信息。具体地,可以将双目相机所拍摄到的两张图像中任一者作为待定位图像,并根据两张图像进行深度预测,得到深度图像id。利用双目相机进行深度预测的
具体过程,可以参阅双目相机的相关原理,在此不再赘述。
62.在一个具体的实施场景中,还可以通过在拍摄位置拍摄到的图像序列,预测得到深度信息。深度预测的具体过程,可以参阅多视角图像序列深度预测的相关原理,在此不再赘述。
63.需要说明的是,上述三种获取第一深度的方式可以择一使用,也可以结合两者以上使用,在此不做限定。在结合两者以上使用时,可以统计采用不同方式获取得到的第一深度的平均值,作为最终的第一深度。
64.在一个具体的实施场景中,请继续结合参阅图4,在获取到属于第一建筑的第一像素点的第一深度(即图4中建筑深度i
bd
)之后,可以进一步进行深度优化(如,平滑滤波等),以得到优化后的第一深度,以便后续基于优化后的第一深度进行反投影,得到第一点云。上述方式,在获取到第一点云之后,进一步进行深度优化,有利于提升第一点云几何结构的紧凑性和纯净性。此外,为了便于描述,第一点云可以记为pq。
65.在一个具体的实施场景中,可以利用相机内参结合第一深度进行反投影,得到第一点云。反投影的具体过程,可以参阅深度反投影(即depth back-projection)的技术细节,在此不再赘述。
66.在一个实施场景中,可以基于建筑地图在当前视角下可观测到的面片,得到深度图像,并基于深度图像中各个第二像素点的第二深度进行反投影,得到第二点云。上述方式,在第二点云的获取过程中,仅关注在当前视角下可观测到的面片,即忽略在当前视角下观测不到的面片,从而能够大大减少三维点数量,进而能够有利于降低后续基于第一点云和第二点云进行位姿分析的难度。
67.在一个具体的实施场景中,可以基于拍摄位置初始化得到视角参数,该视角参数可以包括观察方向和观察高度,从而可以根据视角参数调整建筑地图的视角,调整后的视角即为建筑地图的当前视角。进一步地,为了便于数据处理,可以基于当前视角构建本地坐标系。例如,可以将拍摄位置作为坐标原点,将经过拍摄位置且垂直于地图地面的轴线作为z轴,并在地图地面取两条垂直于z轴的轴线分别作为x轴和y轴,且保持x轴和y轴也相互垂直。在此基础上,在后续定位得到本地坐标系中的最终位姿之后,还可以进一步结合视角参数将最终位姿转换至世界坐标系。
68.在一个具体的实施场景中,由于建筑地图本身带有深度信息,故可以对建筑地图在当前视角下可观测到的面片进行全景渲染,得到深度图像,从而可以将深度图像中各个像素点进行反投影,得到第二点云。需要说明的是,反投影的具体过程,可以参阅深度反投影(即depth back-projection)的技术细节,在此不再赘述。请结合参阅图4,为了便于描述,可以将第二点云即为pv。
69.步骤s13:基于第一点云和第二点云,分析得到第一位姿。
70.具体地,第一点云pq可以包括若干第一三维点,第二点云pv可以包括若干第二三维点,在此基础上,可以提取各个第一三维点的第一特征表示,并提取各个第二三维点的第二特征表示,从而基于第一特征表示和第二特征表示进行特征匹配,得到第一位姿。例如,可以基于第一特征表示和第二特征表示,将各个第一三维点和各个第二三维点进行特征匹配,得到若干组三维点对,且每组三维点对包括一个第一三维点和一个第二三维点,基于此可以根据若干组三维点,分析得到第一位姿。
71.在一个实施场景中,可以提取各个第一三维点的第一特征表示,并提取各个第二三维点的第二特征表示,且第一特征表示和第二特征表示均包含点云局部几何信息。例如,可以基于minskowski引擎的稀疏三维卷积进行特征提取,具体可以表示为:
[0072][0073]
上述公式(1)中,u表示集合c

内三维点的位置坐标,i表示三维意义上的偏离量,如可以取(1,1,1)、(1,0,1)等等,u i表示偏离后的位置坐标,x
u i
表示在该偏离后三维坐标上的输入特征(如,在含有多层卷积层的情况下,输入特征可以为上一卷积层的输出特征),wi表示权重,k表示卷积核尺寸。进一步地,i∈n3(u,k,c)表示在位置坐标u处进行特征提取,当且仅当对应点集u i在集合c内。x
′u即为在位置坐标u处稀疏三维卷积的输出特征。此外,可以在此基础上堆叠多层稀疏三维卷积,如可以采用fcgf(即fully convolutional geometric features)进行特征提取,具体可以参阅fcgf的技术细节,在此不再赘述。
[0074]
在一个实施场景中,可以提取各个第一三维点的第一特征表示,并提取各个第二三维点的第二特征表示,且第一特征表示和第二特征表示均包含点云局部几何信息和点云全局关系信息。请结合参阅图5,图5是普通场景和建筑场景的点云对比示意图。如图5所示,图5中左图表示普通场景的点云示意,图5中右图表示建筑场景的点云示意,通过对比可以发现,相较于普通场景而言,在建筑场景中,点云通常具有非均匀分布的特性,如在建筑物附近过于稠密,而在非建筑物区域基本为空,故通过提取点云局部几何信息和点云全局关系信息,能够使得三维点的特征表示不仅仅反映出局部特征,而且还能反映出全局特征,从而能够使得每个三维点的唯一性更为显著,进而能够有利于提升特征表示的准确性。需要说明的是,特征表示的具体提取过程,可以参阅下述公开实施例,在此暂不赘述。
[0075]
在一个实施场景中,在提取得到各个第一三维点的第一特征表示以及各个第二三维点的第二特征表示之后,可以将各个第一三维点分别作为当前三维点,并将与当前三维点的第一特征表示最接近的第二特征表示所对应的第二三维点,作为与第一三维点匹配的第二三维点,在此基础上,可以匹配得到若干组三维点对,并将每组三维点对中的第二三维点、该组中第一三维点对应于待定位图像中的二维像素点作为一组匹配点对,以及根据对极几何约束,根据每组匹配点对的位置坐标建立一个关于第一位姿的函数方程,从而基于各组匹配点对分别对应的函数方程,可以求解得到第一位姿。具体可以参阅基于特征匹配的位姿估计其相关技术细节,在此不再赘述。
[0076]
步骤s14:基于第一建筑的第一轮廓优化第一位姿,得到待定位图像的最终位姿。
[0077]
具体地,请结合参阅图4,在得到第一位姿之后,可以基于第一位姿,对建筑地图进行可微分渲染,得到与第一位姿对应的地图视角下第二建筑的第二轮廓,在此基础上,可以基于第一轮廓和第二轮廓之间的差异,得到定位损失,并基于定位损失,调整第一位姿,得到最终位姿。上述方式,通过建筑轮廓进一步约束相机位姿,有利于提升相机位姿的准确性,即提升视觉定位精度。
[0078]
在一个实施场景中,如图4所示,第二轮廓可以以预设尺寸的第二掩码图sm进行表示,且预设尺寸可以为待定位图像的图像尺寸。在可微分渲染过程中,对于第二掩码图sm中第i个像素位置而言,可以获取建筑地图中第j个面片经第一位姿投影至待定位图像的投影区域,并获取投影区域对待定位图像中第i个像素位置的对应位置的覆盖情况以及获取
待定位图像中第i个像素位置的对应位置至投影区域的最近距离d(i,j),从而可以基于各个面片对应的覆盖情况和最近距离d(i,j),得到第二掩码图sm中第i个像素位置的像素值具体可以表示为:
[0079][0080]
上述公式(2)中,∏j(.)表示累乘运算,sigmoid(.)表示归一化运算,表示覆盖情况,如在能够覆盖的情况下,其值可以设置地适当大一些,而在未能覆盖的情况下,其值可以设置地适当小一些,具体数值在此不做限定。此外,σ用于控制概率分布的锐度。
[0081]
在一个实施场景中,请继续参阅图4,第一轮廓可以以预设尺寸的第一掩码图s
bd
进行表示,此外,第二轮廓也可以以预设尺寸的第二掩码图sm进行表示,且预设尺寸可以为待定位图像的图像尺寸。在此基础上,可以获取待定位图像中各个像素位置处的损失权重,且属于建筑物或天空的像素位置具有第一权重,不属于建筑物、天空中任一者的像素位置具有第二权重,第一权重可以设置为大于第二权重,如第一权重可以设置为1,第二权重可以设置为0。进一步地,对于各个像素位置,可以获取像素位置分别在第一掩码图中的第一像素值和在第二掩码图中的第二像素值,并获取第一像素值和第二像素值之间的像素差值,以及基于像素位置处的像素差值和损失权重,得到像素位置对应的子损失,从而基于各个像素位置对应的子损失,得到定位损失。为了便于描述,可以以损失掩码图bm来表示待定位图像中各个像素位置处的损失权重,即损失掩码图bm中第i个像素位置的像素值即为待定位图像中第i个像素位置的损失权重。在此基础上,定位损失可以表示为:
[0082][0083]
上述公式(3)中,||.||2表示均方误差函数。此外,需要说明的是,公式(3)为了简化公式表达,并未将各个像素位置予以表示。上述方式,由于第一权重大于第二权重,故能够抑制不属于建筑物、天空中任一者的像素位置对应的子损失,并增强属于建筑物或天空的像素位置对应的子损失,故能够尽可能地降低来自无效区域的梯度对于优化方向的影响,有利于提升位姿优化的准确性。
[0084]
在一个实施场景中,可以采用adam优化器结合定位损失,对第一位姿进行优化,示例性地,其学习率可以设置为0.1,在此不做限定。位姿优化的具体过程,可以参阅adam优化器的相关技术细节,在此不再赘述。
[0085]
在一个实施场景中,可以基于定位损失,调整第一位姿,得到第二位姿,并响应于定位损失满足预设条件,将第二位姿作为新的第一位姿,并重新执行上述基于第一位姿,对建筑地图进行可微分渲染的步骤以及后续步骤,直至定位损失不满足该预设条件为止,此时可以将第二位姿作为最终位姿。上述方式,在位姿优化过程中,能够根据定位损失进行迭代优化,有利于进一步提升视觉定位精度。
[0086]
在一个具体的实施场景中,预设条件可以设置为:定位损失不小于预设阈值,也就是说,当定位损失不小于预设阈值时,可以认为位姿优化效果仍而欠佳,此时可以进行循环迭代,以再次进行位姿优化,而当定位损失小于预设阈值时,可以认为位姿优化效果已经较
优,此时可以结束迭代,并将最新的第二位姿作为最终位姿。预设阈值的具体数值,额可以根据实际应用需要进行设置。例如,在对位姿精度要求较高的情况下,预设阈值可以设置地小一些,在对位姿精度要求相对宽松的情况下,预设阈值可以设置地稍大一些。
[0087]
在一个具体的实施场景中,如图3右上矩形框所示,斜线阴影表示利用最终位姿将面片投影至待定位图像的投影区域,该投影区域与待定位图像中第一建筑能够很好地吻合,故可以认为最终位姿具有较优精度。
[0088]
需要说明的是,本技术视觉定位方法相关公开实施例,可以应用于增强现实、自动驾驶、城市定位等领域。此外,在利用本技术公开实施例进行视觉定位过程中,不仅可以仅通过本技术公开实施例所提供的步骤进行定位,还可以进一步结合slam(simultaneous localization and mapping,即时定位与地图)等算法进行定位,以提升定位能力。
[0089]
上述方案,获取待定位图像及其拍摄位置,并获取拍摄位置处的建筑地图,且待定位图像中拍摄有第一建筑,建筑地图中第二建筑为由面片构成的模型,在此基础上,获取待定位图像中第一建筑的第一点云,并获取建筑地图中第二建筑的第二点云,以及基于第一点云和第二点云,分析得到第一位姿,从而基于第一建筑的第一轮廓优化第一位姿,得到待定位图像的最终位姿,一方面由于仅需建筑地图即可实现位姿估计,而建筑地图中第二建筑又是由面片构成的模型,即无需构建包含纹理信息的稠密模型,从而可以大大降低地图构建成本并大大提升向大规模场景扩展的能力,另一方面由于无需纹理信息,即对纹理特征并不敏感,从而也无需频繁地更新模型,有利于减少资源占用。故此,能够提升视觉定位向大规模场景扩展的能力,并减少其资源占用。
[0090]
请参阅图6,图6是特征提取一实施例的流程示意图。需要说明的是,本公开实施例中,在待处理三维点为第一三维点的情况下,最终特征表示为第一特征表示,在待处理三维点为第二三维点的情况下,最终特征表示为第二特征表示。具体而言,本公开实施例可以包括如下步骤:
[0091]
步骤s61:将若干待处理三维点的初始特征表示进行下采样编码,得到若干采样三维点的局部特征表示和空间位置信息。
[0092]
在一个实施场景中,请结合参阅图7,图7是特征提取模型一实施例的框架示意图。如图7所示,为了提升特征提取效率,可以采用特征提取模型提取得到最终特征表示。进一步地,特征提取模型可以包括编码网络,编码网络用于执行下采样编码。
[0093]
在一个具体的实施场景中,编码网络可以包括第一数值层稀疏三维卷积层。需要说明的是,第一数值可以根据实际应用需要进行设置,如可以设置为2层、3层、4层等等,在此不做限定。此外,稀疏三维卷积层的具体处理过程,可以参阅前述公开实施例中相关描述,在此不再赘述。
[0094]
在一个具体的实施场景中,需要说明的是,在下采样编码过程中,随着网络深度的增加,三维点也将变得稀疏,即一个三维点能够包含多个待处理三维点的特征信息,可以认为下采样编码所得到的采样三维点其感受野有所增加,故能够有效提取出点云局部几何信息。
[0095]
在一个具体的实施场景中,待处理三维点的初始特征表示可以根据需要进行设置。例如,可以赋值为全1向量,在此不做限定。
[0096]
在一个具体的实施场景中,空间位置信息具体可以表示为(x,y,z)形式的三维坐
标,在此不做限定。
[0097]
在一个具体的实施场景中,请继续结合参阅图7,以编码网络包括两层稀疏三维卷积层为例,在经第一层稀疏三维卷积层下采样编码之后,可以得到较为稀疏的采样三维点的局部特征表示(如图7中经第一层稀疏三维卷积层之后各个小立方体所示),再经过第二层稀疏三维卷积层下采样编码,可以得到更为稀疏的采样三维点的局部特征表示(如图7中经第二层稀疏三维卷积之后各个小立方体所示)。
[0098]
步骤s62:对于各个采样三维点,将采样三维点及其参考三维点的局部特征表示进行第一融合,得到第一融合表示。
[0099]
本公开实施例中,参考三维点基于空间位置信息从若干采样三维点中选择得到。例如,可以基于空间位置信息,度量各个采样三维点两两之间的空间距离,并对于每一采样三维点而言,可以将其之外的采样三维点作为候选三维点,并选择与其之间的空间距离满足预设条件的候选三维点作为其对应的参考三维点。具体地,按照空间距离由近及远的顺序将其他采样三维点进行排序,则预设条件可以设置为位于预设序位之前,如前三位、前四位等。
[0100]
在一个实施场景中,为了尽可能地降低深度间隔对距离度量的影响,可以以建筑地图在拍摄位置处与参考平面相交的直线为中轴线,建立用于投影三维点的投影圆柱,且该参考平面平行于建筑地图的地面,并将各个采样三维点分别投影至投影圆柱的侧面,得到对应的投影三维点,以及基于投影三维点在侧面的曲面距离,得到对应采样三维点之间的空间距离。上述方式,通过投影能够有利于尽可能地消除深度间隔对距离度量造成的影响,从而能够提升无向图的准确性,有利于提升特征融合的准确性,进而能够有利于进一步提升特征表示的准确性。
[0101]
在一个具体的实施场景中,上述中轴线与参考平面之间的夹角可以设置为80度、85度等,在此不做限定。需要说明的是,为了进一步尽可能地消除深度间隔对距离度量的影响,该中轴线与拍摄位置处地面法线的夹角可以设置地尽可能小一些,如可以设置为2度、1度等,甚至还可以直接以建筑地图在拍摄位置处的地面法线为中轴线,即中轴线与参考平面之间的夹角为90度。此外,参考平面可以是在拍摄位置处任意一个与地面平行的平面,当然参考平面也可以是拍摄位置处的地面本身,在此不做限定。
[0102]
在一个具体的实施场景中,为了便于曲面距离的计算,可以将投影圆柱的直径设置地尽可能地大一些,从而可以采用投影三维点之间的欧氏距离作为曲面距离。
[0103]
在一个具体的实施场景中,可以以前述中轴线上各个点为投影起点,以径向方向作为投影方向进行投影,得到各个采样三维点对应的投影三维点。也就是说,可以将中轴线位置处视为设有线光源,并基于该线光源对各个采样三维点进行投影。
[0104]
在一个实施场景中,如前所述,为了提升特征提取效率,可以采样特征提取模型提取得到最终特征表示,且特征提取模型可以包括图神经网络,且图神经网络用于执行第一融合。
[0105]
在一个具体的实施场景中,图神经网络可以包括第二数值层图卷积层,需要说明的是,第二数值可以根据实际应用需要进行设置,如可以设置为2层、3层、4层等等,在此不做限定。
[0106]
在一个具体的实施场景中,可以将各个采样三维点分别作为当前三维点,并将当
前三维点之外的采样三维点作为候选三维点,在此基础上,可以选择与当前三维点之间的空间距离满足预设条件的候选三维点,作为当前三维点对应的参考三维点,且空间距离是基于空间位置信息计算得到的。关于空间距离的计算方式以及预设条件的设置方式,可以参阅前述相关描述,在此不再赘述。在此基础上,可以进一步基于各个采样三维点及其对应的参考三维点,构建无向图,且如图7所示,无向图中节点表示采样三维点的局部特征表示,且代表采样三维点及其参考三维点的局部特征表示的节点之间存在连接边,并可以基于无向图进行特征融合,得到各个采样三维点的第一融合表示。上述方式,基于各个采样三维点的空间位置信息构建出无向图,并在无向图的基础上进行特征融合,有利于提升特征融合的效率和准确性。
[0107]
在一个具体的实施场景中,对于每一层图卷积层而言,为了便于描述,可以将采样三维点n的局部特征表示记为xn,将采样三维点n经图卷积层进行特征融合之后的第一融合表示记为x
′n,采样三维点n对应的参考三维点的集合可以记为a(n),且属于该集合a(n)中的第j个参考三维点可以记为xj,则经一层图卷积层进行特征融合之后的第一融合表示x
′n可以表示为:
[0108][0109]
上述公式(4)中,|a(n)|表示采样三维点n对应的参考三维点的集合中参考三维点的总数,且w0、w1表示图卷积层的网络参数,其具体数值可以在特征提取模型的训练过程进行调整。需要说明的是,在图神经网络包括多层图卷积层的情况下,第i层图卷积层的输入特征可以为第i-1层图卷积层的输出特征。此外,如公式(4)所示,图卷积可以基于消息传递范式在空间上聚合和更新特征,其能够有效地将全局关系作为补充特征进行编码,并将信息经由连接边传递。
[0110]
在一个具体的实施场景中,请结合参阅图7,以图神经网络包括两层图卷积层为例,图7中圆点即表示节点,连接圆点的边即表示连接边。通过构建多层图卷积层能够充分提取点云全局关系信息。
[0111]
步骤s63:基于若干采样三维点的第一融合表示进行上采样解码,得到若干待处理三维点的最终特征表示。
[0112]
在一个实施场景中,请结合参阅图7,特征提取模型还可以进一步包括解码网络,且解码网络用于上采样解码。
[0113]
在一个具体的实施场景中,解码网络可以包括第一数值层稀疏三维转置卷积层。需要说明的是,第一数值可以根据实际应用需要进行设置,如可以设置为2层、3层、4层等等,在此不做限定。此外,稀疏三维转置卷积层的具体处理过程,可以参阅其技术细节,在此不再赘述。
[0114]
在一个实施场景中,为了进一步提升特征表示的准确性,还可以将采样三维点的局部特征表示和第一融合表示进行第二融合,得到第二融合表示,再将若干采样三维点的第二融合表示进行上采样解码,得到若干待处理三维点的最终特征表示。上述方式,在上采样解码过程中同时参考下采样编码所得到的局部特征表示,能够融合浅层特征信息和深层语义信息,有利于进一步提升特征表示的准确性。
[0115]
在一个具体的实施场景中,上述第二融合可以包括但不限于取平均值、拼接等,在
此不做限定。
[0116]
在一个具体的实施场景中,请结合参阅图7,如图7所示,在编码网络具有第一数值层稀疏三维卷积层且解码网络包括第一数值层稀疏三维转置卷积层的情况下,为了便于描述,可以将第一数值记为n,则第i层稀疏三维卷积层与第n 1-i层稀疏三维转置卷积层存在跳跃连接(skip connection),以实现上述第二融合。以n为2为例,第1层稀疏三维卷积层与第2层稀疏三维转置卷积层之间可以存在跳跃连接,第2层稀疏三维卷积层与第1层稀疏三维转置卷积层之间可以存在跳跃连接。其他情况可以以此类推,在此不再一一举例。
[0117]
此外,需要说明的是,特征提取模型在训练过程中,可以采用基于边缘的对比损失进行约束,具体可以表示为:
[0118][0119]
上述公式(5)中,fi表示正例对p

的第一个特征,f

和f-对应的正匹配和负匹配,正例对和负例对的边缘值分别表示为m

、m-,d(.,.)表示计算欧氏距离。关于对比损失的具体计算过程,可以参阅对比损失的相关技术细节,在此不再赘述。需要说明的是,可以在一个特定范围内(如,距离在3米之内)随机选择一个k最近邻点作为正匹配,并相应地在该范围外(如,距离在12米之外)随机选择一个点作为负匹配,通过上述对比损失的约束,能够有利于确保特征表示的唯一性。此外,为了提升特征提取模型的性能,在训练之前,还可以先根据预设的体素大小对样本三维点进行下采样,然后应用随机旋转和平移来增强点分布,以实现样本增强的目的。此外,与位姿优化类似地,在训练优化特征提取模型过程中,也可以采用adam优化器结合对比损失进行模型优化,其学习率具体可以设置为1
×
10-4
等,在此不做限定。
[0120]
上述方案,将若干待处理三维点的初始特征表示进行下采样编码,得到若干采样三维点的局部特征表示和空间位置信息,对于各个采样三维点,将采样三维点及其参考三维点的局部特征表示进行第一融合,得到第一融合表示,且参考三维点基于空间位置信息从若干采样三维点中选择得到,在此基础上,再基于若干采样三维点的第一融合表示进行上采样解码,得到若干待处理三维点的最终特征表示,且在待处理三维点为第一三维点的情况下,最终特征表示为第一特征表示,在待处理三维点为第二三维点的情况下,最终特征表示为第二特征表示,一方面通过下采样编码能够提取出各个采样三维点的点云局部几何信息,另一方面通过基于空间位置信息选择采样三维点的参考三维点,并将采样三维点及其参考三维点的局部特征表示进行第一融合,能够提取出各个采样三维点的点云全局关系信息,从而结合两者并通过上采样解码能够提取出各个待处理三维点的点云局部几何信息和点云全局关系信息,有利于提升特征表示的准确性。
[0121]
请参阅图8,图8是本技术视觉定位装置80一实施例的框架示意图。视觉定位装置80包括:信息获取模块81、点云获取模块82、位姿分析模块83和位姿优化模块84,信息获取模块81用于获取待定位图像及其拍摄位置,并获取拍摄位置处的建筑地图;其中,待定位图像中拍摄有第一建筑,且建筑地图中第二建筑为由面片构成的模型;点云获取模块82用于获取待定位图像中第一建筑的第一点云,并获取建筑地图中第二建筑的第二点云;位姿分析模块83用于基于第一点云和第二点云,分析得到第一位姿;位姿优化模块84用于基于第一建筑的第一轮廓优化第一位姿,得到待定位图像的最终位姿。
[0122]
上述方案,一方面由于仅需建筑地图即可实现位姿估计,而建筑地图中第二建筑又是由面片构成的模型,即无需构建包含纹理信息的稠密模型,从而可以大大降低地图构建成本并大大提升向大规模场景扩展的能力,另一方面由于无需纹理信息,即对纹理特征并不敏感,从而也无需频繁地更新模型,有利于减少资源占用。故此,能够提升视觉定位向大规模场景扩展的能力,并减少其资源占用。
[0123]
在一些公开实施例中,第一点云包括若干第一三维点,第二点云包括若干第二三维点;位姿分析模块83包括特征提取子模块,用于提取各个第一三维点的第一特征表示,并提取各个第二三维点的第二特征表示;其中,第一特征表示和第二特征表示均包含点云局部几何信息和点云全局关系信息;位姿分析模块83包括特征匹配子模块,用于基于第一特征表示和第二特征表示进行特征匹配,得到第一位姿。
[0124]
在一些公开实施例中,特征提取子模块包括编码单元,用于将若干待处理三维点的初始特征表示进行下采样编码,得到若干采样三维点的局部特征表示和空间位置信息;特征提取子模块包括第一融合单元,用于对于各个采样三维点,将采样三维点及其参考三维点的局部特征表示进行第一融合,得到第一融合表示;其中,参考三维点基于空间位置信息从若干采样三维点中选择得到;特征提取子模块包括解码单元,用于基于若干采样三维点的第一融合表示进行上采样解码,得到若干待处理三维点的最终特征表示;其中,在待处理三维点为第一三维点的情况下,最终特征表示为第一特征表示,在待处理三维点为第二三维点的情况下,最终特征表示为第二特征表示。
[0125]
在一些公开实施例中,解码单元包括第二融合子单元,用于将采样三维点的局部特征表示和第一融合表示进行第二融合,得到第二融合表示;解码单元包括上采样子单元,用于将若干采样三维点的第二融合表示进行上采样解码,得到若干待处理三维点的最终特征表示。
[0126]
在一些公开实施例中,第一融合单元包括第一选择子单元,用于将各个采样三维点分别作为当前三维点,并将当前三维点之外的采样三维点作为候选三维点;第一融合单元包括第二选择子单元,用于选择与当前三维点之间的空间距离满足第一条件的候选三维点,作为当前三维点对应的参考三维点;其中,空间距离是基于空间位置信息计算得到的;第一融合单元包括图构建子单元,用于基于各个采样三维点及其对应的参考三维点,构建无向图;其中,无向图中节点表示采样三维点的局部特征表示,且代表采样三维点及其参考三维点的局部特征表示的节点之间存在连接边;第一融合单元包括特征融合子单元,用于基于无向图进行特征融合,得到各个采样三维点的第一融合表示。
[0127]
在一些公开实施例中,第一融合单元包括圆柱建立子单元,用于以建筑地图在拍摄位置处相较于参考平面的直线为中轴线,建立用于投影三维点的投影圆柱,且参考平面与建筑地图的地面平行;第一融合单元包括点投影子单元,用于将各个采样三维点分别投影至投影圆柱的侧面,得到对应的投影三维点;第一融合单元包括距离度量子单元,用于基于投影三维点在侧面的曲面距离,得到对应采样三维点之间的空间距离。
[0128]
在一些公开实施例中,特征表示是由特征提取模型提取得到的,特征提取模型包括编码网络、图神经网络和解码网络,且编码网络包括第一数值层稀疏三维卷积层,图神经网络包括第二数值层图卷积层,解码网络包括第一数值层稀疏三维转置卷积层;其中,编码网络用于执行下采样编码,图神经网络用于执行第一融合,解码网络用于执行上采样解码。
[0129]
在一些公开实施例中,位姿优化模块84包括可微分渲染子模块,用于基于第一位姿,对建筑地图进行可微分渲染,得到与第一位姿对应的地图视角下第二建筑的第二轮廓;位姿优化模块84包括损失计算子模块,用于基于第一轮廓与第二轮廓之间的差异,得到定位损失;位姿优化模块84包括位姿调整子模块,用于基于定位损失,调整第一位姿,得到最终位姿。
[0130]
在一些公开实施例中,第一轮廓以预设尺寸的第一掩码图表示,第二轮廓以预设尺寸的第二掩码图表示,且预设尺寸为待定位图像的图像尺寸;损失计算子模块包括权重度量单元,用于获取待定位图像中各个像素位置处的损失权重;其中,属于建筑物或天空的像素位置具有第一权重,不属于建筑物、天空中任一者的像素位置具有第二权重,且第一权重大于第二权重;损失计算子模块包括子损失计算单元,用于对于各个像素位置,获取像素位置分别在第一掩码图中的第一像素值和在第二掩码图中的第二像素值,并获取第一像素值和第二像素值之间的像素差值,以及基于像素位置处的像素差值和损失权重,得到像素位置对应的子损失;损失计算子模块包括子损失统计单元,用于基于各个像素位置对应的子损失,得到定位损失。
[0131]
在一些公开实施例中,位姿调整子模块包括调整单元,用于基于定位损失,调整第一位姿,得到第二位姿;位姿调整子模块包括迭代单元,用于响应于定位损失满足第二条件,将第二位姿作为新的第一位姿,并重新执行基于第一位姿,对建筑地图进行可微分渲染的步骤以及后续步骤,直至定位损失不满足第二条件为止,以及将第二位姿作为最终位姿。
[0132]
在一些公开实施例中,点云获取模块82包括用于获取第一点云的第一获取子模块,其包括第一深度单元和第一投影单元,第一深度单元用于获取待定位图像中属于第一建筑的第一像素点的第一深度;第一投影单元用于基于第一像素点的第一深度进行反投影,得到第一点云。
[0133]
在一些公开实施例中,点云获取模块82包括用于获取第二点云的第二获取子模块,其包括第二深度单元和第二投影单元,第二深度单元用于基于建筑地图在当前视角下可观测到的面片,得到深度图像;第二投影单元用于基于深度图像中各个第二像素点的第二深度进行反投影,得到第二点云。
[0134]
请参阅图9,图9是本技术电子设备90一实施例的框架示意图。电子设备90包括相互耦接的存储器91和处理器92,处理器92用于执行存储器91中存储的程序指令,以实现上述任一视觉定位方法实施例的步骤。在一个具体的实施场景中,电子设备90可以包括但不限于:微型计算机、服务器,此外,电子设备90还可以包括笔记本电脑、平板电脑、手机等移动设备,在此不做限定。
[0135]
具体而言,处理器92用于控制其自身以及存储器91以实现上述任一视觉定位方法实施例的步骤。处理器92还可以称为cpu(central processing unit,中央处理单元)。处理器92可能是一种集成电路芯片,具有信号的处理能力。处理器92还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器92可以由集成电路芯片共同实现。
[0136]
上述方案,一方面由于仅需建筑地图即可实现位姿估计,而建筑地图中第二建筑又是由面片构成的模型,即无需构建包含纹理信息的稠密模型,从而可以大大降低地图构建成本并大大提升向大规模场景扩展的能力,另一方面由于无需纹理信息,即对纹理特征并不敏感,从而也无需频繁地更新模型,有利于减少资源占用。故此,能够提升视觉定位向大规模场景扩展的能力,并减少其资源占用。
[0137]
请参阅图10,图10为本技术计算机可读存储介质100一实施例的框架示意图。计算机可读存储介质100存储有能够被处理器运行的程序指令101,程序指令101用于实现上述任一视觉定位方法实施例的步骤。
[0138]
上述方案,一方面由于仅需建筑地图即可实现位姿估计,而建筑地图中第二建筑又是由面片构成的模型,即无需构建包含纹理信息的稠密模型,从而可以大大降低地图构建成本并大大提升向大规模场景扩展的能力,另一方面由于无需纹理信息,即对纹理特征并不敏感,从而也无需频繁地更新模型,有利于减少资源占用。故此,能够提升视觉定位向大规模场景扩展的能力,并减少其资源占用。
[0139]
本公开涉及增强现实领域,通过获取现实环境中的目标对象的图像信息,进而借助各类视觉相关算法实现对目标对象的相关特征、状态及属性进行检测或识别处理,从而得到与具体应用匹配的虚拟与现实相结合的ar效果。示例性的,目标对象可涉及与人体相关的脸部、肢体、手势、动作等,或者与物体相关的标识物、标志物,或者与场馆或场所相关的沙盘、展示区域或展示物品等。视觉相关算法可涉及视觉定位、slam、三维重建、图像注册、背景分割、对象的关键点提取及跟踪、对象的位姿或深度检测等。具体应用不仅可以涉及跟真实场景或物品相关的导览、导航、讲解、重建、虚拟效果叠加展示等交互场景,还可以涉及与人相关的特效处理,比如妆容美化、肢体美化、特效展示、虚拟模型展示等交互场景。
[0140]
可通过卷积神经网络,实现对目标对象的相关特征、状态及属性进行检测或识别处理。上述卷积神经网络是基于深度学习框架进行模型训练而得到的网络模型。
[0141]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0142]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0143]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0144]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备
(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
转载请注明原文地址:https://win.8miu.com/read-949988.html

最新回复(0)