小波分析与SVM在个人导航中的应用

2019-08-02 03:08马立刘畅
微型电脑应用 2019年7期
关键词:步态区分分类器

马立, 刘畅

(1.北京航天石化技术装备工程有限公司, 北京 100076;2.北京科技大学 自动化学院, 北京 100083)

0 引言

导航定位技术是利用能够为被导航载体提供姿态及位置信息的电、磁、光、声、天文、惯性等一系列信号进行导航的综合技术,在现代军事、交通、航空、航天等多个领域获得了广泛应用。当代导航技术分为很多种,主要的方式是以惯性导航技术为主,通过GPS、地形、地磁、无线电等其他辅助导航技术对惯性导航的结果进行误差修正,从而得到载体运动时的精确位置信息。

而个人导航就是利用导航设备对使用者的位置进行定位并对其进行引导直至目的地的过程,或者是对行人的运动轨迹进行跟踪的过程。在实际活动中,人们往往身处人迹罕至的野外,或是高楼林立、道路纷繁的城市,或是错综复杂的办公大楼和商业大厦,这些情况使得人们对定位与导航信息有着非常迫切的需求。广泛应用的GPS导航在地形复杂的丛林或高楼林立的城市会有导航盲点,这给个人航位推算导航以巨大的发展空间。

本文以对行人的运动状态进行分类为突破点,就个人航迹推算中计算步长环节的精度提高,以增强航迹导航的精确度。

1 DR行人导航算法模型

DR定位是一种完全自助式的定位方法, 其原理主要是利用航向传感器和距离传感器实时检测目标的航向角和位移, 从而推算出移动目标的位置信息, 具有短时间定位精度高、自主性强等特点。对于行人导航定位来说, 加速度计可以提供行人步行的位置和速度测量信息, 而电子罗盘可提供行人行走的方向角信息。

(1)

其中,θi和di为第i次位移方向和位移距离。推算定位原理如图1所示。

图1 航迹推算原理图

行走的方向角信息可以通过特定方法得到。且步长的计算模型随行人运动状态的不同而有所差异,本文做着重考虑的问题是通过特定方法得到行人的运动状态,从而建立准确的步长模型,以提高航迹推算的精确度。

1 对行人运动状态分类的方法

运动分类已经有了很多的研究方法,研究手段上主要有两个大的方向:基于计算机视觉[1]和基于传感器数据[2]。而基于加速度传感器的步态研究又有两大分支,身份识别[3]和运动分析[4]。行人步态分类大部分是以行人运动过程中加速度特征值为基础来进行分类。在特征值得提取上,可以选择时域特征或者频域特征。时域特征常用的有平均值、标准差、中值等统计量。在频域方面,小波分解被广泛应用于基于加速度信号的步态分类。

通过对采集的数据进行处理分析以区分静止、跑、上下楼及平地行走等状态。对采集到的原始数据要进行一下预处理,首先是利用滑动平均法对数据进行处理,滑动平均相当于低通滤波,能够有效减少高频噪声的干扰,进一步突出数据本身的特点。另外要对采集到的原始数据进行归一化处理。归一化处理主要是考虑到由于每个人的行走习惯各不相同,采集到的样本数据变化范围也不尽相同,而步态分类的依据主要是不同行走方式之间的差异,由于个人行走习惯的不同造成采集到的数据的差异必然会对分类结果造成一定的影响。为了消除信号的数值大小对识别结果的影响,同时也为了简化后续的处理过程,将对采集到的数据进行归一化处理,经过这种无量纲的处理之后,把之前的绝对数值变成了相对数值的关系,从而达到了消除个体差异的目的,凸显了行走模式的本质,是十分必要的。

2 本文选择的分类方法

让实验对象以快速、常速、慢速上、下楼梯和水平行走等各种形式行走,用三轴加速度传感器分别对3个方向的加速度值信号进行采集分析可知侧向加速度信号受个体差异较大,但是对于走路模式的识别影响较小,因此在本文中只选取垂直方向和前进方向的加速度信号进行分析。

根据本课题的实际情况,拟通过对三轴加速度计和磁罗盘输出的信号进行一系列地处理,并根据不同运动类型之间的相关性来进行分类,从而得到行人的运动状态。我们采集了多个个体的多种运动模式,包括快速、常速、慢速等不同速度的水平行走以及上楼、下楼梯等三维空间内的较复杂活动。从比较三维加速度信号时域图开始到提取原始数据的频域特征再到结合时频域特征等各方面进行分析。根据我们的日常经验和初步实验分析,我们认为侧向加速度信号受不同人的走路习惯影响变化较大,且对走路模式的识别贡献较小,即个体区分大,不同类别间区分小。在特征的选择上,本文的思路如图2所示。

图2 步态分类系统分类特征图

3.1 对分类较为容易的运动状态

回到对几种步态的分类问题上,由于跑步、静止这两种运动状态和步行的其他运动状态差别较大,在竖直方向的加速度数值上就有很大的差别,所以可以通过简单的设定竖直方向的加速度阈值可以将跑和静止两种运动状态进行区分,大于某一个阈值运动状态为跑,小于某一个阈值为静止,在这两个阈值之间的初步判断为行走状态,再通过小波变换原理对行走状态进行进一步的区分。

3.2 对分类不易的运动状态

因为各个轴向输出的加速度信号与走路模式、速度都相关,对于具有非平稳性和非线性的加速度数据,仅提供它的时域特征和频域特征对于步态分析有一定的局限性,而小波变换是一种时频分析方法,能有效从信号中提取相关资讯,通过伸缩和平移等运算功能对函数或信号进行多尺度细化分析,能够有效解决傅里叶变换不能解决的问题,由于这种理论无论是在时域还是在频域上都有良好的局部化特征和多分辨率分析的特征,也被成为“数学显微镜”。现在,对于性质不随时间变化的稳定信号,处理方式仍然是傅里叶分析方法,但是在实际应用中,绝大部分的信号时非稳定信号,对于这类信号处理的工具为小波分析。

(1) 小波分析简介

从滤波器的角度看,小波分析实质上就是通过建立一系列的帯通滤波器来获取各个频带上信号的相关信息[5]。在离散小波变换中,先对较大尺度的信号进行小波变换,在选取其中低频部分在原尺度的1/2尺度上进行小波变换,叫做Mallat算法。其单步流程如图3所示。

图3 离散小波分解的单步处理过程

根据快速正交小波变换算法(也称为Mallat算法),信号S(n)定义如式(2)。

(2)

其中,J是分解层数。ψ,φ是S(n)在2j分辨率逼近下的小波函数和尺度函数,都是标准正交函数。aj,dj是2j分辨率下的近似系数和细节系数。

细节系数dj和近似系数aj的计算如式(3)、式(4)。

(3)

(4)

其中,h和g分别是离散的低通滤波器和高通滤波器。

因身体运动的频率成分都在20 Hz以下,在研究中为减小小波分解层数,把加速度信号的采样率降到80 Hz,如图4所示。

图4 离散小波变换的多尺度分解示意图

根据乃奎斯特采样定理得到可检测频带0—40 Hz,对20 Hz的信号不会产生影响。由于Danbechies正交小波族具有良好的逼近性与稳定性,采用db4小波基函数分别对采样后的竖直方向加速度信号进行5层小波分解,提取与运动相关的时频特征。其中第2到第5层细节信号对应的频带约为0.625-20 Hz,将人走路的步频包括在这一频带范围内。

(2) SVM(支持向量机)简介

SMV是在1963年,Vapnik为了解决模式识别的问题提出一种称为支持向量机(Support Vector Machine, SVM)的方法,这种方法对从所有的训练集中选择出的一组被称为支持向量(Support Vector)的特征子集进行划分,子集的规模比全部训练集会小得多,并且对特征子集的划分与对整个数据集的划分结果是等价的,这样就可以实现通过对相对小规模的子集分类而得到全部分类的目的[6]。

SVM从线性可分情况下的最优分类面发展而来。最优分类面对分类线的要求有两点:一是首先保证分类线能将两类正确地分开(即训练错误率为0),二是不同两类间的距离最大。SVM所要寻找的也是一个分类超平面,在满足分类要求(不一定完全分开)的前提下尽可能地让训练集中的点到分类面达到最大的距离。换一种说法就是试图找到一个使分类面两侧的空白区域(margin)最大的分类面。可以以下面的二维线性可分情况来说明。

如图5所示。

图5 二维线性可分支持向量示意图

圆圈和实心点分别代表两类样本,SVM要找到的是分类线H,是2类样本能够被完全分开,且距离最远。H1和H2分别是经过两类中距离分类线最近且平行分类线的直线。他们之间的间隔就是分类间隔(margin),直线H1H2上的样本就叫做支持向量。满足了正确分开和间距最大的条件也就保证了经验风险最小和置信范围最大从而使实际风险最小。

SVM是一种典型的两类分类器,即它只回答属于正类还是负类的问题。本课题由于要分类多种步态,需要由两类分类器得到多类分类器;具体的做法依类别数而定,下文会详细介绍。

4 实验验证步态分类算法

4.1 对分类较为容易的运动状态的分类验证

在对信号进行分析之前首先还是要进行一系列的预处理工作,用以去除各种噪声和重力加速度,达到方便数据处理和提高分类效果的目的。在本课题的研究中应用了平滑、去噪、加滑动窗口和归一化等预处理手段。

我们的目的是区分正常行走、跑步、静止、上楼、下楼、等动作,实现对这5种动作的准确分类。总的思路是由差别大的到易混淆的、由时域特征到统计特征再到特殊特征。

由于跑步、静止、走步这三大类运动的差别较大,在竖直方向上的加速度就有明显的差异,所以仅仅通过简单的设定加速度阀值就可以判断,即基于时域上的信号就可区分。即仅就这三种状态而言,当采集到的加速度信号大于一个预先设定的阀值时为跑步,小于一个预定阀值时为静止,在两阀值之间时为行走状态。

特征是决定样本间相似性和分类器设计的关键,所以对步态进行分类的关键就是选取有效的特征。

基于此方法对行人运动状态进行分类,分类结果如表1所示。

表1 利用加速度阈值进行分类结果

从实际检测方法可以看出,对较为容易区分的步态特征,通过垂直方向加速度的值即可准确区分出静止和跑,但是对于走的不同状态,还是需要更为细致的方法来进行区分,本文的重点就在于对走的不同状态进行区分。

2 对分类不易的运动状态的分类验证

将步行分为上楼、下楼、平地快走、慢走四种状态。不易分类的几种步态利用SMV(支持向量机)方法来进行分类。

本文不易分类的步态选取了上楼下楼及平地走3种,用SVM完成三分类具体步骤如图6所示。

图6 两类分类器得到多类分类器示意图

我们就可以先问分类器“1对3”(意思是它能够回答“是第1类还是第3类”),如果它回答3,我们就往左走,再问“2对3”这个分类器,如果它还说是“3”,我们就继续往左走,这样一直问下去,就可以得到分类结果。好处在哪?我们其实只调用了2个分类器(如果类别数是k,则只调用k-1个),分类速度飞快,且没有分类重叠和不可分类现象!缺点在哪?假如一开始的分类器回答错误(明明是类别为1,它说成了3),那么后面的分类器是无论如何也无法纠正它的错误的(因为后面的分类器压根没有出现“1”这个类别标签),其实对下面每一层的分类器都存在这种错误向下累积的现象。但是这种错误的累计不仅在这里有,在错误累积在一对其余和一对一方法中也都存在。

本文选用SVM作为分类方法,采集不易分类的运动状态的加速度信号,对竖直方向的加速度信号以db4为小波基进行5层小波分解,将每一层的小波系数作为特征值来区分步态。通过试验,选取第三层和第五层系数为特征量进行区分,得到结果如图7所示。

图7(b) 下楼与平地走分类结果

图7(c) 上楼与平地走分类结果

图7(d) 最后三分类结果

分类具体结果如表2所示。

表2 最后三分类结果

整体的准确率达到了96%,满足实验要求。

5 总结

通过小波分析与SVM结合的方式可大大提高对行人步态分类的精确度,而且SVM方式通过MATLAB变成可以实现多种步态的分类,原理相同,且准确率较高,可以实现对行人多种步态的分类,进一步以步态为基础计算行人步长,结合航位推算方法,即可大大提高行人导航的精度。

猜你喜欢
步态区分分类器
灵活区分 正确化简
基于步态参数分析的老年跌倒人群步态特征研究
特别策划《步态分析研究综述》
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
一种自适应子融合集成多分类器方法
怎样区分天空中的“彩虹”
——日晕
怎么区分天空中的“彩虹”
步态识人
区分“我”和“找”