APP下载

基于智能手机的LSTM室内定位算法研究

2022-10-25高丽丽赵怡焯

计算机仿真 2022年9期
关键词:陀螺仪坐标系行人

高丽丽,赵怡焯

(内蒙古科技大学信息工程学院,内蒙古包头 014010)

1 引言

随着人们对定位需求的不断增加,对位置的需求不在局限于室外,室内定位开始进入人们的视野。目前,室外定位技术已经比较成熟,借助GPS全球定位系统可达到较高的定位精度,在生活中得到广泛应用,但是由于GPS信号在室内环境很容易被阻挡,室内定位算法一直无法达到室外定位算法的精准程度,近年来有很多学者和科研团体投入到室内定位算法的研究和实践过程中,极大地促进了室内定位算法研究的发展。

目前常见的室内定位技术有很多,主要分为两大类:第一类是基于外置信号源的室内定位技术,主要是利用了蓝牙[1]、Wi-Fi[2],超宽带UWB[3],射频识别RFID[4]等外置信号源设备来获取信息实现定位,第二类是基于内置信号源的室内定位技术,主要是通过传感器提取的信息来实现定位。

第一类定位方法在进行定位时需要额外部署对应的特定设备,有的存在高额成本,各自具有一定的空间局限性,难以在生活中广泛推行。第二类定位方法是通过传感器来获取与位置有关的信息来实现定位,主要用到的传感器有陀螺仪,加速度计等传感器。目前智能手机已经成为了人们必不可少的随身物品,且越来越多的各类高性能MEMS传感器内置其中[5]。由于智能手机广泛的使用覆盖面积和内置MEMS传感器优良的数据获取能力,利用智能手机内置的加速度计和陀螺仪采集行人运动信息,获取加速度和角速度数据,再利用行人定位模型进行定位,但单独采用原始MEMS传感器数据,受到陀螺仪数据所含有的高斯白噪声和常值漂移的影响将导致定位算法的误差随时间增加快速积累,这将大大降低定位算法的精度[6]。

近些年,深度学习的算法研究和应用实践层出不穷。深度学习方法用样本数据训练模型,使其自主寻找数据内在规律和层级结构[7],这些学习过程可输入的数据包括数字、文本、图像数据等,其目的是让计算机达到人的智能程度,并对研究目标进行预测。Lv Y[8]等使用反向传播神经网络(BPNN)来进行定位,Saadeddin K[9]等人总结了很多基于人工智能的定位误差抑制算法,提出了自适应模糊神经网络。通常将传感器所采集的数据当作是时间序列数据来进行处理,上列方法都无法考虑到历史数据的时效性。

综上所述,针对MEMS陀螺仪数据所带有的高斯白噪声和常值漂移,本文提出了一种通过卡尔曼滤波对MEMS陀螺仪传感器所得数据进行预处理,剔除数据本身所带有的高斯白噪声,采用由RNN神经网络发展而来的LSTM长短期记忆神经网络抑制陀螺仪常值漂移,结合经典的定位算法,显著提高了MEMS加速度计和陀螺仪在室内定位的精度。

2 基于航向的行人定位模型

在导航系统中,坐标系的选择十分重要,对不同的运动采取不同的坐标系选择,合理分析载体在不同坐标系下的信息[10]。本文研究的为步行者室内导航,这里只介绍导航坐标系和载体坐标系。

导航坐标系:简称n系,导航坐标系是行人进行导航定位时采用的参考坐标系,以地理坐标系上某一位置作为行人运动的起点,该起点为原点建立导航坐标系,以原点处水平面为参考,Xn轴、Yn轴、Zn轴沿原点分别指向东、北和天三个方向。

载体坐标系:简称b系,载体坐标系的原点Ob为载体(智能手机)的质心位置,Xb和Yb分别指向载体向右方向和载体向前方向,Zb轴垂直于Xb和Yb所成平面垂直载体向上。行人的姿态角包括:俯仰角、滚动角和航向角,姿态角的计算是根据载体坐标系相对于导航坐标系的运动来确定的。

四元数是由4个元素构成的数,公式如下:

P(p0,p1,p2,p3)=p0+p1i+p2j+p3k

(1)

其中,P0-P3是实数,而i、j、k是虚数单位。

(2)

式(1)经过转化,可以写成矩阵形式

(3)

通过皮卡方法求解上面式(3),可得如下结果

(4)

其中式(4)中Δλ的求解方法如下:

(5)

式(5)中Δθx,Δθy,Δθz为陀螺仪在单位时间内三轴方向的角增量。

(6)

通过方向余弦矩阵,可以求得行人的航向角θ、横滚角φ、俯仰角γ:

(7)

故可得俯仰角γ角,航向角θ、滚动角φ为

(8)

由以上分析可得,通过四元数算法求解出方向余弦矩阵,在通过式(8),可以求出行人航向角,为行人室内定位奠定航向基础。

建立如下图1所示的行人定位模型,行人在直线行走时,由于在转向时采用对行人运动轨迹建立以曲率为基础的数学模型来替代复杂的姿态问题。

假设目标在控制输入U(k-1)的作用下,转向运动中的变化如图1所示。

假设输入控制可以表示为

(9)

Δd(k-1)表示行人在k-1时刻移动的线位移,Δθ(k-1)为k-1时刻行人航向改变角度。

则行人的状态X(k)可以表示为

(10)

X(k)表示行人全局位姿,x(k),y(k)为行人坐标系中坐标,θ(k)为行人航向角。

由此可以确定目标的动态方程为

X(k)=f(X(k-1),U(k-1))+ω(k-1)

(11)

其中ω(k-1)是目标定位过程产生的噪声,本文假设其为高斯白噪声。

若目标的运动轨迹为弧形,则上式表达为

(12)

若目标的运动轨迹为直线,则上式表达为

(13)

3 卡尔曼滤波

行人航向导航系统的噪声主要源自加速度计和陀螺仪的测量过程,姿态误差由角速度误差造成,速度误差由比力测量造成,就陀螺仪来说,它的误差主要表现为高斯白噪声、漂移(常值漂移和温度漂移)。卡尔曼滤波器可以对MEMS陀螺仪获取的数据进行降噪和误差校正。

卡尔曼滤波器模型

(14)

其中,Xk是系统状态向量,Zk是系统量测向量,ωk表示p维系统过程噪声;Fk/k-1是系统状态转移矩阵,Vk是量测噪声;Γk/k-1是噪声输入矩阵,Hk是量测矩阵,k代表时刻。

使用卡尔曼最优递推估计算法,可以对噪声数据进行估计和校正,假设t时刻的最优估计为k,则:

状态预测为

k/k-1=Fk/k-1k-1+Bk/k-1Uk

(15)

状态估计为

k=k/k-1+Kk(Zk-Hkk/k-1)

(16)

滤波增益矩阵为

(17)

预测误差方差阵为

(18)

估计误差方阵为

(19)

滤波增益矩阵可转化为

(20)

估计误差方阵可转化为

Pk=(I-KkHk)Pk/k-1

(21)

卡尔曼滤波算法计算过程如图2所示。

4 定位预测模型LSTM

4.1 RNN模型

RNN模型的全称是Recurrent Neural Network,循环神经网络,通过输入序列数据,沿序列正向递归。相比较于传统的DNN和BP反向传播神经网络,RNN具有前后时序数据参数共享的优良特性,RNN可以将参数进行记忆并共享给后面的网络节点,在大型的数据训练中可以降低波动,加快学习过程。RNN可以处理具有时间序列特征的数据,时间序列数据表征了一类事物随时间的状态变化,此处的“时间”并非表示时刻的时间,而是反映了后面数据与前面数据存在关联的特性,即每个输出值不仅与当前输入值有关还与之前时刻的输出值有关,但RNN存在长序列数据在训练过程中出现的梯度爆炸或梯度弥散的问题[11]。

4.2 LSTM模型

长短时记忆(Long short-term memory,LSTM)是RNN的变种[12]。RNN的关键之处在于,将前面的信息连接到后面的信息,但很多情况下RNN所需要的前序数据间隔较远,当时间间隔逐渐增大时,RNN很容易丧失学习远距离信息的能力。并且RNN存在长序列数据在训练过程中出现的梯度爆炸或梯度弥散的问题,而LSTM结构正可以解决这个问题。二者在网络结构上对比如下图3所示

由图3可以看出,LSTM神经网络记忆单元的读、写,遗忘操作由三个门限单元来控制的。假设输入时间序列为x,t为当前时刻,则各单元的状态用如下公式表示。

输入单元:

gt=tanh(Wxggt-1+Whght-1+bg)

(22)

门控单元:

it=σ(Wxiit-1+Whiht-1+bi)

(23)

f(t)=σ(Wxfi(t-1)+Whfh(t-1)+bf)

(24)

o(t)=σ(Wxoi(t-1)+Whoh(t-1)+bo)

(25)

记忆单元:

M(t)=f(t)M(t-1)+i(t)g(t)

(26)

状态输出单元:

h(t)=o(t)tanh(M(t))

(27)

以上公式详细的解释了LSTM通过输入门,遗忘门和输出门来提高模型特征能力和记忆能力,从而解决了信息的长时记忆问题。

4.3 LSTM神经网络参数分析

1)数据集

本文中,数据集是通过智能手机采集而来,采样频率选择100Hz。行人行走区域平面图(20 m×20 m)如下图4所示,行人顺时针行走,通过四个直角,四条边回到起始位置结束。行走时,手机保持平放在胸前,通过内置陀螺仪和加速度计进行数据的采集,假定行人行走时保持匀速运动。

2)数据归一化处理

对训练的特征数据进行归一化处理,是为了将数据限定到一定范围内,减少奇异样本数据,使网络快速收敛,提升模型精度。采用的是min-max标准化,对原始数据进行线性变换,将数据归一到[0,1]之间,转换函数如下所示

(28)

其中max和min分别为样本数据的最大值和最小值,x为原始数据,x′为归一化后数据。

3)数据集样本构造

数据集是神经网络训练的基础,样本构造可以提高模型稳定性和预测精度,本文采用的样本构造方法如下图5所示。首先,将时间序列数据经过归一化后,以滑动窗口的方式构造样本,进行数据集划分。其中,输出数据为窗口最后一个值。因为本文所用数据具有时间序列属性,为保证数据的输入,输出具有连续性,同时为提高样本数目,实验中,窗口滑动步长选取S=1,为检验模型性能,分别选取标签长度N=5,10,15进行样本集划分得到。

4)LSTM隐藏神经元个数选择

神经网络预测精度取决于隐藏神经元个数的选择,假设隐藏神经元个数太少,数据可能欠拟合,影响模型训练结果,影响预测精度。反之,隐藏神经元个数太多,模型训练时间久,导致数据过拟合。因此,合理选择隐藏神经元个数十分重要。

5)反归一化

使用训练好的 LSTM 模型对测试集进行预测,得到预测数据,将其进行反归一化处理,得到当前时刻的陀螺仪的最终预测值。

4.4 模型训练与预测

经过实验对比,选取标签长度为5进行样本集划分,确定LSTM模型的输入,输出参数设定。

具体的输入序列可用公式表示为

xi={xi-1,xi-2,xi-3,xi-4}T

(29)

为当前时刻的前四个时刻的陀螺仪输出值,即 LSTM输入层节点有4个,设置timestep为4,输出为当前时刻陀螺数据yt,通过训练集进行模型的训练。

在模型训练时,将X,Y,Z三轴角增量分别进行训练以达到更高的训练精确度。

LSTM网络模型算法流程如图6所示。

训练集的规模和质量直接决定了模型预测的准确率,因此本文通过实际行走试验采集了达6000条以上的数据样本,每条数据记录的属性包括三轴陀螺仪数据和三轴加速度数据。

训练过程中,使用Python3.6和Tensorflow1.13.1进行数据的训练和预测。为了使模型性能得到优化,选择Adam优化算法调整网络权重,随机梯度下降保持一个单一的学习速率(称为alpha),并且在训练过程中学习速率不会改变。每一个网络权重(参数)都保持一个学习速率,并随着学习的展开而单独地进行调整。该方法从梯度的第一次和第二次矩的预算来计算不同参数的自适应学习速率。Adam优化方法在每一次迭代时,为使参数维持稳定,将学习率控制在一定区间内。

算法步骤如下:

1)计算梯度的一阶矩估计和二阶矩估计:

mt=μmt-1+(1-μ)gt

(30)

(31)

其中,一阶矩估计的衰减率μ为0.9、二阶矩估计的衰减率ν为0.999。

2)再计算无偏估计的校正值:

(32)

(33)

3)最后计算梯度更新值,η=0.01为学习率:

(34)

测试集验证流程如图7所示。

4.5 实验结果

整个训练过程的学习曲线如图8所示。可以发现验证集错误率呈下降趋势明显,当训练样本多于两次时,训练集和验证集的误差已经趋同,说明当训练样本达到两次时,已经满足模型训练的样本数目要求,且已完成训练模型的预测效果表现良好。

由损失函数可以看出,模型最终收敛到一个很小的值,如图9所示,橙色为陀螺仪预测曲线,蓝色为陀螺仪真实数据,预测曲线很好的反应了陀螺仪真实角度的变化。

为衡量所建模型性能,保证其模型可行性及预测准确性,本文采用平均绝对误差(MAE),均方误差(MSE)及决定系数R2作为评价指标来评价模型的预测效果。其具体表达式如式所示

(35)

(36)

(37)

LSTM神经网络对陀螺仪输出数据预测效果表1所示。

表1 预测效果

行人行走方向估计如图10所示,图中曲线分别是直接使用陀螺仪数据和经过LSTM处理后数据计算行人行走方向和真实方向的对比,90°代表经过一个直角拐弯,从图中可以看出直接由陀螺仪计算角度存在很大的累计误差,特别是在方向突变时,时间越长,累积误差越大。当使用经过LSTM神经网络处理后的数据进行计算时,得到的方向基本与真是方向一致,表明该算法可以有效抑制陀螺仪常值漂移。

测试实验的对比方法设置如下:

1)使用陀螺仪输出数据直接定位。

2)使用LSTM神经网络训练后进行定位。

经过实验,绘制了如图11所示的路线图。

可以看出,直接使用陀螺仪惯导数据的路线和实际路线偏离程度很大,使用本文基于LSTM神经网络的预测定位模型,预测轨迹和实际路线吻合程度很高,可见模型准确率可观。

不同定位方法的定位误差累积分布图如图12所示,若使用陀螺仪直接进行定位,整个行走过程中的定位误差非常大,平均定位误差为2.83m,但是本文所提出的LSTM神经网络定位方法定位结果优秀,小于3M的定位误差达到79.01%,整个行走过程中平均定位误差仅有1.33m。

5 结束语

在无法使用GPS的室内定位中,本文利用智能手机内置的MEMS传感器采集定位所需惯导数据,设计了基于LSTM的神经网络定位模型,使用Adam优化方法对训练过程进行了优化处理,相比于直接使用陀螺仪数据的进行定位,其精确程度大大提升,平均误差在1.33米,能够满足用户的位置服务需求。

人工智能方法可以在无先验知识的前提下,对模型进行训练使其达到人的智能程度,使用验证集数据可以对训练好的模型进行验证。本文提出的LSTM神经网络在剔除陀螺仪数据含有的常值漂移时达到了很好地效果,以此补充了单纯使用MEMS陀螺仪输出原始数据进行定位的不足,但是定位精度还是受到传感器本身测量精度,无法达到更高精度,因此,接下来可以先校准传感器的测量误差,然后结合LSTM神经网络定位算法,从根本上提高定位结果。

猜你喜欢

陀螺仪坐标系行人
KD514:陀螺仪船桨空间姿态捕捉方法
基于Allan方差分析的陀螺仪漂移误差辨识与仿真复现
独立坐标系椭球变换与坐标换算
基于EMD的MEMS陀螺仪随机漂移分析方法
毒舌出没,行人避让
路不为寻找者而设
坐标系背后的故事
三角函数的坐标系模型
求坐标系内三角形的面积
我是行人