一种基于循环神经网络的IMU数据去噪方法与流程

文档序号:19788180发布日期:2020-01-24 13:53阅读:1564来源:国知局
一种基于循环神经网络的IMU数据去噪方法与流程

本发明属于微惯性仪器检测和深度学习领域,涉及一种基于循环神经网络的imu数据去噪方法。



背景技术:

微机械电子系统惯性测量单元(inertialmeasurementunit,imu)是一种测量物体三轴角速度以及加速度的器件,可不受周围环境影响通过时间积分独立地解算出物体所在的位置、航向和速度。由于其价格低廉、体积优势、测量自主等特性已广泛应用于和全球导航卫星系统(gnss)融合提供组合导航方案,在卫星信号微弱,被遮挡的情况下独立输出定位信息。然而由于惯性测量单元的原始测量中包含各种非线性和随机误差,而且随着时间的积分积分会越来越大,所以对imu原始测量数据的去噪是提高惯性导航系统(ins)的关键步骤。

1.对于memsimu信号随机噪声的识别和建模方法可分为两种。一类是传统的以小波去噪、艾伦方差为代表的统计模型方法。传统方法多使用中值滤波、小波变换等信号分析方法进行建模,而从数据角度我们获得的传感器数据本质上是一组随时间变化的数据,对误差数据的分析也要考虑与时间的相关性,精度差,噪声去除的效果差。



技术实现要素:

为解决上述问题,本发明公开了一种基神经网络的imu数据去噪方法,针对受噪声影响严重的imu测量的原始数据数据,设计采用长短时间记忆网络提取时间特征,保持很好平滑噪声的效果的同时,能不改变原始数据的随机性。本发明的技术方案包括:一种基于循环神经网络的imu数据去噪方法,该方法按照包括以下步骤进行:

步骤1:基于运动传感器控制系统的机器人实验平台,采用下位机串口发送数据的方式,获取惯性测量单元测得的数据,建立初步的imu测量数据样本数据集;同时为了方便后续模型训练与验证,整体数据集需要按照一定比例随机划分为训练集与测试集;

所述步骤1中获取的大量惯性测量单元测得的数据为动态环境下,实验机器人双轮原地打转时三轴动态加速度和三轴角速度的数据;将下位机串口上传数据的频率设置为一定频率,在原地打转的条件下测量一定时间的大量数据。

步骤2:使用滑窗的方法将原始数据转换为一个时间步长内的历史数据为特征,下一个时刻的数据为标签的数据格式,作为时序预测问题数据集;

步骤3:设计基于循环神经网络的网络结构,采用长短时间记忆网络作为循环神经网络主体,输入维度与步骤2所得的特征向量维度相同;在单层lstm网络后新增一层的全连接层和一层激活函数;然后再步骤2建立的数据集上精调参数模型;

步骤4:为选择合适的时间步长,使用上述模型参数在不同的时间步长下训练多个模型。以模型处理后数据的标准差的高低选择最优时间步长;

步骤5:通过步骤3和步骤4获取全部参数后,采用基于时间的反向传播算法对长短时间记忆网络进行训练,在步骤2得到的特征向量数据集上训练与验证长短时间记忆网络的预测效果;

步骤6:通过步骤6选取表现最优异的序列预测模型后,对算法模型进行部署;模型部署后只有前向计算过程,不需要进行训练时的反向传播过程;在实际应用中,可从均值和标准差的角度分析得到。

本发明进一步改进在于:所述步骤1中搭载的包含运动传感器控制系统的机器人实验平台,其硬件结构包括但不限于mpu6050运动传感器。

本发明进一步改进在于:所述步骤1测得的数据包含姿态的欧拉角、三轴加速度分量、三轴角速度分量、频率,左右轮子对应编码器的输出和采样时间;其中本发明需要处理的是数据是三轴加速度分量和三轴角速度分量。

本发明进一步改进在于:所述步骤1中运动传感器测得的加速度分量的输出为16位有符号整数,需要转换为真实世界下的加速度,将accx读数转换成真实世界的加速度公式为ax=accx*2g/32768。此外,测得的角速度分量还需要转换为弧度,公式为gx=gccx*2000*pi/32768*180。

本发明进一步改进在于:所述步骤1中具体的将80%的数据作为训练集,剩余20%作为测试集,可根据实际需要调整。

本发明进一步改进在于:所述步骤2中首先要将数据进行标准化、归一化处理;其次生成用于训练的数据,以一个时间步长的历史数据为特征,后一个位置的数据作为样本的标签;制作成一个时间步长滑窗生成可用于时序预测的数据格式。

本发明进一步改进在于:所述步骤3中搭建的循环神经网络输入格式为[n_samples,timesteps,features]的三维向量;其中n_samples为滑窗生成的数据总条数,timesteps即步骤4中的时间步长,features为特征的维度,本发明中数据维度为1。

本发明进一步改进在于:所述步骤3中搭建的循环神经网络以单层lstm为主体,计算过程使用输入门、遗忘门和输出门控制神经网络单元中控制历史状态对当前状态的影响,提取时间特征;隐藏层设置为units值为1;lstm网络参数有batch_size为128,迭代次数为20,损失函数为均方差误差损失函数,优化算法为adma;后接全连接层直接输出预测值,激活函数为linear。因此对于imu信号的误差可以按照时间序列进行处理,并且应该随着时间推移对它们进行建模。对于时间序列的处理在深度学习中常会用到循环神经网络(rnn)来解决。而对于长时间记忆的学习,更为常用的是rnn的一个特殊类型长短期记忆网络(lstm)。lstm引入了“门结构”来解决长期记忆问题,这使得它具有长时间选择性记忆的能力。这种特殊的设计结构使其更适合于预测或处理基于时间的序列数据。

lstm能够从序列样本中学习得到可靠的时间特征表示,与基于统计模型的传统去噪方法相比,算法拥有更好的鲁棒性与泛化能力,同时不会改变原始数据的随机性。本方法在惯性技术、组合导航等方面有着重要的应用价值。

本发明进一步改进在于:所述步骤4中使用了步骤3中精调的参数模型在步长5到50之间训练了多个模型,从标准差的角度看出,在步长为25时,经由模型处理数据的标准差达到最低,故取最优步长35。

9、根据权利要求1所述的基于循环神经网络的imu数据去噪方法,其特征在于,所述步骤5中基于时间的长短时间记忆网络训练包含以下步骤:长短时间记忆网络的初始参数采用随机初始化,损失函数采用均方差误差损失函数:

其中,是lstm网络的输出的预测值,是标签值。为网络参数。在本所述具体参数包括是遗忘门、输入门、输出门的参数;将误差沿着时间方向反向传播,将参数迭代更新直到损失函数达到全局最优。

本发明进一步改进在于:所述步骤6中模型的部署流程如下:

步骤601:通过串口上传得到测量数据后,对原始数据进行处理,得到不同时刻世界坐标系下的加速度值和角速度值;

步骤602:将测量值按照时间顺序传入训练好的长短时间记忆网络,最后长短时间记忆网络综合输入的一个步长的特征后,前向计算出不同时刻预测结果,对原始数据进行平滑得到最终的去噪后的数据。

本发明的有益效果:

1、本发明将imu测量数据视为时间序列,将信号去噪作为序列预测问题进行求解,可更好地学习和提取序列的噪声特征。

2、本发明设计了长短时间记忆网络训练模型,提取imu数据的非线性特征。通过历史时刻的序列特征,预测下一个时刻的输出。与传统方法相比,可更好的模拟噪声特性,大大提高了噪声去除的效果。。

在保证很好去噪效果的同时,可不改变原始数据的随机性,这样的方法大大提高了运动传感器的精度,可提高导航系统的精度。

3、为了达到上述目的,本发明提供如下技术方案:本发明中使用的应用于imu数据去噪的网络结构简单、高效且易于扩展。lstm能够从序列样本中学习得到可靠的时间特征表示,与基于统计模型的传统去噪方法相比,算法拥有更好的鲁棒性与泛化能力,同时不会改变原始数据的随机性。本方法在惯性技术、组合导航等方面有着重要的应用价值。

附图说明

图1是本发明提供的基于lstm神经网络的imu数据去噪方法流程图;

图2是本发明的神经网络结构图;

图3是本发明不同步长训练模型的预测值标准差表。

具体实施方式

下面结合具体实施例和说明附图对本发明作进一步说明,本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。此处所描述的优先实施例仅用于说明和解释本发明,并不用于限定本发明。

如图1-2所示,本实施例的一种基于神经网络的imu数据去噪方法,该方法按照包括以下步骤进行:

步骤1:基于运动传感器控制系统的机器人实验平台,采用下位机串口发送数据的方式,获取惯性测量单元测得的数据,建立初步的imu测量数据样本数据集;同时为了方便后续模型训练与验证,整体数据集需要按照一定比例随机划分为训练集与测试集;具体的将80%的数据作为训练集,剩余20%作为测试集

所述步骤1中获取的大量惯性测量单元测得的数据为动态环境下,实验机器人双轮原地打转时三轴动态加速度和三轴角速度的数据;将下位机串口上传数据的频率设置为一定频率,在原地打转的条件下测量一定时间的大量数据。

所述步骤1中搭载的包含运动传感器控制系统的机器人实验平台,其硬件结构包括mpu6050运动传感器。

所述步骤1测得的数据包含姿态的欧拉角、三轴加速度分量、三轴角速度分量、频率,左右轮子对应编码器的输出和采样时间;其中本发明需要处理的是数据是三轴加速度分量和三轴角速度分量。

所述步骤1中运动传感器测得的加速度分量的输出为16位有符号整数,需要转换为真实世界下的加速度,将accx读数转换成真实世界的加速度公式为ax=accx*2g/32768。此外,测得的角速度分量还需要转换为弧度,公式为gx=gccx*2000*pi/32768*180。

步骤2:使用滑窗的方法将原始数据转换为一个时间步长内的历史数据为特征,下一个时刻的数据为标签的数据格式,作为时序预测问题数据集;首先要将数据进行标准化、归一化处理;其次生成用于训练的数据,以一个时间步长的历史数据为特征,后一个位置的数据作为样本的标签;制作成一个时间步长滑窗生成可用于时序预测的数据格式。

步骤3:设计基于循环神经网络的网络结构,采用长短时间记忆网络作为循环神经网络主体,输入维度与步骤2所得的特征向量维度相同;在单层lstm网络后新增一层的全连接层和一层激活函数;然后再步骤2建立的数据集上精调参数模型;

所述搭建的循环神经网络输入格式为[n_samples,timesteps,features]的三维向量;其中n_samples为滑窗生成的数据总条数,timesteps即步骤4中的时间步长,features为特征的维度,本发明中数据维度为1。

其中所述搭建的循环神经网络以单层lstm为主体,计算过程使用输入门、遗忘门和输出门控制神经网络单元中控制历史状态对当前状态的影响,提取时间特征;隐藏层设置为units值为1;lstm网络参数有batch_size为128,迭代次数为20,损失函数为均方差误差损失函数,优化算法为adma;后接全连接层直接输出预测值,激活函数为linear。

步骤4:为选择合适的时间步长,使用上述模型参数在不同的时间步长下训练多个模型。以模型处理后数据的标准差的高低选择最优时间步长;

其中使用了步骤3中的精调的参数模型在步长5到50之间训练了多个模型,如图3所示:从标准差的角度看出,在步长为25时,经由模型处理数据的标准差达到最低,故取最优步长35。

步骤5:通过步骤3和步骤4获取全部参数后,采用基于时间的反向传播算法对长短时间记忆网络进行训练,在步骤2得到的特征向量数据集上训练与验证长短时间记忆网络的预测效果;

所述步骤5中基于时间的长短时间记忆网络训练包含以下步骤:长短时间记忆网络的初始参数采用随机初始化,损失函数采用均方差误差损失函数:

其中,是lstm网络的输出的预测值,是标签值。为网络参数。在本所述具体参数包括是遗忘门、输入门、输出门的参数;将误差沿着时间方向反向传播,将参数迭代更新直到损失函数达到全局最优。

步骤6:通过步骤6选取表现最优异的序列预测模型后,对算法模型进行部署;模型部署后只有前向计算过程,不需要进行训练时的反向传播过程;在实际应用中,可从均值和标准差的角度分析得到。所述步骤6中模型的部署流程如下:

步骤601:通过串口上传得到测量数据后,对原始数据进行处理,得到不同时刻世界坐标系下的加速度值和角速度值;

步骤602:将测量值按照时间顺序传入训练好的长短时间记忆网络,最后长短时间记忆网络综合输入的一个步长的特征后,前向计算出不同时刻预测结果,对原始数据进行平滑得到最终的去噪后的数据。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1