APP下载

基于GD-Kmeans和菲涅尔理论的WiFi手势识别方法

2020-10-10张峻豪

计算机工程与应用 2020年19期
关键词:菲涅尔手势载波

张峻豪,吴 飞,朱 海

1.上海工程技术大学 电子电气工程学院,上海201620

2.上海华测导航技术股份有限公司,上海201702

1 引言

基于WiFi 的感知具有无源、易部署、不受光照限制、部署范围广、成本低等优点[1],因为这些优点使得研究人员对基于WiFi 的无源感知技术的兴趣日益增多。近几年衍生出了基于WiFi的行为感知[2]、身份认证[3]、手势识别[4]、定位[5-6]、入侵检测[7]、呼吸检测[8]等一系列相关研究。基于WiFi的感知技术的基本原理是人和物体的运动或者存在会对WiFi信号的传播产生反射、散射、衰减等一系列影响,而这些影响会反映在WiFi 信号的相关指示量中,比如接收信号强度(Received Signal Strength,RSS)和信道状态信息(CSI)。RSS只能反映总体信号强度的变化,而CSI可以记录30条频率不同的子载波的幅度相位信息,其相比于RSS,其可以提供更加精细的多径信息。

文献[9]采用SVM(Support Vector Machine)对不同手势进行分类并达到了90%的准确率,这种方法需要手工选择分类特征,这无疑是十分麻烦的。文献[10]的核心思想是在较低的信号级条件下推导和估计手势的速度分布,这些速度分布代表了手势的独特的动力学特性,且与域无关。在此基础上,开发了只需要一次训练就能适应不同数据领域的手势识别模型,在域内识别精度达到了92.7%,跨域识别精度在82.6%~92.4%之间。文献[11]开发了一个基于元学习的无设备手势识别系统来解决当测试条件与训练条件不同时,识别性能会显著下降的问题。该系统使用很少的新样本在新的条件下执行的手势,准确率达到90%以上。文献[12]设计了一种无监督联合对抗域适应方案,该方案无需在新环境中收集和标记训练数据,即可实现精确且有弹性的无设备的手势识别,此外在原始环境下,该系统能够达到98.75%的手势识别精度。在文献[13]中设计了一个专用的卷积神经网络来揭示由幅值和相位差为特征构造CSI 帧的判别局部特征,并构造了一个鲁棒的手势识别分类器,实验结果验证了该系统能够达到95.8%的手势识别精度。

在无源的手势识别任务中,利用从普通的WiFi 设备中获取得到的CSI 数据能在保证信息充足的前提下大幅降低设备成本。由于手势的幅度并不大,其对于WiFi传播的影响也是有限的,研究利用菲涅尔衍射理论对监控的敏感区域进行计算,以帮助方法构建。同时,在实际应用过程中,一种自动判断手势是否发生以及发生时间段的方法是不可缺的。本文利用方差对动作是否发生进行判断,并提出轻量级的基于高斯分布-Kmeans聚类的算法对手势进行定位。在获取到手势波形后,采用基于DTW 的模板匹配算法进行手势识别工作。实验结果表明,该方法可以有效地对五种手势进行识别,识别准确率达到了93%。

2 菲涅尔衍射理论

2.1 信道响应

目前基于WiFi的感知系统基本都是基于接收信号强度RSS和信道状态信息CSI。RSS表示所有路径的总体接收能量强度[11],其可以表示为:

其中,Hk和θk分别表示第k条多径的幅度和相位。从上式可以看出,RSS 表征比较粗略的总体能量强度,其不能反映多径信息。

在IEE802.11n/ac 标准中,WiFi 设备支持多输入多输出MIMO,这些支持最新标准的设备通过信道状态信息CSI 来量化通信信道状态。在接收端接收到的信号可以表示为:

其中X表示发送信号,N为噪声,H即代表信道状态信息矩阵。对于载波频率为f,时刻t的子载波,可以用信道频率响应H(f,t)来表征CSI[12]:其中,hk(f,t)为第k条多径的幅度衰减,e-jθk(f,t)为由于传播延迟造成的相位偏移。CSI 可以反映空间中的多径信息,其相比于RSS所反映的信息更加充足精细。

2.2 菲涅尔区域

如图1所示,菲涅尔区域被定义为一系列的同轴椭圆[13],椭圆的焦点分别为发送天线和接收天线的位置。用Tx和Rx表示发射接收天线,用λ表示信号的波长,则可以用下式来表示菲涅尔区域:

其中,Qn为第n菲涅尔区域的边界点,即第n个菲涅尔区域的位置。

图1 菲涅尔区域示意图

信号在传播过程中会产生多条传播路径,将这些路径分为静态路径和动态路径,则接收信号的可以表示为:

其中,Hs(f)是静态路径的和,Hd(f,t)为由于动作引起的动态路径信号和。a(f,t)为动态路径的幅值和初始相位偏移的复数表示,e-j2πd(t)/λ为由动态路径长度d(t)导致的相位偏移。当接收信号的路径长度改变λ2,信号相位改变π,接收信号的幅度可以下式表示:

当一个物体持续穿过多个菲涅尔区域时,其反映在CSI波形上为一个类正弦波,穿过不同菲涅尔区域边界时,波形出现波峰或波谷。从公式(5)可以看出,越靠后的菲涅尔区域单径越小,并不断趋近于λ2,故在理论上,相同幅度的动作在靠后的菲涅尔区域内能反映的更加明显。但实际上,由于传播能量的影响,太靠后的菲涅尔区域内信号能量较小,并不利于动作检测。故选择第4 到第8 菲涅尔区域作为监测敏感区域最佳,更容易捕捉到动作。

3 系统设计

本系统的整体框架如图2所示,在接收器采集到包含手势动作的CSI数据之后,相关数据被送入数据处理系统进行处理,系统的数据处理部分主要分为三块,数据首先通过子载波选择、低通滤波和离散小波变换(DWT)组成的预处理模块滤除与动作无关的噪声,通过GD-Kmeans 算法对手势进行定位和切割,处理后的数据输入动态时间规整(DTW)模块与预先采集的五种手势的模板进行匹配来判定其属于哪一种手势。

图2 系统框架图

3.1 数据采集

从普通的商用WiFi 设备中获取CSI 数据是手势识别的第一步,能够有效地采集包含完整动作信息的信号影响着动作识别的性能。目前可从Intel5300 或Atheros9390网络接口卡中获取CSI数据,设发射天线和接收天线的数量分别为Lt、Lr,子载波数量为m,则可以获取到的CSI 矩阵的维数为Lt×Lr×m,这个CSI 矩阵完整的表示了收发链路中的信道状态信息。在20 MHz频宽条件下,采用CSI-tool 工具包和Intel 5300 网卡可以采集到包含30 个子载波的CSI 数据:H=[H1,H2,…,Hm,…,H30],式中Hi代表每一个子载波上的CSI。

从理论而言,CSI相位信息只与信号初始相位以及传播路径的长度有关,相位相比于幅度信息应该更加稳健,变化更小,与传播路径之间相关的特性让它更适合用于无源感知任务。但是在实际环境中,由于环境噪声和设备内电子噪声的影响,以及发送延迟等原因,在接收端CSI 中获取到的相位信息极其不稳定。直接获取CSI 数据的相位信息很容易,但是在5 GHz 的WiFi 频段,载波频率的偏移有时会高达100 kHz。在实际应用中,相位信息极其不稳定,而且纠正过程很复杂,而且目前已有的方案纠正相位偏移的效果并不好。因此,实际实现方法时采用CSI数据的幅度信息完成系统设计。

3.2 数据预处理

3.2.1 子载波选择

不同的子载波具有不同的中心频率和波长,即不同子载波的菲涅尔模型会不一样,这会使得不同的子载波对于相同的手势动作的敏感度不一样,反映在CSI波形上就是有些子载波对于手势动作比较敏感,而有些子载波则不能反映有效信息。选择合适的子载波能够捕获更有效的动作信息,这对于提升手势识别准确率是很重要的。通常来说,子载波越敏感,其CSI 波形在动作发生时波动会越剧烈,直观表示为方差会较大,在本文中,选择方差最大的子载波作为处理数据,方差越大CSI数据的波动越剧烈,对于相同的手势动作,方差最大的子载波信道响应更明显。

3.2.2 数据降噪

由于复杂的无线传播和周围环境的影响,接收端得到的CSI数据包含很多高频噪声,噪声的存在会造成分类器的误判并影响系统的识别准确率,在对原始数据进行手势定位和模板匹配之前需对CSI 值进行降噪预处理,目的就是去除CSI 值中的高频噪声,首先采用了巴特沃斯低通滤波器对数据进行了初步滤波。选择滤波器参数时利用菲涅尔衍射模型理论进行了指导。一般来说,正常的手势的动作幅度大约在4~25 cm 之内,在第4 到第8 菲涅尔区域内进行识别时,菲涅尔区域的最小单径为3.91 cm,也就是说手势最多会穿过6个菲涅尔区域。反应在CSI 幅度波形上是3 个正弦波周期,即包含手势动作信息的波形频率f在3 Hz 之内,在系统搭建时选择的采样率Fs为100 Hz,故使用的巴特沃斯低通滤波器的截止频率ω可按下式设置:

巴特沃斯低通滤波器的特性决定了它不能完全滤除不相干噪声,经过巴特沃斯低通滤波器处理后的数据仍然会存在着一些噪声,为了进一步滤除不相干噪声,我们选择使用离散小波变换(DWT)来进一步进行降噪处理,小波变换通过包含尺度参数和平移参数b的基本函数得到不同的变换形式[14]:

对于CSI时序信号s(t)的小波系数可以表示为:

其中,*为复数共轭符号,在本文中选择Symlet作为基本函数ψ,在利用离散小波变换进行去除噪声时,可以调节尺度参数和平移参数实现对CSI时序信号的局部化处理[15]。数据噪声去除前和去除后的比较如图3 所示,通过数据噪声去除之后的信号更适合进行动作识别。

图3 降噪效果图

3.3 GD-Kmeans手势定位算法

在实际应用过程中,尤其是实时监测时,人工去检测手势是否发生以及标记手势发生时间段无疑是不可能的,因此需要一种能够检测手势是否发生并标定手势发生时间段的算法,同时这种算法应当比较轻量级不至于影响系统总体的时间性能。

当环境处于平静状态时,CSI数据仅仅受到环境噪声的影响,这种噪声通常为白噪声,换言之,平静状态下的CSI幅值分布应该服从高斯分布。对图3所示的滤波后的波形平静段的数据进行了高斯拟合,结果如图4所示,可以看到,平静时的CSI 波形幅值服从高斯分布

图4 平静时CSI波形的分布拟合

当手势动作发生时,如图3所示,CSI的幅值信息发生了明显的变化,这也意味着有手势发生时利用幅值拟合的高斯分布一定会差异于平静时所拟合的高斯模型,将图3 所示波形从包序号70 到370 的数据均匀分成6段,拟合的高斯分布如图5 所示,第四段动作发生处高斯分布明显不同与未发生手势的位置。GD-Kmeans(Gaussian Distribution-Kmeans Clustering)算法基于此发现进行手势定位工作。前文提到过,有手势发生时CSI 波形会产生相应的波动,这就导致了有手势发生时CSI 波形的方差会明显大于平静段。在这里,设定了一个阈值为5,当某时刻计算得到的波形方差大于平静段方差的5 倍时判定有手势发生,之后采用GDKmeans 算法来进行手势定位来精确的确定手势动作发生时间段。GD-Kmenas 的基本思路为将数据以0.5 s为间隔分成若干段,对每一段的CSI 幅值数据进行高斯分布拟合得到分布参数。对于得到的一组高斯分布参数采用Kmeans 聚类算法将其分为两类,第二类中包含的数据段即为手势发生的数据段。具体的算法步骤如下:

图5 不同数据段高斯拟合结果

对图3所示波形从包序号70到370的数据应用GDKmeans 算法,所得结果如图6 所示,类别2 的时间段即为手势发生时间段,可以看出本文的算法很精确的定位了手势发生时间段。

图6 GD-Kmeans算法定位效果

3.4 手势识别分类

在预处理和手势定位完成后,通过模板匹配的方法判断需要分类的手势属于何种手势。对于不同的手势动作,由于手臂和手掌的运动轨迹不一样,也导致了相应的CSI波形会不一样,而相同的手势动作之间的差距则比较小,如图7所示。人工选择分类特征然后利用机器学习的方法进行分类不容易找到合适的特征且处理过程繁琐,因此在此方法中,直接选择使用波形形状作为特征来对不同动作进行匹配分类。

图7 不同手势所对应的CSI波形

使用者在做手势时,不同个体的手势动作持续时间有较大差异,即使是同一个使用者在不同的时间进行相同的手势动作所持续的时间也有所不同,这会导致CSI波形长度也相应的有不同长度。如果不经过任何处理直接匹配两个原始数据,会得到很差的匹配结果,需要解决不同数据长度以及数据在时间上差异性的问题。在本文中,使用动态时间规整DTW算法解决这个问题,该算法基于动态规划思想,最初是为了解决语音识别中发音长短不一的模板匹配问题,和语音信号类似,CSI也是时序信号,解决不同CSI 数据长度以及CSI 数据在时间上差异性的问题正好与发音长短不一的模板匹配问题相似。

4 实验结果与分析

4.1 数据采集

实验地点为一个7 m×7 m的会议室,室内布置有会议桌、椅子等家具。实验设备按上章所述,依照菲涅尔衍射理论进行指导部署。采用一台路由器作为发送设备,一台配备有Intel 5300网卡的电脑作为接收设备,发包率为100 Hz,发送天线和接收天线的距离为80 cm,实验者在距离天线对30~50 cm的正上方的识别敏感区域内进行手势动作。

测试的手势为画圈、向左滑动、向右滑动、向上划手和向下划手五种。在测试数据收集之前,采集了每种手势的几个标准数据作为样本数据。在实验测试阶段有两位参与者进行了实验,每人每种手势进行了30 次实验,最终获取到了总共300个数据。

4.2 实验结果与分析

将取得的300 个数据按上章所述进行了数据预处理后经过手势定位,然后通过动态时间规整算法(DTW)进行模板匹配,最终的识别准确率达到了88%,不同手势的识别准确率如图8所示。

图8 手势识别准确率

其中画圈和下划的手势识别准确率最高,达到了96%,上划的准确率为89%,左右滑的准确率最低,均为79.5%。这种现象可以利用菲涅尔衍射理论进行解释,由于手势发生区域是在天线对的正上方,在实验中实验者执行手势时幅度不会相差太多。当进行上划、下划操作时手臂分别远离,靠近天线对,而越远离天线对菲涅尔区域的单径越小,第一个菲涅尔区域的单径在实验中为15.78 cm,而距离天线对50 cm 左右处的菲涅尔区域单径约为3.8 cm。这就使得同等幅度的动作在上划和下划时在波形上会有明显的差别,而左右滑动时两种操作穿过的菲涅尔区域并无明显区别,这就导致了左右滑动在波形上有时会相互混淆,导致准确率下降。

为了验证本文提出的WiFi 手势识别方法的有效性,将与传统的机器学习算法进行对比,包括支持向量机(SVM)[17]、随机森林(Randon Forest,RF)[18]、朴素贝叶斯(Naive Bayes,NB)[19]、决策树(Decision Tree,DT)[20]。其中SVM 使用的核函数为线性,基尼系数作为决策树的特征选择,随机森林的树个数设置为100[21]。在传统的机器学习算法中,一般需要独立的特征提取过程,这样才能更好验证本文提出的方法的有效性,因此,切割出手势动作后,提取出一些统计特征作为机器学习算法的输入特征,包括最大值、最小值、方差、均值、信号能量,对比结果如图9所示。

图9 GD-Kmeans与传统机器学习算法结果对比

5 总结与展望

基于菲涅尔衍射理论来对手势识别时的实验硬件设置和数据处理算法的参数进行大致计算,节省了调整实验天线设置和数据处理时参数的时间,从而达到更好的实验性能。利用DWT进一步滤除数据中的不相干噪声,提出GD-Kmeans 算法实现了对手势发生时间的精确定位,通过基于DTW 的模板匹配实现了对五种手势的识别研究,并达到了平均93%的准确率。在后续的工作中,将进一步探索菲涅尔衍射理论对无源感知的指导作用,使方法更加完善。

猜你喜欢

菲涅尔手势载波
水声单载波扩频均衡技术研究
历元间载波相位差分的GPS/BDS精密单点测速算法
让激光电视充分展现力量与色彩 焦点(Focusview)菲涅尔超短焦硬幕
挑战!神秘手势
V字手势的由来
用于SAR与通信一体化系统的滤波器组多载波波形
低载波比下三电平NPC逆变器同步SVPWM算法
菲涅尔超薄透镜
胜利的手势
基于菲涅尔透镜的零闭锁激光陀螺抗辐照方案