王 伟,王存华,王召巴
(中北大学 信息与通信工程学院,山西 太原 030051)
在室内定位中,行人航迹推算(Pedestrian Dead Reckoning,PDR)因其所需设备简单、易于实现等优点被广泛应用[1]。由于智能手机内嵌有加速度计、陀螺仪、磁力计以及气压计等传感器,所以基于智能手机的PDR行人算法成为了研究热点[2]。
在使用智能手机获取数据时,行人状态的不停变换和手机姿势的不一致都会影响定位精度[3]。在实际应用过程中,行人状态主要有步行、跑步、上楼、下楼等。实验者对手机姿势的处理主要有紧握、打电话、摆臂以及放在口袋里等。
目前,用于行人状态识别的机器学习主要有支持向量机(Support Vector Machine,SVM)、人工神经网络(Artificial Neural Network,ANN)、K最近邻法(k-Nearest Neighbor,KNN)以及决策树(Decision Tree,DT)等[4]。在这些算法中,SVM因其对线性不可分问题解决得较好,故一般用在分类识别中[5]。SVM分类的好坏主要取决于它其中的惩罚参数C和高斯核函数中的核宽度σ,需要结合一些优化算法来优化其参数。Ling等人[6]提出了一种将物理行为识别和无线定位相结合的室内导航定位方法;Susi等人[7]定义了6种常见的室内导航运动,并利用热工导航分类器的神经网络进行分类研究;Tian等人[8]利用有限状态机对行人进行实际的跟踪,可以检测分类出智能手机姿势的转变;Gu等人[9]开发了一种叫做压力导数的新颖功能,主要通过智能手机内置的气压计获得的数据识别行人垂直平面上的运动。本文提出用粒子群优化支持向量回归的惩罚参数C和高斯核函数的核宽度σ的模式识别分类方法,从而提高支持向量机的分类性能,并在实际场景里验证了将该方法应用在PDR室内定位中可以提高定位精度。
支持向量机有着收敛速度快、泛化能力强、适应方式多以及构造容易等优点,常常被用在分类识别和模型回归中。但是,它的分类效果的好坏很大程度上取决于它的参数选择,而优化参数一般要结合其他算法,如遗传算法(Genetic Algorithm,GA)、粒子群算法(Particle Swarm Optimization,PSO)以及梯度搜索(Gradient Search,GS)等。SVM实现分类的实质是找到一条分割线,将所有的样本点尽可能远离分割线,即最优超平面。假设超平面为f(x),表达式为:
用δi定义特征向量xi到超平面的几何距离,则距离可表示为:
式中,||w||为w的2-范数。
式中,n为训练样本数量。
SVM的优化目标问题为:
分别对该函数的w、b、ξi求偏导并代入L,利用核函数代替点积运算。本文选择高斯核函数,即支持向量机分类模型可表示为:
式中,σ表示高斯核函数宽度。
粒子群优化算法最早是在1995年由Kennedy等人提出的,核心思想是利用整体中的个体共享整个信息的特点,使得整体在运动过程中的求解空间不断优化,从而获得问题的最优解。算法中主要分为粒子速度和位置的不断更新。
PSO对SVM的优化是为了得到一组误差最小的惩罚参数和核函数宽度,使得设计出来的分类器能获得更好的分类效果,具体设计步骤如下。
(1)初始化粒子群。假设目标问题的自变量有M个,种群个数为N,则粒子的初始位置信息可表示为:
式中,xij(0)为初始化粒子群中第i个粒子的第j个分量的位置:
式中,rand(0,1)为[0,1]服从均匀分布的随机数。
同理,初始化粒子的速度信息可表示为:
(2)由适应度函数计算粒子适应度值;
(3)根据计算得到的适应度值,寻找粒子当前搜索到的最优位置和整个粒子群当前的最优位置;
(4)速度迭代更新,在每次迭代过程中,通过粒子个体极值和全局极值更新速度信息;
式中,ω为权重惯性因子,由经验值设定为0.6;k为迭代次数;c1、c2为加速度常数,表示粒子搜索自己历史最优解的权重系数和搜索群体最优解的权重系数,分别取值为1.5和2.0;μ和ρ都是[0,1]均匀分布的随机数。
(5)位置信息更新同速度更新方法类似,更新公式为:
反复执行步骤(2)~步骤(5),直到达到最大进化代数或达到设定的收敛精度。
SVM的分类过程主要包括数据采集及预处理、特征提取、训练与分类以及分类器建好后的运动模式识别。
利用智能手机通过加速度计采集加速度,通过陀螺仪采集陀螺仪数据,通过气压计采集压力数据。采集到原始数据后,为了提高数据可用性,对数据进行必要处理。先把原始数据的前2 s和后2 s删除,因为该时段数据受手机状态和采集人影响较大,数据可信度不高;然后用2 s长的滑动窗口对同一时刻不同传感器数据进行分割,滑动步长为0.5 s,得到最终的数据段。
本文选取统计特征值对数据进行特征提取。选取三轴总加速度的平均值和标准差以及三轴陀螺仪测得的角速度平均值和标准差作为识别运动状态的特征;气压值的梯度反映行人海拔的不同,可以很好地辅助分析上楼还是下楼状态。通过对所有的数据段进行特征提取得到统计特性,再给每种运动状态的统计特性后加上类别标签构成数据样本。
获得数据样本后,对所有样本的特征数据进行归一化,再随机选取总样本数据的80%作为训练数据集进行训练,剩下的20%数据作为测试集用来评价SVM分类器的分类效果。在训练SVM分类器时,本文对训练数据集进行了K折交叉验证。
本文用ihone6s plus手机获取传感器原始数据,实验地点选择在中北大学科学楼B座三楼走廊,传感器采样频率设定为50 Hz,实验随机选择两男两女共4人。
采集人携带手机,手机放在胸前,分别采集静止、行走、上下楼梯4种运动状态模式下的加速度以及陀螺仪和气压计数据,其中行走150步,跑步100步,上楼120步,下楼120步。用总样本的80%进行训练得到SVM分类器后,将剩下的20%进行评价分类器的好坏;经过PSO-SVM分类器分类后的准确率如表1所示。
表1 行人不同运动状态下的分类准确率
同时,在固定行人一直处于行走状态时,分别将手机保持水平紧握、打电话、不断摆臂以及放在口袋中依次进行实验。经过分类器分类后,准确率如表2所示。由表1可知,不同运动状态下总的识别精度都超过了93.4%,行走状态识别准确率可达96.8%,1.4%被误认为是跑步,0.5%被认为是上楼,0.2%被认为是下楼,上楼和下楼之间的判别大约有2.5%的误差,因为这两个状态有许多类似的特点,仅凭气压梯度来区分效果不明显。由表2可知,手机不同姿势的整体识别率在92.6%以上,摆臂精度可达95.8%,不同手机姿势都有可能被认为是其他模式,主要是由于实验者不能保证在运动过程中手机姿势从未发生变化。
表2 手机不同姿势下的分类准确率
SVN与KNN都是模式识别的常用方法。本文将数据进行分类后相互之间进行比较,其中使用F1值作为评判分类器分类好坏的程度。F1值是调和正确率和召回率的一个综合指标,F1值的大小与分类正确率的大小有正相关关系,其中F1值计算公式如下:
式中,a表示正确率,b表示召回率。
实验分别选取行走紧握手机模式(状态1)、上楼打电话模式(状态2)、下楼手机放在口袋里(状态3)、跑步摇摆手机(状态4)4种模式,然后分别用PSO-SVM、SVM、KNN分类方法进行分类验证比较。表3是3种方法分类后得到的F1值。
由表3可以看出,PSO-SVM、SVM、KNN的分类平均F1值为0.967、0.958、0.921。3种方法对状态1的分类正确率均最低,但都在80%以上;PSO-SVM分类正确率比其他方法高一些,KNN方法分类精确度稍低一些,可能是因为K值的选取不当影响了分类效果。
表3 不同分类方法下4种状态的F1值
本文选择在实验室二三楼进行PDR定位实验,实验者选择手持紧握手机在二楼走廊行走,在上楼时保持打电话姿势,到三楼走廊将手机摇摆并进行跑步实验,实验起始点为A,上楼时起点为B,上楼后起点为C,终点为D,实验全长为136 m,如图1所示。
图1 行人PDR室内定位实验行走轨迹
由图2可知,结合模式识别辅助下的PDR室内定位算法定位性能要优于传统PDR定位算法,主要原因是行人在不同状态下和手机姿势处于不同模式下,会对PDR定位过程中的步频检测和方向角估计产生影响。
图2 两种算法定位误差累计概率分布对比
针对PDR定位算法中的运动识别问题,本文利用PSO-SVM方法对行人在4种不同运动状态下和智能手机处于的4种姿势数据进行分类识别,并与基于KNN和单纯利用SVM的模式识别的方法进行对比分析,然后在实际环境下进行运动识别模式辅助的PDR定位实验。结果表明,改进后的算法不仅具有更高的识别正确率,而且定位效果较传统PDR方法更好。