一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

定位方法及装置、设备、存储介质与流程

2022-02-20 00:39:49 来源:中国专利 TAG:


1.本技术涉及定位领域,特别是涉及一种定位方法及装置、设备、存储介质。


背景技术:

2.目前,定位方式主要有视觉惯性定位。其中,视觉惯性定位的方式主要通过设备拍摄到的图像之间的图像信息,构建三维地图,然后确定设备的位置。其中,该定位方式比较依赖外部环境,在动态、光照剧烈变化、弱纹理、远景和遮挡等情况下,视觉定位无法很好正常工作。具体地,在这种情况下,设备拍摄得到的图像中提取得到的信息较少,则无法很好地进行定位。


技术实现要素:

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.图1是本技术定位方法一实施例的流程示意图;
43.图2是本技术定位方法一实施例中示出步骤s13的流程示意图;
44.图3是本技术定位方法一实施例的另一流程示意图;
45.图4是本技术定位装置一实施例的结构示意图;
46.图5是本技术电子设备一实施例的结构示意图;
47.图6是本技术计算机可读存储介质一实施例的结构示意图。
具体实施方式
48.下面结合说明书附图,对本技术实施例的方案进行详细说明。
49.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
50.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
51.请参阅图1,图1是本技术定位方法一实施例的流程示意图。具体而言,可以包括如下步骤:
52.步骤s11:获取第一历史图像帧的拍摄时间至目标图像帧的拍摄时间的拍摄期间测量得到的若干惯性测量数据。
53.其中,目标图像帧和第一历史图像帧可以是由待定位对象获取,也可以是由与待定位对象的位置相对固定的摄像组件拍摄得到,即摄像组件的位姿情况可以表示所述待定位对象的位姿情况。当然,惯性测量数据同样可以是由待定位对象获取,也可以是由与待定位对象的位置相对固定的惯性传感器获取得到,即惯性传感器的位姿情况可以表示所述待定位对象的位姿情况。
54.待定位对象可以是设备,也可以是任意具有生命的动物体。例如,待定位对象可以是车辆、机器人、人、小猫、小狗等。可以理解的是,当待定位对象为设备时,上述摄像组件和惯性传感器可以为该设备中的组件,或者为该设备以外的组件。
55.惯性测量数据指的是惯性传感器测量得到的数据。其中,惯性传感器的数量可以是多个,例如,惯性传感器可以是加速度计,也可以是陀螺仪等。待定位对象与惯性传感器之间的位置相对固定。即,惯性传感器在目标时间段内测量得到的惯性测量数据可以代表
待定位对象在目标时间段内的惯性测量数据。其中,若目标图像帧和第一历史图像帧之间包括多帧图像时,惯性测量数据则包括各相邻图像帧的拍摄时间之间的惯性测量数据。
56.步骤s12:基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息。
57.其中,位姿变化信息可以包括第一历史图像帧与目标图像帧之间的相对位移,也可以包括二者之间的相对旋转。
58.本公开实施例中,位姿变化信息包括相对位移和相对旋转为例。
59.步骤s13:基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿,其中,至少一个参考因子包括若干惯性测量数据。
60.具体地,可以使用第一历史图像帧的位姿信息以及第一历史图像帧与目标图像帧之间的位姿变化信息,确定目标图像帧对应的第一位姿。其中,可以认为目标图像帧的位姿为拍摄目标图像帧时待定位对象的位姿。
61.然后,使用至少一个参考因子,对目标图像帧对应的第一位姿进行优化,得到优化后的目标图像帧对应的位姿。
62.当然,若目标图像帧与第一历史图像帧之间包括若干图像帧时,同样可通过至少一个参考因子,对第一位姿进行优化,从而确定中间帧的位姿。这里的中间帧指的是第一历史图像帧与目标图像帧之间的其中一帧。
63.上述方案,通过获取第一历史图像帧至目标图像帧之间的惯性测量数据,并依据该惯性测量数据进行定位处理,即可获取这两帧图像之间的位姿变化信息,进而可以根据该位姿变化信息得到目标图像帧的位姿信息。另外,在获取位姿变化信息之后,再结合参考因子,确定目标图像帧的位姿,由此,可以获取得到更为准确的位姿。上述过程主要利用惯性测量数据进行位姿变化的计算进而实现定位,故减少了视觉方面对定位的不良影响,从而减少了因为外部环境等因素造成定位准确度较低的情况。
64.另,一般的视觉惯性定位方法中需要计算预积分,因此需要对惯性传感器的偏置量等参数进行精确的标定,而本公开实施例提供的技术方案只需要对惯性测量数据进行定位处理,无需预积分,因此,无需对惯性传感器的偏置量等参数进行精确的标定,简化了定位流程。
65.一些公开实施例中,对若干惯性测量数据进行定位处理是由定位模型执行的。其中,获取第一历史图像帧与目标图像帧之间的位姿变化信息的方式可以是:
66.利用惯性测量数据以及参考运动状态信息,确定本次定位处理得到的最终运动状态信息。然后,基于本次定位处理得到的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息。该位姿变化信息可以认为是待定位对象在第一历史图像帧的拍摄时间至目标图像帧的拍摄时间之间的位置变化和/或姿态变化。两个时间点之间的位置变化具体可以是二者之间的相对位移。姿态变化具体可以是待定位对象朝向的变化。
67.其中,参考运动状态信息为历史定位处理得到的最终运动状态信息。例如,本次定位处理为对待定位对象执行的第四次定位处理,则历史定位处理可以是对同一待定位对象执行的第三次定位处理,还可以是第二次和第三次的结合,也还可以是本次以前所有次定位处理的结合。其中,本公开实施例选择将上一次定位处理中获取得到的最终运动状态信息,作为本次定位处理过程中的参考运动状态信息。本次定位处理得到的最终运动状态信
息能够用于推导待定位对象在第一历史图像帧的拍摄时间点至目标图像帧的拍摄时间点之间的运动。同理,参考运动状态信息能够用于确定历史定位处理中对应第一历史图像帧的拍摄时间点至对应的目标图像帧的拍摄时间点之间的运动。本次定位处理和历史定位处理对应的最终运动状态信息具体可以包括待定位对象在对应时间段内各个时刻的运动参数。例如,运动参数可以包括待定位对象在各个时刻的加速度和角速度,或待定位对象在各个时刻的运动速度和运动方向等。一些应用场景中,在待定位对应为人类的情况下,最终运动状态信息可以认为是用于表示基于惯性测量数据得到的加速度和角速度的一个局部窗口,可以类似于人类运动的加速度和角速度,但因为各种因素的作用,其可能带有一定的噪声。
68.其中,对若干惯性测量数据进行定位处理是由定位模型执行的。具体地,利用惯性测量数据以及参考运动状态信息,确定本次定位处理得到的最终运动状态信息包括以下步骤:基于惯性测量数据,得到第一历史图像帧至目标图像帧之间的初始运动状态信息,再对参考运动状态信息与初始运动状态信息进行融合,得到该最终运动状态信息。初始运动状态信息具体可以包括待定位对象在第一历史图像帧的拍摄时间点至目标图像帧的拍摄时间点之间各个时刻的运动参数。例如,初始运动状态信息可以包括待定位对象在各个时刻的加速度和角速度,或待定位对象在各个时刻的运动速度和运动方向等。具体地,初始运动状态信息的形式可以是用于描述待定位对象在目标时间段内的运动的隐层状态矩阵。其中,初始运动状态信息可以用于推导待定位对象在目标时间段内的运动。但因为传感器的偏置等因素的影响,导致获取得到的初始运动状态含有噪声,所以若仅使用初始运动状态信息推导待定位对象在目标时间段内的运动,或许会存在一定的误差。
69.具体地,最终运动状态信息和参考运动状态信息的形式也可以是用于描述待定位对象在对应时间段内运动的隐层状态矩阵。本公开实施例认为待定位对象的运动是连续且有规律的,因此,通过用于表示待定位对象在对应时间段内的运动的初始运动状态信息与用于表示待定位对象在历史定位处理对应的时间段内运动的参考运动状态信息进行融合,以估计待定位对象在本次定位处理对应时间段内更准确的最终运动状态信息,从而可以根据该最终运动状态信息估计待定位对象在对应时间段内的运动。
70.其中,定位模型包括第一子网络和第二子网络以及第三子网络。其中,第一子网络可以是残差网络,如resnet18网络。第二子网络可以是lstm(long short-term memory,长短期记忆网络)。其中,第一子网络可以用于执行基于惯性测量数据,得到第一历史图像帧至目标图像帧之间的初始运动状态信息的步骤。第二子网络用于执行对参考运动状态信息与初始运动状态信息进行融合,得到该最终运动状态信息的步骤,第三子网络用于执行基于本次定位处理得到的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息的步骤。通过结合上一次定位处理对应的最终运动状态信息,使得此次定位处理得到的最终运动状态信息更为准确。
71.本公开实施例中,获取到若干惯性测量数据之后,定位方法还包括以下步骤:
72.对惯性测量数据进行预处理。其中,经预处理的惯性测量数据用于进行定位处理。预处理包括将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。其中,预处理还包括对惯性测量数据进行固定帧率插值,并将插值后的数据进行缓存。通过对惯性测量数据进行预处理,使得得到的位姿变化信息更为准确。
73.一些公开实施例中,定位方法由定位系统执行。在执行步骤s13之前,还包括以下步骤:判断定位系统的参数是否已初始化。其中,参数包括重力方向、惯性偏置量中的至少一者。响应于参数已初始化,则执行步骤s13。响应于参数未初始化,则选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,然后再执行上述步骤s13。其中,状态包括运动状态和静止状态。其中,选择与目标图像帧对应的状态匹配的初始化方式以前,先确定目标图像帧对应的状态。其中,确定目标图像帧对应的状态的方式可以是若连续若干帧图像中跟踪到的二维特征在图像平面上的平均位移低于第一阈值,和/或惯性测量数据的标准差低于第二阈值,则认为目标图像帧对应的状态为静止状态,否则,认为目标图像帧对应的状态为运动状态。
74.静止状态对应的初始化方式为静止初始化,而运动状态对应的初始化方式为运动初始化。其中,静止初始化方式包括将初始平移设置为0,初始局部重力为最近两帧图像之间的加速度计测量值的平均值。初始旋转与局部初始重力对齐。初始陀螺仪偏置是最近两帧图像之间陀螺仪测量值的平均值。初始加速度偏置设置为0。最近两帧指的是目标图像帧以及目标图像帧的前一帧。
75.运动状态对应的初始化为仅通过视觉定位获取没有尺寸的姿势,然后将惯性测量数据预积分结果与视觉定位的结果进行对齐以恢复尺寸、速度、重力和惯性偏置量。
76.通过在定位系统未经初始化的情况下,选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,使得初始化得到的参数更准确。
77.一些公开实施例中,请同时参见图2,图2是本技术定位方法一实施例中示出步骤s13的流程示意图。如图2所示,上述步骤s13包括以下步骤:
78.步骤s131:基于位姿变化信息,确定目标图像帧的第一位姿。
79.其中,目标图像帧的第一位姿表示待定位对象在目标图像帧的拍摄时刻的位姿。本公开实施例中,目标图像和第一历史图像帧是由待定位对象相对固定的拍摄装置拍摄得到,惯性测量数据是由与待定位对象相对固定的惯性测量装置测量得到的。通过由与待定位对象相对固定的拍摄装置拍摄得到目标图像帧以及与待定位对象相对固定的惯性测量装置得到惯性测量数据,因此,可以实现对任意的对象进行定位。
80.具体地,位姿变化信息包括至少一种位姿变化量。其中,至少一种位姿变化量包括位置变化量以及姿态变化量。获取目标图像帧的第一位姿的方式可以是利用目标图像帧对应的位姿变化量,确定目标图像帧的第一位姿。具体地,第一历史图像帧的位姿已知,基于第一历史图像帧与目标图像帧之间的位姿变化量,即可得到目标图像帧的第一位姿。通过确定位置变化量以及姿态变化量,使得确定的第一位姿更准确。
81.步骤s132:利用位姿变化信息以及至少一个参考因子,构建本次定位对应的总能量关系。
82.其中,本次定位对应的总能量关系用于确定目标图像帧的需优化的位姿偏差。
83.可选地,分别利用每个参考因子,确定参考因子对应的测量能量关系。以及,利用位姿变化信息确定运动先验能量关系。最后,基于运动先验能量关系以及每个参考因子对应的测量能量关系,构建本次定位对应的总能量关系。
84.一些公开实施例中,获取若干惯性测量数据的预积分信息。然后利用若干惯性测量数据的预积分信息,构建惯性测量能量关系。
85.其中,基于惯性测量数据的预积分信息,构建定惯性测量能量关系的方式可参见一般公知的技术。
86.此处简单列举获取惯性测量能量关系cu的方式:
[0087][0088]
其中,hk是上一次定位过程对应的雅可比矩阵,是本次定位关于位姿的雅可比矩阵,是本次定位关于惯性偏置量的雅可比矩阵,是上一次定位对应的位姿偏差,是本次定位对应的位姿偏差,为本次定位对应的惯性偏置量对应的偏差。∑u是惯性测量能量关系对应的协方差矩阵,r
uk 1
是惯性传感器测量残差。其中,获取上述各参数的方式可参见一般公知的技术,此处不再赘述。
[0089]
其中,获取运动先验能量关系的方式可以是:
[0090]
利用至少一次定位对应的若干参数,确定运动先验能量关系。至少一次定位为多次定位。多次为两次及以上。其中,至少一次定位包括本次定位,每次定位对应的若干参数包括定位过程中得到的位姿变化量、定位对应的起始测量时刻与结束测量时刻之间的位置差以及起始测量时刻对应的起始姿态信息。其中,起始测量时刻与结束测量时刻之间的位置差指的是待定位对象在起始测量时刻的位置与待定位对象在结束测量时刻之间的位置之差。起始测量时刻的起始姿态信息指的是待定位对象在起始测量时刻的朝向。
[0091]
通过获取历史定位的位姿变化量以及若干惯性测量数据的测量期间的位置差,确定运动先验能量关系,使得构建的运动先验能量关系更准确,进而得到优化的位姿更准确。
[0092]
其中,起始图像帧的起始姿态信息包括偏航角信息。一般惯性测量数据并非以偏航角的形式呈现,通过将惯性测量数据转换为四元数形式。其中,若以xyz坐标轴的方式转换得到的偏航角若为90
°
,则调整坐标系为yxz坐标轴的方式重新获取偏航角信息。通过使用偏航角信息构建运动先验能量,使得构建得到的运动先验能量关系更准确。
[0093]
可选地,位姿变化信息还包括位姿变化量的确定度表征信息。其中,确定度表征信息可以用于表示确定度,也可用于表示不确定度。基于每次定位过程中得到的确定度表征信息,得到对应次定位的权重。其中,定位的权重是基于定位对应的确定度表征信息的预设倍数确定得到,其中,预设倍数为自然数。具体地,该权重可以为基于预设倍数的确定度表征信息变换得到的协方差矩阵。可选地,在确定度表征信息用于表示确定度时,预设倍数一般小于或等于1,例如预设倍数可以是0.1等,
[0094]
当然,这仅为举例,在其他实施例中,预设倍数还可以大于1。在确定度表征信息用于表示不确定度时,预设倍数一般大于或等于1,例如预设倍数可以是10等,当然,这仅为举例,在其他实施例中,预设倍数还可以小于1。
[0095]
利用至少一次定位的权重以及若干参数,确定运动先验能量关系。可选地,可以先确定各次定位的运动先验能量关系,再基于各次定位的权重,将各次定位的运动先验能量关系进行结合,得到最终的运动先验能量关系。通过确定度表征信息,得到对应的权重,使得构建的运动先验能量关系更准确。
[0096]
具体地,获取运动先验能量关系cn的方式可以是:
[0097][0098]
其中,每次定位对应的若干惯性测量数据的起始测量时刻为i时刻、结束测量时刻为j时刻,pi和pj分别表示第i时刻和第j时刻对应的待定位对象的位置、d
ij
表示定位模型输出的第i时刻和第j时刻之间的位姿变化量。表示第i时刻对应的目标对象的偏航角矩阵。t表示转置。∑
ij
表示定位模型对应的协方差矩阵(权重),该协方差矩阵由确定度表征信息获取得到。具体地,确定度表征信息为三维向量,三维向量中的三个元素为该协方差矩阵的对角元素的对数。可选地,可以将确定度表征信息的预设倍数作为该协方差矩阵的对角元素的对数。其中,此处确定度表征信息用于表示不确定度,该确定度表征信息可以是原始的确定度表征信息,也可以是扩大预设倍数后的表征信息。
[0099]
其中,每次定位对应的第一历史图像帧与目标图像帧中,拍摄最早的图像帧为起始图像帧,拍摄最晚的图像帧为结束图像帧。本公开实施例中,认为第一历史图像帧即为起始图像帧,目标图像帧即为结束图像帧。以及,位姿变化信息包括至少一种位姿变化量。至少一种位姿变化量包括位置变化量和/或姿态变化量。
[0100]
为减少时间戳误差导致定位精度下降的问题出现,本公开实施例还可提供以下方式,获取更为准确的运动先验能量关系。在获取运动先验能量关系之前,还包括以下步骤:将至少一次定位中的每次定位作为目标定位,基于目标定位对应的若干惯性测量数据的预积分信息、起始图像帧的位姿和结束图像帧的位姿,确定目标定位对应的起始姿态信息、起始测量时刻的位置和结束测量时刻的位置。具体地,若目标定位为历史定位,则目标定位中起始图像帧的位姿和结束图像帧的位姿均可以是优化前的第一位姿,也可以是经优化后的位姿。而目标定位为本次定位时,起始图像帧的位姿和结束图像帧的位姿为优化前的第一位姿。即,若目标定位为上一次定位,则上一次定位中起始姿态信息、起始测量时刻的位置和结束测量时刻的位置可以由上一次定位过程中的若干惯性测量数据的预积分信息、起始图像帧的位姿和结束图像帧的位姿确定。当然,在另一些公开实施例中,可以认为待定位对象在起始测量时刻的位姿与拍摄起始图像帧时的位姿相同,结束测量时刻的位姿与拍摄结束图像帧时的位姿相同。
[0101]
具体地,通过预积分信息以及起始图像帧的位姿、结束图像帧的位姿,确定目标定位对应的起始姿态信息、起始测量时刻和结束测量时刻的位置的具体方式可以是:
[0102][0103][0104][0105]
其中,m表示起始图像帧,n表示结束图像帧。i表示起始测量时刻,j表示结束测量时刻。p
ii
表示起始测量时刻的位置,w表示世界坐标系,例如wp
ii
表示起始测量时刻在世界坐标系下的位置,其他同理。p
ij
表示结束测量时刻的位置,r
ii
表示起始姿态信息。p
im
表示起始图像帧的位置,v
im
表示起始图像帧的速度,δtm表示起始图像帧的拍摄时间与起始测量时刻之间的时间间隔。r
im
表示起始图像帧对应的姿态信息,表示不考虑初速度和重力情况
下,使用起始图像帧和起始测量时刻之间的惯性测量数据进行预积分得到的位置。p
ij
表示结束测量时刻的位置,表示起始图像帧和起始测量时刻之间的惯性测量数据进行预积分得到的姿态,上述三个公式中其他相同符号的不同上下标,可参见上述解析,此处不再赘述。通过时间戳的方式从若干图像帧中选择拍摄时间与i时刻最接近图像帧作为起始图像帧,与j时刻最接近的图像帧作为结束图像帧。
[0106]
由此,得到的最终的运动先验能量关系
[0107][0108]
其中,表示第k 1次定位中的位姿偏差。h表示对应的雅可比矩阵,r表示对应的测量残差。∑n为最终的运动先验能量关系对应的协方差矩阵。该协方差矩阵可以由定位模型输出的确定度表征信息以及预积分信息获取得到。下标的含义参见上述。
[0109]
具体获取的方式∑n可以是:
[0110][0111]
其中,∑
ij
是基于定位模型输出的确定度表征信息的预设倍数确定的协方差矩阵。和分别是j、i时刻预积分对应的协方差矩阵的位姿部分。w表示世界坐标系,t表示转置。下标的含义参见上述。
[0112]
其中,在计算运动先验能量关系中若使用了预积分信息,则可以认为最终得到的运动先验能量关系包含了惯性测量能量关系,因此,可以不必再使用惯性测量能量关系,构建总能量关系。通过预积分信息以及相关图像帧的位姿,确定若干惯性测量数据的起始测量时刻和结束测量时刻的位置,实现对起始测量时刻和结束测量时刻的位置的校正,进而提高运动先验能量关系的准确性。
[0113]
一些公开实施例中,从多次定位中,剔除满足去除条件的定位。其中,去除条件为定位对应的位姿变化量以及位姿变化量的确定度表征信息之间的预设处理结果满足第一预设要求。然后利用经剔除后的剩余次定位对应的若干参数,确定运动先验能量关系。具体地,通过获取位姿变化量对应的马氏距离来去除异常定位。具体地,去除条件可以是在大于阈值。d表示滤波器初步估计的位姿变化量,表示定位模型输出的位姿变化量。其中,h,p表示运动先验能量关系中的测量雅可比矩阵和相应的状态协方差。表示定位系统的状态协方差矩阵,其中,该矩阵由运动先验能量关系以及视觉测量能量关系对应的协方差矩阵融合得到。当然,除了将其剔除,还可采用将运动先验能量关系对应的协方差矩阵放大若干倍用于减轻测量数据不准确的情况,例如放大十倍。通过对参数进行筛选,以剔除异常参数,进而使得获取到的运动先验能量关系更为准确。
[0114]
其中,基于惯性测量能量关系和运动先验能量关系构建的总能量关系可以是:
[0115][0116]
其中,这里的为k 1次定位确定的位姿偏差。hu为惯性测量能量关系中的雅可比矩阵,ru为惯性测量能量关系中的测量残差,hn为运动先验能量关系中的雅可比矩阵,rn为运动先验能量关系中的测量残差。∑n为运动先验能量关系对应的协方差矩阵,∑z为惯性测量能量关系对应的协方差矩阵,可以认为协方差可以是对应关系中的权重。
[0117]
当然,若运动先验能量关系的获取结合了预积分信息,则该总能量关系中可以不包括惯性测量能量关系的相关参数。
[0118]
一些公开实施例中,至少一个参考因子还包括关于目标图像帧和第一历史图像帧的图像信息。可选地,目标图像帧和第一历史图像帧之间包括多帧图像时,则还可包括目标图像帧和第一历史图像帧之间各图像帧的图像信息。除基于位姿变化信息、惯性测量数据以外,还结合图像信息得到目标图像帧的位姿,故能够提高定位精度。
[0119]
其中,分别利用每个参考因子,确定参考因子对应的测量能量关系的方式,包括:利用图像信息,确定图像信息对应的视觉测量能量关系。具体地,利用图像信息,确定图像信息对应的视觉测量能量关系之前,还包括以下步骤:对若干参考图像帧的特征点进行匹配,得到特征点匹配结果。其中,若干参考图像包括至少一次定位过程中的第一历史图像帧和目标图像帧。且至少一次定位包括本次定位。其中,特征点匹配结果包括特征点集合。若一特征点同时存在与两帧参考图像帧中,则该特征点会加入特征点集合。当然,在其他实施例中,只有在特征点同时存在于三帧及以上的参考图像帧中,才将其加入特征点集合。其中,该特征点为二维特征点。
[0120]
基于特征点匹配结果,从若干参考图像帧中确定至少一对匹配图像帧。其中,每对匹配图像帧存在匹配特征点对。利用每对匹配图像帧的位姿以及匹配特征点对在匹配图像帧中的位置,确定视觉测量能量关系。其中,若匹配图像帧不为历史定位中的目标图像帧,即匹配图像帧为本次定位中第一历史图像帧与目标图像帧之间的图像帧或目标图像帧,则匹配图像帧的位姿为第一位姿,若匹配图像帧为历史定位中的目标图像帧,则匹配图像帧的位姿可以是优化前的第一位姿或优化后的位姿。通过二维点信息构建视觉测量能量关系,而非通过三维点信息构建视觉测量能量关系,减少了因为三维点的精度问题造成视觉测量能量关系不准确的情况出现,从而使得获取得到的视觉测量能量关系更准确。
[0121]
具体地,获取视觉能量关系的方式为:
[0122][0123]
其中,f为各参考图像帧能跟踪上的特征点集合,其中,若一个特征点被两帧及以上的参考图像帧观测到,该特征点即可加入特征点集合。c为能跟踪到二维特征点集合f的相机状态集合。为第k个特征点在第j帧参考图像帧上的二维位置。k是拍摄组件的投影矩阵,ri表示第i帧参考图像帧对应的摄像组件的旋转矩阵。t表示转置。∑z为对应的协方差矩阵。本式中提出的i帧为在先拍摄的参考图像帧,j帧为在后拍摄的参考图像帧。
[0124]
其中,在获取总能量关系之前,还可包括以下步骤:基于历史定位对应的总能量关系,确定优化先验能量关系。该优化先验能量关系可用于构建总能量关系。通过结合优化先验能量关系构建总能量关系,使得确定的位姿的偏差更准确。具体地,获取优化先验能量关系的方式可以是:利用第二历史图像帧的位姿、第二历史图像帧之前的第二数量图像帧对应的位姿、目标图像帧的位姿以及第二历史图像帧对应的惯性信息,更新得到第二历史图像帧对应的新的位姿偏差。其中,第二历史图像帧为历史定位中的目标图像帧。其中,目标图像帧对应的位姿偏差至少由目标图像帧的位姿以及目标图像帧之前的第一数量图像帧对应的位姿以及目标图像帧对应的惯性信息确定。其中,第二数量小于第一数量。其中,第一数量图像帧可以是前若干次定位过程中对应的目标图像帧。其中,第一数量图像帧的位姿可以是经历史定位过程优化后的位姿,还可以是优化前的第一位姿。
[0125]
其中,本次定位所使用的第一历史图像帧与上一次定位所使用的第一历史图像帧并非同一帧。例如,若第一次执行定位,第一历史图像帧可以是拍摄的首帧,该首帧作为世界坐标系的原点,目标图像帧为拍摄的第3帧,因第一次执行定位后,第2帧和第3帧的位姿已知,第二次执行定位使用的第一历史图像帧可以是第2帧也可以是第3帧,若第二次执行定位使用的第一历史图像帧为第2帧,则目标图像帧为第4帧,同理若第二次执行定位所使用的第一历史图像帧为第3帧,则目标图像帧可以是第5帧。对于第二次执行定位而言,第二历史图像帧为第3帧。当然,在此次定位过程中,所使用的第二历史图像帧的位姿可以是经上一次定位优化后的位姿,另一些公开实施例还可以是经优化前的位姿。
[0126]
然后将历史定位对应的总能量关系中的位姿偏差替换为新的位姿偏差,得到优化先验能量关系。其中,目标图像帧对应的惯性信息可以是惯性偏置。其中,惯性偏置具体可以包括加速度偏置以及角速度偏置等。通过利用目标图像帧的位姿替换第二历史图像帧之前第一数量图像帧的最早图像帧的位姿,以更新第二历史图像帧对应的位姿偏差,进而使得确定得到的优化先验能量关系关联于目标图像帧的位姿,进而使得利用能量关系确定的目标图像帧的位姿偏差更准确。
[0127]
其中,获取优化先验能量关系的方式为:
[0128][0129]
其中,h
k 1
为k 1次定位对应的雅可比矩阵。为目标图像帧对应的位姿偏差,r
k 1
为对应的测量残差。
[0130]
然后,基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系、惯性测量能量关系中的一者或多者,构建本次定位对应的总能量关系。
[0131]
一些公开实施例中,基于运动先验能量关系以及惯性测量能量关系构建本次定位对应的总能量关系,另一些公开实施例中,基于运动先验能量关系以及视觉测量能量关系构建本次定位对应的总能量关系,或者基于运动先验能量关系、视觉测量能量关系以及视觉测量能量关系构建本次定位对应的总能量关系,还可以是基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系、惯性测量能量关系构建本次定位对应的总能量关系。
[0132]
步骤s133:利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像
帧的位姿。
[0133]
其中,总能量关系表示位姿偏差与总能量之间的关系。具体地,利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿的方式可以是:利用本次定位对应的总能量关系,确定总能量满足第二预设要求的位姿偏差。其中,第二预设要求可以是总能量最小。然后基于确定的位姿偏差对目标图像帧的第一位姿进行优化。具体地,将获取到的位姿偏差与目标图像帧的第一位姿进行求和,得到目标图像帧优化后的位姿。
[0134]
从而,最小化总能量关系从而更新各个图像帧对应的状态以及惯性传感器的偏置。
[0135]
具体地,最小化总能量关系的方式为:
[0136][0137]
其中,这里的为k 1次定位确定的位姿偏差。h
k 1
为优化先验能量关系中的雅可比矩阵,r
k 1
为优化先验能量关系中的测量残差。hz为视觉测量能量关系中的雅可比矩阵,rz为视觉测量能量关系中的测量残差,hn为运动先验能量关系中的雅可比矩阵,rn为运动先验能量关系中的测量残差。∑n为运动先验能量关系对应的协方差矩阵,∑z为视觉测量能量关系对应的协方差矩阵。
[0138]
通过上述公式,能够求解得到最终的与第一位姿进行求和,得到优化后的位姿。其中,求取得到的惯性传感器的偏置可以取代定位系统中原始的偏置,以便后续的位姿计算更准确。当然,若需要优化的还包括惯性传感器的偏置、重力方向等参数时,上述则还可表示包括所有待优化的参数对应的偏差,也就是在这种情况下,包括位姿偏差以及各偏置量等参数对应的偏差的总偏差。
[0139]
另一些公开实施例中,在确定目标图像帧的位姿后,还可基于目标图像帧的位姿,对定位系统的参数进行优化。具体地,通过调整包含位姿偏差和参数的偏差的总偏差,得到本次定位过程中需要优化的参数偏差,再将获取到的偏差与对应的参数进行相加,得到优化后的参数。最后使用该优化后的参数替换定位系统中的参数。其中,参数包括重力方向、惯性偏置量中的至少一者。下一次定位过程中,可以使用优化后的参数进行定位。通过对定位系统的参数进行优化,使得下一次定位的精度更高。
[0140]
为更好地理解本公开实施例提供的技术方案,请参考下例。请同时参见图3,图3是本技术定位方法一实施例的另一流程示意图。如图3所示,本公开实施例提供的定位方法包括如下步骤:
[0141]
步骤s21:摄像组件获取若干图像帧。
[0142]
其中,若干图像帧指的是第一历史图像帧至目标图像帧之间的图像帧。
[0143]
步骤s22:进行特征提取以及跟踪。
[0144]
具体地,对若干图像帧进行特征提取以及跟踪,得到若干图像帧对应的图像信息。
[0145]
步骤s23:惯性传感器获取若干惯性测量数据。
[0146]
其中,若干惯性测量数据指的是第一历史图像帧的拍摄时间至目标图像帧的拍摄时间之间的拍摄期间的惯性测量数据。
[0147]
具体获取方式如上述,此处不再赘述。
[0148]
步骤s24:进行数据缓存。
[0149]
具体地,在数据缓存中执行将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。
[0150]
步骤s25:输入定位模型。
[0151]
具体地,将若干惯性测量数据输入定位模型。定位模型基于若干惯性测量数据进行定位处理得到本次定位处理的位姿变化信息。具体定位模型对若干惯性测量数据进行定位处理的方式如上述,此处不再赘述。
[0152]
步骤s26:进行预积分。
[0153]
具体对惯性测量数据进行预积分的方式可参见一般的公知技术,此处不再赘述。
[0154]
步骤s27:判断定位系统是否初始化。
[0155]
具体的判断方式如上述,此处不再赘述。
[0156]
若判断结果为定位系统未进行初始化,则执行步骤s28,否则执行步骤s29。
[0157]
步骤s28:进行静止初始化/运动初始化。
[0158]
具体进行静止初始化/运动初始化的方式如上述此处不再赘述。
[0159]
步骤s29:进行异常点检测。
[0160]
其中异常点检测就是上文中去除满足第二预设条件的数据的步骤,故此处不再赘述。
[0161]
步骤s30:进行优化和更新。
[0162]
具体地,基于图像信息、预积分信息以及位姿变化信息构建总能量关系并对各图像帧对应的位姿进行优化和更新,得到最终的目标图像帧的位姿。
[0163]
步骤s31:优化参数。
[0164]
具体地,可以进行优化的定位系统参数可以包括加速度偏置ba、角速度偏置bg以及定位系统其他可以优化的参数r。
[0165]
其中,上述步骤之间的关系并非严格按照上述顺序执行,例如,步骤s21和步骤s23可同步执行。步骤s22和步骤s24以及步骤s26也可同步执行等。
[0166]
具体地,定位系统的输入可以包括摄像组件和惯性传感器的输出,即第一历史图像至目标图像帧之间的所有图像帧以及若干惯性测量数据。分别对各图像帧和惯性测量数据进行预处理。对图像帧进行预处理的方式主要是特征提取和跟踪。对惯性测量数据进行预处理也可分为两步,一是进行预积分,二是在数据缓存中执行将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。将经过第二种预处理后的惯性测量数据输入定位模型得到第一历史图像帧和目标图像帧之间的位姿变化信息。然后,在进行预积分和图像预处理之后,判断定位系统是否进行了初始化,若是,则进行异常点检测,其中异常点检测就是上文中去除满足第二预设条件的数据的步骤。然后基于图像信息、预积分信息以及位姿变化信息构建总能量关系并对各图像帧对应的位姿进行优化和更新,否则进行系统初始化。在对位姿进行优化更新之后,对定位系统的参数进行优化。当然,在他实施例中,还可根据历史的总能量关系构建此次定位过程中的总能量关系。
[0167]
通过获取第一历史图像帧至目标图像帧之间的惯性测量数据,并依据该惯性测量数据进行定位,即可获取这两帧图像之间的位姿变化信息,若第一历史图像帧为世界坐标系的原点或其位姿已知,则可以根据该位姿变化信息得到目标图像帧的位姿信息。另外,在获取位姿变化信息之后,再结合参考因子,确定目标图像帧的位姿,由此,可以获取得到更为准确的位姿。上述过程减少了视觉方面对定位的影响,从而减少了因为外部环境等因素造成定位准确度较低的情况。
[0168]
进一步地,将定位模型对应的运动先验(位姿变化信息)、imu信息和视觉信息进行紧耦合,在正常视觉环境下,能取得高精度定位效果,在极端挑战视觉环境下,由于运动先验的鲁棒性,能取得较为鲁棒的跟踪。
[0169]
进一步地,本公开实施例提供的技术方案可以与其他定位算法或传感器进行耦合,进行定位导航。
[0170]
本公开实施例提供的定位方法可应用于增强现实、虚拟现实、机器人、自动驾驶、游戏、影视、教育、电子商务、旅游、智慧医疗、室内装修设备、智慧家居、智能制造以及维修装配等场景中。
[0171]
其中,定位方法的执行主体可以是定位装置,例如,定位方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该定位方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
[0172]
请参阅图4,图4是本技术定位装置一实施例的结构示意图。定位装置40包括数据获取模块41、定位处理模块42以及位姿确定模块43。数据获取模块41,用于获取第一历史图像帧的拍摄时间至目标图像帧的拍摄时间的拍摄期间测量得到的若干惯性测量数据;定位处理模块42,用于基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息;位姿确定模块43,用于基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿,其中,至少一个参考因子包括若干惯性测量数据。
[0173]
上述方案,通过获取第一历史图像帧至目标图像帧之间的惯性测量数据,并依据该惯性测量数据进行定位处理,即可获取这两帧图像之间的位姿变化信息,进而可以根据该位姿变化信息得到目标图像帧的位姿信息。另外,在获取位姿变化信息之后,再结合参考因子,确定目标图像帧的位姿,由此,可以获取得到更为准确的位姿。上述过程主要利用惯性测量数据进行位姿变化的计算进而实现定位,故减少了视觉方面对定位的不良影响,从而减少了因为外部环境等因素造成定位准确度较低的情况。
[0174]
一些公开实施例中,至少一个参考因子还包括关于目标图像帧和第一历史图像帧的图像信息。
[0175]
上述方案,除基于位姿变化信息、惯性测量数据以外,还结合图像信息得到目标图像帧的位姿,故能够提高定位精度。
[0176]
一些公开实施例中,位姿确定模块43基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿,包括:基于位姿变化信息,确定目标图像帧的第一位姿;以及,利用位姿变化信息以及至少一个参考因子,构建本次定位对应的总能量关系,其中,本次定位对应的总能量关系用于确定目标图像帧的需优化的位姿偏差;利用本次定位对应的总能量关
系,对第一位姿进行优化,得到目标图像帧的位姿。
[0177]
上述方案,通过利用位姿变化信息以及至少一个参考因子构建总能量关系,通过总能量关系确定位姿偏差,从而对目标图像帧的第一位姿进行优化。
[0178]
一些公开实施例中,位姿确定模块43利用位姿变化信息以及至少一个参考因子,构建本次定位对应的总能量关系,包括:分别利用每个参考因子,确定参考因子对应的测量能量关系,以及,利用位姿变化信息确定运动先验能量关系;基于运动先验能量关系以及每个参考因子对应的测量能量关系,构建本次定位对应的总能量关系。
[0179]
上述方案,对每一参考因子都构建对应的测量能量关系,并结合运动先验能量关系,使得获取到的总能量关系确定的位姿偏差更准确。
[0180]
一些公开实施例中,位姿确定模块43分别利用每个参考因子,确定参考因子对应的测量能量关系,包括:获取若干惯性测量数据的预积分信息;利用若干惯性测量数据的预积分信息,构建惯性测量能量关系。
[0181]
上述方案,通过将预积分信息构建的惯性测量能量关系与运动先验能量关系进行结合,相比于单一的运动先验能量关系而言,确定的位姿偏差更准确。
[0182]
一些公开实施例中,位姿变化信息包括至少一种位姿变化量,至少一种位姿变化量包括位置变化量和/或姿态变化量;位姿确定模块43利用位姿变化信息确定运动先验能量关系,包括:利用至少一次定位对应的若干参数,确定运动先验能量关系,其中,至少一次定位包括本次定位,每次定位对应的若干参数包括定位过程中得到的位姿变化量、定位过程中采用的若干惯性测量数据的起始测量时刻和结束测量时刻的位置差、以及起始测量时刻对应的起始姿态信息。
[0183]
上述方案,通过获取历史定位的位姿变化量以及若干惯性测量数据的测量期间的位置差,确定运动先验能量关系,使得构建的运动先验能量关系更准确,进而得到优化的位姿更准确。
[0184]
一些公开实施例中,位姿变化信息还包括位姿变化量的确定度表征信息;位姿确定模块43利用至少一次定位对应的若干参数,确定运动先验能量关系,包括:基于每次定位过程中得到的确定度表征信息,得到对应次定位的权重;利用至少一次定位的权重以及若干参数,确定运动先验能量关系;和/或,至少一次定位为多次定位,利用至少一次定位对应的若干参数,确定运动先验能量关系,包括:从多次定位中,剔除满足去除条件的定位;其中,去除条件为定位对应的位姿变化量以及位姿变化量的确定度表征信息之间的预设处理结果满足第一预设要求;利用经剔除后的剩余次定位对应的若干参数,确定运动先验能量关系。
[0185]
上述方案,通过确定度表征信息,得到对应的权重,使得构建的运动先验能量关系更准确。另外,通过对参数进行筛选,以剔除异常参数,进而使得获取到的运动先验能量关系更为准确。
[0186]
一些公开实施例中,起始姿态信息包括偏航角信息;和/或,每次定位对应的第一历史图像帧与目标图像帧中,拍摄最早的图像帧为起始图像帧,拍摄最晚的图像帧为结束图像帧;在利用至少一次定位对应的若干参数,确定运动先验能量关系之前,位姿确定模块43法还用于:将至少一次定位中的每次定位作为目标定位,基于目标定位对应的若干惯性测量数据的预积分信息、起始图像帧的位姿和结束图像帧的位姿,确定目标定位对应的起
始姿态信息、起始测量时刻的位置和结束测量时刻的位置。
[0187]
上述方案,通过使用偏航角信息构建运动先验能量,使得构建得到的运动先验能量关系更准确。另外,通过预积分信息以及相关图像帧的位姿,确定若干惯性测量数据的起始测量时刻和结束测量时刻的位置,实现对起始测量时刻和结束测量时刻的位置的校正,进而提高运动先验能量关系的准确性。
[0188]
一些公开实施例中,参考因子还包括关于目标图像帧和第一历史图像帧的图像信息,分别利用每个参考因子,确定参考因子对应的测量能量关系,包括利用图像信息,确定图像信息对应的视觉测量能量关系。在利用图像信息,确定图像信息对应的视觉测量能量关系之前,位姿确定模块43还用于:对若干参考图像帧的特征点进行匹配,得到特征点匹配结果,其中,若干参考图像包括至少一次定位过程中的第一历史图像帧和目标图像帧,且至少一次定位包括本次定位;利用图像信息,确定图像信息对应的视觉测量能量关系,包括:基于特征点匹配结果,从若干参考图像帧中确定至少一对匹配图像帧,其中,每对匹配图像帧存在匹配特征点对;利用每对匹配图像帧的位姿以及匹配特征点对在匹配图像帧中的位置,确定视觉测量能量关系。
[0189]
上述方案,通过二维点信息构建视觉测量能量关系,而非通过三位点信息构建视觉测量能量关系,减少了因为三维点的精度问题造成视觉测量能量关系不准确的情况出现,从而使得获取得到的视觉测量能量关系更准确。
[0190]
一些公开实施例中,在基于运动先验能量关系以及每个参考因子对应的测量能量关系,构建本次定位对应的总能量关系之前,位姿确定模块43还用于:基于历史定位对应的总能量关系,确定优化先验能量关系;基于运动先验能量关系以及每个参考因子对应的测量能量关系,构建本次定位对应的总能量关系,包括:基于运动先验能量关系、优化先验能量关系以及每个参考因子对应的测量能量关系,构建本次定位对应的总能量关系。
[0191]
上述方案,通过结合优化先验能量关系构建总能量关系,使得确定的位姿偏差更准确。
[0192]
一些公开实施例中,历史定位对应的总能量关系为上一次定位对应的总能量关系;和/或,目标图像帧对应的位姿偏差至少由目标图像帧的位姿以及目标图像帧之前的第一数量图像帧对应的位姿以及目标图像帧对应的惯性信息确定;位姿确定模块43基于历史定位对应的总能量关系,确定优化先验能量关系,包括:利用第二历史图像帧的位姿、第二历史图像帧之前的第二数量图像帧对应的位姿、目标图像帧的位姿、以及第二历史图像帧对应的惯性信息,更新得到第二历史图像帧对应的新的位姿偏差,其中,第二历史图像帧为历史定位中的目标图像帧,第二数量小于第一数量;将历史定位对应的总能量关系中的位姿偏差替换为新的位姿偏差,得到优化先验能量关系。
[0193]
上述方案,通过利用目标图像帧的位姿替换第二历史图像帧之前第一数量图像帧的最早图像帧的位置,以更新第二历史图像帧对应的位姿偏差,进而使得确定得到的优化先验能量关系关联于目标图像帧的位姿,进而使得利用能量关系确定的目标图像帧的位姿偏差更准确。
[0194]
一些公开实施例中,总能量关系表示位姿偏差与总能量之间的关系;位姿确定模块43利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿,包括:利用本次定位对应的总能量关系,确定使总能量满足第二预设要求的位姿偏差;基于确
定的位姿偏差对目标图像帧的第一位姿进行优化;和/或,位姿变化信息包括至少一种位姿变化量;基于位姿变化信息,确定目标图像帧的第一位姿,包括:利用目标图像帧对应的位姿变化量,确定目标图像帧的位姿。
[0195]
上述方案,通过使得总能量关系满足第二预设要求的位姿偏差,并基于该位姿偏差对目标图像帧的第一位姿进行优化,使得最终目标图像帧的位姿更准确。另外,通过位姿变化量,即可确定目标图像帧的位姿,整个过程方便快捷。
[0196]
一些公开实施例中,对若干惯性测量数据进行定位处理是由定位模型执行;和/或,定位处理模块42基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息,包括:利用惯性测量数据以及参考运动状态信息,确定待定位对象在本次定位处理得到的最终运动状态信息,其中,参考运动状态信息为上一次定位处理对应的最终运动状态信息;基于本次定位处理得到的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息。
[0197]
上述方案,通过结合上一次定位处理得到的最终运动状态信息,使得此次定位处理得到的最终运动状态信息更为准确。
[0198]
一些公开实施例中,定位方法由定位系统执行,在基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿之前,位姿确定模块43还用于:判断定位系统的参数是否已初始化,其中,参数包括重力方向、惯性偏置量中的至少一者;响应于参数已初始化,则执行基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿;响应于参数未初始化,则选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,再执行基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿,其中,状态包括运动状态和静止状态。
[0199]
上述方案,通过在定位系统未经初始化的情况下,选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,使得初始化得到的参数更准确。
[0200]
一些公开实施例中,定位方法由定位系统执行,在基于位姿变化信息以及至少一个参考因子,确定目标图像帧的位姿之后,位姿确定模块43还用于:基于目标图像帧的位姿,对定位系统的参数进行优化,其中,参数包括重力方向、惯性偏置量中的至少一者。
[0201]
上述方案,通过对定位系统的参数进行优化,使得下一次定位的精度更高。
[0202]
一些公开实施例中,目标图像帧的位姿表示待定位对象在目标图像帧的拍摄时刻的位姿,目标图像帧和第一历史图像帧是由与待定位对象相对固定的拍摄装置拍摄得到,惯性测量数据是由与待定位对象相对固定的惯性测量装置测量得到;和/或,获取第一历史图像帧的拍摄时间至目标图像帧的拍摄时间的拍摄期间测量得到的若干惯性测量数据之后,数据获取模块41还用于:对惯性测量数据进行预处理,其中,经预处理的惯性测量数据用于进行定位处理,预处理包括将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。
[0203]
上述方案,通过由与待定位对象相对固定的拍摄装置拍摄得到目标图像帧以及与待定位对象相对固定的惯性测量装置得到惯性测量数据,因此,可以对任意的对象进行定位。另,通过对惯性测量数据进行预处理,使得得到的位姿变化信息更为准确。
[0204]
上述方案,通过获取第一历史图像帧至目标图像帧之间的惯性测量数据,并依据该惯性测量数据进行定位处理,即可获取这两帧图像之间的位姿变化信息,进而可以根据
该位姿变化信息得到目标图像帧的位姿信息。另外,在获取位姿变化信息之后,再结合参考因子,确定目标图像帧的位姿,由此,可以获取得到更为准确的位姿。上述过程主要利用惯性测量数据进行位姿变化的计算进而实现定位,故减少了视觉方面对定位的不良影响,从而减少了因为外部环境等因素造成定位准确度较低的情况。
[0205]
请参阅图5,图5是本技术电子设备一实施例的结构示意图。电子设备50包括存储器51和处理器52,处理器52用于执行存储器51中存储的程序指令,以实现上述任一定位方法实施例中的步骤。在一个具体的实施场景中,电子设备50可以包括但不限于:医疗设备、微型计算机、台式电脑、服务器,此外,电子设备50还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
[0206]
具体而言,处理器52用于控制其自身以及存储器51以实现上述任一定位方法实施例中的步骤。处理器52还可以称为cpu(central processing unit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器52可以由集成电路芯片共同实现。
[0207]
上述方案,通过获取第一历史图像帧至目标图像帧之间的惯性测量数据,并依据该惯性测量数据进行定位处理,即可获取这两帧图像之间的位姿变化信息,进而可以根据该位姿变化信息得到目标图像帧的位姿信息。另外,在获取位姿变化信息之后,再结合参考因子,确定目标图像帧的位姿,由此,可以获取得到更为准确的位姿。上述过程主要利用惯性测量数据进行位姿变化的计算进而实现定位,故减少了视觉方面对定位的不良影响,从而减少了因为外部环境等因素造成定位准确度较低的情况。
[0208]
请参阅图6,图6是本技术计算机可读存储介质一实施例的结构示意图。计算机可读存储介质60存储有能够被处理器运行的程序指令61,程序指令61用于实现上述任一定位方法实施例中的步骤。
[0209]
上述方案,通过获取第一历史图像帧至目标图像帧之间的惯性测量数据,并依据该惯性测量数据进行定位处理,即可获取这两帧图像之间的位姿变化信息,进而可以根据该位姿变化信息得到目标图像帧的位姿信息。另外,在获取位姿变化信息之后,再结合参考因子,确定目标图像帧的位姿,由此,可以获取得到更为准确的位姿。上述过程主要利用惯性测量数据进行位姿变化的计算进而实现定位,故减少了视觉方面对定位的不良影响,从而减少了因为外部环境等因素造成定位准确度较低的情况。
[0210]
本公开涉及增强现实领域,通过获取现实环境中的目标对象的图像信息,进而借助各类视觉相关算法实现对目标对象的相关特征、状态及属性进行检测或识别处理,从而得到与具体应用匹配的虚拟与现实相结合的ar效果。示例性的,目标对象可涉及与人体相关的脸部、肢体、手势、动作等,或者与物体相关的标识物、标志物,或者与场馆或场所相关的沙盘、展示区域或展示物品等。视觉相关算法可涉及视觉定位、slam、三维重建、图像注册、背景分割、对象的关键点提取及跟踪、对象的位姿或深度检测等。具体应用不仅可以涉及跟真实场景或物品相关的导览、导航、讲解、重建、虚拟效果叠加展示等交互场景,还可以
涉及与人相关的特效处理,比如妆容美化、肢体美化、特效展示、虚拟模型展示等交互场景。
[0211]
可通过卷积神经网络,实现对目标对象的相关特征、状态及属性进行检测或识别处理。上述卷积神经网络是基于深度学习框架进行模型训练而得到的网络模型。
[0212]
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
[0213]
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
[0214]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
[0215]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献