基于卷积神经网络模型的惯性测量数据校正方法及装置转让专利

申请号 : CN202110429181.X

文献号 : CN112985462B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 费再慧贾双成朱磊李成军

申请人 : 智道网联科技(北京)有限公司

摘要 :

本申请是关于一种基于卷积神经网络模型的惯性测量数据校正方法及装置。该方法包括:以滑动窗口对IMU的测量数据进行分割;使卷积神经网络模型依据时刻I至时刻N+I‑1的IMU的第I组测量数据序列输出时刻N+I‑1的IMU估计数据;依据时刻N+I‑1的IMU估计数据推算获得时刻N+I‑1的轨迹点推算位置;获得每个时刻N+I‑1的轨迹点推算位置与定位模块的位置数据的K个差值的累积和;如果K个差值的累积和小于设定的第一阈值,获得训练好的卷积神经网络模型;依据训练好的卷积神经网络模型输出的每个时刻的IMU估计数据。本申请提供的方案,能够基于卷积神经网络模型降低惯性测量单元的测量误差。

权利要求 :

1.一种基于卷积神经网络模型的惯性测量数据校正方法,其特征在于,包括:初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数;

以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K;

向卷积神经网络模型输入所述K组测量数据序列,以及卫星定位模块的位置数据序列;

使卷积神经网络模型分别依据第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获得时刻N+I‑1的轨迹点推算位置,由此获得K个轨迹点推算位置;

依据每个时刻N+I‑1的轨迹点推算位置与所述卫星定位模块的位置数据,获得每个时刻N+I‑1的轨迹点推算位置与所述卫星定位模块的位置数据的第I个差值,并获得K个差值的累积和;

如果K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型的训练,获得训练好的卷积神经网络模型;

向训练好的卷积神经网络模型输入惯性测量单元的测量数据,获取训练好的卷积神经网络模型输出的每个时刻的IMU估计数据。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:如果K个差值的累积和大于或等于设定的第一阈值或者循环次数超过设定的第二阈值,并且K个差值的累积和小于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j个卷积核的参数值,将卷积神经网络模型的损失值更新为K个差值的累积和,其中,j为L除N的余数。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:如果K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,并且K个差值的累积和大于或等于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j‑1个卷积核的参数值。

4.根据权利要求1至3任一项所述的方法,其特征在于,所述以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K,包括:依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小;

以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K。

5.一种基于卷积神经网络模型的惯性测量数据校正装置,其特征在于,包括:初始模块,用于初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数;

分割模块,用于以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K;

输入模块,用于向卷积神经网络模型输入所述分割模块获得的K组测量数据序列,以及卫星定位模块的位置数据序列;

推算轨迹模块,用于使卷积神经网络模型分别依据所述输入模块输入的第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获得时刻N+I‑1的轨迹点推算位置,由此获得K个轨迹点推算位置;

误差模块,用于依据所述推算轨迹模块获得的每个时刻N+I‑1的轨迹点推算位置与所述输入模块输入的所述卫星定位模块的位置数据,获得每个时刻N+I‑1的轨迹点推算位置与所述卫星定位模块的位置数据的第I个差值,并获得K个差值的累积和;

第一判断模块,用于判断所述误差模块获得的K个差值的累积和是否小于设定的第一阈值或者循环次数是否超过设定的第二阈值;

停止模块,用于如果所述第一判断模块判断K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型的训练,获得训练好的卷积神经网络模型;

估计数据获取模块,用于向训练好的卷积神经网络模型输入惯性测量单元的测量数据,获取训练好的卷积神经网络模型输出的每个时刻的IMU估计数据。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:第二判断模块,用于如果所述第一判断模块判断K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,判断K个差值的累积和是否小于卷积神经网络模型的损失值;

更新模块,用于如果所述第二判断模块判断K个差值的累积和小于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j个卷积核的参数值,将卷积神经网络模型的损失值更新为K个差值的累积和,其中,j为L除N的余数。

7.根据权利要求6所述的装置,其特征在于:所述更新模块,还用于如果所述第二判断模块判断K个差值的累积和大于或等于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j‑1个卷积核的参数值。

8.根据权利要求5‑7中任一项所述的装置,其特征在于,所述装置还包括:窗口调整模块,用于依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小;

所述分割模块,用于以步长为1、长度为N的所述窗口调整模块调整大小的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K。

9.一种电子设备,其特征在于,包括:处理器;以及

存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1‑4中任一项所述的方法。

10.一种非暂时性机器可读存储介质,其特征在于,非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1‑4中任一项所述的方法。

说明书 :

基于卷积神经网络模型的惯性测量数据校正方法及装置

技术领域

[0001] 本申请涉及导航技术领域,尤其涉及一种基于卷积神经网络模型的惯性测量数据校正方法及装置。

背景技术

[0002] 相关技术的车辆导航多依赖于卫星定位模块例如GPS(Global Positioning System,全球定位系统)卫星定位模块。但在某些场景下,例如桥下,涵洞,隧道,密集楼宇之
间等GPS信号不好的位置,相关技术的卫星定位模块的定位偏差很大,甚至无法提供定位结
果。而包含惯性测量单元(Inertial Measurement Unit,简称IMU)的惯性导航系统,可以利
用惯性测量单元的测量数据,能够推算出车辆准确的速度、姿态和位置信息。
[0003] 惯性导航系统利用惯性测量单元的加速度计和陀螺仪的测量数据推算车辆的速度、姿态和位置信息。然而,惯性测量单元中的加速度计和陀螺仪受各种因素影响,使用一
段时间后,其参数和性能会发生变化,使得的测量数据会有所偏差,而且随着时间的推移积
累较大的误差,导致利用惯性测量单元的测量数据进行定位导航的进度降低。因此如何降
低惯性测量单元的测量误差,是一个亟待解决的技术问题。

发明内容

[0004] 为解决或部分解决相关技术中存在的问题,本申请提供一种基于卷积神经网络模型的惯性测量数据校正方法及装置,能够基于卷积神经网络模型降低惯性测量单元的测量
误差。
[0005] 本申请第一方面提供一种基于卷积神经网络模型的惯性测量数据校正方法,所述方法包括:
[0006] 初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数;
[0007] 以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括
N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K;
[0008] 向卷积神经网络模型输入所述K组测量数据序列,以及定位模块的位置数据序列;
[0009] 使卷积神经网络模型分别依据第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获得时刻N+I‑1的轨迹点推算位置,由此获得
K个轨迹点推算位置;
[0010] 依据每个时刻N+I‑1的轨迹点推算位置与所述定位模块的位置数据,获得每个时刻N+I‑1的轨迹点推算位置与所述定位模块的位置数据的第I个差值,并获得K个差值的累
积和;
[0011] 如果K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型的训练,获得训练好的卷积神经网络模型;
[0012] 向训练好的卷积神经网络模型输入惯性测量单元的测量数据,获取训练好的卷积神经网络模型输出的每个时刻的IMU估计数据。
[0013] 优选的,所述方法还包括:
[0014] 如果K个差值的累积和大于或等于设定的第一阈值或者循环次数超过设定的第二阈值,并且K个差值的累积和小于卷积神经网络模型的损失值,将循环次数L更新为L+1,依
据设定的卷积神经网络模型的学习率修改第j个卷积核的参数值,将卷积神经网络模型的
损失值更新为K个差值的累积和,其中,j为L除N的余数。
[0015] 优选的,所述方法还包括:
[0016] 如果K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,并且K个差值的累积和大于或等于卷积神经网络模型的损失值,将循环次数L更
新为L+1,依据设定的卷积神经网络模型的学习率修改第j‑1个卷积核的参数值。
[0017] 优选的,所述以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获
得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K,包
括:
[0018] 依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小;
[0019] 以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,获得每组包括
N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K。
[0020] 本申请第二方面提供一种基于卷积神经网络模型的惯性测量数据校正装置,所述装置包括:
[0021] 初始模块,用于初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数;
[0022] 分割模块,用于以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序列,
获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,K;
[0023] 输入模块,用于向卷积神经网络模型输入所述分割模块获得的K组测量数据序列,以及定位模块的位置数据序列;
[0024] 推算轨迹模块,用于使卷积神经网络模型分别依据所述输入模块输入的第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获得
时刻N+I‑1的轨迹点推算位置,由此获得K个轨迹点推算位置;
[0025] 误差模块,用于依据所述推算轨迹模块获得的每个时刻N+I‑1的轨迹点推算位置与所述输入模块输入的所述定位模块的位置数据,获得每个时刻N+I‑1的轨迹点推算位置
与所述定位模块的位置数据的第I个差值,并获得K个差值的累积和;
[0026] 第一判断模块,用于判断所述误差模块获得的K个差值的累积和是否小于设定的第一阈值或者循环次数是否超过设定的第二阈值;
[0027] 停止模块,用于如果所述第一判断模块判断K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型的训练,获得训练好的卷积
神经网络模型;
[0028] 估计数据获取模块,用于向训练好的卷积神经网络模型输入惯性测量单元的测量数据,获取训练好的卷积神经网络模型输出的每个时刻的IMU估计数据。
[0029] 优选的,所述装置还包括:
[0030] 第二判断模块,用于如果所述第一判断模块判断K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,判断K个差值的累积和是否小于卷
积神经网络模型的损失值;
[0031] 更新模块,用于如果所述第二判断模块判断K个差值的累积和小于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j个
卷积核的参数值,将卷积神经网络模型的损失值更新为K个差值的累积和,其中,j为L除N的
余数。
[0032] 优选的,所述更新模块,还用于如果所述第二判断模块判断K个差值的累积和大于或等于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模
型的学习率修改第j‑1个卷积核的参数值。
[0033] 优选的,所述装置还包括:
[0034] 窗口调整模块,用于依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小;
[0035] 所述分割模块,用于以步长为1、长度为N的所述窗口调整模块调整大小的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元
的测量数据为第I组测量数据序列,获得每组包括N个测量数据的K组测量数据序列,其中,K
为大于等于N的整数,I=1,2,…,K。
[0036] 本申请第三方面提供一种电子设备,包括:
[0037] 处理器;以及
[0038] 存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
[0039] 本申请第四方面提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
[0040] 本申请提供的技术方案可以包括以下有益效果:
[0041] 本申请的技术方案,以同一时间段的定位模块的位置数据序列、同一时间段的每组包括N个加速度的K组加速度序列和每组包括N个角速度的K组角速度序列为卷积神经网
络模型的训练样本,通过使卷积神经网络模型依据第I组加速度序列输出时刻N+I‑1的加速
度,依据第I组角速度序列输出时刻N+I‑1的角速度,增强训练样本的可信度,减少了训练样
本的误差;通过使卷积神经网络模型依据第I组加速度序列输出时刻N+I‑1的加速度,依据
第I组角速度序列输出时刻N+I‑1的角速度,推算获得时刻N+I‑1的轨迹点推算位置;依据时
刻N+I‑1的轨迹点推算位置与同一时间段的时刻N+I‑1的位置数据,获得时刻N+I‑1的轨迹
点推算位置与同一时间段的时刻N+I‑1的位置数据的第I个差值,获得K个差值的累积和;分
析K个差值的累积和与卷积神经网络模型的当前损失值,依据设定的卷积神经网络模型的
学习率,修改卷积神经网络模型的损失值和依次修改卷积神经网络模型的卷积核的参数
值,完成卷积神经网络模型的训练,能够提高卷积神经网络模型的训练精度和速率。向完成
训练的卷积神经网络模型输入惯性测量单元的加速度和角速度,使卷积神经网络模型输出
的降低测量误差的估计加速度和估计角速度。基于卷积神经网络模型的惯性测量数据校正
方法,能够基于卷积神经网络模型降低惯性测量单元的测量误差,获得降低测量误差的惯
性测量单元的校正测量数据,有助于提高惯性定位导航的精度。
[0042] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

[0043] 通过结合附图对本申请示例性实施方式进行更详细的描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号
通常代表相同部件。
[0044] 图1是本申请一实施例示出的基于卷积神经网络模型的惯性测量数据校正方法的流程示意图;
[0045] 图2是本申请另一实施例示出的基于卷积神经网络模型的惯性测量数据校正方法的流程示意图;
[0046] 图3是本申请一实施例示出的基于卷积神经网络模型的惯性测量数据校正装置的结构示意图;
[0047] 图4是本申请实施例示出的电子设备的结构示意图。

具体实施方式

[0048] 下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。
相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整
地传达给本领域的技术人员。
[0049] 在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数
形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包
含一个或多个相关联的列出项目的任何或所有可能组合。
[0050] 应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,
在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以
被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更
多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限
定。
[0051] 本申请实施例提供一种基于卷积神经网络模型的惯性测量数据校正方法,能够基于卷积神经网络模型降低惯性测量单元的测量误差,获得降低误差的校正测量数据。
[0052] 以下结合附图详细描述本申请实施例的技术方案。
[0053] 实施例一:
[0054] 图1是本申请一实施例示出的基于卷积神经网络模型的惯性测量数据校正方法的流程示意图。
[0055] 参见图1,一种基于卷积神经网络模型的惯性测量数据校正方法,包括:
[0056] 在步骤101中,初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数。
[0057] 在一种具体实施方式中,初始化卷积神经网络模型,可以定义一个大小为N的卷积核,为N个卷积核依次排序,并依次为每个卷积核设定参数值;设定卷积神经网络模型的损
失值LOSS;设定卷积神经网络模型的学习率learn_rate。在一些实施例中,还可以定义循环
次数L=1。
[0058] 在一种实施方式中,依据惯性测量单元采集加速度和角速度的采集频率,初始化卷积神经网络模型,包括:以采集频率的约数或者倍数定义卷积神经网络模型的卷积核大
小N,并为每个卷积核设定参数值,其中,N为大于1的整数。
[0059] 在一种具体实施方式中,依据惯性测量单元的采集频率,为卷积神经网络模型定义一个大小为N的卷积核,N的取值为采集频率的约数或倍数。例如,惯性测量单元的采集频
率为100,N的取值可以是2、4、5、10、20……100、200等100的约数或倍数。在一些实施例中,N
的取值可以是10。
[0060] 在步骤102中,对一时间段的惯性测量单元的测量数据进行分割,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数。
[0061] 在一种具体实施方式中,车辆上设有惯性测量单元、定位模块。惯性测量单元包括加速度计和陀螺仪,惯性测量单元的测量数据包括惯性测量单元的加速度计的加速度、陀
螺仪的角速度。可以通过惯性测量单元的加速度计获得的车辆的加速度、惯性测量单元的
陀螺仪获得的车辆的角速度。定位模块可以包括但不限于GPS模块、北斗卫星定位模块、RTK
(Real Time Kinematic,实时动态)定位模块等卫星定位模块中的至少一种。利用定位模块
可以获得车辆的定位信息,该定位信息可以包括但不限于位置信息、速度信息和姿态信息。
位置信息包括但不限于描述位置的经纬度坐标信息,姿态信息包括但不限于描述航向的航
向角信息。
[0062] 在一种具体实施方式中,在车辆RTK定位模块信号可用的情况下,获得车辆一个时间段的定位信息,依据车辆一个时间段的定位信息获取车辆一个时间段的位置数据序列。
在通过RTK定位模块获取车辆一个时间段的位置数据序列时,通过惯性测量单元的加速度
计获取同个一时间段的车辆的加速度,通过惯性测量单元的陀螺仪获取同一个时间段的车
辆的角速度。
[0063] 在一种实施方式中,以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据
序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,
2,…,K。
[0064] 在一种具体实施方式中,以步长为1、长度为N的滑动窗口对同一个时间段的加速度进行分割,以时刻I至时刻N+I‑1的加速度为第I组加速度序列,获得每组包括N个加速度
的K组加速度序列;以步长为1、长度为N的滑动窗口对同一个时间段的角速度进行分割,以
时刻I至时刻N+I‑1的角速度为第I组角速度序列,获得每组包括N个角速度的K组角速度序
列。
[0065] 例如,将每N个加速度打包成一组,以时刻1至时刻N的加速度为第一组加速度序列,时刻2至时刻N+1的加速度为第二组加速度序列,时刻3至时刻N+2的加速度为第三组加
速度序列,直至获得包括N个加速度的K组加速度序列。将每N个角速度打包成一组,以时刻1
至时刻N的角速度为第一组角速度序列,时刻2至时刻N+1的角速度为第二组角速度序列,时
刻3至时刻N+2的角速度为第三组角速度序列,直至获得包括N个角速度的K组角速度序列。
[0066] 在步骤103中,向卷积神经网络模型输入K组测量数据序列,以及定位模块的位置数据序列。
[0067] 在一种具体实施方式中,向卷积神经网络模型输入每组包括N个加速度的K组加速度序列和每组包括N个角速度的K组角速度序列,以及定位模块的位置数据序列。
[0068] 在步骤104中,使卷积神经网络模型分别依据第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获得车辆在时刻N+I‑1的轨迹点
推算位置,由此获得K个轨迹点推算数据。
[0069] 在一种具体实施方式中,通过使卷积神经网络模型依据第I组加速度序列输出时刻N+I‑1的估计加速度,依据第I组角速度序列输出时刻N+I‑1的估计角速度,并依据时刻N+
I‑1的估计加速度和估计角速度,推算获得车辆在时刻N+I‑1的轨迹点推算位置,共获得K个
轨迹点推算数据,其中,I=1,2,…,K。
[0070] 可以使卷积神经网络模型分别对第一组加速度序列和第一组角速度序列进行卷积,输出一个角速度和一个加速度,以输出的加速度为时刻N的估计加速度,以输出的角速
度为时刻N的估计角速度;以同一个时间段的RTK定位模块的时刻N‑1的位置数据为初始位
姿;以时刻N‑1的位置数据、时刻N的估计加速度和时刻N的估计角速度,推算得到时刻N的轨
迹点推算位置。
[0071] 可以使卷积神经网络模型分别对第二组加速度序列和第二组角速度序列进行卷积,输出一个角速度和一个加速度,以输出的加速度为时刻N+1的估计加速度,以输出的角
速度为时刻N+1的估计角速度;以同一个时间段的RTK定位模块的时刻N的位置数据为初始
位姿;以时刻N的位置数据、时刻N+1的估计加速度和时刻N+1的估计角速度,推算得到时刻N
+1的轨迹点推算位置。
[0072] 依此类推,可以使卷积神经网络模型分别对第I组加速度序列和第I组角速度序列进行卷积,输出一个角速度和一个加速度,以输出的加速度为时刻N+I‑1的估计加速度,以
输出的角速度为时刻N+I‑1的估计角速度;以同一个时间段的RTK定位模块的时刻N+I的位
置数据为初始位姿;以时刻N+I的位置数据、时刻N+I‑1的估计加速度和时刻N+I‑1的估计角
速度,推算得到时刻N+I‑1的轨迹点推算位置,推算获得K个轨迹点推算数据。
[0073] 在步骤105中,依据每个时刻N+I‑1的轨迹点推算位置和定位模块的位置数据,获得每个时刻N+I‑1轨迹点推算位置与定位模块的位置数据的差值,并获得K个差值的累积
和。
[0074] 在一种具体实施方式中,依据时刻N的轨迹点推算位置和定位模块的位置数据,获得时刻N的第一个差值dp1;依据时刻N+1的轨迹点推算位置和定位模块的位置数据,获得时
刻N+1差值dp2;依此类推,依据同一个时间段的各时刻N+I‑1的轨迹点推算位置和定位模块
的位置数据,获得各时刻N+I‑1的差值dpI,其中,I=1,2,…,K,由此获得K个差值。可以理解
的是,时刻N+I‑1的轨迹点推算位置和定位模块的时刻N+I‑1位置数据在时间上是对齐的。
累计第一个差值dp1、第二个差值dp2……、第K个差值dpk的和,获得K个差值的累积和loss=
dp1+dp2+……+dpk。
[0075] 在步骤106中,判断K个差值的累积和是否小于设定的第一阈值或者循环次数是否超过设定的第二阈值;如果K个差值的累积和大于或等于设定的第一阈值或者循环次数没
有超过设定的第二阈值,执行步骤107;如果K个差值的累积和小于设定的第一阈值或者循
环次数超过设定的第二阈值,执行步骤108。
[0076] 在步骤107中,如果K个差值的累积和小于卷积神经网络模型的损失值,
[0077] 将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j个卷积核的参数值,将卷积神经网络模型的损失值更新为K个差值的累积和,其中,j为L除N的余
数;执行步骤104。
[0078] 在一种具体实施方式中,如果K个差值的累积和小于卷积神经网络模型的损失值,增加1次循环次数,将当前的循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率
learn_rate修改第j个卷积核的参数值,其中,j=mod(L,N),即j为L除N的余数,然后将卷积
神经网络模型的损失值LOSS更新为K个差值的累积和loss。返回循环执行步骤104,对更新
损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续进行训练。
[0079] 在一种具体实施方式中,如果K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,增加1次循环次数,将当前的循环次数L更新为L+1,依据设定的卷积神经网络模
型的学习率learn_rate更新第j个卷积核的参数值xj,例如可以但不限于依据下列公式先
求解出第j个卷积核的新的参数值xj',然后将xj的值更新为xj'。
[0080] xj'=xj‑(loss‑LOSS)/loss*learn_rate
[0081] 然后,将卷积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行步骤104,对更新损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续
进行训练。
[0082] 在一种具体实施方式中,如果K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,增加1次循环次数,将当前的循环次数L更新为L+1,循环次数L除N的余数为0,可
以依据设定的卷积神经网络模型的学习率learn_rate修改第N个卷积核的参数值xN,将卷
积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行步骤104,
对更新损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续进行训练。
[0083] 在步骤108中,停止卷积神经网络模型训练,获得训练好的卷积神经网络模型。
[0084] 在一种具体实施方式中,如果K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型训练,即完成卷积神经网络模型的训练,获
得训练好的卷积神经网络模型。
[0085] 本实施例中,在依据设定的卷积神经网络模型的学习率修改某个卷积核的参数值后,循环执行步骤104、105和106。如果循环获得的K个差值的累积和大于或等于设定的第一
阈值,并且,K个差值的累积和小于卷积神经网络模型的损失值,增加1次循环次数,将当前
的循环次数L更新为L+1,继续修改卷积神经网络模型的某个卷积核的下一个卷积核的参数
值,更新卷积神经网络模型的损失值;并再一次循环执行步骤104、105、106和107。如果循环
获得的K个差值的累积和小于设定的第一阈值,停止卷积神经网络模型的训练,即完成卷积
神经网络模型的训练,获得训练好的卷积神经网络模型。
[0086] 在另一实现方式中,可以设定卷积神经网络模型的训练循环次数,如果没有超过设定的循环次数,利用包括N个加速度的K组加速度序列和包括N个角速度的K组角速度序
列,通过循环获得的K个差值的累积和,循环修改卷积神经网络模型的卷积核的参数值和卷
积神经网络模型的当前损失值,对卷积神经网络模型进行训练。当超过设定的循环次数,例
如循环次数超过设定的第二阈值时,停止卷积神经网络模型的训练,即完成卷积神经网络
模型的训练,获得训练好的卷积神经网络模型。
[0087] 可以理解的,在K个差值的累积和小于设定的第一阈值和循环次数超过设定的第二阈值两个条件中的任一个条件满足时,停止卷积神经网络模型的训练;也可在K个差值的
累积和小于设定的第一阈值和循环次数超过设定的第二阈值两个条件都满足时,停止卷积
神经网络模型的训练。
[0088] 需要说明的是,在卷积神经网络模型的训练过程,依据卷积神经网络模型的学习率修改各个卷积核的参数值时,可以使用同样的学习率,也可以采用学习率自更新的方式
在卷积神经网络模型的训练过程调整学习率。学习率自更新的方式可以参考相关技术,本
申请的实施例不再赘述。
[0089] 在步骤109中,向训练好的卷积神经网络模型输入惯性测量单元的测量数据,通过训练好的卷积神经网络模型输出每个时刻的IMU估计数据。
[0090] 在一种具体实施方式中,在车辆的定位模块例如RTK定位模块信号可用的情况下,完成卷积神经网络模型的训练。在车辆的RTK定位模块信号不可用,无法提供定位信息的情
况下,通过惯性测量单元的加速度计获取车辆的加速度,通过惯性测量单元的陀螺仪获取
车辆的角速度。向训练好的卷积神经网络模型输入车辆的加速度和角速度,使卷积神经网
络模型输出降低测量误差的每个时刻的估计加速度和估计角速度,以卷积神经网络模型输
出的估计加速度为校正后的加速度,以卷积神经网络模型输出的估计角速度为校正后的角
速度,完成惯性测量单元测量数据的校正。
[0091] 本申请的实施例提供的基于卷积神经网络模型的惯性测量数据校正方法,以同一时间段的定位模块的位置数据序列、同一时间段的每组包括N个加速度的K组加速度序列和
每组包括N个角速度的K组角速度序列为卷积神经网络模型的训练样本,通过使卷积神经网
络模型依据第I组加速度序列输出时刻N+I‑1的加速度,依据第I组角速度序列输出时刻N+
I‑1的角速度,增强训练样本的可信度,减少了训练样本的误差;通过使卷积神经网络模型
依据第I组加速度序列输出时刻N+I‑1的加速度,依据第I组角速度序列输出时刻N+I‑1的角
速度,推算获得时刻N+I‑1的轨迹点推算位置;依据时刻N+I‑1的轨迹点推算位置与同一时
间段的时刻N+I‑1的位置数据,获得时刻N+I‑1的轨迹点推算位置与同一时间段的时刻N+I‑
1的位置数据的第I个差值,获得K个差值的累积和;分析K个差值的累积和与卷积神经网络
模型的当前损失值,依据设定的卷积神经网络模型的学习率,修改卷积神经网络模型的损
失值和依次修改卷积神经网络模型的卷积核的参数值,完成卷积神经网络模型的训练,能
够提高卷积神经网络模型的训练精度和速率。向完成训练的卷积神经网络模型输入惯性测
量单元的加速度和角速度,使卷积神经网络模型输出的降低测量误差的估计加速度和估计
角速度。基于卷积神经网络模型的惯性测量数据校正方法,能够基于卷积神经网络模型降
低惯性测量单元的测量误差,获得降低测量误差的惯性测量单元的校正测量数据,有助于
提高惯性定位导航的精度。
[0092] 实施例二:
[0093] 图2是本申请另一实施例示出的基于卷积神经网络模型的惯性测量数据校正方法的流程示意图。图2相对于图1更详细描述了本申请的方案。
[0094] 参见图2,一种基于卷积神经网络模型的惯性测量数据校正方法,包括:
[0095] 在步骤201中,初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数。
[0096] 该步骤可以参见步骤101的描述,此处不再赘述。
[0097] 在步骤202中,对一时间段的惯性测量单元的测量数据进行分割,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数。
[0098] 在一种具体实施方式中,车辆上设有惯性测量单元、定位模块。惯性测量单元包括加速度计和陀螺仪,惯性测量单元的测量数据包括惯性测量单元的加速度计的加速度、陀
螺仪的角速度。可以通过惯性测量单元的加速度计获得的车辆的加速度、惯性测量单元的
陀螺仪获得的车辆的角速度。定位模块可以包括但不限于GPS模块、北斗卫星定位模块、RTK
定位模块等卫星定位模块中的至少一种。利用定位模块可以获得车辆的定位信息,该定位
信息可以包括但不限于位置信息、速度信息和姿态信息。位置信息包括但不限于描述位置
的经纬度坐标信息,姿态信息包括但不限于描述航向的航向角信息。
[0099] 在一种具体实施方式中,在车辆RTK定位模块信号可用的情况下,获得车辆一个时间段的定位信息,依据车辆一个时间段的定位信息获取车辆一个时间段的位置数据序列。
在通过RTK定位模块获取车辆一个时间段的位置数据序列时,通过惯性测量单元的加速度
计获取同个一时间段的车辆的加速度,通过惯性测量单元的陀螺仪获取同一个时间段的车
辆的角速度。
[0100] 在一种实施方式中,以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据
序列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,
2,…,K。
[0101] 在一种具体实施方式中,以步长为1、长度为N的滑动窗口对同一个时间段的加速度进行分割,以时刻I至时刻N+I‑1的加速度为第I组加速度序列,获得每组包括N个加速度
的K组加速度序列;以步长为1、长度为N的滑动窗口对同一个时间段的角速度进行分割,以
时刻I至时刻N+I‑1的角速度为第I组角速度序列,获得每组包括N个角速度的K组角速度序
列。
[0102] 例如,将每N个加速度打包成一组,以时刻1至时刻N的加速度为第一组加速度序列,时刻2至时刻N+1的加速度为第二组加速度序列,时刻3至时刻N+2的加速度为第三组加
速度序列,直至获得包括N个加速度的K组加速度序列。将每N个角速度打包成一组,以时刻1
至时刻N的角速度为第一组角速度序列,时刻2至时刻N+1的角速度为第二组角速度序列,时
刻3至时刻N+2的角速度为第三组角速度序列,直至获得包括N个角速度的K组角速度序列。
[0103] 在一种实施方式中,依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小。
[0104] 在一种具体实施方式中,滑动窗口的大小是对应窗口内惯性测量单元的测量数据的多少,也就是K组测量数据序列的K的取值大小。依据惯性测量单元的加速度计获取的车
辆的加速度,获得车辆在设定时间段的加速度的变化量,依据加速度的变化量的大小调整
滑动窗口的大小。如果车辆在设定时间段的加速度的变化量大于或等于第一设定阈值,增
大滑动窗口;如果车辆在设定时间段的加速度的变化量小于第一设定阈值,减小滑动窗口。
例如,车辆在加速或者减速行驶时,车辆在设定时间段的加速度的变化量大于或等于第一
设定阈值,增大滑动窗口,即增多获得的惯性测量单元的测量数据,可以向卷积神经网络模
型输入的更多的每组包括N个加速度的加速度序列和每组包括N个角速度的角速度序列;车
辆在直线匀速行驶时,车辆在设定时间段的加速度的变化量小于第一设定阈值,减小滑动
窗口,即减少获得的惯性测量单元的测量数据,可以向卷积神经网络模型输入的较少的每
组包括N个加速度的加速度序列和每组包括N个角速度的角速度序列。
[0105] 在一种具体实施方式中,依据惯性测量单元的陀螺仪获取的车辆的角速度,获得车辆在设定时间段的角速度的变化量,依据角速度的变化量的大小调整滑动窗口的大小。
如果车辆在设定时间段的角速度的变化量大于或等于第二设定阈值,增大滑动窗口;如果
车辆在设定时间段的角速度的变化量小于第二设定阈值,减小滑动窗口。例如,车辆在多弯
路段转弯行驶时,车辆在设定时间段的角速度的变化量大于或等于第二设定阈值,增大滑
动窗口;车辆在直线路段行驶时,车辆在设定时间段的角速度的变化量小于第二设定阈值,
减小滑动窗口。
[0106] 在一种具体实施方式中,以步长为1、长度为N的调整大小的滑动窗口对同一个时间段的加速度进行分割,以时刻I至时刻N+I‑1的加速度为第I组加速度序列,获得每组包括
N个加速度的K组加速度序列;以步长为1、长度为N的调整大小的滑动窗口对同一个时间段
的角速度进行分割,以时刻I至时刻N+I‑1的角速度为第I组角速度序列,获得每组包括N个
角速度的K组角速度序列。
[0107] 在步骤203中,向卷积神经网络模型输入K组测量数据序列,以及定位模块的位置数据序列。
[0108] 该步骤可以参见步骤103的描述,此处不再赘述。
[0109] 在步骤204中,使卷积神经网络模型分别依据第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获得车辆在时刻N+I‑1的轨迹点
推算位置,由此获得K个轨迹点推算数据。
[0110] 该步骤可以参见步骤104的描述,此处不再赘述。
[0111] 在步骤205中,依据每个时刻N+I‑1的轨迹点推算位置和定位模块的位置数据,获得每个时刻N+I‑1轨迹点推算位置与定位模块的位置数据的差值,并获得K个差值的累积
和。
[0112] 该步骤可以参见步骤105的描述,此处不再赘述。
[0113] 在步骤206中,判断K个差值的累积和是否小于设定的第一阈值或者循环次数是否超过设定的第二阈值;如果K个差值的累积和大于或等于设定的第一阈值或者循环次数没
有超过设定的第二阈值,执行步骤207;如果K个差值的累积和小于设定的第一阈值或者循
环次数超过设定的第二阈值,执行步骤210。
[0114] 在步骤207中,判断K个差值的累积和是否小于卷积神经网络模型的损失值;如果K个差值的累积和小于卷积神经网络模型的损失值,执行步骤208;如果K个差值的累积和大
于或等于卷积神经网络模型的损失值,执行步骤209。
[0115] 在一种具体实施方式中,如果K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,再判断K个差值的累积和是否小于卷积神经网络模型
当前的损失值。如果K个差值的累积和小于卷积神经网络模型的损失值,执行步骤208;如果
K个差值的累积和大于或等于卷积神经网络模型的损失值,执行步骤209。
[0116] 在步骤208中,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j个卷积核的参数值,将卷积神经网络模型的损失值更新为K个差值的累积和,其中,j
为L除N的余数;执行步骤204。
[0117] 在一种具体实施方式中,如果K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,增加1次循环次数,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学
习率learn_rate更新第j(L+1)个卷积核的参数值xj,其中,j=mod(L,N) ,即j为L除N的余
数,例如可以但不限于依据下列公式先求解出第j个卷积核的新的参数值xj',然后将xj的值
修改为xj'。
[0118] xj'=xj‑(loss‑LOSS)/loss*learn_rate
[0119] 然后,将卷积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行步骤204,对更新损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续
进行训练。
[0120] 在步骤209中,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j‑1个卷积核的参数值;执行步骤204。
[0121] 在一种具体实施方式中,如果K个差值的累积和loss大于或等于卷积神经网络模型的损失值LOSS,增加1次循环次数,将循环次数L更新为L+1,依据设定的卷积神经网络模
型的学习率learn_rate更新第j‑1(L+1‑1)个卷积核的参数值xj‑1,其中,j=mod(L,N),即j为
L除N的余数,例如可以但不限于依据下列公式先求解出第j‑1个卷积核的新的参数值xj‑1',
然后将xj‑1的值修改为xj‑1'。
[0122] Xj‑1'=xj‑1‑(loss‑LOSS)/loss*learn_rate
[0123] 然后,返回循环执行步骤204,对修改卷积核的参数值后的卷积神经网络模型继续进行训练。
[0124] 在一种具体实施方式中,如果K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,增加1次循环次数,将当前的循环次数L更新为L+1,如果循环次数L除N的余数为
0,可以依据设定的卷积神经网络模型的学习率learn_rate修改第N个卷积核的参数值xN,
将卷积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行步骤
104,对更新损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续进行训练。如果
K个差值的累积和loss大于或等于卷积神经网络模型的损失值LOSS,增加1次循环次数,将
当前的循环次数L更新为L+1,如果循环次数L除N的余数为0,可以依据设定的卷积神经网络
模型的学习率learn_rate修改第N‑1个卷积核的参数值xN‑1。返回循环执行步骤104,对更新
损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续进行训练。
[0125] 例如,设定循环次数L=1,第一次获得K个差值的累积和loss,判断K个差值的累积和Loss是否小于设定的第一阈值。如果K个差值的累积和Loss大于或等于设定的第一阈值,
再判断K个差值的累积和loss是否小于卷积神经网络模型的损失值LOSS。如果K个差值的累
积和loss大于或等于卷积神经网络模型的损失值LOSS,将循环次数L更新为L+1=2,依据设
定的卷积神经网络模型的学习率learn_rate修改第1(1+1‑1)个卷积核的参数值x1,将第1
个卷积核的参数值x1修改为x1'。可以依据下列公式先求解出第1个卷积核的新的参数值x1,
然后将x1的值更新为x1'。
[0126] x1'=x1‑(loss‑LOSS)/loss*learn_rate
[0127] 然后,返回循环执行步骤204,对修改卷积核的参数值后的卷积神经网络模型继续进行训练,直至获得的K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,对第2
个卷积核的参数值进行修改。
[0128] 如果K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,将循环次数L更新为L+1=2,依据设定的卷积神经网络模型的学习率learn_rate修改第2(1+1)个卷积核的
参数值x2,将第2个卷积核的参数值x2修改为x2'。可以依据下列公式先求解出第2个卷积核
的新的参数值x2,然后将x1的值更新为x2'。
[0129] x2'=x2‑(loss‑LOSS)/loss*learn_rate
[0130] 然后,将卷积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行步骤204,对更新损失值LOSS和修改卷积核的参数值后的卷积神经网络模型继续
进行训练。如果K个差值的累积和loss大于或等于卷积神经网络模型的损失值LOSS,继续对
第2个卷积核的参数值进行修改;直至K个差值的累积和loss小于卷积神经网络模型的损失
值LOSS,继续对第3个卷积核的参数值进行修改和更新卷积神经网络模型的损失值LOSS;依
此类推,直至获得的K个差值的累积和loss小于设定的第一阈值。
[0131] 在步骤210中,停止卷积神经网络模型训练,获得训练好的卷积神经网络模型。
[0132] 在一种具体实施方式中,如果K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型训练,即完成卷积神经网络模型的训练,获
得训练好的卷积神经网络模型。
[0133] 本实施例中,在依据设定的卷积神经网络模型的学习率修改某个卷积核的参数值后,循环执行步骤204、205、206和207。判断K个差值的累积和Loss是否小于设定的第一阈
值。如果K个差值的累积和Loss大于或等于设定的第一阈值,再判断K个差值的累积和loss
是否小于卷积神经网络模型的损失值LOSS。如果K个差值的累积和大于或等于卷积神经网
络模型的损失值,继续修改卷积神经网络模型当前的某个卷积核的参数值;循环执行步骤
204、205、206和207,直至获得的K个差值的累积和小于卷积神经网络模型的损失值。如果K
个差值的累积和小于卷积神经网络模型的损失值,修改卷积神经网络模型当前的某个卷积
核的下一个卷积和的参数值,然后更新卷积神经网络模型的当前损失值;循环执行步骤
204、205、206、207、208和209,直到循环获得的K个差值的累积和小于设定的第一阈值,停止
卷积神经网络模型的训练,即完成卷积神经网络模型的训练,获得训练好的卷积神经网络
模型。
[0134] 在另一实现方式中,可以设定卷积神经网络模型的训练循环次数,判断当前的循环次数是否超过设定的第二阈值。如果当前的循环次数没有超过设定的第二阈值,则继续
循环利用包括N个加速度的K组加速度序列和包括N个角速度的K组角速度序列,通过循环获
得的K个差值的累积和,判断K个差值的累积和是否小于卷积神经网络模型的损失值,循环
修改卷积神经网络模型的卷积核的参数值和卷积神经网络模型的当前损失值,对卷积神经
网络模型进行训练。当超过设定的循环次数,例如循环次数超过设定的第二阈值时,停止卷
积神经网络模型的训练,即完成卷积神经网络模型的训练,获得训练好的卷积神经网络模
型。
[0135] 可以理解的,在K个差值的累积和小于设定的第一阈值和循环次数超过设定的第二阈值两个条件中的任一个条件满足时,停止卷积神经网络模型的训练;也可在K个差值的
累积和小于设定的第一阈值和循环次数超过设定的第二阈值两个条件都满足时,停止卷积
神经网络模型的训练。
[0136] 在步骤211中,向训练好的卷积神经网络模型输入惯性测量单元的测量数据,通过训练好的卷积神经网络模型输出每个时刻的IMU估计数据。
[0137] 该步骤可以参见步骤109的描述,此处不再赘述。
[0138] 本申请的实施例提供的基于卷积神经网络模型的惯性测量数据校正方法,依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑
动窗口的大小,在车辆转弯和/或加减速行驶时,增大滑动窗口;在车辆直线匀速行驶时,减
少滑动窗口,能够提高卷积神经网络模型的训练精度和速率。
[0139] 实施例三:
[0140] 与前述应用功能实现方法实施例相对应,本申请还提供了一种基于卷积神经网络模型的惯性测量数据校正装置、电子设备及相应的实施例。
[0141] 图3是本申请一实施例示出的基于卷积神经网络模型的惯性测量数据校正装置的结构示意图。
[0142] 参见图3,一种基于卷积神经网络模型的惯性测量数据校正装置,包括初始模块301、分割模块302、窗口调整模块303、输入模块304、推算轨迹模块305、误差模块306、第一
判断模块307、第二判断模块308、更新模块309、停止模块310、估计数据获取模块311。
[0143] 初始模块301,用于初始化卷积神经网络模型,包括:定义卷积神经网络模型的卷积核大小为N,并为每个卷积核设定参数值,其中,N为大于1的整数。
[0144] 在一种具体实施方式中,初始模块301初始化卷积神经网络模型,可以定义一个大小为N的卷积核,为N个卷积核依次排序,并依次为每个卷积核设定参数值;设定卷积神经网
络模型的损失值LOSS;设定卷积神经网络模型的学习率learn_rate。在一些实施例中,初始
模块301还可以定义循环次数L=1。
[0145] 在一种实施方式中,初始模块301依据惯性测量单元采集加速度和角速度的采集频率,初始化卷积神经网络模型,包括:以采集频率的约数或者倍数定义卷积神经网络模型
的卷积核大小N,并为每个卷积核设定参数值,其中,N为大于1的整数。
[0146] 在一种具体实施方式中,初始模块301依据惯性测量单元的采集频率,为卷积神经网络模型定义一个大小为N的卷积核,N的取值为采集频率的约数或倍数。例如,惯性测量单
元的采集频率为100,N的取值可以是2、4、5、10、20……100、200等100的约数或倍数。
[0147] 分割模块302,用于以步长为1、长度为N的滑动窗口对一时间段的惯性测量单元的测量数据进行分割,以时刻I至时刻N+I‑1的惯性测量单元的测量数据为第I组测量数据序
列,获得每组包括N个测量数据的K组测量数据序列,其中,K为大于等于N的整数,I=1,2,…,
K。
[0148] 在一种具体实施方式中,车辆上设有惯性测量单元、定位模块。惯性测量单元包括加速度计和陀螺仪,惯性测量单元的测量数据包括惯性测量单元的加速度计的加速度、陀
螺仪的角速度。分割模块302可以通过惯性测量单元的加速度计获得的车辆的加速度、惯性
测量单元的陀螺仪获得的车辆的角速度。定位模块可以包括但不限于GPS模块、北斗卫星定
位模块、RTK(RealTimeKinematic,实时动态)定位模块等卫星定位模块中的至少一种。分割
模块302利用定位模块可以获得车辆的定位信息,该定位信息可以包括但不限于位置信息、
速度信息和姿态信息。位置信息包括但不限于描述位置的经纬度坐标信息,姿态信息包括
但不限于描述航向的航向角信息。
[0149] 在一种具体实施方式中,在车辆RTK定位模块信号可用的情况下,输入模块304获得车辆一个时间段的定位信息,依据车辆一个时间段的定位信息获取车辆一个时间段的位
置数据序列。在通过RTK定位模块获取车辆一个时间段的位置数据序列时,分割模块302通
过惯性测量单元的加速度计获取同个一时间段的车辆的加速度,通过惯性测量单元的陀螺
仪获取同一个时间段的车辆的角速度。
[0150] 在一种具体实施方式中,分割模块302以步长为1、长度为N的滑动窗口对同一个时间段的加速度进行分割,以时刻I至时刻N+I‑1的加速度为第I组加速度序列,获得每组包括
N个加速度的K组加速度序列;分割模块302以步长为1、长度为N的滑动窗口对同一个时间段
的角速度进行分割,以时刻I至时刻N+I‑1的角速度为第I组角速度序列,获得每组包括N个
角速度的K组角速度序列。
[0151] 例如,分割模块302将每N个加速度打包成一组,以时刻1至时刻N的加速度为第一组加速度序列,时刻2至时刻N+1的加速度为第二组加速度序列,时刻3至时刻N+2的加速度
为第三组加速度序列,直至获得包括N个加速度的K组加速度序列。分割模块302将每N个角
速度打包成一组,以时刻1至时刻N的角速度为第一组角速度序列,时刻2至时刻N+1的角速
度为第二组角速度序列,时刻3至时刻N+2的角速度为第三组角速度序列,直至获得包括N个
角速度的K组角速度序列。
[0152] 窗口调整模块303,用于依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小。
[0153] 在一种具体实施方式中,滑动窗口的大小是对应窗口内惯性测量单元的测量数据的多少,也就是K组测量数据序列的K的取值大小。窗口调整模块303依据分割模块302通过
惯性测量单元的加速度计获取的车辆的加速度,获得车辆在设定时间段的加速度的变化
量,依据加速度的变化量的大小调整滑动窗口的大小。如果车辆在设定时间段的加速度的
变化量大于或等于第一设定阈值,窗口调整模块303增大滑动窗口;如果车辆在设定时间段
的加速度的变化量小于第一设定阈值,窗口调整模块303减小滑动窗口。例如,车辆在加速
或者减速行驶时,车辆在设定时间段的加速度的变化量大于或等于第一设定阈值,窗口调
整模块303增大滑动窗口,即增多获得的惯性测量单元的测量数据,可以向卷积神经网络模
型输入的更多的每组包括N个加速度的加速度序列和每组包括N个角速度的角速度序列;车
辆在直线匀速行驶时,车辆在设定时间段的加速度的变化量小于第一设定阈值,窗口调整
模块303减小滑动窗口,即减少获得的惯性测量单元的测量数据,可以向卷积神经网络模型
输入的较少的每组包括N个加速度的加速度序列和每组包括N个角速度的角速度序列。
[0154] 在一种具体实施方式中,窗口调整模块303依据分割模块302通过惯性测量单元的陀螺仪获取的车辆的角速度,获得车辆在设定时间段的角速度的变化量,依据角速度的变
化量的大小调整滑动窗口的大小。如果车辆在设定时间段的角速度的变化量大于或等于第
二设定阈值,窗口调整模块303增大滑动窗口;如果车辆在设定时间段的角速度的变化量小
于第二设定阈值,窗口调整模块303减小滑动窗口。例如,车辆在多弯路段转弯行驶时,车辆
在设定时间段的角速度的变化量大于或等于第二设定阈值,窗口调整模块303增大滑动窗
口;车辆在直线路段行驶时,车辆在设定时间段的角速度的变化量小于第二设定阈值,窗口
调整模块303减小滑动窗口。
[0155] 在一种具体实施方式中,分割模块302以步长为1、长度为N的窗口调整模块303调整大小的滑动窗口对同一个时间段的加速度进行分割,以时刻I至时刻N+I‑1的加速度为第
I组加速度序列,获得每组包括N个加速度的K组加速度序列;分割模块302以步长为1、长度
为N的窗口调整模块303调整大小的滑动窗口对同一个时间段的角速度进行分割,以时刻I
至时刻N+I‑1的角速度为第I组角速度序列,获得每组包括N个角速度的K组角速度序列。
[0156] 输入模块304,用于向卷积神经网络模型输入分割模块302获得的K组测量数据序列,以及定位模块的位置数据序列。
[0157] 在一种具体实施方式中,向卷积神经网络模型输入分割模块302获得的每组包括N个加速度的K组加速度序列和每组包括N个角速度的K组角速度序列,以及定位模块的位置
数据序列。
[0158] 推算轨迹模块305,用于使卷积神经网络模型分别依据输入模块304输入的第I组测量数据序列输出时刻N+I‑1的IMU估计数据,并分别依据时刻N+I‑1的IMU估计数据推算获
得时刻N+I‑1的轨迹点推算位置,由此获得K个轨迹点推算位置。
[0159] 在一种具体实施方式中,推算轨迹模块305通过使卷积神经网络模型依据输入模块304输入的第I组加速度序列输出时刻N+I‑1的估计加速度,依据输入模块304输入的第I
组角速度序列输出时刻N+I‑1的估计角速度,并依据时刻N+I‑1的估计加速度和估计角速
度,推算获得车辆在时刻N+I‑1的轨迹点推算位置,共获得K个轨迹点推算数据,其中,I=1,
2,…,K。
[0160] 推算轨迹模块305可以使卷积神经网络模型分别对输入模块304输入的第一组加速度序列和第一组角速度序列进行卷积,输出一个角速度和一个加速度,以输出的加速度
为时刻N的估计加速度,以输出的角速度为时刻N的估计角速度;以同一个时间段的RTK定位
模块的时刻N‑1的位置数据为初始位姿;以时刻N‑1的位置数据、时刻N的估计加速度和时刻
N的估计角速度,推算得到时刻N的轨迹点推算位置。
[0161] 推算轨迹模块305可以使卷积神经网络模型分别对输入模块304输入的第二组加速度序列和第二组角速度序列进行卷积,输出一个角速度和一个加速度,以输出的加速度
为时刻N+1的估计加速度,以输出的角速度为时刻N+1的估计角速度;以同一个时间段的RTK
定位模块的时刻N的位置数据为初始位姿;以时刻N的位置数据、时刻N+1的估计加速度和时
刻N+1的估计角速度,推算得到时刻N+1的轨迹点推算位置。
[0162] 依此类推,推算轨迹模块305可以使卷积神经网络模型分别对输入模块304输入的第I组加速度序列和第I组角速度序列进行卷积,输出一个角速度和一个加速度,以输出的
加速度为时刻N+I‑1的估计加速度,以输出的角速度为时刻N+I‑1的估计角速度;以同一个
时间段的RTK定位模块的时刻N+I的位置数据为初始位姿;以时刻N+I的位置数据、时刻N+I‑
1的估计加速度和时刻N+I‑1的估计角速度,推算得到时刻N+I‑1的轨迹点推算位置,推算获
得K个轨迹点推算数据。
[0163] 误差模块306,用于依据推算轨迹模块305获得的每个时刻N+I‑1的轨迹点推算位置与定位模块的位置数据,获得每个时刻N+I‑1的轨迹点推算位置与定位模块的位置数据
的第I个差值,并获得K个差值的累积和。
[0164] 在一种具体实施方式中,误差模块306依据推算轨迹模块305获得的时刻N的轨迹点推算位置和定位模块的位置数据,获得时刻N的第一个差值dp1;依据推算轨迹模块305获
得的时刻N+1的轨迹点推算位置和定位模块的位置数据,获得时刻N+1差值dp2;依此类推,
依据推算轨迹模块305获得的同一个时间段的各时刻N+I‑1的轨迹点推算位置和定位模块
的位置数据,获得各时刻N+I‑1的差值dpI,其中,I=1,2,…,K,由此获得K个差值。可以理解
的是,推算轨迹模块305获得的时刻N+I‑1的轨迹点推算位置和定位模块的时刻N+I‑1位置
数据在时间上是对齐的。误差模块306累计第一个差值dp1、第二个差值dp2……、第K个差值
dpk的和,获得K个差值的累积和loss=dp1+dp2+……+dpk。
[0165] 第一判断模块307,用于判断误差模块306获得的K个差值的累积和是否小于设定的第一阈值或者循环次数是否超过设定的第二阈值。
[0166] 第二判断模块308,用于如果第一判断模块307判断K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,判断K个差值的累积和是否小于
卷积神经网络模型的损失值。
[0167] 更新模块309,用于如果第二判断模块308判断K个差值的累积和小于卷积神经网络模型的损失值,将循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率修改第j
个卷积核的参数值,将卷积神经网络模型的损失值更新为K个差值的累积和;如果第二判断
模块308判断K个差值的累积和大于或等于卷积神经网络模型的损失值,将循环次数L更新
为L+1,依据设定的卷积神经网络模型的学习率修改第j‑1个卷积核的参数值,其中,j为L除
N的余数。
[0168] 停止模块310,用于如果第一判断模块307判断K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止卷积神经网络模型的训练,获得训练好的卷
积神经网络模型。
[0169] 在一种具体实施方式中,如果第一判断模块307判断误差模块306获得的K个差值的累积和大于或等于设定的第一阈值或者循环次数没有超过设定的第二阈值,第二判断模
块308判断K个差值的累积和是否小于卷积神经网络模型的损失值。如果第二判断模块308
判断K个差值的累积和小于卷积神经网络模型的损失值,更新模块309增加1次循环次数,将
当前的循环次数L更新为L+1,依据设定的卷积神经网络模型的学习率learn_rate修改第j
个卷积核的参数值,其中,j=mod(L,N),即j为L除N的余数,然后将卷积神经网络模型的损失
值LOSS更新为K个差值的累积和loss。返回循环执行推算轨迹模块305、误差模块306、第一
判断模块307、第二判断模块308、更新模块309,对更新模块309更新损失值LOSS和修改卷积
核的参数值后的卷积神经网络模型继续进行训练。
[0170] 在一种具体实施方式中,如果第二判断模块308判断K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,更新模块309增加1次循环次数,将当前的循环次数L更新为
L+1,依据设定的卷积神经网络模型的学习率learn_rate更新第j个卷积核的参数值xj,例
如可以但不限于依据下列公式先求解出第j个卷积核的新的参数值xj',然后将xj的值更新
为xj'。
[0171] xj'=xj‑(loss‑LOSS)/loss*learn_rate
[0172] 然后,更新模块309将卷积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行推算轨迹模块305、误差模块306、第一判断模块307、第二判断模块
308、更新模块309,对更新模块309更新损失值LOSS和修改卷积核的参数值后的卷积神经网
络模型继续进行训练。
[0173] 在一种具体实施方式中,如果第二判断模块308判断K个差值的累积和loss大于或等于卷积神经网络模型的损失值LOSS,更新模块309增加1次循环次数,将循环次数L更新为
L+1,依据设定的卷积神经网络模型的学习率learn_rate更新第j‑1(L+1‑1)个卷积核的参
数值xj‑1,其中,j=mod(L,N),即j为L除N的余数,例如可以但不限于依据下列公式先求解出
第j‑1个卷积核的新的参数值xj‑1',然后将xj‑1的值修改为xj‑1'。
[0174] Xj‑1'=xj‑1‑(loss‑LOSS)/loss*learn_rate
[0175] 然后,返回循环执行推算轨迹模块305、误差模块306、第一判断模块307、第二判断模块308、更新模块309,对更新模块309修改卷积核的参数值后的卷积神经网络模型继续进
行训练。
[0176] 在一种具体实施方式中,如果第二判断模块308判断K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,更新模块309增加1次循环次数,将当前的循环次数L更新为
L+1,如果循环次数L除N的余数为0,可以依据设定的卷积神经网络模型的学习率learn_
rate修改第N个卷积核的参数值xN,将卷积神经网络模型当前的损失值LOSS更新为K个差值
的累积和loss。返回循环执行推算轨迹模块305、误差模块306、第一判断模块307、第二判断
模块308、更新模块309,对更新模块309更新损失值LOSS和修改卷积核的参数值后的卷积神
经网络模型继续进行训练。如果第二判断模块308判断K个差值的累积和loss大于或等于卷
积神经网络模型的损失值LOSS,更新模块309增加1次循环次数,将当前的循环次数L更新为
L+1,如果循环次数L除N的余数为0,可以依据设定的卷积神经网络模型的学习率learn_
rate修改第N‑1个卷积核的参数值xN‑1。返回循环执行推算轨迹模块305、误差模块306、第一
判断模块307、第二判断模块308、更新模块309,对更新模块309更新损失值LOSS和修改卷积
核的参数值后的卷积神经网络模型继续进行训练。
[0177] 例如,初始模块301设定循环次数L=1,误差模块306第一次获得K个差值的累积和loss,第一判断模块307判断K个差值的累积和Loss是否小于设定的第一阈值。如果第一判
断模块307判断K个差值的累积和Loss大于或等于设定的第一阈值,第二判断模块308再判
断K个差值的累积和loss是否小于卷积神经网络模型的损失值LOSS。如果第二判断模块308
判断K个差值的累积和loss大于或等于卷积神经网络模型的损失值LOSS,更新模块309将循
环次数L更新为L+1=2,依据设定的卷积神经网络模型的学习率learn_rate修改第1(1+1‑1)
个卷积核的参数值x1,将第1个卷积核的参数值x1修改为x1'。更新模块309可以依据下列公
式先求解出第1个卷积核的新的参数值x1,然后将x1的值更新为x1'。
[0178] x1'=x1‑(loss‑LOSS)/loss*learn_rate
[0179] 然后,返回循环执行推算轨迹模块305、误差模块306、第一判断模块307、第二判断模块308、更新模块309,对更新模块309修改卷积核的参数值后的卷积神经网络模型继续进
行训练。直至第二判断模块308判断获得的K个差值的累积和loss小于卷积神经网络模型的
损失值LOSS,更新模块309对第2个卷积核的参数值进行修改。
[0180] 如果第二判断模块308判断K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,更新模块309将循环次数L更新为L+1=2,依据设定的卷积神经网络模型的学习率
learn_rate修改第2(1+1)个卷积核的参数值x2,将第2个卷积核的参数值x2修改为x2'。更新
模块309可以依据下列公式先求解出第2个卷积核的新的参数值x2,然后将x1的值更新为
x2'。
[0181] x2'=x2‑(loss‑LOSS)/loss*learn_rate
[0182] 然后,更新模块309将卷积神经网络模型当前的损失值LOSS更新为K个差值的累积和loss。返回循环执行推算轨迹模块305、误差模块306、第一判断模块307、第二判断模块
308、更新模块309,对更新模块309更新损失值LOSS和修改卷积核的参数值后的卷积神经网
络模型继续进行训练。如果第二判断模块308判断K个差值的累积和loss大于或等于卷积神
经网络模型的损失值LOSS,更新模块309继续对第2个卷积核的参数值进行修改;直至第二
判断模块308判断K个差值的累积和loss小于卷积神经网络模型的损失值LOSS,更新模块
309继续对第3个卷积核的参数值进行修改和更新卷积神经网络模型的损失值LOSS;直至第
一判断模块307判断获得的K个差值的累积和loss小于设定的第一阈值。
[0183] 在一种具体实施方式中,如果第一判断模块307判断K个差值的累积和小于设定的第一阈值或者循环次数超过设定的第二阈值,停止模块310停止卷积神经网络模型训练,即
完成卷积神经网络模型的训练,获得训练好的卷积神经网络模型。
[0184] 本实施例中,在更新模块309依据设定的卷积神经网络模型的学习率修改某个卷积核的参数值后,循环执行推算轨迹模块305、误差模块306、第一判断模块307、第二判断模
块308、更新模块309。误差模块306获得K个差值的累积和;如果第一判断模块307判断误差
模块306循环获得的K个差值的累积和大于或等于设定的第一阈值,并且,第二判断模块308
判断K个差值的累积和小于卷积神经网络模型的损失值,更新模块309增加1次循环次数,将
当前的循环次数L更新为L+1,继续修改卷积神经网络模型的某个卷积核的下一个卷积核的
参数值,更新卷积神经网络模型的损失值。并再一次循环执行推算轨迹模块305、误差模块
306、第一判断模块307、第二判断模块308、更新模块309;如果第一判断模块307判断误差模
块306循环获得的K个差值的累积和小于设定的第一阈值,停止模块310停止卷积神经网络
模型的训练,即完成卷积神经网络模型的训练,获得训练好的卷积神经网络模型。
[0185] 在另一实现方式中,初始模块301可以设定卷积神经网络模型的训练循环次数,如果第一判断模块307判断没有超过设定的循环次数,推算轨迹模块305利用包括N个加速度
的K组加速度序列和包括N个角速度的K组角速度序列;误差模块306通过循环获得K个差值
的累积和;更新模块309循环修改卷积神经网络模型的卷积核的参数值和卷积神经网络模
型的当前损失值,对卷积神经网络模型进行训练。当第一判断模块307判断断超过设定的循
环次数,例如第一判断模块307判断循环次数超过设定的第二阈值时,停止模块310停止卷
积神经网络模型的训练,即完成卷积神经网络模型的训练,获得训练好的卷积神经网络模
型。
[0186] 估计数据获取模块311,用于向训练好的卷积神经网络模型输入惯性测量单元的测量数据,获取训练好的卷积神经网络模型输出的每个时刻的IMU估计数据。
[0187] 在一种具体实施方式中,在车辆的定位模块例如RTK定位模块信号可用的情况下,完成卷积神经网络模型的训练。在车辆的RTK定位模块信号不可用,无法提供定位信息的情
况下,估计数据获取模块311通过惯性测量单元的加速度计获取车辆的加速度,通过惯性测
量单元的陀螺仪获取车辆的角速度。估计数据获取模块311向训练好的卷积神经网络模型
输入车辆的加速度和角速度,使卷积神经网络模型输出降低测量误差的每个时刻的估计加
速度和估计角速度,以卷积神经网络模型输出的估计加速度为校正后的加速度,以卷积神
经网络模型输出的估计角速度为校正后的角速度,完成惯性测量单元测量数据的校正。
[0188] 本申请的实施例提供的技术方案,以同一时间段的定位模块的位置数据序列、同一时间段的每组包括N个加速度的K组加速度序列和每组包括N个角速度的K组角速度序列
为卷积神经网络模型的训练样本,通过使卷积神经网络模型依据第I组加速度序列输出时
刻N+I‑1的加速度,依据第I组角速度序列输出时刻N+I‑1的角速度,增强训练样本的可信
度,减少了训练样本的误差;通过使卷积神经网络模型依据第I组加速度序列输出时刻N+I‑
1的加速度,依据第I组角速度序列输出时刻N+I‑1的角速度,推算获得时刻N+I‑1的轨迹点
推算位置;依据时刻N+I‑1的轨迹点推算位置与同一时间段的时刻N+I‑1的位置数据,获得
时刻N+I‑1的轨迹点推算位置与同一时间段的时刻N+I‑1的位置数据的第I个差值,获得K个
差值的累积和;分析K个差值的累积和与卷积神经网络模型的当前损失值,依据设定的卷积
神经网络模型的学习率,修改卷积神经网络模型的损失值和依次修改卷积神经网络模型的
卷积核的参数值,完成卷积神经网络模型的训练,能够提高卷积神经网络模型的训练精度
和速率。向完成训练的卷积神经网络模型输入惯性测量单元的加速度和角速度,使卷积神
经网络模型输出的降低测量误差的估计加速度和估计角速度。基于卷积神经网络模型的惯
性测量数据校正方法,能够基于卷积神经网络模型降低惯性测量单元的测量误差,获得降
低测量误差的惯性测量单元的校正测量数据,有助于提高惯性定位导航的精度。
[0189] 进一步的,本申请的实施例提供的技术方案,依据惯性测量单元的加速度的变化量的大小和/或惯性测量单元的角速度的变化量的大小调整滑动窗口的大小,在车辆转弯
和/或加减速行驶时,增大滑动窗口;在车辆直线匀速行驶时,减少滑动窗口,能够提高卷积
神经网络模型的训练精度和速率。
[0190] 关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
[0191] 图4是本申请实施例示出的电子设备的结构示意图。
[0192] 参见图4,电子设备40包括存储器401和处理器402。
[0193] 处理器402可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器  (Digital Signal Processor,DSP)、专用集成电路 
(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列 (Field‑
Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器
件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理
器等。
[0194] 存储器401可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器402或者计算机的其他模块需要的静态数据或者指
令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不
会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用
大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存
储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者
易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器
在运行时需要的指令和数据。此外,存储器401可以包括任意计算机可读存储媒介的组合,
包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或
光盘也可以采用。在一些实施方式中,存储器401可以包括可读和/或写的可移除的存储设
备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD‑ROM,双层DVD‑ROM)、只读蓝光光盘、
超密度光盘、闪存卡(例如SD卡、min SD卡、Micro‑SD卡等等)、磁性软盘等等。计算机可读存
储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
[0195] 存储器401上存储有可执行代码,当可执行代码被处理器402处理时,可以使处理器402执行上文述及的方法中的部分或全部。
[0196] 此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机
程序代码指令。
[0197] 或者,本申请还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),
当可执行代码(或计算机程序、或计算机指令代码)被电子设备(或电子设备、服务器等)的
处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
[0198] 以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技
术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨
在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的
其它普通技术人员能理解本文披露的各实施例。