APP下载

基于无线传感器网络的步态识别

2020-07-20谢晓兰徐承星

计算机工程与设计 2020年7期
关键词:测试数据识别率步态

谢晓兰,徐承星

(桂林理工大学 信息科学与工程学院,广西 桂林 541004)

0 引 言

物联网通过信息传感设备如射频识别(RFID)[1]、红外线[2]、全球定位系统[3]和激光扫描仪[4]采集对人类有用的信息,连接到互联网并以进行通讯、识别、定位、跟踪、监控和管理。Wifi作为一种强大的感知信息的媒介,具有普及面广泛、组网方便且传输速率高的优点[5]。

近年来,使用特定的设备,通过连接Wifi可以采集到从发送点到接收点的无线信道信息(CSI)[6],它是物理层的信息,描述了信号在每条传输路径上的衰弱因子,即信道增益矩阵H,它对环境的变化比较敏感,通过对这一信号的分析可以完成许多任务,例如步态识别[7]。尽管目前已经可以通过分析CSI进行室内定位或者手势分析,但其表现却往往因复杂的实验条件而恶化,此外,需要大量数据的支撑。本文利用Wifi技术对人的身份识别问题进行了研究,我们处理以下问题:在采集一些人的信息之后,如果进来一个人,我们是否能识别出这个人是否属于之前保存过的其中一个。我们在这项工作中的目标是使用基础设施来实现低成本的部署,并且尽量降低计算成本。Wifi传感需要收集CSI信号以描述无线网络,不同的人行走在同一路径上其表现在CSI上的值必然不同,当一个人在走廊上有规律的走动时,采集到其CSI,在去噪处理以后可以反映人的步态信息,通过分析CSI的变化识别这个人。

调查发现许多研究者使用深度学习的方式提取CSI特征并生成模拟的步态信号,这当然极大加速了识别过程,但其生成的数据集与原生环境训练的数据集是有偏差的。且现有研究在许多场景下判断错误的概率较大,这是不能容忍的,因为没有办法能弥补判断错误的损失。

无线信道一般用信道的冲击响应来对信道[8]的多径效应进行描述,在线性时不变的假设条件下,信道冲击响应可用下式表示

(1)

其中,ai为第i条路径的幅度衰减;θi为第i条路径的相位偏移;τi为第i条路径的时间延迟;n为传播的路径总数;δ(τ)为狄利克雷脉冲函数。

信道的频率响应可以用下式表示

z(k)=||z(k)||ej∠z(k)

(2)

其中,z(k) 为第k个子载波的信道状态信息CSI; ||z(k)|| 为第k个子载波的幅度; ∠z(k) 为第k个子载波的相位。

目前,常用的步态识别有两种方式:①视频图像处理,系统由通用的视频设备和计算机硬件组成,采用数字视频和数字图像处理技术,包括模板匹配、亚象素以及运动估值等技术来识别、跟踪标志点的运动,这种方式需要摄像头的支持,并且侵入性高;②无线感知技术,这种方式的精确度依赖于数据处理算法,且数据量大。本文关注第二种方式,以不同的视角上进行观察,步态表征都会因各种条件变化而产生显著的影响如:观察的角度、人类的穿着、信道的通信条件。研究者创建的识别系统主要使用建立模型的方法来提取步态特征,但建立模型需要使用各个视角的视图,这会使得整体结构臃肿且计算费用昂贵,在特征提取方面,深度学习或人工神经网络获得了广泛采用,但其高度依赖于大量训练样本。由文献[9]可以得知,可以通过统计信号波峰波谷的数量来近似计算出人的移动路程,这是因为伴随着人的移动,信号的传输距离也会发生变化,人体反射的信号会增强或削弱接收端接收的信号,这也是CSI在走廊上会表现出周期性变化的原因。

研究使用多个实验模板,组合成一个样本集,每个实验模板都将用于对比任意活动的测试数据。每个测试信号通过DTW算法映射到所有的模板,然后使用DT-kNN算法来判断测量结果的分类。数据是在较为理想的实验情况下采集的,单人在实验环境下的运动可以近似看作一个平稳过程,为了保证每条数据足够干净,我们预先筛选了数据。

1 相关工作

本节包括本文针对所研究的问题使用的技术,第一部分包括研究人员推荐使用的方法,与本文的对比、差异;第二部分包括传感器网络、特征和系统框架。

最近的研究中有使用不同的方法对CSI进行滤波和结果分析,例如:文献中推荐使用单一的DTW算法来进行分类[12],该工作还考虑了DWT技术减少了实验数据数量,研究针对相似数据进行了误差纠正。有做类似工作的研究人员使用SRC[13]或SVM算法对数据进行分类,即获取对人类的不同动作在同一时刻的CSI值;有研究者[14]使用小波变换同时提取信号的时域和频域特征;针对室内定位任务,有研究者采用引入多种策略的方式对CSI进行滤波并抑制误差干扰,使用kNN算法进行分类[15],取得了良好的效果并替代了现有的方案;针对同样的任务,文献[16]提出可信载波的思想,通过对信号链路进行分析,使用相位特征实现室内定位,理论上该思想同样适用于步态识别;此外,有研究者使用多层神经网络进行特征的提取,这种方法更加复杂和耗时。总体来看,更多的研究者使用CSI子载波中的一部分而不是全部进行研究[17]。考虑到类似的网络结构,着重从时域特征上研究识别方法,利用CSI的时域特性开发了一种快速的步态识别网络。认真研究了几种分类方法后发现:由于在滤波之后不同人的数据不一定会表现出完全相似的特性,除了DTW算法得到的相似度之外,可以通过增加能够选取的特征值的种类来有效降低识别错误的概率。

构建的无线传感器网络是通过无线局域网形成的一个封闭的系统,intel 5300网卡用于采集局域网覆盖区域中的信息,之后将信息发送给观察者进行处理。局域网、用户和观察者构成了整个无线传感器网络,布置如图1所示。

图1 无线传感器网络

通过专用设备采集到CSI,使用3*3的MIMO,但只取出一个包里的一个值,对每个子载波而言,多个包的时间序列值就是一个CSI stream,在协助者开启采集数据后,用户以自然速度通过走廊,结束采集后协助者将数据发送给观测者,并将数据分成测试数据集和模板数据集,模板数据集即样本集,所有采集到的数据都要经过预处理的过程,在预处理之后计算其表面特征值。

在启动一个识别任务时,假定不知道样本集里有多少种模板也不知道每个模板中有多少样本,根据测试数据的特征使用类中心向量法对整个样本集进行裁剪,再将测试数据与整个样本集中的每一条数据进行DTW[18,19]拟合,这个一对一的过程被执行许多次。将每一对匹配的特征值导入kNN算法进行选择,决策方式为多数表决法,最后对结果进行判断以确定这个匹配结果是可信的。这个流程混合使用了DTW算法和kNN算法并且加入了策略,我们将这一流程称为DT-kNN。

实验的依据与特征值选取方案基于3条基础:①一个人经过同一条走廊的步态信息反映到CSI上的值不同,因为他多次行走的轨迹不完全一样;②不同人经过同一条走廊的步态信息反映到CSI上的值不同,这是由于不同的人身高、体重、姿势等各方面的差异所导致的;③人类在同一条走廊上行走反映到CSI上的波形有相似的变化规律。根据文献中的考量,一条有效的CSI波形中的一个周期(从一个波峰、波谷到下一个波峰、波谷)时间内可以看作人体移动的距离是固定的。

步态识别流程如图2所示。

图2 步态识别流程

研究最终选取以下5个特征作为提取的特征值:

(1)平均周期长度差:由于人的移动速度不一样,经相同路径的时间也不同,它是人运动速率的一种表征;

(2)峰值差:如果能够统一每个人运动的起始时间与结束时间,那么对应点的峰值可以看作每个人在特定点的一种表征;

(3)谷值差:同上;

(4)丢失率:这个特征值反映了测试数据与一个模板的差距。为测试数据模拟一条该模板的预测数据,计算测试数据上每一个点与预测值之间的距离,距离大于该点平均绝对误差(MAE)指标的点记为丢失,计算丢失数占全部数据的比率;

(5)DTW相似值:使用DTW算法计算模板与测试数据间的相似度并且给出两条曲线的对应关系,该值越小则相似度越高。

所需要的5个特征值中的前3个特征值在预处理之后可以得到,在匹配阶段计算另外两个特征值。

具体的匹配的步骤如下:

(1)裁剪整个样本集;

(2)使用DTW算法对测试数据与一个样本集中的每一条数据分别进行拟合,这一步不仅可以输出一对数据的整体相似度,还找到了两条曲线之间点对点的对应关系;

(3)按照模板将样本集中的数据归类。对于每一个模板,根据第(2)步得到的对应关系,找到测试数据上一个点对应该模板所有数据上的对应点,对它们进行算数平均,作为该点的预测值,所有这些预测值组成一条新的预测数据;

(4)使用同样的方法,对于测试数据上的一个点,根据第(2)步得到的对应关系,取一个模板中每条数据上对应点的值计算该点的实际平均绝对误差(MAE),该值反映了同一个人的步态测量误差的真实情况,该值越低表明一个人的步态信息越稳定,若该值较大,则表明环境因素的影响较为明显,MAE指标计算公式如下

(3)

将测试数据与预测数据上对应点的值做绝对值运算,结果大于该点MAE指标的点记为丢失,统计丢失的值占总数的百分比,记为丢失率;

(5)将得到的特征值进行归一化处理,将所有参数分别加权后使用kNN算法对结果进行筛选。

2 步态识别策略

使用3根发射天线3根接收天线,取出56个中的30个子载波,并使用了每个CSI子载波上的5个特征作为后期处理的参数:平均一个周期的持续时间;峰/谷值差;丢失率;样本数据与模板数据的DTW相似度。在提取特征前,每个给定的测试或模板数据都要经过预处理。

2.1 预处理

由于实验环境不可避免的会受到各种因素的干扰,我们无法得知干扰源产生的响应,因此,采用下面的方法对原始信号进行处理。

预处理部分由4个单元组成:收集原始无线信道指标;对数据进行滤波、去跳变、平滑处理并输出新的数据;截取一部分数据并输出新数据;提取表面特征值。在一段时间内采集到的CSI数据中,可以将采集到的数据的每条子载波的幅度值独立的提取出来。用户平均需要步行10次才能收集可用的数据,一次步态无线记录动作持续时间为 10 s 到12 s,从一个环境中收集10个用户的一共500次完整的步态数据大约需要8个小时。在采集足够的数据后,我们进行去跳变,低通滤波与加权平滑处理优化数据,然后再提取图像上可量化的原始信号数据的属性:波峰值、周期均值、波谷值。

临界频率计算公式[20]

(4)

实验用的设备可以采集到全部56个OFDM子载波中的30个,以1 KHZ的采样速率采集大约10 s一个人的步态数据,进行初步处理后的数据集在图像上比原始数据集更加清晰,但仍然需要对其进行截取,目的是移除人类起步时加速度的影响,步骤如下:

(1)定义一个时间长度,该长度用来规范截取的连续时间长度,我们设定它为5,表示截取的时间长度为5 s;

(2)波形周期计算:计算输入里产生每个峰值的周期并记录;

(3)设置一个起始位置,经过一段时间后人体将近似位于该点上,模板的起点以该点为准,考虑到人起步的速度较快,我们设定该位置为3,表示该点距离起点的距离为3 m,根据子载波波长将距离换算成时间;

(4)选择5 s内连续周期时间段里的值作为可用的输出,记录并提取平均周期长度,峰值,谷值,这些值代表了模板数据的统计特性。

流程如图3所示。

图3 数据截取流程

2.2 DTW(dynamic time warping)算法

当人的运动路径相同时,被选择的两条时间序列的形状相似,但由于人运动速率的不同,导致它们在横轴上不对齐。在比较两条序列的相似度之前,需要将其中一个(或者两个)序列在时间轴下扭曲,使用DTW算法可以有效实现这种扭曲。

使用DTW的目的有二:其一是它本身可以输出两个数据集的相似度,为后面的结果判定提供一个有力的证据,其二是为了找到测试数据与模板数据的一一对应关系。设测试数据为M,对比样本为N,测试数据长度为m,样本长度为n建立m*n的矩阵l,约束可以用下面条件表示:

(1)即l1=(1, 1) 和le=(m,n), 1≤e≤(m+n)。 这限定了所选择路径的起点和终点。

(2)对于所选择路径上的任意点有lk-1=(a’, b’), 2≤k≤e-1, 则该路径的下一点lk=(a, b) 满足条件a-a’≤1, b-b’≤1。 即某点只能与相邻点对齐。

(3)对于路径上的任一点lk-1=(a’, b’), 则下个点lk=(a,b) 满足0≤a-a’ 和0≤b-b’。 这保证了所选路径的单调性。

条件(2)、(3)由于保证了格点的单调性约束和连续性约束,路径上点(i,j)的下一跳有(i+1,j),(i,j+1)或者(i+1,j+1)这3种选择。

规整代价最小的路径可以由如下公式来表示

(5)

分母中的k主要是用来对不同的长度的规整路径做补偿。目的是找到使两个时间模板距离度量最短时候的点对点对应关系,也就是最相似的那个卷曲,这个最短的距离也就是这两个时间序列的距离度量。

自定义一个变量γ(i,j) 用于保存累计距离,从l上的起点(0,0)处匹配序列M和N,从(0,0)开始每到一个新的节点,累计前一节点的距离数值。到达终点(m,n)时γ(m,n) 即匹配曲线的相似度。把匹配的对应关系的数值写到一个新的矩阵中,累积距离γ(i,j) 可以按下面的方式表示

γ(i,j)=l(i,j)+
min{γ(i-1,j-1),γ(i-1,j),γ(i,j-1)}

(6)

由已介绍方法得到两条序列对应点的距离关系,使用回溯法找到使得沿路径的积累距离达到最小值的路径。由于在矩阵1中保存了两条序列对应点间的距离,寻找特征点的对应点时,矩阵所经过的路径即是两条序列对应的坐标。

2.3 DT-kNN算法

kNN算法的核心是通过对样本周围的k个样本进行分类,选择出现频率最高的类别作为该样本的类别。我们首先使用类中心向量的策略对该分类方法进行改进:前期对样本集进行剪裁以降低算法的空间和时间开销,在使用DTW进行匹配后,分类时对各种指标进行加权处理,k值在测试阶段给出。

类中心向量策略设置如下:对特征值进行归一化,根据测量信号与样本的两个特征(波峰值,波谷值)对样本集进行剪裁,需要在测试阶段给出两个阈值p、q的值,这两个值用于裁剪整个样本集。裁剪的思路和p、q的取值思路如下:测量信号的平均波峰值与样本的平均波峰值做绝对值运算,用测量信号的平均波谷值与样本的平均波谷值做绝对值运算,当平均波峰值差与样本峰值的比大于p或者平均波谷值差与样本信号谷值的比大于q时,直接将该样本从样本集中删除,本文在测试阶段给出p和q的合理默认值。

我们的目的是通过使用这一策略使样本集缩减约50%,在有效减少了后期DTW的计算成本的情况下,kNN算法的性能降低可以忽略不计。在本文中缩减样本集降低了DTW算法的计算量,DTW算法的结果则会作为kNN算法的参数,我们将这一些步骤融合为DT-kNN算法。

由于kNN算法总是能得到一个确定的类别,在分类结束之后,我们还需要对每一项指标进行综合判断,以确定该数据是否不属于任何模板,方法步骤如下:

设定两个阈值x和y,这两个参数值用于否定匹配结果,这两个参数的值在实验的测试阶段给出,x、y的取值思路参考以下两个特征值:平均周期长度和DTW相似度。如果测试数据与模板数据的特征值差异过大,则这两个数据的类型不匹配,我们将两个数据间相同类型的特征值相除,用大的值除以小的值,得到平均周期差异a,DTW相似度差异b;当a的值大于x或者b的值大于y时,我们认为两个数据间的差异过大了,因此判定两个数据不属于同一类型,经过这一步被判否的数据被认为没有已知模板与之匹配。如果将参数x或y的值设定得过小,则许多正常的数据容易被判定为假;如果参数x或y的值设定得过大,则许多异常的数据容易被判定为真。在测试阶段给出x和y的合理的默认值。

DT-kNN算法设置如下,结构如图4所示:

(1)使用类中心向量策略裁剪样本集;

(2)对测试数据与样本集中的数据使用DTW算法;

(3)为所有归一化后的属性值加权,默认值为:平均周期长度差:0.3,峰值差:0.1,谷值差:0.1,DTW相似值:0.4,丢失率:0.1;

(4)单独计算待测试数据与各个样本之间的距离并依照距离数值的大小排序;

(5)根据之前的排序选取距离最小的k个样本,取这些样本中相同类型最多的模板类型作为预测结果,进行最终判定。

图4 DT-kNN算法流程

找到测试数据与模板数据的对应关系后,任务为寻找测试数据集中的每一个特征值与所有模板数据集中的对应特征值的距离,使用曼哈顿距离作为距离度量的方式

(7)

2.4 与已有方法的理论分析

我们认真研究了几种常用的步态识别策略,分析了本系统,CSI-SRC系统,LBR系统在本实验环境下的时间空间复杂度,并进行了对比,计算过程如下:

本系统所使用DT-kNN的算法中,待测数据长度为m,单次匹配数据的长度为n,样本集大小为u,特征维数为v,s为子载波数。

DTW算法的时间复杂度为m+(n-1)+(n-1)*(m-1)+n*m+n*m=O(3*n*m)=O(m*n), 空间复杂度为O(m*n), kNN算法的时间复杂度为O(u),由于两个算法是相对独立的,且u为定值,DT-kNN算法总时间复杂度为O(m*n) 总空间复杂度为O(m*n); SRC系统需要考虑稀疏矩阵的约束条件,对于m*n的矩阵,要将其变换到满足约束条件,需要进行n*logm2次操作,时间复杂度为O(1*n*logm2), 空间复杂度为O(m*n); LBR算法时间复杂度为O(s*(m+m*n)), 由于s为定值,时间复杂度为O(m*n), 空间复杂度为O(m); 见表1。

表1 时空复杂度对比

SRC与DT-kNN都主要使用了时域属性作为识别依据,在预处理部分SRC使用插值处理的方案,这种方案成本更低;在预处理部分,LBR使用了小波变换以取得频域属性,在随机匹配方面DT-kNN在数据分析方面不会因为少量误差而导致判断错误,这是LBR所不具备的。本系统的时间复杂度与LBR接近,由于现在系统一般运行在云服务器上,空间成本可以忽略,本系统选择牺牲了少量时间成本以换取更高的准确度。

3 实验与分析

基于DT-kNN算法对人类步态进行识别,对参数进行调节测试识别效果,更换实验环境测试系统的可移植性,以识别率作为主要指标对3种系统进行评价。

3.1 测 试

数据集是在实验室走廊里收集的30名用户的步态信息,每个用户以正常速度在走廊往一个方向上通过发射器和接收器30次,共收集了900个数据包,每个数据里有30条子载波,我们选择其中两条子载波进行验证,每个子载波被接收了9(3*3) 次。受试者有不同的身高、体重和体型。

在实验期间,识别率即正确分类的概率作为主要的度量方式,实验的主要结果分为两部分:改变实验条件后对本文方法的评估、使用其它方法替代本文分类方法后的效果评估。

我们需要确定4个阈值p,q,x和y的大小,并且确认同一个人的数据属性是否稳定,不同人的数据差异是否明显。我们测试了5个不同的人,每个人作为一个对象,分为对象1,对象2,对象3,对象4和对象5,对象栏表示第几个对象与第几个对象进行对比,我们将一个人的一组数据与5个人(包括自己)的数据分别进行5次匹配并取平均,归一化后的结果见表2。

表2 对比匹配

平均周期差反映了人的步行速度,而DTW匹配值则对整个步行过程进行了图形评价,这些指标能够被普遍的从每一对匹配的数据中提取,从表2中可以看出,为同一个人进行比对的各项指标普遍维持在较低的水平,而不同的人进行比对的各项指标的差别则相对较大,因此我们选择的特征值是有效的。

我们发现,不同的人进行匹配得到的平均周期差与DTW相似值都较大,均峰值差与均谷值差则不太明显。对数据特征进行分析,选定阈值p和q使得通过类中心向量法裁剪的样本大约为样本集的一半;选定阈值x和y使得错误判定被有效地筛选出来的同时正确的判定不受影响,对这5组数据的原始测量值进行计算,经过测试,我们选定合理的参数值,阈值参数p为0.13,q为0.16,x为1.37,参数y为2.04,kNN中k的取值为7;

3.2 实验结果分析

实验分为4个部分:

(1)识别成功率随着标记模板、模板数据集数量的变化;

(2)为实验一改变DT-kNN方法里特征值的权重;

(3)将实验环境换至无人的房间内,其它参数不变的情况下进行第一个实验;

(4)使用本文方法,与SRC或LBR的对比评估。

算法中初始默认权重值如下:平均周期差0.4,均峰值差0.1,均谷值差0.1,DTW相似度0.3,丢失率0.1。

3.2.1 识别成功率随着标记模板数量的改变与样本集的变化实验

测试集选取6个模板中的数据;每个样本集选取10个模板,每个模板选取5条样本。保持测试集不变,当每个模板中的样本数量逐渐增加到20个时,测量识别率的变化;保持测试集不变,增加样本集中模板的个数到16个,测量识别率的变化。结果如图5所示。

图5 无干扰模板数量/样本数量变化

当模板中数据个数较少时,识别率较低;增加从环境收集的模板数据数量可以持续改善识别率;两种情况的识别率都将收敛于一个稳定值,且当模板数量较少且模板数据数量较多时识别率收敛的速度更快,识别效果更好。

造成这种结果的原因是:在算法不能持续改善的情况下,大量增加模板数量降低了不同模板之间的差异性,伴随着模板数据数量的增加,每个模板的特性变得更加稳定,差异性也更加清晰的显现出来了。因此,模板数据较少时识别率低,当模板数据数量增加到一定值,识别率将不再提升。

3.2.2 改变DT-kNN方法里特征值的权重效果实验

设置如下:每组的测试集选取3个模板中的数据。样本集选取10个模板,其中包含当前测试数据所属于的模板,每个模板选取5条样本数据。改变参数的权重测量识别率的变化,见表3。

设置不同权值会对识别率产生较大的影响丢失率对识别率的影响因素较大,平均周期长度和DTW相似度的权重增加也会有效增加识别率,这与预测是一致的。

表3 改进型kNN算法中不同权重对识别率的影响

3.2.3 将实验环境换至无人的房间内,其它参数不变的情况下进行第一个实验

采用同样的方法在不同环境下进行的实验,结果如图6所示,与3.2.1的实验结果相比,识别率下降了,提高模板内数据的数量仍然有效提高了识别率,这意味着我们构建的系统理论上是可移植的,但需要重新定义特征值的选取方法以适应新环境。

图6 室内无干扰模板数量/数据集数量变化

3.2.4 使用本文方法,与SRC或者LBR的对比评估

进一步评估该系统的性能,采用了另外两种分类方法SRC或LBR替换DT-kNN进行分类,在相同环境下复现不同方法,识别率对比如图7所示,设置了几种不同的实验环境,一个人在待测环境5 m外正常走动标记为轻度干扰,一个人在待测环境3 m内正常走动标记为重度干扰,每个字母代表的含义如下:A走廊无干扰,B走廊轻度干扰,C走廊重度干扰,D实验室无干扰,E实验室内轻度干扰。采用16个模板,每个模板中有15个样本。

图7 3种方法识别率对比

无论实验环境在室内还是在走廊,采用DT-kNN的识别率都高于另外3种,偶尔持平,这验证了所选择的数据截取方案和特征值选取方案的有效性。

4 结束语

本文提出了一种低成本可移植步态识别系统,对采集到的信息公平的使用可靠的数据处理方法抽取出不同数据具有的特征,使用改进后的kNN算法降低了计算成本。在所有实验中,我们确保训练和测试数据集不同。现有方法给出正确结果的概率达到92%。随着模板数据样本数量的增加,识别率得到有效提高。结果表明,该系统可以在小规模环境下有效对人类步态进行分类,与文献[12-14]中已经提出的方法相比,在模板人数较少时,方法的识别率与之区别不大,当提高模板的数量后,方法的性能下降约为9.6%,比其它方法更优。

猜你喜欢

测试数据识别率步态
基于步态参数分析的老年跌倒人群步态特征研究
基于类图像处理与向量化的大数据脚本攻击智能检测
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
测试数据管理系统设计与实现
基于面部和步态识别的儿童走失寻回系统
基于Kinect的学步期幼儿自然步态提取
提升高速公路MTC二次抓拍车牌识别率方案研究
基于自适应粒子群优化算法的测试数据扩增方法
高速公路机电日常维护中车牌识别率分析系统的应用
步态研究及其在踝关节不稳中的应用进展