多运动模式下的累积误差修正行人航位推算算法

2020-12-16 02:18施元昊张健铭徐正蓺滕国伟
计算机工程 2020年12期
关键词:行人校正阈值

施元昊,张健铭,徐正蓺,滕国伟

(1.上海大学 通信与信息工程学院,上海 200444; 2.中国科学院上海高等研究院,上海 201210; 3.中国科学院大学 电子电器与通信工程学院,北京 100049)

0 概述

近年来,随着智能移动设备的普及和物联网的快速发展,人们对室内商场定位、安全应急定位以及无人快递配送定位等室内定位需求不断增长,采用惯性测量单元(Inertial Measurement Unit,IMU)的行人航位推算(Pedestrian Dead Reckoning,PDR)算法[1-3](以下称为惯性导航定位算法)由于其无需预先布设基础设施且受外界干扰较小,因此被广泛应用。

由于PDR算法为自主式定位存在累计误差,因此通常采用零速校正(Zero Velocity Update,ZUPT)或零角速度校正(Zero Angle Rate Update,ZARU)的方式对累积误差进行校正,该方式通过设定固定阈值确认脚部是否处于触地阶段从而判断行人脚步是否处于零速区间。如果行人脚步处于零速区间,则对惯性导航定位算法进行零速校正。惯性导航定位算法对于单一运动模式具有较好的误差抑制效果,但是对于慢走、中速走和快走等多种运动模式,其零速检测的固定阈值各不相同,阈值过大会造成判定的零速区间较大,对非零速点进行零速校正后导致定位精度降低。与此类似,阈值过小也会导致定位精度降低。因此,对于匀速的单一运动模式可通过固定阈值方式进行零速校正,而对于多种运动模式并存的混合运动模式,需对阈值进行动态调整以适应各种运动模式。此外,尽管零速校正算法在一定程度上可减少累积误差,但因为该算法模型与真实人体运动模型存在差异,所以仍会出现残余累积误差。因此,惯性导航定位算法通常需要辅助定位,研究人员提出超宽带[4]、无线指纹定位[5]、蓝牙定位[6]和ZigBee定位[7]等技术来辅助实现室内定位,并帮助IMU消除累积误差。在目前的应用场景下,采用辅助定位的PDR算法主要在坐标点修正误差[8]或利用建筑物已有信息修正误差。但这些修正误差的方式对底层数据校正不足,部分定位方式需预先对基础设施进行建模和绘图。

针对多运动模式下零速校正效果较弱的问题,本文提出一种采用长短时记忆(Long Short-Term Memory,LSTM)模型的零速校正算法。构建LSTM网络学习不同运动模式下的运动与时序特征,以实现对零速校正的自适应判定。在此基础上,采用多传感器数据融合的方式修正惯性传感器数据以减少残存累积误差,同时优化差分进化(Differential Evolution,DE)算法的目标函数防止出现过拟合现象。

1 基于多运动模式的自适应零速校正算法

在目前对零速校正算法的研究中,主要关注单一运动模式,对多运动模式研究较少。由于在多运动模式下采用固定阈值修正累积误差的零速校正算法修正效果会减弱,无法自适应地应对不同运动模式,因此在实际场景下需采用一种新的零速检测算法来应对多运动模式。

1.1 零速校正算法

零速校正算法是一种能有效减少由累积误差与算法误差所引起定位误差的算法,该算法首次由FELIZ提出,并由JIMENEZ等人加以完善而形成[9]。在此基础上,文献[10]提出一种融合卡尔曼滤波算法的零速校正算法。零速校正算法主要包括零速检测和误差校正两部分。

行人在运动状态中,其脚步运动数据呈现周期性变化,该周期称为步态周期。一个完整的步态周期包括触地、起步、悬空和落脚4个阶段[11],其中触地阶段是零速校正的主要阶段,在该阶段行人脚步位置与速度保持不变[12],陀螺仪测得的角速度和加速度计测得的加速度变化理论上为0,因此,可通过该特征判定是否为零速状态[13]。

当零速检测算法检测到行人脚步处于零速状态时,则开始进行误差校正。最简单的误差校正方式为:假如判定行人处于零速状态,则将惯性传感器测得的角速度和加速度都校正为零。在实际应用中,通常采用基于卡尔曼滤波的误差抑制算法[14]对零速状态下行人的位姿信息进行误差修正,在非零速状态下只更新状态误差协方差矩阵[15]。

上述零速校正方式可在一定程度上减少累积误差带来的影响,特别是中速步行时具有较好的效果。然而因为零速检测采用固定阈值的方式判定零速状态,在多种运动模式下零速检测会因误判而对运动点采取零速校正,从而导致定位精度下降,所以在不同运动模式下零速检测的阈值会发生变化,所设定的阈值随行走速度的加快而增大。因此,在不同的运动模式下,阈值应动态调整以保持定位的准确性。

图1为快速行走阈值调整前后零速检测点的变化情况。可以看出,当运动模式为快速行走时,若采用中速行走时的零速判定阈值,则会导致零速校正区间明显减小。图2为阈值调整前后行人轨迹。

图1 快速行走阈值调整前后零速检测点变化Fig.1 Change of zero speed detection point beforeand after the threshold adjustment of rapid walking

图2 阈值调整前后行人轨迹Fig.2 Pedestrian trajectory before and after the threshold adjustment

结合图1和图2可知,零速检测区间的减小造成零速校正效果减弱,从而降低定位精度。若在快速行走模式下仍采用中速行走模式的阈值,则行人最终的定位误差达到3 m(见图2中实线框),而当阈值提高后,行人轨迹定位误差减小到0.4 m(见图2中虚线框)。因此,对于不同运动模式,阈值需进行相应调整。因为不同运动模式下运动具有相应特征,所以可采用深度学习的方式根据不同运动特征进行零速区间判定。考虑到行人在相同运动状态下步态周期一般不改变,即可认为行人在相同运动状态下任意两个相邻触地阶段的时间间隔基本相同,因此,除了提取角速度和加速度特征,还可利用时间信息特征来提高零速检测准确性。为此,本文提出一种基于LSTM网络的零速检测方式,利用LSTM不仅可提取角速度和加速度特征,而且能提取零速检测时序特征,从而提升零速校正算法精度。

1.2 LSTM网络

长短时记忆网络是一种特殊的循环神经网络(Recurrent Neural Network,RNN)结构,其能很好地解决RNN中梯度消散的问题。该特性使LSTM能保留长期记忆,广泛用于文本情感分析、语音识别和时序预测等方面[16]。

LSTM与RNN结构基本相同,LSTM采用记忆模块代替RNN的隐藏单元。LSTM记忆模块由1个记忆单元和输入门、输出门和遗忘门组成。LSTM通过输入门、输出门和遗忘门的控制结构实现信息添加与删除。LSTM记忆单元结构如图3所示[17]。其中,xt、ht分别表示t时刻的输入和输出,σ表示Sigmoid函数,通过与信息进行相乘操作赋予各信息相应权重,从而控制信息。LSTM通过该结构进行长期记忆存储,在提取数据特征值的基础上实现对时间序列特征的存储,从而满足自适应零速校正算法的需求。

图3 LSTM记忆单元结构Fig.3 Structure of memory unit in LSTM

1.3 不同运动模式下运动数据特征及数据预处理

本文按照不同运动速度将运动模式分为慢速行走(速度为0.5 m/s~0.9 m/s),中速行走(速度为0.9 m/s~1.3 m/s)和快速行走(速度为1.3 m/s~2 m/s)3组,同时引入行人静止状态作为数据对照,得到的角速度绝对值变化情况如图4所示。其中,横实线处角速度绝对值为15,可以看出行走速度越快,步态周期越短,步频也越高。当行人为快速行走时,步态平均周期为0.85 s,步频为2.35 step/s,单步步长为0.80 m,触地周期为0.23 s,占整个步态周期的27.06%,角速度绝对值最大值超过20。当行人为中速行走时,步态平均周期为1.18 s,步频为1.69 step/s,单步步长为0.59 m,触地周期为0.40 s,占整个步态周期的33.90%,角速度绝对值最大值超过15,但低于20。当行人为慢速行走时,步态平均周期为1.33 s,步频为1.50 step/s,单步步长为0.50 m,触地周期为0.47 s,占整个步态周期的35.34%,角速度绝对值最大值不超过15。综上可知,从慢速行走到快速行走,速度越快则步频越高,单步步长越大,触地周期越短,触地周期在整个步态周期中占比也越小。此外,不同运动模式下除了角速度绝对值最大值及加速度等数值有差异,在时间周期与零速检测时间上差异也较大,因此,可采用LSTM学习不同运动模式的时序特征。除了时序信息,LSTM的输入数据还包括x、y、z三轴的角速度数据、加速度数据以及是否为触地阶段等信息。将处于触地阶段的时间点标记为1,处于其他阶段的时间点标记为0。通过角速度和加速度数据并结合时序信息来预测该时间点是否处于零速阶段,从而实现不同运动模式下零速检测的自适应判定。

图4 不同运动模式下角速度绝对值变化Fig.4 Absolute value change of the gyroscope indifferent motion modes

2 累积误差修正航位推算算法

本文提出基于LSTM算法的零速检测算法以应对多运动模式下的行人零速检测问题,然而PDR算法模型与真实人体运动模型存在差异以及行人运动中存在无意识抖动等问题会造成残余累积误差,因此,本文采用差分进化算法对残余累积误差进行二次修正。

2.1 差分进化算法原理

差分进化算法是一种高效的全局优化算法,也是基于群体的启发式搜索算法,群体中各个体均对应一个解向量[18]。差分进化算法的进化流程与遗传算法类似,都包括变异、杂交和选择操作[19]。在计算过程中,可以假设(a,b,c)为陀螺仪三轴累积偏差值,并用其对陀螺仪偏差值进行修正。

2.1.1 种群初始化

由于(a,b,c)为陀螺仪三轴累积偏差值,因此解空间维数为3,3个偏差值的取值范围根据经验值设定为(-0.01,0.01),初始种群的计算公式为:

(1)

2.1.2 变异操作

随机选取种群中两个不同个体,将两者差值缩放后与另一个体相加,得到:

vi(g+1)=xr1(g)+F×(xr2(g)-xr3(g))

(2)

2.1.3 交叉操作

对第g代种群和变异体进行个体间交叉操作如下:

uj,i(g+1)=

(3)

其中,CR为交叉概率,jrand为[1,2,3]的随机数。为避免中间体无基因遗传给下一代,在第一个交叉操作中随机取出vi(g+1)的第jrand位基因作为交叉后个体ui(g+1)对应的基因。

2.1.4 选择操作

若目标函数f(x)存在f(ui(g+1))≤f(xi(g)),则xi(g+1)=ui(g+1);否则xi(g+1)=xi(g)。当满足设定条件时,从具有最佳适应性的种群中选择最佳个体作为解并返回该数值。

2.2 自适应算法

在DE算法中,目标函数的选取是评价种群个体适应性的重要手段。将目标函数的选取结合到PDR算法中,需对惯性导航系统的定位结果做出相应评价,然而因为惯性导航定位算法受累积误差影响,所以惯性导航定位结果会有较大误差。因此,需采用UWB、WIFI和蓝牙等其他定位方式进行相对准确的绝对定位,将得到的坐标与PDR所得坐标进行对比,从而实现对惯性导航系统定位结果的评价。定位结果的评价指标为均方根误差(Root Mean Square Error,RMSE),其计算公式如下:

(4)

综上所述,本文所提基于差分进化算法的累积误差修正航位推算算法流程如图5所示。

图5 本文算法流程Fig.5 Procedure of the proposed algorithm

3 实验结果与分析

本文采用XSENS惯性传感器模块分别进行基于LSTM网络的自适应零速检测算法实验与基于DE算法的累积误差修正算法实验。

3.1 基于LSTM网络的自适应零速检测算法分析

按照不同速度将运动模式分为静止、慢速行走、中速行走和快速行走4组。实验人员分别按照上述速度行走(或静止)60 s,重复10次得到10组不同运动模式的数据,分别去除前后占总数量5%的数据,以避免产生误差。实验数据按照是否为触地阶段分别标记为1和0,将所得数据的70%作为训练集,将其输入LSTM网络进行训练。测试集由以下两部分组成:

1)剩余30%的数据。将这些数据按照不同运动模式分别输入网络进行训练,评估模型在不同运动模式下的适应性。

2)实验人员按照静止、慢速行走、中速行走和快速行走的运动模式(各运动模式时长为10 s),重复采集5组数据,以评估LSTM网络的自适应零速检测效果。

表1为不同运动模式下本文算法的检测准确率、误判率和漏判率[20]。可以看出,当运动模式为快速行走时,本文算法的检测准确率比慢速行走和中速行走更高,且误判率与漏判率更低。这是因为在快速行走过程中,三轴陀螺仪和三轴加速度计所测角速度与加速度数据变化迅速,LSTM网络能有效提取数据特征,从而提高检测准确率。在慢速与中速行走过程中,上述数据变化相对缓慢,对准确率的提升有一定影响。综合来看,在多模式运动过程中本文算法的检测精度较高,说明LSTM网络在零速自适应检测下具有较好的检测性能。

表1 不同运动模式下本文算法所得实验结果Table 1 Experimental results of the proposed algorithmin different motion modes %

图6为多运动模式下采用传统零速检测算法(以下称为传统算法)与本文基于LSTM网络的零速检测算法(以下称为本文算法)得到的行人运动轨迹。可以看出,在多运动模式(慢速行走、中速行走和快速行走交替进行)下,采用传统算法固定阈值会造成阈值偏低(或偏高),导致零速校正效果下降,定位结果发散。采用本文提出的LSTM网络判定零速区间可根据不同运动模式自适应调整零速区间,从而实现对多运动模式下零速区间的自适应修正。

图6 多运动模式下2种算法所得行人轨迹Fig.6 Pedestrian trajectories obtained by two algorithms in multi-motion mode

3.2 基于DE算法的累积误差修正算法分析

本文采用DE算法进行累积误差数据修正的自适应PDR算法关键在于UWB、WIFI和蓝牙等其他定位方式提供相对精度较高的定位坐标,从而对PDR算法定位结果进行评价,进而实现PDR算法的数据级修正,最终修正累积误差。

采用UWB定位、WIFI定位和蓝牙定位作为辅助定位手段所得本文算法与卡尔曼滤波算法的行人轨迹对比结果分别如图7~图9所示。其中,3种定位方式所得传统卡尔曼滤波算法3次行人距离终点的绝对误差分别为6.43 m、7.04 m和8.18 m,行走距离分别为516 m、514 m和517 m,相对误差分别为1.246%、1.370%和1.582%。3种定位方式所得本文算法3次行人距离终点的绝对误差分别为0.94 m、1.01 m和0.99 m,其相对误差分别为0.182%、0.196%和0.191%。可以看出,采用DE算法修正陀螺仪误差后PDR算法的误差大幅减小,本文算法对不同定位方式具有较好的适应性。

图7 采用UWB定位辅助所得2种算法的行人轨迹对比Fig.7 Comparison of pedestrian trajectories between two algorithms aided by UWB location

图8 采用WIFI定位辅助所得2种算法的行人轨迹对比Fig.8 Comparison of pedestrian trajectories between two algorithms aided by WIFI location

图9 采用蓝牙定位辅助所得2种算法的行人轨迹对比Fig.9 Comparison of pedestrian trajectories between two algorithms aided by Bluetooth location

为进一步验证本文所提算法的有效性与稳定性,独立重复10次上述实验且每次在行走距离为52 m、145 m、327 m和516 m处适当停顿。将10组实验所得终点绝对误差的平均值作为最终绝对误差,将所得相对误差的平均值作为最终相对误差,以减小实验结果的偶然性,实验结果如表2所示。

表2 3种定位方式辅助下2种算法不同行走距离的误差统计结果Table 2 Error statistical results of two algorithms in differentwalking distances aided by three positioning methods

可以看出,卡尔曼滤波算法所得绝对误差和相对误差均随着行走距离的增大而增加,且行走距离越大增幅越大。从相对误差的变化趋势可知,定位精度随着行走距离的增大而降低,且行走距离越大降幅越大。而本文算法的绝对误差虽然随着行走距离的增大而增加,但增幅相对稳定,且从相对误差整体变化情况来看,本文算法可有效抑制相对误差的发散。

从不同的辅助定位方式来看,本文算法对不同定位方式具有良好的适应性,可有效减少定位结果偏差,提高定位精度。从定位效果来看,UWB、WIFI和蓝牙的定位效果逐渐减弱,这可能是因为UWB的室内定位抗多径干扰能力强,能有效对惯性导航定位算法的计算数据进行修正,减少累积误差。蓝牙抗干扰能力最弱,对数据修正不足,存在较多累积误差。

由上述可知,本文算法能较好的适应其他定位手段,可通过修正陀螺仪的偏移数据有效减小累积误差,提高定位精度,但其所用计算时间较卡尔曼滤波算法也更长,卡尔曼滤波算法用时约5 s,本文用时约47.6 s。

4 结束语

本文针对多运动模式下零速校正困难的问题,提出一种基于LSTM网络的零速判定算法。根据不同运动模式自适应调整零速检测范围,实现多运动模式下的零速检测。在此基础上,设计基于DE算法进行数据修正的融合PDR算法,用其分析定位结果并在UWB、WIFI和蓝牙等定位方式下对本文算法效果进行验证。实验结果表明,该算法较卡尔曼滤波算法的绝对定位误差与相对定位误差更小,有效抑制了误差发散。然而该算法在运行速度以及场景泛化上存在一定局限性,下一步将优化DE算法加快运行速度,同时考虑在运动中进行UWB和IMU数据耦合以提高算法在不同场景下的应用性。

猜你喜欢
行人校正阈值
毒舌出没,行人避让
劉光第《南旋記》校正
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于CS-TWR的动态阈值贪婪算法成像研究
路不为寻找者而设
基于自适应阈值和连通域的隧道裂缝提取
基于MR衰减校正出现的PET/MR常见伪影类型
在Lightroom中校正镜头与透视畸变
机内校正
我是行人