定位方法及装置、设备、存储介质
文献发布时间:2023-06-19 13:27:45
技术领域
本申请涉及定位领域,特别是涉及一种定位方法及装置、设备、存储介质。
背景技术
目前,常见的定位方式主要有视觉定位。视觉定位方式主要通过设备拍摄到的图像之间的图像信息,确定设备的位置。其中,视觉定位比较依赖外部环境,在动态、光照剧烈变化、弱纹理、远景和遮挡等情况下,视觉定位无法很好正常工作。具体地,在这种情况下,设备拍摄得到的图像中提取得到的信息较少,则无法很好地进行定位。
发明内容
本申请至少提供一种定位方法及装置、设备、存储介质。
本申请提供了一种定位方法,包括获取目标图像帧和第一历史图像帧,以及从第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据;基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息;基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿。
因此,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
其中,基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿,包括:基于位姿变化信息,确定目标图像帧的第一位姿;以及,利用位姿变化信息以及图像信息,构建本次定位对应的总能量关系,其中,本次定位对应的总能量关系用于确定目标图像帧的需优化的位姿偏差;利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿。
因此,通过基于位姿变化信息,确定目标图像帧的位姿,使得没有有效图像信息的情况下,仍然可以仅通过对惯性测量数据进行定位处理,得到目标图像帧的位姿。另外,通过总能量关系确定位姿偏差,对目标图像帧的位姿进行优化,能够得到更为准确的位姿。
其中,利用位姿变化信息以及图像信息,构建本次定位对应的总能量关系,包括:利用位姿变化信息确定运动先验能量关系,以及利用图像信息确定视觉测量能量关系;基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系。
因此,通过运动先验能量关系以及视觉测量能量关系确定总能量关系,相比仅使用其中一个能量关系构建总能量关系而言,通过前者构建的总能量关系优化的位姿更准确。
其中,每次定位对应的第一历史图像帧与目标图像帧中,拍摄最早的图像帧为起始图像帧,拍摄最晚的图像帧为结束图像帧;位姿变化信息包括至少一种位姿变化量,至少一种位姿变化量包括位置变化量和/或姿态变化量;利用位姿变化信息确定运动先验能量关系,包括:利用至少一次定位对应的若干参数,确定运动先验能量关系,其中,至少一次定位包括本次定位,每次定位对应的若干参数包括定位过程中得到的位姿变化量、定位对应的起始图像帧和结束图像帧之间的位置差、以及起始图像帧对应的起始姿态信息。
因此,通过获取历史定位中的参数构建此次定位所需的运动先验能量关系,从而使得优化后的位姿更准确。
其中,位姿变化信息还包括位姿变化量的确定度表征信息;利用至少一次定位对应的若干参数,确定运动先验能量关系,包括:基于每次定位过程中得到的确定度表征信息,得到对应次定位的权重,其中,定位的权重是基于定位对应的确定度表征信息的预设倍数确定,预设倍数为自然数;利用至少一次定位的权重以及若干参数,确定运动先验能量关系。
因此,通过确定度表征信息,得到对应的权重,使得构建的运动先验能量关系更准确。
其中,起始姿态信息包括偏航角信息;和/或,至少一次定位为多次定位,利用至少一次定位对应的若干参数,确定运动先验能量关系,包括:从多次定位中,剔除满足去除条件的定位;其中,去除条件为定位对应的位姿变化量以及位姿变化量的确定度表征信息之间的预设处理结果满足第一预设要求;利用经剔除后的剩余次定位对应的若干参数,确定运动先验能量关系。
因此,通过使用偏航角信息构建运动先验能量,使得构建得到的运动先验能量关系更准确。另外,通过对参数进行筛选,以剔除异常参数,进而使得获取到的运动先验能量关系更为准确。
其中,在利用图像信息确定视觉测量能量关系之前,方法还包括:对若干参考图像帧的特征点进行匹配,得到特征点匹配结果,其中,若干参考图像包括至少一次定位过程中的第一历史图像帧和目标图像帧,且至少一次定位包括本次定位;利用图像信息确定视觉测量能量关系,包括:基于特征点匹配结果,从若干参考图像帧中确定至少一对匹配图像帧,其中,每对匹配图像帧存在匹配特征点对;利用每对匹配图像帧的位姿以及匹配特征点对在匹配图像帧中的位置,确定视觉测量能量关系。
因此,通过二维点信息构建视觉测量能量关系,而非通过三维点信息构建视觉测量能量关系,减少了因为三维点的精度问题造成视觉测量能量关系不准确的情况出现,从而使得获取得到的视觉测量能量关系更准确。
其中,在基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系之前,方法还包括:基于历史定位对应的总能量关系,确定优化先验能量关系;基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系,包括:基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系。
因此,通过结合优化先验能量关系构建总能量关系,使得确定的位姿的偏差更准确。
其中,历史定位对应的总能量关系为上一次定位对应的总能量关系;和/或,目标图像帧对应的位姿偏差至少由目标图像帧的位姿以及目标图像帧之前的第一数量图像帧对应的位姿以及目标图像帧对应的惯性信息确定;基于历史定位对应的总能量关系,确定优化先验能量关系,包括:利用第二历史图像帧的位姿、第二历史图像帧之前的第二数量图像帧对应的位姿、目标图像帧的位姿、以及第二历史图像帧对应的惯性信息,更新得到第二历史图像帧对应的新的位姿偏差,其中,第二历史图像帧为历史定位中的目标图像帧,第二数量小于第一数量;将历史图像帧对应的总能量关系中的位姿偏差替换为新的位姿偏差,得到优化先验能量关系。
因此,通过利用目标图像帧的位姿替换第二历史图像帧之前第一数量图像帧的最早图像帧的位姿,以更新第二历史图像帧对应的位姿偏差,进而使得确定得到的优化先验能量关系关联于目标图像帧的位姿,进而使得利用能量关系确定的目标图像帧的位姿偏差更准确。
其中,总能量关系表示位姿偏差与总能量之间的关系;利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿,包括:利用本次定位对应的总能量关系,确定使总能量满足第二预设要求的位姿偏差;基于确定的位姿偏差对第一位姿进行优化,得到目标图像帧的位姿;和/或,位姿变化信息包括至少一种位姿变化量;基于位姿变化信息,确定目标图像帧的第一位姿,包括:利用目标图像帧对应的位姿变化量,确定目标图像帧的第一位姿。
因此,通过使得总能量关系满足第二预设要求的位姿偏差,并基于该位姿偏差对目标图像帧的位姿进行优化,使得最终目标图像帧的位姿更准确。另,通过位姿变化量,可以实现确定目标图像帧的位姿。
其中,基于若干惯性测量数据进行定位处理是由定位模型执行;和/或,基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息,包括:利用惯性测量数据以及参考运动状态信息,确定本次定位处理对应的最终运动状态信息,其中,参考运动状态信息为历史定位处理过程中获取的最终运动状态信息;基于本次定位处理对应的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息。
因此,通过结合历史定位处理对应的最终运动状态信息,使得此次定位处理得到的最终运动状态信息更为准确。
其中,目标图像帧的位姿表示待定位对象在目标图像帧的拍摄时刻的位姿,目标图像帧和第一历史图像帧是由与待定位对象相对固定的拍摄装置拍摄得到,惯性测量数据是由与待定位对象相对固定的惯性测量装置测量得到;和/或,获取在目标图像帧的第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据之后,方法还包括:对惯性测量数据进行预处理,其中,经预处理的惯性测量数据用于进行定位处理,预处理包括将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。
因此,通过由与待定位对象相对固定的拍摄装置拍摄得到目标图像帧以及与待定位对象相对固定的惯性测量装置得到惯性测量数据,因此,可以实现对任意的对象进行定位。另,通过对惯性测量数据进行预处理,使得得到的位姿变化信息更为准确。
本申请提供了一种定位装置,包括:数据获取模块,用于获取目标图像帧和第一历史图像帧,以及从第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据;位姿变化信息获取模块,用于基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息;位姿确定模块,用于基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿。
本申请提供了一种电子设备,包括存储器和处理器,处理器用于执行存储器中存储的程序指令,以实现上述定位方法。
本申请提供了一种计算机可读存储介质,其上存储有程序指令,程序指令被处理器执行时实现上述定位方法。
上述方案,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1是本申请定位方法一实施例的流程示意图;
图2是本申请定位方法一实施例示出步骤S13的流程示意图;
图3是本申请定位方法一实施例的另一流程示意图;
图4是本申请定位装置一实施例的结构示意图;
图5是本申请电子设备一实施例的结构示意图;
图6是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
请参阅图1,图1是本申请定位方法一实施例的流程示意图。具体而言,可以包括如下步骤:
步骤S11:获取目标图像帧和第一历史图像帧,以及从第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据。
从第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据指的是从第一历史图像帧的拍摄时间至目标图像帧的拍摄时间的拍摄期间测量得到的若干惯性测量数据。本公开实施例中,若干指的是一个及以上。其中,目标图像帧和第一历史图像帧可以是由待定位对象获取,也可以是由与待定位对象的位置相对固定的摄像组件拍摄得到,即摄像组件的位姿情况可以表示所述待定位对象的位姿情况。当然,惯性测量数据同样可以是由待定位对象获取,也可以是由与待定位对象的位置相对固定的惯性传感器获取得到,即惯性传感器的位姿情况可以表示所述待定位对象的位姿情况。
待定位对象可以是设备,也可以是任意具有生命的动物体。例如,待定位对象可以是车辆、机器人、人、小猫、小狗等。可以理解的是,当待定位对象为设备时,上述摄像组件和惯性传感器可以为该设备中的组件,或者为该设备以外的组件。
惯性测量数据指的是惯性传感器测量得到的数据。其中,惯性传感器的数量可以是多个,例如,惯性传感器可以是加速度计,也可以是陀螺仪等。待定位对象与惯性传感器之间的位置相对固定。及,惯性传感器在目标时间段内测量得到的惯性测量数据可以代表待定位对象在目标时间段内的惯性测量数据。
步骤S12:基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息。
其中,位姿变化信息可以包括第一历史图像帧与目标图像帧之间的相对位移,也可以包括二者之间的相对旋转。
本公开实施例中,以位姿变化信息包括相对位移和相对旋转为例。
步骤S13:基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿。
具体地,可以使用第一历史图像帧的位姿信息以及第一历史图像帧与目标图像帧之间的位姿变化信息,确定目标图像帧对应的第一位姿。其中,可以认为目标图像帧的位姿为拍摄目标图像帧时待定位对象的位姿。
然后,使用第一历史图像帧和目标图像帧的图像信息,对目标图像帧对应的第一位姿进行优化,得到优化后的目标图像帧对应的位姿。
上述方案,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
一些公开实施例中,获取第一历史图像帧与目标图像帧之间的位姿变化信息的方式可以是:
利用惯性测量数据以及参考运动状态信息,确定本次定位处理对应的最终运动状态信息。然后,基于本次定位处理对应的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息。第一历史图像帧与目标图像帧之间的位姿变化信息可以认为是待定位对象在第一历史图像帧的拍摄时间至目标图像帧的拍摄时间之间的位置变化和/或姿态变化。两个时间点之间的位置变化具体可以是二者之间的相对位移。姿态变化具体可以是待定位对象朝向的变化。
其中,参考运动状态信息为历史定位处理过程中获取的最终运动状态信息。例如,本次定位处理为针对待定位对象执行的第四次定位处理,则历史定位处理可以是针对同一待定位对象执行的第三次定位处理,还可以是第二次和第三次的结合,也还可以是本次以前所有次定位处理的结合。其中,本公开实施例选择将上一次定位处理中获取得到的最终运动状态信息,作为本次定位处理过程中的参考运动状态信息。本次定位处理得到的最终运动状态信息能够用于推导待定位对象在第一历史图像帧的拍摄时间点至目标图像帧的拍摄时间点之间的运动。同理,参考运动状态信息能够用于确定历史定位处理中对应第一历史图像帧的拍摄时间点至对应的目标图像帧的拍摄时间点之间的运动。本次定位处理和历史定位处理对应的最终运动状态信息具体可以包括待定位对象在对应时间段内各个时刻的运动参数。例如,运动参数可以包括待定位对象在各个时刻的加速度和角速度,或待定位对象在各个时刻的运动速度和运动方向等。一些应用场景中,在待定位对应为人类的情况下,最终运动状态信息可以认为是用于表示基于惯性测量数据得到的加速度和角速度的一个局部窗口,可以类似于人类运动的加速度和角速度,但因为各种因素的作用,其可能带有一定的噪声。
其中,基于若干惯性测量数据进行定位处理是由定位模型执行的。具体地,利用惯性测量数据以及参考运动状态信息,确定本次定位处理对应的最终运动状态信息包括以下步骤:基于惯性测量数据,得到第一历史图像帧至目标图像帧之间的初始运动状态信息,再对参考运动状态信息与初始运动状态信息进行融合,得到该最终运动状态信息。
第一历史图像帧至目标图像帧之间的初始运动状态信息具体可以包括待定位对象在第一历史图像帧的拍摄时间点至目标图像帧的拍摄时间点之间各个时刻的运动参数。例如,初始运动状态信息可以包括待定位对象在各个时刻的加速度和角速度,或待定位对象在各个时刻的运动速度和运动方向等。具体地,初始运动状态信息的形式可以是用于描述待定位对象在目标时间段内的运动的隐层状态矩阵。其中,初始运动状态信息可以用于推导待定位对象在目标时间段内的运动。但因为传感器的偏置等因素的影响,导致获取得到的初始运动状态含有噪声,所以若仅使用初始运动状态信息推导待定位对象在目标时间段内的运动,或许会存在一定的误差。
具体地,最终运动状态信息和参考运动状态信息的形式也可以是用于描述待定位对象在对应时间段内运动的隐层状态矩阵。本公开实施例认为待定位对象的运动是连续且有规律的,因此,通过用于表示待定位对象在对应时间段内的运动的初始运动状态信息与用于表示待定位对象在历史定位处理对应的时间段内运动的参考运动状态信息进行融合,以估计待定位对象在本次定位处理对应时间段内更准确的最终运动状态信息,从而可以根据该最终运动状态信息估计待定位对象在对应时间段内的运动。
其中,定位模型包括第一子网络和第二子网络以及第三子网络。其中,第一子网络可以是残差网络,如ResNet18网络。第二子网络可以是LSTM(Long Short-Term Memory,长短期记忆网络)。其中,第一子网络可以用于执行基于惯性测量数据,得到第一历史图像帧至目标图像帧之间的初始运动状态信息的步骤。第二子网络用于执行对参考运动状态信息与初始运动状态信息进行融合,得到该最终运动状态信息的步骤,第三子网络用于执行基于本次定位处理对应的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息的步骤。通过结合历史定位处理对应的最终运动状态信息,使得此次定位处理得到的最终运动状态信息更为准确。其中,定位模型中包括池化层。具体地,第一子网络中包括池化层。以及,定位模型中使用了dropout技术,降低网络对时间戳精度要求。
通过定位模型获取位姿变化信息,无需对传感器的偏置量等参数进行标定,减少了因为偏置量的误差造成定位精度降低的情况出现。
本公开实施例中,获取到若干惯性测量数据之后,定位方法还包括以下步骤:
对惯性测量数据进行预处理。其中,经预处理的惯性测量数据用于进行定位。预处理包括将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。其中,预处理还包括对惯性测量数据进行固定帧率插值,并将插值后的数据进行缓存。通过对惯性测量数据进行预处理,使得得到的位姿变化信息更为准确。
请参见图2,图2是本申请定位方法一实施例示出步骤S13的流程示意图。如图2所述,一些公开实施例中,上述步骤S13包括以下步骤:
步骤S131:基于位姿变化信息,确定目标图像帧的第一位姿。
其中,目标图像帧的第一位姿表示待定位对象在目标图像帧的拍摄时刻的位姿。本公开实施例中,目标图像和第一历史图像帧是由待定位对象相对固定的拍摄装置拍摄得到,惯性测量数据是由与待定位对象相对固定的惯性测量装置测量得到的。通过基于位姿变化信息,确定目标图像帧的第一位姿,使得没有有效图像信息的情况下,仍然可以仅通过对惯性测量数据进行定位,得到目标图像帧的第一位姿。通过由与待定位对象相对固定的拍摄装置拍摄得到目标图像帧以及与待定位对象相对固定的惯性测量装置得到惯性测量数据,因此,可以实现对任意的对象进行定位。
具体地,位姿变化信息包括至少一种位姿变化量。其中,至少一种位姿变化量包括位置变化量以及姿态变化量。获取目标图像帧的第一位姿的方式可以是利用目标图像帧对应的位姿变化量,确定目标图像帧的第一位姿。具体地,第一历史图像帧的位姿已知,基于第一历史图像帧与目标图像帧之间的位姿变化量,即可得到目标图像帧的第一位姿。
步骤S132:利用位姿变化信息以及图像信息,构建本次定位对应的总能量关系。
其中,本次定位对应的总能量关系用于确定目标图像帧的需优化的位姿偏差。
具体地,利用位姿变化信息确定运动先验能量关系。以及,利用图像信息确定视觉测量能量关系。
其中,每次定位对应的第一历史图像帧与目标图像帧中,拍摄最早的图像帧为起始图像帧,拍摄最晚的图像帧为结束图像帧。本公开实施例中,认为第一历史图像帧即为起始图像帧,目标图像帧即为结束图像帧。以及,位姿变化信息包括至少一种位姿变化量。至少一种位姿变化量包括位置变化量和/或姿态变化量。
其中,获取运动先验能量关系的方式可以是:
利用至少一次定位对应的若干参数,确定运动先验能量关系。至少一次定位为多次定位。多次为两次及以上。其中,至少一次定位包括本次定位,每次定位对应的若干参数包括定位过程中得到的位姿变化量、定位对应的起始图像帧和结束图像帧之间的位置差以及起始图像帧对应的起始姿态信息。其中,起始图像帧和结束图像帧之间的位置差指的是待定位对象在起始图像帧的位置与待定位对象在起始图像帧之间的位置之差。起始测量时刻的起始姿态信息指的是待定位对象在起始测量时刻的朝向。
其中,起始图像帧的起始姿态信息包括偏航角信息。一般惯性测量数据并非以偏航角的形式呈现,通过将惯性测量数据转换为四元数形式。其中,若以XYZ坐标轴的方式转换得到的偏航角若为90°,则调整坐标系为YXZ的方式重新获取偏航角信息。通过使用偏航角信息构建运动先验能量,使得构建得到的运动先验能量关系更准确。
可选地,位姿变化信息还包括位姿变化量的确定度表征信息。其中,确定度表征信息可以用于表示确定度,也可用于表示不确定度。基于每次定位过程中得到的确定度表征信息,得到对应次定位的权重。其中,定位的权重是基于定位对应的确定度表征信息的预设倍数确定的。其中,预设倍数为自然数。具体地,该权重可以为基于预设倍数的确定度表征信息变换得到的协方差矩阵。可选地,在确定度表征信息用于表示确定度时,预设倍数一般小于或等于1,例如预设倍数可以是0.1等,当然,这仅为举例,在其他实施例中,预设倍数还可以大于1。在确定度表征信息用于表示不确定度时,预设倍数一般大于或等于1,例如预设倍数可以是10等,当然,这仅为举例,在其他实施例中,预设倍数还可以小于1。
然后,利用至少一次定位的权重以及若干参数,确定运动先验能量关系。通过确定度表征信息,得到对应的权重,使得构建的运动先验能量关系更准确。
具体地,获取运动先验能量关系c
其中,p
可以理解的是,若出现时间戳误差,则可能导致摄像组件拍摄第一历史图像帧和目标图像帧的时间与惯性传感器测量二者之间惯性测量数据的时间没有对齐。在一些实施例中,为了减少时间戳误差和/或避免时间戳不对齐的情况,可在定位模型中使用dropout技术和池化层中的至少一者,来降低网络对时间戳精度要求。在一些实施例中,为避免时间戳不对齐的情况,在运动先验能量关系中,也可如上面所述,利用不为1的预设倍数对确定度表征信息进行处理(例如,在确定度表征信息用于表示确定度时,预设倍数小于或等于1,在确定度表征信息用于表示不确定度时,预设倍数大于或等于1)得到该定位权重,由此实现对时间戳的粗糙对齐。
当然,在另一实施例中,为减少时间戳误差导致定位精度下降的问题出现,本公开实施例还可提供以下方式,获取更为准确的运动先验能量关系。在该方式中,认为定位模型得到的位姿变化量为起始测量时刻与结束测量时刻之间的位姿变化量。若没有时间戳误差,则起始测量时刻等于第一历史图像帧至目标图像帧中最早拍摄的图像帧(起始图像帧)对应的时间,结束测量时刻等于最晚拍摄的图像帧(结束图像帧)对应的时间。其中,起始图像帧可以认为时第一历史图像帧,结束图像帧可以认为是目标图像帧。
将至少一次定位中的每次定位作为目标定位,基于目标定位对应的若干惯性测量数据的预积分信息、起始图像帧的位姿和结束图像帧的位姿,确定目标定位对应的起始姿态信息、起始测量时刻的位置和结束测量时刻的位置。具体地,若目标定位为历史定位,则目标定位中起始图像帧的位姿和结束图像帧的位姿均可以是优化前的第一位姿,也可以是经优化后的位姿。而目标定位为本次定位时,起始图像帧的位姿和结束图像帧的位姿为优化前的第一位姿。即,若目标定位为上一次定位,则上一次定位中起始姿态信息、起始测量时刻的位置和结束测量时刻的位置可以由上一次定位过程中的若干惯性测量数据的预积分信息、起始图像帧的位姿和结束图像帧的位姿确定。当然,在另一些公开实施例中,可以认为待定位对象在起始测量时刻的位姿与拍摄起始图像帧时的位姿相同,结束测量时刻的位姿与拍摄结束图像帧时的位姿相同。
具体地,通过预积分信息以及起始图像帧的位姿、结束图像帧的位姿,确定目标定位对应的起始姿态信息、起始测量时刻和结束测量时刻的位置的具体方式可以是:
其中,m表示起始图像帧,n表示结束图像帧。i表示起始测量时刻,j表示结束测量时刻。p
由此,得到的最终的运动先验能量关系
其中,
具体获取Σ
其中,Σ
一些公开实施例中,从多次定位中,剔除满足去除条件的定位。其中,去除条件为定位对应的位姿变化量以及位姿变化量的确定度保证信息之间的预设处理结果满足第一预设要求。然后利用经剔除后的剩余次定位对应的若干参数,确定运动先验能量关系。具体地,通过获取位姿变化量对应的马氏距离来去除异常定位。具体地,去除条件可以是在
其中,在确定视觉测量能量关系之前,还包括以下步骤:对若干参考图像帧的特征点进行匹配,得到特征点匹配结果。具体地,可以使用稀疏光流发对特征点进行跟踪,实现特征点匹配。进一步地,可以使用极线几何约束来去除错误的匹配结果。其中,若干参考图像包括至少一次定位过程中的第一历史图像帧和目标图像帧。且至少一次定位包括本次定位。其中,特征点匹配结果包括特征点集合。若一特征点同时存在与两帧参考图像帧中,则该特征点会加入特征点集合。当然,在其他实施例中,只有在特征点同时存在于三帧及以上的参考图像帧中,才将其加入特征点集合。其中,该特征点为二维特征点。
基于特征点匹配结果,从若干参考图像帧中确定至少以对匹配图像帧。其中,每对匹配图像帧存在匹配特征点对。利用每对匹配图像帧的位姿以及匹配特征点对在匹配图像帧中的位置,确定视觉测量能量关系。其中,若匹配图像帧不为历史定位中的目标图像帧,即匹配图像帧为本次定位中第一历史图像帧与目标图像帧之间的图像帧或目标图像帧,则匹配图像帧的位姿为第一位姿,若匹配图像帧为历史定位中的目标图像帧,则匹配图像帧的位姿可以是优化前的第一位姿或优化后的位姿。
具体地,获取视觉能量关系的方式为:
其中,F为各参考图像帧能跟踪上的特征点集合,其中,若一个特征点被两帧及以上的参考图像帧观测到,该特征点即可加入特征点集合。C为能跟踪到二维特征点集合F的相机状态集合。
通过二维点信息构建视觉测量能量关系,而非通过三维点信息构建视觉测量能量关系,减少了因为三维点的精度问题造成视觉测量能量关系不准确的情况出现,从而使得获取得到的视觉测量能量关系更准确。
然后再基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系。通过运动先验能量关系以及视觉测量能量关系确定总能量关系,相比仅使用其中一个能量关系构建总能量关系而言,通过前者构建的总能量关系优化的位姿更准确。
其中,可以使用上述运动先验能量关系c
其中,若仅使用运动先验能量关系与视觉测量能量关系结合,构建得到的本次定位对应的总能量关系可以是:
其中,这里的
其中,通过结合运动先验能量关系与视觉测量能量关系,构建本次定位对应的总能量关系,由于确定运动先验能量关系与视觉测量能量关系的过程中不会用到预积分信息,则可不对惯性传感器对应的惯性偏置量以及待定位对象的速度等信息进行初始化,进而提高了定位效率,也减少了因为各个惯性偏置量等信息的误差造成定位精度下降的问题出现。
其中,在获取总能量关系之前,还可包括以下步骤:基于历史定位对应的总能量关系,确定优化先验能量关系。具体地,历史定位对应的总能量关系为上一次定位对应的总能量关系。获取优化先验能量关系的方式可以是:利用第二历史图像帧的位姿、第二历史图像帧之前的第二数量图像帧对应的位姿、目标图像帧的位姿以及第二历史图像帧对应的惯性信息,更新得到第二历史图像帧对应的新的位姿偏差。
第二历史图像帧为上一次定位过程中的目标图像帧。其中,当前次定位所使用的第一历史图像帧与上一次定位所使用的第一历史图像帧并非同一帧。例如,若第一次执行定位,第一历史图像帧可以是拍摄的首帧,该首帧作为世界坐标系的原点,目标图像帧为拍摄的第3帧,因第一次执行定位后,第2帧和第3帧的位姿已知,第二次执行定位使用的第一历史图像帧可以是第2帧也可以是第3帧,若第二次执行定位使用的第一历史图像帧为第2帧,则目标图像帧为第4帧,同理若第二次执行定位所使用的第一历史图像帧为第3帧,则目标图像帧可以是第5帧。对于第二次执行定位而言,第二历史图像帧为第3帧。当然,在此次定位过程中,所使用的第二历史图像帧的位姿可以是经上一次定位优化后的位姿,另一些公开实施例还可以是经优化前的第一位姿。
然后将历史图像帧对应的总能量关系中的位姿偏差替换为新的位姿偏差,得到优化先验能量关系。其中,目标图像帧对应的位姿偏差至少由目标图像帧的位姿以及目标图像帧之前的第一数量图像帧对应的位姿以及目标图像帧对应的惯性信息确定。其中,目标图像帧对应的惯性信息可以是惯性偏置量。其中,惯性偏置量具体可以包括加速度偏置以及角速度偏置等。其中,第二数量小于第一数量。其中,第一数量图像帧可以是前若干次定位过程中对应的目标图像帧。其中,第一数量图像帧的位姿可以是经历史定位过程优化后的位姿,还可以是优化前的位姿。通过利用目标图像帧的位姿替换第二历史图像帧之前第一数量图像帧的最早图像帧的位姿,以更新第二历史图像帧对应的位姿偏差,进而使得确定得到的优化先验能量关系关联于目标图像帧的位姿,进而使得利用能量关系确定的目标图像帧的位姿偏差更准确。
其中,获取优化先验能量关系
其中,H
然后,基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系。也就是基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系,即可构建本次定位对应的总能量关系。通过结合优化先验能量关系、运动先验能量关系以及视觉测量能量关系构建总能量关系,使得确定的位姿的偏差更准确。
例如,获取得到的总能量关系的形式可以是:
其中,这里的
另一些公开实施例中,在获取总能量关系之前,还可执行以下步骤:利用若干惯性测量数据的预积分信息,确定惯性测量能量关系。
其中,基于惯性测量数据的预积分信息,确定惯性测量能量关系的方式可参见一般公知的技术。
此处简单列举获取惯性测量能量关系c
其中,H
然后,基于运动先验能量关系、视觉测量能量关系、惯性测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系。通过基于运动先验能量关系、视觉测量能量关系、惯性测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系,使得优化后的位姿更准确。
其中,在计算运动先验能量关系中若使用了预积分信息,则可以认为最终得到的运动先验能量关系包含了惯性测量能量关系,因此,可以不必再使用惯性测量能量关系,构建总能量关系。通过预积分信息以及相关图像帧的位姿,确定若干惯性测量数据的起始测量时刻和结束测量时刻的位置,实现对起始测量时刻和结束测量时刻的位置的校正,进而提高运动先验能量关系的准确性。
一些公开实施例中,定位方法由定位系统执行。在执行步骤S13之前,还包括以下步骤:判断定位系统的参数是否已初始化。其中,参数是初始位姿。响应于参数已初始化,则执行步骤S13。响应于参数未初始化,则选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,然后再执行上述步骤S13。其中,状态包括运动状态和静止状态。其中,选择与目标图像帧对应的状态匹配的初始化方式以前,先确定目标图像帧对应的状态。其中,确定目标图像帧对应的状态的方式可以是若连续若干帧图像中跟踪到的二维特征在图像平面上的平均位移低于第一阈值,且惯性测量数据的标准差低于第二阈值,则认为目标图像帧对应的状态为静止状态,否则,认为目标图像帧对应的状态为运动状态。
静止状态对应的初始化方式为静止初始化,而运动状态对应的初始化方式为运动初始化。其中,静止初始化方式包括将初始平移设置为0,初始局部重力为最近两针图像之间的加速度计测量值的平均值。初始旋转与局部初始重力对齐。初始陀螺仪偏置是最近两帧图像之间陀螺仪测量值的平均值。初始加速度偏置设置为0。最近两帧指的是目标图像帧以及目标图像帧的前一帧。通过在定位系统未经初始化的情况下,选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,使得初始化得到的参数更准确。
可以理解的是,上述初始化过程可以根据不同实施例确定是否执行,例如,若仅使用视觉测量能力关系以及运动先验能量关系构建总能量关系且在建立运动先验能量关系时未使用预积分信息,或使用视觉测量能力关系、优化先验能量关系以及运动先验能量关系构建总能量关系且在建立运动先验能量关系时未使用预积分信息,则可以不执行上述初始化过程,也就是无需执行静止初始化或运动初始化。当定位模型输出第一位姿变化信息。然后计算出各图像帧对应的初始位姿后,即可认为初始化完成。又例如,在需要结合惯性测量能量关系构建总能量关系的情况下,由于惯性测量能量关系的确定过程需要使用预积分信息,则可以执行上述初始化过程。
步骤S133:利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿。
其中,总能量关系表示位姿偏差与总能量之间的关系。具体地,利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿的方式可以是:利用本次定位对应的总能量关系,确定总能量满足第二预设要求的位姿偏差。其中,第二预设要求可以是总能量最小。然后基于确定的位姿偏差对目标图像帧的第一位姿进行优化。具体地,将获取到的位姿偏差与目标图像帧的第一位姿进行求和,得到目标图像帧优化后的位姿。从而,最小化总能量关系从而更新各个图像帧对应的状态以及惯性传感器的偏置。通过总能量关系确定位姿偏差,对目标图像帧的位姿进行优化,能够得到更为准确的位姿。以及,通过使得总能量关系满足第二预设要求的位姿偏差,并基于该位姿偏差对目标图像帧的位姿进行优化,使得最终目标图像帧的位姿更准确。
具体地,最小化总能量关系的方式为:
其中,这里的
上述总能量关系中的运动先验能量关系为将惯性测量能量与运动先验能量结合构建得到的,也即是上述总能量关系中使用的运动先验能量关系是
确定使得总能量最小的位姿偏差,作为本次定位对应的位姿偏差。将求解得到最终的
另一些公开实施例中,在确定目标图像帧的位姿后,还可基于目标图像帧的位姿,对定位系统的参数进行优化。具体地,通过调整包含位姿偏差和参数的偏差的总偏差,得到本次定位过程中需要优化的参数偏差,再将获取到的偏差与对应的参数进行相加,得到优化后的参数。最后使用该优化后的参数替换定位系统中的参数。其中,参数包括重力方向、惯性偏置量中的至少一者。下一次定位过程中,可以使用优化后的参数进行定位。通过对定位系统的参数进行优化,使得下一次定位的精度更高。
为更好地理解本公开实施例提供的技术方案,请参考下例。
请同时参见图3,图3是本申请定位方法一实施例的另一流程示意图。如图3所示,本公开实施例提供的定位方法包括如下步骤:
步骤S21:获取第一历史图像帧至目标图像帧之间的若干图像帧。
具体获取方式如上述,此处不再赘述。
步骤S22:进行特征提取以及跟踪。
具体地,对若干图像帧进行特征提取以及跟踪,得到若干图像帧对应的图像信息。
步骤S23:获取第一历史图像帧至目标图像帧之间的若干惯性测量数据。
具体获取方式如上述,此处不再赘述。
步骤S24:将若干惯性测量数据输入定位模型。
其中,定位模型基于若干惯性测量数据进行定位处理得到本次定位处理的位姿变化信息。具体定位模型对若干惯性测量数据进行定位处理的方式如上述,此处不再赘述。
步骤S25:进行非线性优化。
具体地,在进行非线性优化之前,可以根据位姿变化信息获取目标图像帧的位姿。非线性优化包括基于位姿变化信息以及图像信息对目标图像帧的第一位姿进行非线性优化。
步骤S26:进行边缘化。
其中,进行边缘化的方式可参见一般的公知技术,此处不再赘述。通过进行边缘化,能够保持数据量(图像信息以及位姿变化信息)的稳定。其中,边缘化得到的总能量关系用于获取下次定位的优化先验能量关系。其中,非线性优化指的是通过最小化总能量,对目标图像帧的位姿进行优化的过程。
步骤S27:输出目标图像帧的位姿。
上述方案,通过将第一历史图像帧和目标图像帧之间的若干图像帧以及对应的若干惯性测量数据作为定位系统的输入。若干惯性测量数据输入定位模型,得到对应的位姿变化信息。以及通过对若干图像帧进行特征提取和跟踪,得到对应的图像信息。再将基于位姿变化信息以及图像信息进行非线性优化以及边缘化,以对目标图像帧的第一位姿进行优化,得到目标图像帧的位姿。
上述方案,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
进一步地,将定位模型对应的运动先验(位姿变化信息)、IMU信息和视觉信息进行紧耦合,在正常视觉环境下,能取得高精度定位效果,在极端挑战视觉环境下,由于运动先验的鲁棒性,能取得较为鲁棒的跟踪。
进一步地,本公开实施例提供的技术方案可以与其他定位算法或传感器进行耦合,进行定位导航。
本公开实施例提供的定位方法可应用于增强现实、虚拟现实、机器人、自动驾驶、游戏、影视、教育、电子商务、旅游、智慧医疗、室内装修设备、智慧家居、智能制造以及维修装配等场景中。
其中,定位方法的执行主体可以是定位装置,例如,定位方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该定位方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
请参阅图4,图4是本申请定位装置一实施例的结构示意图。定位装置40包括数据获取模块41、位姿变化信息获取模块42以及位姿确定模块43。数据获取模块41,用于获取目标图像帧和第一历史图像帧,以及从第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据;位姿变化信息获取模块42,用于基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息;位姿确定模块43,用于基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿。
上述方案,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
一些公开实施例中,位姿确定模块43基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的第一位姿,包括:基于位姿变化信息,确定目标图像帧的位姿;以及,利用位姿变化信息以及图像信息,构建本次定位对应的总能量关系,其中,本次定位对应的总能量关系用于确定目标图像帧的需优化的位姿偏差;利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿。
上述方案,通过基于位姿变化信息,确定目标图像帧的位姿,使得没有有效图像信息的情况下,仍然可以仅通过对惯性测量数据进行定位处理,得到目标图像帧的位姿。另,通过总能量关系确定位姿偏差,对目标图像帧的位姿进行优化,能够得到更为准确的位姿。
一些公开实施例中,位姿确定模块43利用位姿变化信息以及图像信息,构建本次定位对应的总能量关系,包括:利用位姿变化信息确定运动先验能量关系,以及利用图像信息确定视觉测量能量关系;基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系。
上述方案,通过运动先验能量关系以及视觉测量能量关系确定总能量关系,相比仅使用其中一个能量关系构建总能量关系而言,通过前者构建的总能量关系优化的位姿更准确。
一些公开实施例中,每次定位对应的第一历史图像帧与目标图像帧中,拍摄最早的图像帧为起始图像帧,拍摄最晚的图像帧为结束图像帧;位姿变化信息包括至少一种位姿变化量,至少一种位姿变化量包括位置变化量和/或姿态变化量;位姿确定模块43利用位姿变化信息确定运动先验能量关系,包括:利用至少一次定位对应的若干参数,确定运动先验能量关系,其中,至少一次定位包括本次定位,每次定位对应的若干参数包括定位过程中得到的位姿变化量、定位对应的起始图像帧和结束图像帧之间的位置差、以及起始图像帧对应的起始姿态信息。
上述方案,通过获取历史定位中的参数构建此次定位所需的运动先验能量关系,从而使得优化后的位姿更准确。
一些公开实施例中,位姿变化信息还包括位姿变化量的确定度表征信息;位姿确定模块43利用至少一次定位对应的若干参数,确定运动先验能量关系,包括:基于每次定位过程中得到的确定度表征信息,得到对应次定位的权重,其中,定位的权重是基于定位对应的确定度表征信息的预设倍数确定的,预设倍数为自然数;利用至少一次定位的权重以及若干参数,确定运动先验能量关系。
上述方案,通过确定度表征信息,得到对应的权重,使得构建的运动先验能量关系更准确。
一些公开实施例中,起始姿态信息包括偏航角信息;和/或,至少一次定位为多次定位,位姿确定模块43利用至少一次定位对应的若干参数,确定运动先验能量关系,包括:从多次定位中,剔除满足去除条件的定位;其中,去除条件为定位对应的位姿变化量以及位姿变化量的确定度表征信息之间的预设处理结果满足第一预设要求;利用经剔除后的剩余次定位对应的若干参数,确定运动先验能量关系。
上述方案,通过使用偏航角信息构建运动先验能量,使得构建得到的运动先验能量关系更准确。另,通过对参数进行筛选,使得获取到的运动先验能量关系更为准确。
一些公开实施例中,在利用图像信息确定视觉测量能量关系之前,方法还包括:对若干参考图像帧的特征点进行匹配,得到特征点匹配结果,其中,若干参考图像包括至少一次定位过程中的第一历史图像帧和目标图像帧,且至少一次定位包括本次定位;利用图像信息确定视觉测量能量关系,包括:基于特征点匹配结果,从若干参考图像帧中确定至少一对匹配图像帧,其中,每对匹配图像帧存在匹配特征点对;利用每对匹配图像帧的位姿以及匹配特征点对在匹配图像帧中的位置,确定视觉测量能量关系。
上述方案,通过二维点信息构建视觉测量能量关系,不依赖三维特征的精度,使得获取得到的视觉测量能量关系更准确。
一些公开实施例中,在基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系之前,位姿确定模块43还用于:基于历史定位对应的总能量关系,确定优化先验能量关系;基于运动先验能量关系以及视觉测量能量关系,构建本次定位对应的总能量关系,包括:基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系。
上述方案,通过结合优化先验能量关系构建总能量关系,使得确定的位姿的偏差更准确。
一些公开实施例中,历史定位对应的总能量关系为上一次定位对应的总能量关系;和/或,目标图像帧对应的位姿偏差至少由目标图像帧的位姿以及目标图像帧之前的第一数量图像帧对应的位姿以及目标图像帧对应的惯性信息确定;位姿确定模块43基于目标图像帧的第二历史图像帧对应的总能量关系,确定优化先验能量关系,包括:利用第二历史图像帧的位姿、第二历史图像帧之前的第二数量图像帧对应的位姿、目标图像帧的位姿、以及第二历史图像帧对应的惯性信息,更新得到第二历史图像帧对应的新的位姿偏差,其中,第二历史图像帧为历史定位中的目标图像帧,第二数量小于第一数量;将历史图像帧对应的总能量关系中的位姿偏差替换为新的位姿偏差,得到优化先验能量关系。
上述方案,通过结合第二数量的第二历史图像帧的相关信息确定优化先验能量关系,使得确定得到的优化先验能量关系更为准确。
一些公开实施例中,在基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系之前,位姿确定模块43还用于:利用若干惯性测量数据的预积分信息,确定惯性测量能量关系;基于运动先验能量关系、视觉测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系,包括:基于运动先验能量关系、视觉测量能量关系、惯性测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系。
上述方案,通过基于运动先验能量关系、视觉测量能量关系、惯性测量能量关系以及优化先验能量关系,构建本次定位对应的总能量关系,使得优化后的位姿更准确。
一些公开实施例中,总能量关系表示位姿偏差与总能量之间的关系;位姿确定模块43利用本次定位对应的总能量关系,对第一位姿进行优化,得到目标图像帧的位姿,包括:利用本次定位对应的总能量关系,确定使总能量满足第二预设要求的位姿偏差;基于确定的位姿偏差对第一位姿进行优化,得到目标图像帧的位姿;和/或,位姿变化信息包括至少一种位姿变化量;基于位姿变化信息,确定目标图像帧的第一位姿,包括:利用目标图像帧对应的位姿变化量,确定目标图像帧的第一位姿。
上述方案,通过使得总能量关系满足第二预设要求的位姿偏差,并基于该位姿偏差对目标图像帧的位姿进行优化,使得最终目标图像帧的位姿更准确。另,通过位姿变化量,即可确定目标图像帧的位姿,整个过程方便快捷。
一些公开实施例中,基于若干惯性测量数据进行定位处理是由定位模型执行;和/或,位姿变化信息获取模块42基于若干惯性测量数据进行定位处理,得到第一历史图像帧与目标图像帧之间的位姿变化信息,包括:利用惯性测量数据以及参考运动状态信息,确定本次定位处理对应的最终运动状态信息,其中,参考运动状态信息为历史定位处理过程中获取的最终运动状态信息;基于本次定位处理对应的最终运动状态信息,得到第一历史图像帧与目标图像帧之间的位姿变化信息。
上述方案,通过结合历史定位处理对应的最终运动状态信息,使得此次定位处理得到的最终运动状态信息更为准确。
一些公开实施例中,定位方法由定位系统执行,在基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿之前,位姿确定模块43还用于:判断定位系统的参数是否已初始化,其中,参数包括重力方向、惯性偏置量中的至少一者;响应于参数已初始化,则执行基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿;响应于参数未初始化,则选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,再执行基于位姿变化信息以及第一历史图像帧与目标图像帧的图像信息,确定目标图像帧的位姿,其中,状态包括运动状态和静止状态。
上述方案,通过在定位系统未经初始化的情况下,选择与目标图像帧对应的状态匹配的初始化方式,对定位系统的参数进行初始化,使得初始化得到的参数更准确。
一些公开实施例中,目标图像帧的位姿表示待定位对象在目标图像帧的拍摄时刻的位姿,目标图像帧和第一历史图像帧是由与待定位对象相对固定的拍摄装置拍摄得到,惯性测量数据是由与待定位对象相对固定的惯性测量装置测量得到;和/或,获取在目标图像帧的第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据之后,数据获取模块41还用于:对惯性测量数据进行预处理,其中,经预处理的惯性测量数据用于进行定位处理,预处理包括将惯性测量数据转换到重力系下、去除偏置、去除重力和归一化中的一种或多种。
上述方案,通过由与待定位对象相对固定的拍摄装置拍摄得到目标图像帧以及与待定位对象相对固定的惯性测量装置得到惯性测量数据,因此,可以实现对任意的对象进行定位。另,通过对惯性测量数据进行预处理,使得得到的位姿变化信息更为准确。
请参阅图5,图5是本申请电子设备一实施例的结构示意图。电子设备50包括存储器51和处理器52,处理器52用于执行存储器51中存储的程序指令,以实现上述任一定位方法实施例中的步骤。在一个具体的实施场景中,电子设备50可以包括但不限于:医疗设备、微型计算机、台式电脑、服务器,此外,电子设备50还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器52用于控制其自身以及存储器51以实现上述任一定位方法实施例中的步骤。处理器52还可以称为CPU(Central Processing Unit,中央处理单元)。处理器52可能是一种集成电路芯片,具有信号的处理能力。处理器52还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器52可以由集成电路芯片共同实现。
上述方案,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
请参阅图6,图6是本申请计算机可读存储介质一实施例的结构示意图。计算机可读存储介质60存储有能够被处理器运行的程序指令61,程序指令61用于实现上述任一定位方法实施例中的步骤。
上述方案,通过基于第一历史图像帧至目标图像帧的拍摄期间测量得到的若干惯性测量数据进行定位处理,即可得到这两帧图像帧之间的位姿变化信息。在获取得到位姿变化信息之后,可以根据该位姿变化信息确定目标图像帧的位姿。若结合图像信息,确定目标图像帧的位姿能够使得目标图像帧的位姿更准确。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
本公开涉及增强现实领域,通过获取现实环境中的目标对象的图像信息,进而借助各类视觉相关算法实现对目标对象的相关特征、状态及属性进行检测或识别处理,从而得到与具体应用匹配的虚拟与现实相结合的AR效果。示例性的,目标对象可涉及与人体相关的脸部、肢体、手势、动作等,或者与物体相关的标识物、标志物,或者与场馆或场所相关的沙盘、展示区域或展示物品等。视觉相关算法可涉及视觉定位、SLAM、三维重建、图像注册、背景分割、对象的关键点提取及跟踪、对象的位姿或深度检测等。具体应用不仅可以涉及跟真实场景或物品相关的导览、导航、讲解、重建、虚拟效果叠加展示等交互场景,还可以涉及与人相关的特效处理,比如妆容美化、肢体美化、特效展示、虚拟模型展示等交互场景。
可通过卷积神经网络,实现对目标对象的相关特征、状态及属性进行检测或识别处理。上述卷积神经网络是基于深度学习框架进行模型训练而得到的网络模型。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
- 辅助、设备定位装置、定位方法、计算机设备和存储介质
- 定位方法、定位设备、定位系统、计算设备及存储介质