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

定位初始化方法、装置和计算机可读存储介质与流程

2022-02-22 19:05:41 来源:中国专利 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.图1是本技术定位初始化方法一实施例的流程示意图;
32.图2是图1中步骤s13一实施例的流程示意图;
33.图3是本技术定位初始化方法另一实施例的流程示意图;
34.图4是本技术定位初始化方法一应用场景的流程示意图;
35.图5是本技术定位初始化装置一实施例的框架示意图;
36.图6是本技术定位初始化装置另一实施例的框架示意图;
37.图7是本技术计算机可读存储介质一实施例的框架示意图。
具体实施方式
38.下面结合说明书附图,对本技术实施例的方案进行详细说明。
39.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本技术。
40.本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
41.请参阅图1,图1是本技术定位初始化方法一实施例的流程示意图。具体而言,可以包括如下步骤:
42.步骤s11:获取定位设备在静止状态下状态变量的先验信息。
43.步骤s12:基于所述状态变量的先验信息,确定所述状态变量的初始值。其中,所述状态变量用于定位,且包括视觉状态变量和惯性状态变量。
44.视觉惯性跟踪定位系统是融合相机和imu(惯性测量单元)数据实现slam(同步定位与地图构建)的算法,由于视觉惯性跟踪定位系统的非线性,无论是基于滤波或基于图优化的方法,其传感器的性能都严重依赖于初始值的准确性。一旦初始化不良,不仅会降低收敛速度,甚至导致错误的估计,因此,鲁棒的初始化方法是至关重要的。一般地,在视觉惯性跟踪定位系统的初始化过程中,首先进行仅视觉的初始化,以解算出相机的相对位姿;然后再与imu预积分进行对齐求解初始化参数,以完成视觉惯性联合初始化过程。但是,实际过程中,视觉惯性跟踪定位系统很难得到准确的初始状态,一方面,相机的尺度信息不能直接观测得到,另一方面,需要非零加速度的运动来初始化尺度信息,但在定位设备处于静止状态时,这种初始化方法便会失效。
45.本技术的定位初始化方法的执行主体可以是定位初始化装置,例如,定位初始化方法可以由定位设备或服务器或其它处理设备执行,其中,定位设备可以为机器人、无人车、无人机等移动设备,也可以是用户设备(user equipment,ue)、用户终端、无绳电话、个人数字助理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴
设备等。在一些可能的实现方式中,该定位初始化方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。定位初始化方法在定位设备处于静止状态下进行初始化,在初始化之前,需要获取定位设备在静止状态下状态变量的先验信息。例如,可以拿imu数据作为惯性状态变量的先验信息,也可以拿相机数据作为视觉状态变量的先验信息。例如,可以拿imu数据作为先验信息,原因在于陀螺仪和加速度计的偏置都可以被估计出来,且重力矢量也可以观测,此时的imu除了一些小的测量误差以及器件的随机游走之外,基本上是没有其他误差的,又由于两帧图像之间的时间很短,其间的传感器偏差可视为定值,于是通过imu测量数据预积分,可以在新一帧图像到来之前对运动进行先验估计。又例如,可以拿相机数据作为先验信息,本技术在定位设备处于静止状态下进行初始化,因此,可以将上一帧视觉信息作为当前帧视觉信息的先验信息,并进行图像匹配,这样在运动非常缓慢、或者静止的情况下,系统的初始化可以表现得非常稳定。因此,本技术中的静止状态可以是定位设备运动十分缓慢的状态,也可以是定位设备完全静止的状态。
46.具体地,惯性状态变量包括重力、位置、角度、速度、尺度、惯性系统偏置量中的至少一种;视觉状态变量包括三维点逆深度、位置、角度中的至少一种。
47.在一实施例中,上述步骤s12具体包括:将所述惯性状态变量的先验信息,作为所述惯性状态变量的初始值。可以理解的是,由于本技术用于在定位设备处于静止状态下进行初始化,在定位设备处于静止状态时,惯性状态变量不变,因此,可以将惯性状态变量的先验信息作为惯性状态变量的初始值。
48.在一个实施场景中,上述步骤s11包括:在所述状态变量包括速度的情况下,确定所述速度为静止速度值,将所述静止速度值作为所述惯性状态变量的先验信息。可以理解的是,静止状态时的速度为静止速度值,由于本实施例用于在定位设备处于静止状态下进行初始化,因此,定位设备的速度为静止速度值,将静止速度值作为惯性状态变量的先验信息,速度变量具有极大的置信度,使系统的初始化过程准确性更高。
49.在一个实施场景中,上述步骤s11包括:在所述状态变量包括惯性系统偏置量的情况下,获取在本次定位初始化之前进行定位过程中的偏置量或预设标定值,将所述在本次定位初始化之前进行定位过程中的偏置量或所述预设标定值作为所述惯性系统偏置量的先验信息。可以理解的是,imu都会有一定的偏置,偏置一般与温度、出厂精度等相关,在定位设备初次使用时,其惯性系统偏置量可以为预设标定值。或者,在定位系统使用过程中对其进行重新初始化时,由于在本次定位初始化之前已经进行过跟踪定位,因此也可以将在本次定位初始化之前进行定位过程中的偏置量作为本次定位初始化的惯性系统偏置量。
50.在一个实施场景中,上述步骤s11包括:利用惯性互补滤波器获取所述定位设备处于所述静止状态的惯性状态变量的当前值,并将获取的所述惯性状态变量的当前值作为所述惯性状态变量的先验信息。可以理解的是,imu中,加速度计低频特性比较好,因为加速度的角度可以直接算出来,没有累积误差,所以长时间后也比较准,而陀螺仪长时间后由于积分误差的累加,会造成输出误差比较大,甚至无法使用。因此,利用惯性互补滤波器,在短时间内以陀螺仪为主,长时间用加速度计比较准确,这时候加大加速度计的比重,给陀螺仪和加速度计不同的权重并加权求和,从而得到惯性状态变量的实时值;而当惯性互补滤波器所获取的惯性状态变量的实时值收敛时,且定位设备处于静止状态,因此,可以得到此时惯性状态变量的当前值,并将获取的惯性状态变量的当前值作为惯性状态变量的先验信息。
51.可以理解的是,当定位设备自身可以计算其重力方向时,且计算的重力方向足够可信,则可以采用定位设备自身计算的重力方向来代替上述惯性互补滤波器所获取的重力方向,以作为重力方向的先验信息。
52.因此,通过将获取到的定位设备在静止状态下惯性状态变量的先验信息,例如速度、惯性系统偏置量等,作为惯性状态变量的初始值,可以使系统的初始化过程准确性更高。
53.步骤s13:在运行定位过程中,对所述状态变量进行更新。
54.步骤s14:在确定更新后的所述状态变量满足收敛的情况下,确定定位初始化完成。
55.可以理解的是,从对视觉惯性跟踪定位系统的状态变量进行初始值设置后,到视觉惯性跟踪定位系统收敛之前的过程中,定位设备有可能处于静止状态,也有可能处于运动状态,即这段时间定位设备处于运行定位过程中。在对视觉惯性跟踪定位系统的状态变量进行初始值设置后,定位设备在运行定位过程中,每一个状态变量会实时更新数据,状态变量的收敛程度会不断变化,因此,可以对状态变量进行更新,并在确定更新后的状态变量满足收敛的情况下,确定定位初始化完成;需要注意的是,在所有状态变量均满足收敛的情况下,才表示整个视觉惯性跟踪定位系统的定位初始化完成。
56.上述方案,通过利用在静止状态下获取的状态变量的先验信息,为状态变量设置初始值,其中状态变量用于定位,且包括视觉状态变量和惯性状态变量,并在运行定位过程中,在确定更新后的状态变量满足收敛的情况下,确定定位初始化完成,即实现了利用先验信息在设备接近静止状态下同时初始化视觉和惯性系统,使定位的初始化过程快速且稳定,同时易于用户操作。
57.请参阅图2,图2是图1中步骤s13一实施例的流程示意图。本实施例中,上述步骤s13具体可以包括如下步骤:
58.步骤s131:在运行定位过程中,获取所述状态变量的当前值。
59.步骤s132:基于所述状态变量的当前值,得到所述状态变量的更新值。
60.可以理解的是,定位设备在运行定位过程中,对于每一个状态变量来说,在每一时刻都会存在一个状态变量的当前值,状态变量的当前值是一个观测值,在获取到状态变量的当前值后,由于系统累计误差或者观测误差等原因,有可能所获取到的状态变量的当前值不准确,因此,可以基于获取的状态变量的当前值,以及状态变量的历史值,采用滤波优化器或者非线性优化器进行计算,得到状态变量的更新值,该状态变量的更新值比状态变量的当前值的准确性高。
61.上述方案,在为状态变量设置初始值后,直到系统完成初始化之前的运行定位过程中,通过对状态变量的更新值的获取,可以准确判断更新后的状态变量是否满足收敛,从而可以确定定位初始化是否完成。
62.在一个实施场景中,在上述步骤s13中的所述对所述状态变量进行更新之前,定位初始化方法还包括:对若干所述状态变量的更新进行解耦处理。
63.可以理解的是,在视觉惯性跟踪定位系统中的所有状态变量均收敛之前,各状态变量会耦合在一起,例如尺度、重力方向、惯性传感器偏置量等信息会耦合在一起,从而可能会促使系统向非最优值方向收敛或者在收敛过程中有较大的波动。因此,通过对若干状
态变量的更新进行解耦处理,可以降低各状态变量之间的相互影响,于是在为状态变量设置初始值后、直到系统完成初始化之前的运行定位过程中,可以加快单个变量的收敛速度,从而使系统快速稳定完成初始化。
64.在一个实施场景中,上述对若干所述状态变量的更新进行解耦处理的步骤,包括:确定每个所述状态变量的初始值置信度,其中,所述初始置信度用于表示所述初始值对更新后的状态变量的影响程度。此时,上述步骤s132包括:
65.步骤s1321:基于所述状态变量的所述初始值、所述初始值置信度和当前值,得到所述状态变量的更新值。
66.在实际应用时,可以根据经验为每个状态变量设置初始值置信度,初始置信度可以表示:对视觉惯性跟踪定位系统的状态变量进行初始值设置后,在后续跟踪观测的过程中有多大的权重去相信初始值或者相信跟踪状态下的当前值;在运行定位的过程中,采用滤波优化器或者非线性优化器,可以根据状态变量的初始值、初始值置信度以及每一时刻得到的状态变量的观测值,计算得到该时刻对应的更新值,因此对于当前时刻来说,已经获取到了前一时刻的状态变量的值及置信度,即获取到了状态变量的历史值和对应的置信度,于是在得到当前时刻的状态变量的当前值后,采用滤波优化器或者非线性优化器进行计算,可以得到当前时刻的状态变量的更新值。因此,在获取到状态变量的更新值后,可以得到更新值的置信度,从而可以削弱系统累计误差或者观测误差的影响。
67.上述方案,通过为每个状态变量设置初始值置信度,其中,初始置信度用于表示初始值对更新后的状态变量的影响程度,使得各状态变量之间的相互影响降低,每个状态变量具有单独可观性,从而使系统可以向最优值方向收敛,且在收敛过程中波动较小,可以提升静止初始化的稳定性和系统收敛速度。
68.在一个实施场景中,上述步骤s13可以包括:在所述状态变量包括尺度信息的情况下,在运行定位过程中,对所述定位设备进行运动初始化,利用所述运动初始化完成后得到的尺度信息,得到所述尺度信息的当前值。可以理解的是,由于纯视觉定位系统无法解决尺度信息问题,而imu可以通过自身的惯性测量值对尺度信息进行估计,因此通过增加imu来获取尺度信息。在现有的运动初始化方法中,可以较为准确的得到视觉惯性跟踪定位系统的尺度信息。因此,本技术在进行定位初始化的过程中,结合现有的运动初始化技术,可在后台同时运行运动初始化方法,等到运动初始化稳定后,将运动初始化的系统信息,例如较为准确的尺度信息,应用到当前的视觉惯性跟踪定位系统中,从而可以有利于本技术的定位初始化中尺度信息能够快速收敛。
69.在一个实施场景中,上述步骤s13可以包括:在所述状态变量包括三维点逆深度的情况下,在运行定位过程中,获取所述定位设备采集的第二场景图像,沿着点的深度方向为所述第二场景图像中的二维点确定对应的逆深度三维点的随机逆深度值,以作为所述三维点逆深度的当前值。
70.可以理解的是,在定位设备处于静止状态时,场景中的三维信息无法正确获得,而在缺少场景三维信息的情况下,视觉惯性跟踪定位系统没有约束,系统容易产生偏移。因此,对于场景图像中的特征点,可以沿着点的深度方向给一个随机的逆深度值,形成了逆深度三维点。于是在运行定位过程中,可以随时获取到逆深度三维点的三维点逆深度的当前值。当定位设备正常移动时,逆深度值会朝着正确的方向收敛,而当定位设备未发生移动或
发生少量移动时,逆深度值可以作为先验信息约束系统不会产生大的偏差,即可以提升视觉惯性跟踪定位系统在深度未知场景中进行初始化的稳定性。另外,在定位设备快速抖动时,惯性系统非连续信息积分会较快出现累积误差,而逆深度三维点作为环境的三维信息能够同时约束当前帧信息和历史帧信息,从而降低累积误差;例如,可以将逆深度三维点转换成全局欧式空间三维点,即可以将点的坐标与定位设备的位姿信息进行解耦,从而进一步降低误差累积,能够更有效地提升定位系统在小幅度快速抖动场景下的稳定性。
71.在一个实施场景中,若定位设备包括深度传感器,则上述逆深度三维点的随机逆深度值可用深度传感器获取到的深度值代替。
72.进一步地,在所述沿着点的深度方向为所述第二场景图像中的二维点确定对应的逆深度三维点的随机逆深度值之前,所述定位初始化方法还包括:获取至少两帧所述第二场景图像对应的设备朝向信息;根据所述至少两帧所述第二场景图像中的二维点以及所述设备朝向信息,对所述第二场景图像中的外点进行剔除。
73.可以理解的是,为了得到较为准确的场景图像,使得在对系统进行定位初始化的过程中具有准确的场景图像信息,可以在已知至少两帧场景图像的设备朝向信息的前提下,采用两点随机样本一致性检测的方法来剔除场景图像中明显的外点。其中,设备的朝向信息可以通过惯性互补滤波器计算得到,因此,根据至少两帧场景图像中的二维点以及设备朝向信息,可以对场景图像中的外点进行剔除,从而可以对场景图像进行优化,以提升定位设备在动态场景中的定位初始化的稳定性。
74.在一个实施场景中,上述步骤s13还可以包括:在所述状态变量包括速度的情况下,在运行定位过程中,判断所述定位设备是否处于静止状态;在所述定位设备处于静止状态的情况下,将静止速度值作为所述速度的当前值;基于所述速度的当前值,得到所述速度的更新值。因此,在运行定位过程中,通过判断所述定位设备处于静止状态的情况下,将静止速度值作为所述速度的当前值,并利用滤波优化器或者非线性优化器计算得到速度的更新值,所以通过在定位设备处于静止状态下,将静止速度值作为速度的当前值,可以直接约束系统的速度信息,可有效地抑制系统产生大的偏移量,提升了系统初始化的稳定性。
75.在一个实施场景中,在上述步骤s13之后,所述定位初始化方法还可以包括:获取所述状态变量的更新值所对应的不确定度,并在所述状态变量的不确定度低于第二预设阈值的情况下,确定所述状态变量满足收敛。可以理解的是,在运行定位过程中,维护一个状态变量的同时会维护这个状态变量与其他状态变量之间的关联关系,即该状态变量的协方差矩阵,根据协方差矩阵和状态变量信息得到信息熵,信息熵越小表示该状态变量的不确定度越低,而不确定度越低则代表该状态变量的收敛性越好。于是通过获取状态变量的更新值所对应的不确定度,并判断状态变量的不确定度是否低于第二预设阈值,从而可以确定状态变量是否满足收敛,进而可以确定定位初始化是否完成。
76.在一个实施场景中,在上述步骤s13之后,所述定位初始化方法还可以包括:利用所述状态变量的更新值,确定所述定位设备的位姿。可以理解的是,根据视觉状态变量和惯性状态变量,可以得到定位设备的位姿信息,从而可以实现设备的定位。
77.请参阅图3,图3是本技术定位初始化方法另一实施例的流程示意图。具体而言,可以包括如下步骤:
78.步骤s31:获取所述定位设备采集的连续两帧第一场景图像。
79.步骤s32:在确定所述连续两帧的第一场景图像中的所有特征点之间的视差值均小于第一预设阈值的情况下,则确定所述定位设备处于静止状态。
80.本实施例中,可以利用视觉信息来判断定位设备是否处于静止状态,具体地,可以通过获取定位设备采集的连续两帧第一场景图像,在确定连续两帧的第一场景图像中的所有特征点之间的视差值均小于第一预设阈值的情况下,则确定定位设备处于静止状态,即可以准确判断定位设备是否处于静止状态,从而可以为初始化过程提供合适的初始化时刻。
81.步骤s33:获取定位设备在静止状态下状态变量的先验信息。
82.步骤s34:基于所述状态变量的先验信息,确定所述状态变量的初始值;其中,所述状态变量用于定位,且包括视觉状态变量和惯性状态变量。
83.步骤s35:在运行定位过程中,对所述状态变量进行更新。
84.步骤s36:在确定更新后的所述状态变量满足收敛的情况下,确定定位初始化完成。
85.本实施例中,步骤s33-s36与本技术上述实施例的步骤s11-s14基本类似,此处不再赘述。
86.请结合图4,图4是本技术定位初始化方法一应用场景的流程示意图。在一应用场景中,将定位设备的定位初始化方法分成三个阶段,包括初始化准备阶段、初始化阶段以及初始化完成阶段。在初始化准备阶段,主要是为了获取定位初始化的先验信息以及选择合适的初始化时刻,例如,可以利用惯性互补滤波器来估算重力方向,以作为重力方向的先验信息,然后在惯性滤波器收敛后,利用视觉信息来判断定位设备是否处于静止状态,若确认定位设备处于静止状态,则可以进入初始化阶段。在初始化阶段,主要是进行系统初始化,即利用先验信息来设置系统各状态变量的初始值,同时通过设置状态变量的置信度的方式将系统中的各状态变量解耦;例如,设置系统各状态变量的初始值包括:设置重力矢量,此时可以利用初始化准备阶段中估算的重力方向来作为重力矢量中的重力方向;设置速度值,可以用零速进行速度值的初始化;设置惯性系统偏置量,可以使用前一次系统稳定运行时的保存值或者预设标定值;在整个系统收敛之前,尺度、重力方向、惯性传感器偏置量等状态变量会耦合在一起,可能会促使系统向非最优值方向收敛或者在收敛过程中有较大的波动,因此,可在各状态变量的初始值上加入相应的置信度,以降低各状态变量互相之间的影响,当某个状态变量的置信度较大时,则可以加快该单个状态变量的收敛速度。在初始化完成阶段,主要是采用多种策略来增加初始化阶段到系统收敛之前的系统稳定性;例如进行非连续帧外点剔除,具体地,从对系统的状态变量进行初始值设置后,到系统收敛之前的过程中,为了得到较为准确的场景图像,使得在对系统进行定位初始化的过程中具有准确的场景图像信息,可以在已知两帧场景图像的设备朝向信息的前提下,采用两点随机样本一致性检测的方法来剔除场景图像中明显的外点;例如新增和维护逆深度三维点,具体地,对于场景图像中的特征点,可以沿着点的深度方向给一个随机的逆深度值,形成了逆深度三维点,通过逆深度三维点的逆深度值,在定位设备正常移动时,可以使系统朝着正确的方向收敛,在定位设备未发生移动或发生少量移动时,可以作为先验信息约束系统不会产生大的偏差,在定位设备快速抖动时,逆深度三维点作为环境的三维信息能够同时约束当前帧信息和历史帧信息,从而降低累积误差;例如进行零速更新,具体地,在系统收敛之前,通
过在判断定位设备处于静止状态的情况下,可以将静止速度值作为速度的更新值,直接约束系统的速度信息,可有效地抑制系统产生大的偏移量,提升了系统初始化的稳定性;最终,根据各状态变量可以输出定位设备的位姿信息,从而可以实现设备的定位。
87.请参阅图5,图5是本技术定位初始化装置一实施例的框架示意图。定位初始化装置50包括:获取模块500,用于获取定位设备在静止状态下状态变量的先验信息;设置模块502,用于基于所述状态变量的先验信息,确定所述状态变量的初始值;其中,所述状态变量用于定位,且包括视觉状态变量和惯性状态变量;更新模块504,用于在运行定位过程中,对所述状态变量进行更新;确定模块506,用于在确定更新后的所述状态变量满足收敛的情况下,确定定位初始化完成。
88.上述方案,设置模块502利用获取模块500在静止状态下获取的状态变量的先验信息,为状态变量设置初始值,其中状态变量用于定位,且包括视觉状态变量和惯性状态变量,并在运行定位过程中,确定模块506在确定更新后的状态变量满足收敛的情况下,确定定位初始化完成,即实现了利用先验信息在设备接近静止状态下同时初始化视觉和惯性系统,使定位的初始化过程快速且稳定,同时易于用户操作。
89.在一些实施例中,设置模块502具体用于将所述惯性状态变量的先验信息,作为所述惯性状态变量的初始值。此时,获取模块500可以用于:在所述状态变量包括速度的情况下,确定所述速度为静止速度值;和/或,在所述状态变量包括惯性系统偏置量的情况下,获取在本次定位初始化之前进行定位过程中的偏置量或预设标定值,将所述在本次定位初始化之前进行定位过程中的偏置量或所述预设标定值作为所述惯性系统偏置量的先验信息;和/或,利用惯性互补滤波器获取所述定位设备处于所述静止状态的惯性状态变量的当前值,并将获取的所述惯性状态变量的当前值作为所述惯性状态变量的先验信息。
90.在一些实施例中,定位初始化装置50还包括:判断模块,用于获取所述定位设备采集的连续两帧第一场景图像;在确定所述连续两帧的第一场景图像中的所有特征点之间的视差值均小于第一预设阈值的情况下,则确定所述定位设备处于静止状态。
91.在一些实施例中,更新模块504具体用于在运行定位过程中,获取所述状态变量的当前值;基于所述状态变量的当前值,得到所述状态变量的更新值。
92.在一些实施例中,设置模块502还用于对若干所述状态变量的更新进行解耦处理;具体地,设置模块502用于确定每个所述状态变量的初始值置信度,其中,所述初始置信度用于表示所述初始值对更新后的状态变量的影响程度。此时,更新模块504用于基于所述状态变量的所述初始值、所述初始值置信度和当前值,得到所述状态变量的更新值。
93.在一些实施例中,更新模块504执行在运行定位过程中,获取所述状态变量的当前值的步骤,具体可以包括以下至少一个步骤:在所述状态变量包括尺度信息的情况下,在运行定位过程中,对所述定位设备进行运动初始化,利用所述运动初始化完成后得到的尺度信息,得到所述尺度信息的当前值;在所述状态变量包括三维点逆深度的情况下,在运行定位过程中,获取所述定位设备采集的第二场景图像,沿着点的深度方向为所述第二场景图像中的二维点确定对应的逆深度三维点的随机逆深度值,以作为所述三维点逆深度的当前值。
94.在一些实施例中,更新模块504还用于获取至少两帧所述第二场景图像对应的设备朝向信息;根据所述至少两帧所述第二场景图像中的二维点以及所述设备朝向信息,对
所述第二场景图像中的外点进行剔除。
95.在一些实施例中,更新模块504还用于在所述状态变量包括速度的情况下,在运行定位过程中,判断所述定位设备是否处于静止状态;在所述定位设备处于静止状态的情况下,将静止速度值作为所述速度的更新值。
96.在一些实施例中,确定模块506还可以用于获取所述状态变量的更新值所对应的不确定度,并在所述状态变量的不确定度低于第二预设阈值的情况下,确定所述状态变量满足收敛;和/或,利用所述状态变量的更新值,确定所述定位设备的位姿。
97.请参阅图6,图6是本技术定位初始化装置另一实施例的框架示意图。定位初始化装置60包括相互耦接的存储器61和处理器62,处理器62用于执行存储器61中存储的程序指令,以实现上述任一定位初始化方法实施例的步骤。在一个具体的实施场景中,定位初始化装置60可以包括但不限于:微型计算机、服务器。
98.具体而言,处理器62用于控制其自身以及存储器61以实现上述任一定位初始化方法实施例中的步骤。处理器62还可以称为cpu(central processing unit,中央处理单元)。处理器62可能是一种集成电路芯片,具有信号的处理能力。处理器62还可以是通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器62可以由集成电路芯片共同实现。
99.上述方案,处理器利用在静止状态下获取的状态变量的先验信息,为状态变量设置初始值,其中状态变量用于定位,且包括视觉状态变量和惯性状态变量,并在运行定位过程中,在确定更新后的状态变量满足收敛的情况下,确定定位初始化完成,即实现了利用先验信息在设备接近静止状态下同时初始化视觉和惯性系统,使定位的初始化过程快速且稳定,同时易于用户操作。
100.请参阅图7,图7是本技术计算机可读存储介质一实施例的框架示意图。计算机可读存储介质70存储有能够被处理器运行的程序指令700,程序指令700用于实现上述任一定位初始化方法实施例中的步骤。
101.本公开涉及增强现实领域,通过获取现实环境中的目标对象的图像信息,进而借助各类视觉相关算法实现对目标对象的相关特征、状态及属性进行检测或识别处理,从而得到与具体应用匹配的虚拟与现实相结合的ar效果。示例性的,目标对象可涉及与人体相关的脸部、肢体、手势、动作等,或者与物体相关的标识物、标志物,或者与场馆或场所相关的沙盘、展示区域或展示物品等。视觉相关算法可涉及视觉定位、slam、三维重建、图像注册、背景分割、对象的关键点提取及跟踪、对象的位姿或深度检测等。具体应用不仅可以涉及跟真实场景或物品相关的导览、导航、讲解、重建、虚拟效果叠加展示等交互场景,还可以涉及与人相关的特效处理,比如妆容美化、肢体美化、特效展示、虚拟模型展示等交互场景。
102.可通过卷积神经网络,实现对目标对象的相关特征、状态及属性进行检测或识别处理。上述卷积神经网络是基于深度学习框架进行模型训练而得到的网络模型。
103.在本技术所提供的几个实施例中,应该理解到,所揭露的方法、装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划
分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
104.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
105.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
106.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

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

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

相关文献