位姿确定方法、位姿确定装置、介质与电子设备与流程

文档序号:30521164发布日期:2022-06-25 04:58阅读:139来源:国知局
位姿确定方法、位姿确定装置、介质与电子设备与流程

1.本公开涉及导航与定位技术领域,尤其涉及一种位姿确定方法、位姿确定装置、计算机可读存储介质与电子设备。


背景技术:

2.随着信息化的普及,基于位姿信息的服务越来越多。例如,通过实时对行人进行位姿跟踪,来提供运动轨迹绘制、室内导航、增强现实等服务;基于相机在移动拍摄过程中的实时位姿,来对场景进行三维重建。
3.相关技术中,位姿的准确度过于依赖传感器的精度,因此很容易受到传感器误差的影响,导致无法提供稳定的服务。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域技术人员已知的现有技术的信息。


技术实现要素:

5.本公开提供一种位姿确定方法、位姿确定装置、计算机可读存储介质与电子设备,以至少在一定程度上提高位姿的准确度。
6.根据本公开的第一方面,提供一种位姿确定方法,包括:获取多个采样时刻的惯性数据;根据所述多个采样时刻的惯性数据确定所述采样时刻对应的注意力权重;利用所述注意力权重对所述多个采样时刻的惯性数据提取中间特征,根据所述中间特征确定第一位姿数据;基于所述惯性数据与所述第一位姿数据,输出至少一个目标时刻的第二位姿数据。
7.根据本公开的第二方面,提供一种位姿确定装置,包括:数据获取模块,被配置为获取多个采样时刻的惯性数据;权重处理模块,被配置为根据所述多个采样时刻的惯性数据确定所述采样时刻对应的注意力权重;第一位姿数据处理模块,被配置为利用所述注意力权重对所述多个采样时刻的惯性数据提取中间特征,根据所述中间特征确定第一位姿数据;第二位姿数据处理模块,被配置为基于所述惯性数据与所述第一位姿数据,输出至少一个目标时刻的第二位姿数据。
8.根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的位姿确定方法及其可能的实现方式。
9.根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的位姿确定方法及其可能的实现方式。
10.本公开的技术方案具有以下有益效果:
11.本方案采用注意力机制对多个采样时刻的惯性数据进行解算处理,以提取中间特征并确定第一位姿数据,充分考虑了单个采样时刻的惯性数据在时间段内的重要程度,利用了不同采样时刻的惯性数据之间的相关性,使得中间特征能够更多地体现较为重要的惯性数据的特征信息,特别是在一些惯性数据存在较大误差时,能够降低该惯性数据的特征
信息在中间特征中的占比,从而有利于提高第一位姿数据以及后续优化得到的第二位姿数据的准确度,降低位姿解算结果对于传感器的依赖。
12.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
13.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1示出本示例性实施方式中一种系统架构的示意图;
15.图2示出本示例性实施方式中一种位姿确定方法的流程图;
16.图3示出本示例性实施方式中位姿估计网络及其处理惯性数据的示意图;
17.图4示出本示例性实施方式中一种位姿确定方法的子流程图;
18.图5示出本示例性实施方式中位姿确定方法的示意性流程图;
19.图6示出本示例性实施方式中前向传播与反向传播的示意图;
20.图7示出本示例性实施方式中一种位姿确定装置的结构示意图;
21.图8示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
22.现在将参考附图描述本公开的示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例。提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
23.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
24.相关技术中,在利用移动终端上位姿相关的传感器采集传感器数据后,通常采用积分运算来解算移动终端的位姿,该方案一般适用于移动终端处于相对平稳的状态下,而如果移动终端的位姿变动幅度较大,积分运算所累积的误差会急剧升高,导致位姿解算结果产生较大的偏差。
25.鉴于上述一个或多个问题,本公开的示例性实施方式首先提供一种位姿确定方法,可用于确定移动终端的位姿,该位姿一般等同于持有或装设该移动终端的目标(如用
户)的位姿。下面结合图1对本示例性实施方式运行环境的系统架构与应用场景进行示例性说明。
26.图1示出了系统架构的示意图,该系统架构100可以包括移动终端110与计算设备120。其中,移动终端110可以是智能手机、平板电脑、可穿戴设备、无人车、无人机等。该移动终端110至少包括惯性传感器,用于感测移动终端110的惯性数据。计算设备120可以是终端计算机,也可以是提供定位相关服务的服务器。移动终端110与计算设备120之间可以通过有线或无线的通信链路形成连接,以进行数据交互。
27.在一种实施方式中,移动终端110可以将惯性数据发送至计算设备120,例如在用户持移动终端110进行运动的过程中,移动终端110实时地将惯性数据发送至计算设备120,计算设备120通过执行上述位姿确定方法,得到移动终端110的位姿数据,并可以将结果返回移动终端110。因此,上述位姿确定方法的执行主体可以是计算设备120。
28.在一种实施方式中,本示例性实施方式也可以基于移动终端110而单独实现。例如,移动终端110在通过内置的惯性传感器采集惯性数据后,通过执行上述位姿确定方法,得到移动终端110的位姿数据。因此,上述位姿确定方法的执行主体也可以是移动终端110。
29.下面结合图2对本示例性实施方式中的位姿确定方法进行说明,图2示出了该位姿确定方法的示例性流程,可以包括:
30.步骤s210,获取多个采样时刻的惯性数据;
31.步骤s220,根据上述多个采样时刻的惯性数据确定采样时刻对应的注意力权重;
32.步骤s230,利用注意力权重对上述多个采样时刻的惯性数据提取中间特征,根据中间特征确定第一位姿数据;
33.步骤s240,基于惯性数据与第一位姿数据,输出至少一个目标时刻的第二位姿数据。
34.在上述位姿确定方法中,采用注意力机制对多个采样时刻的惯性数据进行解算处理,以提取中间特征并确定第一位姿数据,充分考虑了单个采样时刻的惯性数据在时间段内的重要程度,利用了不同采样时刻的惯性数据之间的相关性,使得中间特征能够更多地体现较为重要的惯性数据的特征信息,特别是在一些惯性数据存在较大误差时,能够降低该惯性数据的特征信息在中间特征中的占比,从而有利于提高第一位姿数据以及后续优化得到的第二位姿数据的准确度,降低位姿解算结果对于传感器的依赖。
35.下面对图2中的每个步骤进行具体说明。
36.在步骤s210中,获取多个采样时刻的惯性数据。
37.其中,上述惯性数据可以是惯性传感器输出的原始数据,即未经进一步处理的惯性数据。本示例性实施方式中,惯性传感器可以包括加速度计、陀螺仪、磁力计中的一种或多种,其中加速度计可以输出加速度数据(acc data),陀螺仪可以输出角速度数据(gyro data),磁力计可以输出磁力计数据(mag data)。根据移动终端110所配置的惯性传感器的种类,上述惯性数据可以包括加速度数据、角速度数据、磁力计数据中的一种或多种。
38.采样时刻可以是惯性传感器采集惯性数据的时刻。例如,惯性传感器的感测频率为50hz,即周期为20ms,表示惯性传感器每隔20ms采集一次惯性数据,以第0ms可以表示惯性传感器首次采集惯性数据的时刻,则采样时刻可以包括第0ms、第20ms、第40ms等。
39.不同种类的惯性传感器的感测频率可以相同,也可以不同。在一种实施方式中,当
至少两种惯性传感器的感测频率不同时,可以通过对其中至少一种惯性传感器的数据进行上采样或下采样,使得不同种类的惯性传感器输出惯性数据的频率相同。
40.不同种类的惯性传感器之间可能存在时间误差,例如加速度计输出t时刻的加速度数据,陀螺仪输出t时刻的角速度数据,由于传感器本身的响应延迟、数据传输的延迟以及其他因素的影响,导致该t时刻的加速度数据与角速度数据实际对应的数据感测时刻并不相同。在一种实施方式中,可以预先对不同种类的惯性传感器之间的时间误差进行校正,例如结合其他或外部传感器标定加速度计与陀螺仪之间的时间误差,通过补偿的方式以尽可能减小时间误差。
41.继续参考图2,在步骤s220中,根据上述多个采样时刻的惯性数据确定采样时刻对应的注意力权重。
42.其中,注意力权重用于表示单个采样时刻的惯性数据在一段时间(可以是上述多个采样时刻组成的时段,该一段时间也可以理解为惯性数据的上下文信息)内的重要程度。一般的,可以计算不同采样时刻的惯性数据之间的相关性,并由此确定注意力权重。
43.本示例性实施方式中,注意力权重可以通过向量或矩阵等形式表示,但本公开对此不做限定。示例性的,假设在步骤s210中获取t个采样时刻的惯性数据,t个采样时刻分别记为采样时刻1、采样时刻2、

、采样时刻t,t个采样时刻的惯性数据分别记为imu1、imu2、

、imu
t
。可以通过计算imu1、imu2、

、imu
t
之间的相关性,分别得到t个采样时刻对应的t组注意力权重,每一组注意力权重用于表示其对应的采样时刻的惯性数据在采样时刻1~t时间段内的重要程度。也可以通过计算每个采样时刻的惯性数据与其他采样时刻的惯性数据之间的相关性,分别得到每个采样时刻对应的t组注意力权重,如采样时刻2对应的t组注意力权重可记为k
21
、k
22
、k
23


、k
2t
,其中k
21
为采样时刻2对应的与采样时刻1关联的注意力权重,表示在计算采样时刻1的位姿数据时采样时刻2的重要程度,k
23
为采样时刻2对应的与采样时刻3关联的注意力权重,表示在计算采样时刻3的位姿数据时采样时刻2的重要程度。
44.在一种实施方式中,可以根据不同采样时刻的惯性数据之间的相似程度确定注意力权重。举例来说,对于上述t个采样时刻的惯性数据imu1、imu2、

、imu
t
,可以计算imu1与imu2之间的相似程度,将相似程度进行数值映射处理(如归一化)等,作为采样时刻1对应的与采样时刻2关联的注意力权重。或者,也可以分别计算imu1与imu2、

、imu
t
之间的相似程度,得到t-1组相似程度值,将其融合并进行数值映射处理等,得到采样时刻1对应的注意力权重。
45.一般的,惯性传感器连续采集的惯性数据之间具有一定的连续性。如果某个采样时刻的惯性数据存在较大误差,则该采样时刻的惯性数据与其他采样时刻(特别是相邻的采样时刻)的惯性数据相比,可能存在显著的偏差,那么在根据相似程度、相关性等计算注意力权重时,该采样时刻对应的注意力权重通常较小,使得该采样时刻的惯性数据对于后续解算过程的影响较小,有利于提高解算结果的准确度。
46.继续参考图2,在步骤s230中,利用注意力权重对上述多个采样时刻的惯性数据提取中间特征,根据中间特征确定第一位姿数据。
47.其中,中间特征可以包含不同采样时刻的惯性数据的特征信息。利用注意力权重提取中间特征,可以使不同采样时刻的惯性数据的特征信息在中间特征中的占比不同,某
个采样时刻对应的注意力权重越高,则中间特征中包含的该采样时刻的惯性数据的特征信息越多。可以理解为,通过注意力权重,为不同采样时刻的惯性数据分配不同的关注程度,所提取的特征信息按照注意力权重的数值分布情况,具有一定的时间倾向性,更加倾向于注意力权重较高的那些采样时刻。从而使得中间特征能够体现出上述多个采样时刻的时间段内的重要信息,降低不重要信息的占比。特别的,如果某个采样时刻的惯性数据存在较大误差,通过步骤s220得到该采样时刻对应的注意力权重较小,在步骤s230所提取的中间特征中,该采样时刻的惯性数据的特征信息的占比也较低,使得中间特征能够更加准确地反映实际位姿特征,从而有利于提高后续解算第一位姿数据与第二位姿数据的准确性。
48.在一种实施方式中,步骤s230中所提取的中间特征可以包括每个采样时刻对应的中间特征。例如,可以提取得到t个采样时刻对应的t组中间特征,分别记为u1、u2、

、u
t

49.在一种实施方式中,也可以提取至少一个目标时刻的中间特征。目标时刻是需要确定位姿的时刻,可以是上述多个采样时刻中的一个或多个采样时刻,可以依次将每个采样时刻作为目标时刻。例如,以采样时刻t作为目标时刻,可以利用采样时刻1~n对应的注意力权重对采样时刻1~n的惯性数据进行特征提取,得到采样时刻t对应的中间特征。
50.在提取中间特征后,可以根据中间特征初步确定位姿数据,所得到的即第一位姿数据。步骤s240中经过优化得到的位姿数据为第二位姿数据,“第一”、“第二”用于区分两者。
51.本示例性实施方式中的位姿数据可以包括位置数据、姿态数据中的至少一种,本公开对于第一位姿数据与第二位姿数据的种类、形式等不做限定,第一位姿数据与第二位姿数据的种类、形式可以相同,也可以不同。第一位姿数据可以是某个坐标系下的绝对位姿,也可以是相对于某一基准位姿的相对位姿等。在一种实施方式中,第一位姿数据可以包括6dof(degree of freedom,自由度)数据、姿态四元数、空间位置坐标、欧拉角、平移向量、旋转矩阵中的任意一种或多种。
52.中间特征可以在一定程度上反映惯性数据的位姿信息。在一种实施方式中,可以将中间特征作为惯性数据对应的第一位姿数据。在另一种实施方式中,也可以对中间特征做进一步的处理,得到第一位姿数据。例如,可以根据第一位姿数据的维度,对中间特征进行维度转换,得到第一位姿数据;或者,对中间特征做进一步的线性或非线性变换、融合等处理,得到第一位姿数据。本公开对于具体的处理方式不做限定。
53.在一种实施方式中,在步骤s230中可以得到每个采样时刻的第一位姿数据,例如t个采样时刻的第一位姿数据可以记为q1、q2、

、q
t

54.在一种实施方式中,在步骤s230中也可以得到至少一个目标时刻的第一位姿数据。例如,以采样时刻t作为目标时刻,可以得到采样时刻t的第一位姿数据q
t

55.继续参考图2,在步骤s240中,基于惯性数据与第一位姿数据,输出至少一个目标时刻的第二位姿数据。
56.由于惯性数据中通常存在误差,并且第一位姿数据也可能存在误差,使得惯性数据与第一位姿数据在本质上并不完全一致。例如,将惯性数据与第一位姿数据转换为相同形式的数据,如姿态四元数,两者不完全相同。基于两者的误差,可以进行数据优化,以得到第二位姿数据。由此可知,第二位姿数据是在惯性数据与第一位姿数据的基础上,经过进一步处理得到的位姿数据。
57.在一种实施方式中,步骤s220、s230与步骤s240中所使用的惯性数据在种类、形式上可以相同,也可以不同。例如,在步骤s210中,获取的惯性数据包括加速度数据、角速度数据、磁力计数据;在步骤s220与s230中,可以采用加速度数据、角速度数据、磁力计数据确定注意力权重并提取中间特征,以得到第一位姿数据;在步骤s240中,可以仅采用惯性数据中的角速度数据,基于角速度数据与第一位姿数据得到第二位姿数据。
58.在一种实施方式中,可以将惯性数据与第一位姿数据转换为相同形式的数据,如姿态四元数,然后对两者进行融合,如求平均、加权平均等,得到第二位姿数据。
59.在一种实施方式中,位姿确定方法还可以包括以下步骤:
60.在根据中间特征确定第一位姿数据时,还得到第一位姿数据的不确定度(或置信度,与不确定度为相反的概念)。
61.由于第一位姿数据是根据惯性数据进行位姿估计所得到的数据,具有一定的不确定性,不确定度用于表示该不确定性的程度。本公开对于如何计算不确定度不做具体限定。在一种实施方式中,可以根据第一位姿数据的平滑性计算其不确定度,平滑性与不确定度可以呈负相关,例如,可以对多个采样时刻的第一位姿数据进行平滑拟合,根据第一位姿数据与拟合曲线的偏离程度确定不确定度。在一种实施方式中,也可以通过神经网络输出不确定度,例如,训练用于输出不确定度的神经网络,不确定度的标签可以通过第一位姿数据与实际位姿数据之间的偏差计算得到。
62.本示例性实施方式中,可以根据不确定度确定惯性数据与第一位姿数据进行融合时的权重,一般的,不确定度越高(或置信度越低),表示第一位姿数据越不可信,融合时第一位姿数据的权重越低。
63.在一种实施方式中,上述根据惯性数据与第一位姿数据,输出至少一个目标时刻的第二位姿数据,可以包括以下步骤:
64.基于惯性数据与第一位姿数据进行卡尔曼滤波,根据卡尔曼滤波的结果得到至少一个目标时刻的第二位姿数据。
65.其中,可以以惯性数据与第一位姿数据中的任一者为状态数据,另一者为观测数据,通过卡尔曼滤波来进行位姿的最优估计。将经过卡尔曼滤波后得到的位姿数据作为第二位姿数据,即卡尔曼滤波的结果包括第二位姿数据。
66.在一种实施方式中,可以基于上述多个采样时刻的惯性数据与多个采样时刻的第一位姿数据进行卡尔曼滤波,得到其中任意一个或多个采样时刻的第二位姿数据。该任意一个或多个采样时刻即目标时刻。
67.下面通过两个示例对卡尔曼滤波进行说明:
68.示例一,上述基于惯性数据与第一位姿数据进行卡尔曼滤波,可以包括以下步骤:
69.以第一位姿数据为状态数据,惯性数据为观测数据,通过卡尔曼滤波得到第二位姿数据。
70.其中,可以对第一位姿数据建立状态方程,例如对多个采样时刻的第一位姿数据进行拟合以得到状态方程。提取惯性数据中与第一位姿数据相关的数据以作为观测数据,如第一位姿数据仅包括姿态数据,则可以提取惯性数据中的角速度数据作为观测数据。进而,通过卡尔曼滤波来优化位姿估计,得到第二位姿数据。
71.示例二,上述基于惯性数据与第一位姿数据进行卡尔曼滤波,可以包括以下步骤:
72.以惯性数据为状态数据,第一位姿数据为观测数据,通过卡尔曼滤波得到第二位姿数据。
73.其中,可以提取惯性数据中与第一位姿数据相关的数据,其能够表示相邻两个采样时刻的位姿变化,由此可以建立状态方程。以第一位姿数据作为观测数据,通过卡尔曼滤波来优化姿态估计,得到第二位姿数据。
74.在一种实施方式中,在得到第一位姿数据的不确定度的情况下。上述以惯性数据为状态数据,第一位姿数据为观测数据,通过卡尔曼滤波得到第二位姿数据,可以包括以下步骤:
75.根据第一位姿数据的不确定度确定观测数据协方差矩阵;
76.以惯性数据为状态数据,第一位姿数据为观测数据,代入观测数据协方差矩阵并进行扩展卡尔曼滤波,得到第二位姿数据。
77.ekf(extended kalman filter,扩展卡尔曼滤波)是一种可用于非线性状态估计的卡尔曼滤波算法。在ekf计算过程中,涉及到多个相关参数的协方差矩阵,本示例性实施方式中根据第一位姿数据的不确定度确定观测数据协方差矩阵,至于其他的协方差矩阵,可以根据相邻采样时刻的数据来计算,也可以采用预设的数值。确定以惯性数据为状态数据,第一位姿数据为观测数据,将相关参数的协方差矩阵代入ekf算法公式中,计算得到第二位姿数据。
78.下面对ekf的计算过程进行具体说明。需要说明的是,由于本示例性实施方式中以第一位姿数据为观测数据,第一位姿数据本质上是基于惯性数据进行位姿估计得到的数据,并非直接观测的数据,因此在以下计算过程中,将观测方程简化为观测数据本身,即观测方程g(x
t

ob
)=x
t
(x
t
表示t时刻的状态数据的先验值,ω
ob
表示观测噪声),并由此将相关的观测矩阵、观测噪声控制矩阵等简化为单位矩阵。
79.首先,将第一位姿数据的不确定度表示为k维的向量,记为s,k为正整数,可以根据经验或实际情况设定其数值,如10。根据第一位姿数据的不确定度计算观测数据协方差矩阵r
t
,第一位姿数据为姿态四元数时,r
t
为4*4的对称矩阵,如下所示:
[0080][0080][0081]
其中,
[0082]
然后,基于惯性数据中的角速度数据,建立状态方程如下:
[0083]
x
t
=x
t-1
+dδθx
t-1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0084][0085]
其中,x
t
表示t时刻的状态数据的先验值,公式(2)中的x
t-1
可以采用t-1时刻的先验值,也可以采用后验值,优先采用后验值,此时公式(2)为x
t
=x

t-1
+dδθx

t-1
;d表示状态
更新系数,可以根据经验或实际情况设定其数值,示例性的,可以在0至1范围确定d的数值,如可以是1/2;δθ表示根据角速度数据计算的积分值,δθ
x
、δθy、δθz分别为δθ在不同轴向上的值。
[0086]
接下来,计算x
t
关于x
t-1
的导数矩阵a,即状态转移矩阵,其可以是状态方程对t-1时刻的状态数据的后验值(即t-1时刻的第二位姿数据)的雅克比矩阵。并建立状态预测协方差估计,如下所示:
[0087][0088]
其中,表示t-1时刻的后验状态协方差矩阵,表示t时刻的先验状态协方差矩阵。q表示预设的噪声协方差矩阵。初始时刻的可以是给定的初始值,则经过每个采样时刻的推算,可以得到
[0089]
再计算卡尔曼增益k
t
,由于将观测矩阵、观测噪声控制矩阵简化为单位矩阵,在计算卡尔曼增益时省略这两个矩阵,如下所示:
[0090][0091]
最后,更新状态数据以及相应协方差矩阵,如下所示:
[0092]
x

t
=x
t
+k
t
(q
t-x
t
)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0093][0094]
其中,q
t
为t时刻的第一位姿数据(即观测数据),x

t
为t时刻的状态数据的后验值,即经过卡尔曼滤波得到的t时刻的第二位姿数据。表示t时刻的后验状态协方差矩阵,可用于在下一次采样时刻(即t+1时刻)计算先验状态协方差矩阵。
[0095]
在一种实施方式中,可以基于神经网络实现上述步骤s220与s230。位姿确定方法还可以包括以下步骤:
[0096]
获取位姿估计网络,该位姿估计网络包括第一子网络与第二子网络;
[0097]
相应的,步骤s220可以包括以下步骤:
[0098]
将上述多个采样时刻的惯性数据输入位姿估计网络,通过第一子网络对惯性数据进行处理,得到采样时刻对应的注意力权重;
[0099]
步骤s230可以包括以下步骤:
[0100]
通过第二子网络对上述多个采样时刻的惯性数据提取基于注意力权重的中间特征,并根据中间特征确定第一位姿数据。
[0101]
其中,位姿估计网络用于对输入的惯性数据进行处理,输出对应的第一位姿数据。第一子网络和第二子网络可以是位姿估计网络的两个部分,第一子网络用于确定注意力权重,第二子网络用于提取中间特征与确定第一位姿数据。位姿估计网络可以设置固定的输入数据维度,示例性的,其输入数据维度可以是n*t,t表示可输入t个采样时刻的惯性数据,n表示每个采样时刻的惯性数据具有n个维度。
[0102]
在一种实施方式中,第一子网络与第二子网络可以是并行的结构,将上述多个采样时刻的惯性数据输入位姿估计网络后,分别进入第一子网络与第二子网络以进行处理。
第一子网络输出注意力权重,可以将注意力权重输出至第二子网络中的某个中间层,使得第二子网络可以提取基于注意力权重的中间特征,进而确定第一位姿数据。
[0103]
通过设置位姿估计网络,可以将步骤s220与s230集成在位姿估计网络中实现,有利于提高计算效率。并且,由于位姿估计网络通常具有较强的泛化能力,使得本示例性实施方式能够用于在较多场景下确定位姿,即方案的适用场景更加广泛。
[0104]
在一种实施方式中,参考图3所示,在位姿估计网络中,第一子网络可以包括第一基础特征层、注意力权重层,第二子网络可以包括第二基础特征层、注意力特征层、全连接层。
[0105]
相应的,上述通过第一子网络对惯性数据进行处理,得到采样时刻对应的注意力权重,可以包括以下步骤:
[0106]
通过第一基础特征层对惯性数据提取第一基础特征;
[0107]
通过注意力权重层对第一基础特征进行融合,得到采样时刻对应的注意力权重;
[0108]
上述通过第二子网络对上述多个采样时刻的惯性数据提取基于注意力权重的中间特征,并根据中间特征确定第一位姿数据,可以包括以下步骤:
[0109]
通过第二基础特征层对惯性数据提取第二基础特征;
[0110]
通过注意力特征层第二基础特征进行基于注意力权重的加权处理,得到中间特征;
[0111]
通过全连接层对中间特征进行全连接处理,得到第一位姿数据。
[0112]
其中,第一基础特征层与第二基础特征层均用于提取惯性数据中的基础特征,基础特征可以是较为初步的特征。第一基础特征层与第二基础特征层可以采用线性或非线性变换的方式,并且第一基础特征层、第二基础特征层可以包括多个中间层。在一种实施方式中,第一基础特征层与第二基础特征层均为线性变换层,且两者具有不同的参数,由此,第一基础特征层与第二基础特征层可以基于不同的参数对惯性数据进行线性变换,分别得到第一基础特征与第二基础特征。
[0113]
第一基础特征用于经过进一步的处理得到注意力权重。本示例性实施方式中,注意力权重层可被训练为提取第一基础特征中的相关性信息,并通过处理得到注意力权重。在一种实施方式中,可以通过对第一基础特征进行非线性激活,如可以采用softmax(归一化指数函数)等函数进行非线性激活,以得到相关性信息。此外,注意力权重层可以对第一基础特征进行融合,包括时域的融合,例如注意力权重层可以对第一基础特征进行非线性激活,并根据非线性激活的结果对第一基础特征进行融合,得到采样时刻对应的注意力权重,由此能够简化注意力权重的维度,提高运算速度。
[0114]
第二基础特征用于做进一步的特征提取。本示例性实施方式中,注意力权重与第二基础特征可以输入注意力特征层,注意力特征层利用注意力权重对第二基础特征进行加权处理,使得不同采样时刻的惯性数据的特征信息在加权后的中间特征中得以重新分配占比,形成对重要的特征信息的倾斜。进而,通过全连接层对中间特征做进一步的维度调整与融合,得到第一位姿数据。
[0115]
以图3为例对姿态估计网络的处理流程进行说明。获取t个采样时刻的惯性数据,如采样时刻1的惯性数据包括加速度数据a1、角速度数据w1,磁力计数据b1。将t个采样时刻的惯性数据输入姿态估计网络,分别进入第一子网络与第二子网络。
[0116]
在第一子网络中,由第一基础特征层提取第一基础特征,可以记为k1、k2、

、k
t
。然后由注意力权重层先对第一基础特征进行非线性激活,得到t个采样时刻对应的基础权重,记为α1、α2、

、α
t
。非线性激活的计算可以参考如下公式:
[0117][0118]
其中,z是注意力权重层的参数,为d维的可学习参数,d表示每个采样时刻对应的基础权重的维度。
[0119]
注意力权重层还可以利用基础权重对第一基础特征进行融合,参考如下公式:
[0120][0121]
其中,k表示注意力权重,其可以包括t个采样时刻对应的注意力权重的数据。
[0122]
在第二子网络中,由第二基础特征层提取第二基础特征,可以记为v1、v2、

、v
t
。然后由注意力特征层利用注意力权重对第二基础特征进行融合,参考如下公式:
[0123]
ui=k*viꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0124]
公式(10)的乘法为对应元素相乘,得到t个采样时刻对应的中间特征,记为u1、u2、

、u
t

[0125]
最后,由全连接层对中间特征进行全连接处理,输出t个采样时刻的第一位姿数据,记为q1、q2、

、q
t
。此外,全连接层还可以输出t个采样时刻的第一位姿数据的不确定度,记为sigma1、sigma2、

、sigma
t

[0126]
由图3中的注意力权重层与注意力特征层可以看出,图3的位姿估计网络采用加性注意力机制,相比于常规注意力机制,能够降低算法的时间复杂度,加速计算过程。应当理解,位姿估计网络的结构不限于图3所示的情况,还可以在第一子网络、第二子网络之外设置多个子网络。例如,可以在第一子网络与第二子网络之间增加第三子网络,其包括第三基础特征层、注意力特征层、注意力权重层,第三基础特征层用于对惯性数据提取第三基础特征,注意力特征层用于利用第一子网络输出的注意力权重对第三基础特征进行加权处理,得到第三中间特征,注意力权重层用于对第三中间特征进行融合,以向第二子网络输出注意力权重。在第二子网络中,注意力特征层可以利用第三中间层输出的注意力权重进行加权处理。
[0127]
在一种实施方式中,位姿估计网络中可以设置lstm(long short-term memory,长短期记忆)、gru(gated recurrent unit,门控循环单元)等用于处理时序数据的网络结构,可用于提取多个采样时刻的惯性数据中的时序特征。例如,上述第一基础特征层、第二基础特征层均可以采用lstm的结构,使得提取的第一基础特征、第二基础特征均包含时序特征。
[0128]
本示例性实施方式中还提供位姿估计网络的训练方法。在一种实施方式中,参考图4所示,位姿确定方法还可以包括以下步骤s410至s440:
[0129]
步骤s410,获取惯性样本数据与惯性样本数据对应的位姿标注数据;
[0130]
步骤s420,将惯性样本数据输入位姿估计网络,通过位姿估计网络得到第一位姿样本数据;
[0131]
步骤s430,基于惯性样本数据与第一位姿样本数据确定第二位姿样本数据;
[0132]
步骤s440,根据第二位姿样本数据与位姿标注数据,更新位姿估计网络的参数。
[0133]
其中,惯性样本数据、第一位姿样本数据、第二位姿样本数据分别与上述惯性数据、第一位姿数据、第二位姿数据的含义相同,不同之处在于惯性样本数据、第一位姿样本数据、第二位姿样本数据为网络训练所使用的数据,因此为样本数据。
[0134]
在步骤s410中,可以通过惯性传感器采集得到惯性样本数据,并通过其他方式得到位姿标注数据。位姿标注数据是模型训练中的位姿真值(ground truth)。示例性的,可以通过无线信号定位、卫星定位、视觉定位等方式确定目标的位姿,得到位姿标注数据。
[0135]
步骤s420至s430的实施方式与上述步骤s220至s240的实施方式基本相同。此处不赘述。
[0136]
在得到第二位姿样本数据后,可以基于第二位姿样本数据与位姿标注数据的偏差计算损失函数值,再根据损失函数值对位姿估计网络进行反向传播参数更新,以实现对位姿估计网络的训练。
[0137]
由上可知,本示例性实施方式可以对位姿估计网络实现端到端的训练,其中,基于惯性样本数据与第一位姿样本数据确定第二位姿样本数据的过程(如可以是ekf算法过程)可以直接参数训练,使得位姿估计网络能够学习到高质量的信息,有利于提高网络质量。
[0138]
将第二位姿样本数据与位姿标注数据之间的损失表示为第一损失函数,可以采用l1、l2等任意形式的损失,以l1损失为例,第一损失函数如下所示:
[0139][0140]
其中,a
ij
表示第i组样本中第j采样时刻的第二位姿样本数据,y
ij
表示对应的位姿标注数据;m表示共有m组样本,一组样本包括在目标一次运动过程中所采集的数据;t表示每组样本共采集t个采样时刻的惯性样本数据。
[0141]
在一种实施方式中,在得到第一位姿样本数据后,可以根据第一位姿样本数据与位姿标注数据,更新位姿估计网络的参数。例如,可以将第一位姿样本数据与位姿标注数据之间的损失表示为第二损失函数,可以采用l1、l2等任意形式的损失,以l1损失为例,第二损失函数如下所示:
[0142][0143]
其中,b
ij
表示第i组样本中第j采样时刻的第一位姿样本数据。可见,通过第二损失函数,能够使得位姿估计网络倾向于输出接近于位姿标注数据的第一位姿样本数据,有利于加速训练过程。
[0144]
在一种实施方式中,可以同时采用上述第一损失函数与第二损失函数来训练位姿估计网络,例如,可以交替采用第一损失函数与第二损失函数来更新位姿估计网络的参数。
[0145]
在一种实施方式中,位姿估计网络还可以输出第一姿态样本数据(或第一姿态数据)的不确定度,记为不确定度样本值。相应的,可以基于第一姿态样本数据与姿态标注数据计算第一姿态样本数据的不确定度标注值,并基于第一姿态样本数据的不确定度样本值与其不确定度标注值,更新位姿估计网络的参数。
[0146]
其中,在构建位姿估计网络时,可以设置双输出通道,分别用于输出第一位姿数据的估计结果与该估计结果的不确定度。不确定度样本值是由位姿估计网络输出的第一位姿样本数据的不确定度。不确定度标注值为不确定度样本值对应的真值,可以根据第一位姿
样本数据与位姿标注数据的偏差确定不确定度标注值,如下所示:
[0147][0148]
基于第一位姿样本数据的不确定度样本值与不确定度标注值的偏差计算损失函数值,该损失函数可记为第三损失函数,可以采用l1、l2等任意形式的损失,以l1损失为例,第三损失函数如下所示:
[0149][0150]
其中,c
ij
表示第i组样本中第j采样时刻的不确定度样本值,v
ij
表示对应的不确定度标注值。
[0151]
在一种实施方式中,可以将第一损失函数或第二损失函数与第三损失函数合并使用,使得位姿估计网络倾向于输出准确的第一位姿数据以及准确的不确定度。
[0152]
在一种实施方式中,上述根据惯性样本数据与第一位姿样本数据确定第二位姿样本数据,可以包括以下步骤:
[0153]
基于惯性样本数据与第一位姿样本数据进行卡尔曼滤波,以得到第二位姿样本数据。
[0154]
对惯性样本数据与第一位姿样本数据进行卡尔曼滤波的过程,可以参考前文内容,此处不赘述。由此,位姿估计网络的处理与卡尔曼滤波为串行的两个过程,将两个过程视为前向传播的全局处理过程。在步骤s440中,可以基于第二位姿样本数据与位姿标注数据,更新位姿估计网络的参数与卡尔曼滤波的参数。也就是说,可以基于全局处理过程进行反向传播参数更新,即按照卡尔曼滤波、位姿估计网络这样反向传播的顺序,更新每一部分参数。卡尔曼滤波的参数包括相关参数的协方差矩阵、参数矩阵、噪声等,在计算损失函数值后,按照梯度下降的方式计算卡尔曼滤波中一个或多个参数的更新量,并由此对卡尔曼滤波的参数进行更新,能够提高卡尔曼滤波的准确性,并实现位姿估计网络的端到端训练。
[0155]
图5示出了位姿确定方法的示意性流程。获取t个采样时刻的惯性数据(a
1 w
1 b1)、(a
2 w
2 b2)、

、(a
t w
t b
t
),将其输入位姿估计网络,得到t个采样时刻的第一位姿数据及其不确定度(q
1 sigma1)、(q
2 sigma2)、

、(q
t sigma
t
);将每个采样时刻的第一位姿数据与角速度数据(w1、w2、

、w
t
)输入扩展卡尔曼滤波器,以进行位姿最优估计,输出每个采样时刻的第二位姿数据x'1、x'2、

、x'
t

[0156]
图6示出了前向传播与反向传播的示意图。由加速度计、陀螺仪、磁力计输出惯性样本数据。将惯性样本数据输入位姿估计网络,得到第一位姿样本数据,根据第一位姿样本数据与位姿标注数据的偏差计算第二损失函数值,并通过反向传播更新位姿估计网络的参数。同时,还可以将第一位姿样本数据与陀螺仪输出的角速度数据输入扩展卡尔曼滤波器,输出经过优化的第二位姿样本数据;根据第二位姿样本数据与位姿标注数据的偏差计算第一损失函数值,再通过扩展卡尔曼滤波、位姿估计网络的反向传播路径,更新位姿估计网络、扩展卡尔曼滤波的参数。应当理解,图6示出的前向传播的流程还可以用于处理惯性数据以得到第一位姿数据与第二位姿数据。
[0157]
本公开的示例性实施方式还提供一种位姿确定装置。参考图7所示,该位姿确定装置700可以包括:
[0158]
数据获取模块710,被配置为获取多个采样时刻的惯性数据;
[0159]
权重处理模块720,被配置为根据上述多个采样时刻的惯性数据确定采样时刻对应的注意力权重;
[0160]
第一位姿数据处理模块730,被配置为利用注意力权重对上述多个采样时刻的惯性数据提取中间特征,根据中间特征确定第一位姿数据;
[0161]
第二位姿数据处理模块740,被配置为基于惯性数据与第一位姿数据,输出至少一个目标时刻的第二位姿数据。
[0162]
在一种实施方式中,数据获取模块710,还被配置为:
[0163]
获取位姿估计网络,该位姿估计网络包括第一子网络与第二子网络;
[0164]
上述根据上述多个采样时刻的惯性数据确定采样时刻对应的注意力权重,包括:
[0165]
将多个采样时刻的惯性数据输入位姿估计网络,通过第一子网络对惯性数据进行处理,得到采样时刻对应的注意力权重;
[0166]
上述利用注意力权重对上述多个采样时刻的惯性数据提取中间特征,根据中间特征确定第一位姿数据,包括:
[0167]
通过第二子网络对多个采样时刻的惯性数据提取基于注意力权重的中间特征,并根据中间特征确定第一位姿数据。
[0168]
在一种实施方式中,第一子网络包括第一基础特征层、注意力权重层,第二子网络包括第二基础特征层、注意力特征层、全连接层;
[0169]
上述通过第一子网络对惯性数据进行处理,得到采样时刻对应的注意力权重,包括:
[0170]
通过第一基础特征层对惯性数据提取第一基础特征;
[0171]
通过注意力权重层对第一基础特征进行融合,得到采样时刻对应的注意力权重;
[0172]
上述通过第二子网络对多个采样时刻的惯性数据提取基于注意力权重的中间特征,并根据中间特征确定第一位姿数据,包括:
[0173]
通过第二基础特征层对惯性数据提取第二基础特征;
[0174]
通过注意力特征层第二基础特征进行基于注意力权重的加权处理,得到中间特征;
[0175]
通过全连接层对中间特征进行全连接处理,得到第一位姿数据。
[0176]
在一种实施方式中,位姿确定装置700还可以包括网络训练模块,被配置为:
[0177]
获取惯性样本数据与惯性样本数据对应的位姿标注数据;
[0178]
将惯性样本数据输入位姿估计网络,通过位姿估计网络得到第一位姿样本数据;
[0179]
基于惯性样本数据与第一位姿样本数据确定第二位姿样本数据;
[0180]
根据第二位姿样本数据与位姿标注数据,更新位姿估计网络的参数。
[0181]
在一种实施方式中,上述基于惯性数据与第一位姿数据,输出至少一个目标时刻的第二位姿数据,包括:
[0182]
基于惯性数据与第一位姿数据进行卡尔曼滤波,根据卡尔曼滤波的结果得到至少一个目标时刻的第二位姿数据。
[0183]
在一种实施方式中,上述基于惯性数据与第一位姿数据进行卡尔曼滤波,根据卡尔曼滤波的结果得到第二位姿数据,包括:
[0184]
以惯性数据为状态数据,第一位姿数据为观测数据,通过卡尔曼滤波得到第二位姿数据。
[0185]
在一种实施方式中,第一位姿数据处理模块730,被配置为:
[0186]
在根据中间特征确定第一位姿数据时,还得到第一位姿数据的不确定度;
[0187]
上述以惯性数据为状态数据,第一位姿数据为观测数据,通过卡尔曼滤波得到第二位姿数据,包括:
[0188]
根据第一位姿数据的不确定度确定观测数据协方差矩阵;
[0189]
以惯性数据为状态数据,第一位姿数据为观测数据,代入观测数据协方差矩阵并进行扩展卡尔曼滤波,得到第二位姿数据。
[0190]
上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
[0191]
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0192]
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0193]
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0194]
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0195]
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0196]
本公开的示例性实施方式还提供一种电子设备,该电子设备例如可以是上述移动终端110或计算设备120。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的位姿确定方法,如可以执行图2的方法步骤。
[0197]
下面以图8中的移动终端800为例,对该电子设备的构造进行示例性说明。本领域技术人员应当理解,除了特别用于移动目的的部件之外,图8中的构造也能够应用于固定类型的设备。
[0198]
如图8所示,移动终端800具体可以包括:处理器810、存储器820、总线830、通信模块840、天线850、电源模块860与传感器模块870。
[0199]
处理器810可以包括一个或多个处理单元,例如:处理器810可以包括ap(application processor,应用处理器)、调制解调处理器、gpu(graphics processing unit,图形处理器)、isp(image signal processor,图像信号处理器)、控制器、编码器、解码器、dsp(digital signal processor,数字信号处理器)、基带处理器和/或npu(neural-network processing unit,神经网络处理器)等。本示例性实施方式中的位姿确定方法或用于位姿预测的模型训练方法,可以由ap、gpu、dsp、npu中的一个或多个来执行,例如在位姿确定方法中,可以由npu加载位姿估计网络的参数并执行模型相关的算法指令,由ap获取惯性数据并输出第二位姿数据。
[0200]
处理器810可以通过总线830与存储器820或其他部件形成连接。
[0201]
存储器820可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器810通过运行存储在存储器820的指令,执行移动终端800的各种功能应用以及数据处理。存储器820还可以存储应用数据,例如存储图像,视频等文件。
[0202]
移动终端800的通信功能可以通过通信模块840与天线850、、调制解调处理器、基带处理器等实现。天线850用于发射和接收电磁波信号。通信模块840可以提供应用在移动终端800上的3g、4g、5g等移动通信解决方案,或者无线局域网、蓝牙、近场通信等无线通信解决方案。
[0203]
电源模块860用于实现电源管理功能,如为电池充电、为设备供电、监测电池状态等。
[0204]
传感器模块870可以包括一种或多种传感器,用于实现相应的感测功能。本示例性实施方式中,传感器模块870可以包括惯性传感器,如加速度计871、陀螺仪872、磁力计873,分别用于感测与采集加速度数据、角速度数据、磁力计数据。这些惯性数据可以传输至处理器810,由处理器810通过执行本示例性实施方式中的位姿确定方法以进行处理,得到第二位姿数据。
[0205]
此外,移动终端1100还可以包括显示屏、音频模块、摄像模块等其他组件,本公开对此不做限定。
[0206]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0207]
本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。
因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
[0208]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1