APP下载

基于Bi-LSTM的CSI手势识别算法

2022-10-01郭浩雨冯秀芳

计算机工程与设计 2022年9期
关键词:手势数据包载波

郭浩雨,冯秀芳

(太原理工大学 软件学院,山西 晋中 030600)

0 引 言

近年来,随着传感技术的提高和无线设备的普及,人体行为识别成为当下热门的研究方向。目前国内外对手势识别的研究主要分为基于可穿戴传感器、基于计算机视觉和基于无线信号等3个研究方向[1-3]。

其中,基于可穿戴传感器的研究主要是利用人体可接触的相关传感设备。该研究方法的缺陷是成本较高以及携带不便等问题。刘晓光等[4]提出一种基于阈值和极端随机树融合的实时跌倒检测方法,可解决跌倒检测的实时性与准确性无法兼得的问题。

基于计算机视觉的研究主要是用摄像头采集动作行为的视频或者图像,然后通过数字图像处理技术进行识别。但该研究方法易受光照条件、障碍物的影响,同时会涉及他人隐私。徐访等[5]提出一种具有分级网络结构的动态手势识别方法,可将手势识别任务分步完成。

基于无线信号的研究主要是通过特定的设备来获取包含动作行为信息的波形数据,再提取出其中的特征信息进行识别[6]。这种方法具有成本低、分布广以及扩展性好等优点。刘佳慧等[7]通过LSTM模型实现了对4种不同手势的识别;周启臻等[8]提出将CSI信号重构为连续的图像帧并利用时间域和空间域的双重特征进行分析识别。

综上,针对当前大多数手势识别方法存在精度偏低、适应性差等缺陷,本文提出一种基于Bi-LSTM的CSI手势识别算法BGR(Bi-LSTM gesture recognition)。该算法的主要创新点在于:

(1)特征提取。将原始数据重构为固定长度的信号片段,利用PCA对CSI信号进行降维分析,得到手势动作的主要特征信息。同时通过低通滤波除去由背景噪声和多径效应产生的信息干扰,最后在时域尺度上生成连续手势动作的特征整体。

(2)提出一种基于Bi-LSTM的手势特征融合模型,通过该模型可对手势动作进行复合特征提取,实现对不同种手势的分类识别,克服传统方法单一化提取手势特征信息的缺陷。

1 Wi-Fi信号感知原理

1.1 信道状态信息

信道状态信息(channel state information,CSI)是描述无线信道状态信息的集合,反映了信号在传输过程中产生的时延、衰减以及相位偏移[9,10]。利用正交频分复用技术可将无线信号调制到若干个子载波上进行通信,接收端可从每个数据包中提取出CSI数据,每个CSI数据中包含由当前手势动作引起的幅值以及相位的变化信息。其公式如下

Hk=|Hk|e-j∠Hk

(1)

式中:Hk为第k个子载波的CSI数据, |Hk| 和∠Hk分别为振幅和相位。其中,相较于CSI的相位信息,振幅具有稳定的特点,因此将其作为本方法的主要研究特征。

1.2 信号传播模型

Wi-Fi信号在传输过程中会由于人体的存在和动作行为产生反射、折射、散射以及衍射等现象,这些现象会对信号本身产生不同程度的干扰[11]。基于CSI的手势识别研究思路是通过对Wi-Fi信号的变化进行检测分析其在传播中接触到人体的动作状态,从而完成手势识别。Wi-Fi信号的传播模型如图1所示。

图1 Wi-Fi信号传播模型

信号的动态传播在频域中表示如下

Y(f,t)=H(f,t)×X(f,t)

(2)

式中:X(f,t) 和Y(f,t) 分别为发射和接收信号,H(f,t) 为信道频率响应(channel frequency response,CFR)。

当信号经过不同的路径到达接收端时,CFR可表示为

(3)

式中:e-j2πΔft是由载波频移导致的相位差,ak(f,t) 表示第k条路径上的衰减和初始相位偏移,e-j2πfτk(t)为第k条路径由时延τk(t)产生的相位差。

总体的CSI数据包括动态路径和静态路径两部分的信道频率响应,具体公式表达如下

H(f,t)=e-j2πΔft(Hs(f)+Hd(f,t))

(4)

式中:Hs(f) 为静态CFR,是一个常量。Hd(f,t) 为动态CFR,是由人体动作影响导致的信号频率变化总和。当人体发生具体手势动作时,动态CFR会产生变化,因此总的CSI数据也会相应产生变化[12]。本研究旨在将人体发生手势动作变化时获取到原始的CSI数据进行处理分析,并将连续动作作为输入特征进行算法的训练识别,最终得到不同种类手势的分类结果。

2 BGR算法设计

BGR算法分为预处理阶段和训练识别两部分,预处理阶段首先将原始CSI数据剪裁为统一大小,确保输入模型的数据尺寸相同,并且可去除部分冗余信息;其次,为提取出特征更加明显的手势动作信息,利用PCA对子载波进行数据降维,将选取后的子载波数据作为模型的输入特征;同时,由于信号在传播过程中会受到人体以及传播路径的干扰导致存在高频噪声,因此对CSI数据进行低通滤波将多余的高频噪声去除,避免模型学习到无用的干扰信息,强化模型对有效手势动作部分的学习;最后将预处理后得到的连续手势特征信息放入特征融合模型逐层对其进行前向以及反向的自适应特征提取,并通过反向传播和梯度下降算法对模型参数进行调优。同时,利用Dropout机制对模型进行稀疏化约束,降低过拟合,最终通过softmax激活函数输出多分类手势识别结果。具体算法流程如图2所示。

图2 BGR算法流程

2.1 数据获取

本算法采用Widar3.0[13]采集的CSI公开手势动作数据集,包括推拉、挥手、鼓掌、画圆、画Z、画N等6个手势动作。每个手势动作会在Wi-Fi范围内产生对应的CSI信号数据,其数据格式为1×3×30×N的矩阵,其中1代表发射端天线数量,3代表接收端天线数量,30代表每个CSI数据包中的正交频分复用子载波信息,N代表该手势动作共采集到的CSI数据包的数量。由于子载波中的幅值具有稳定等特点,因此本文提取出子载波中的幅度信息作为手势特征。经过处理后的每个数据包中的CSI数据可以表示如下

(5)

式中:Aij是每个子载波中的幅值,在Aij中,i表示第i根天线,j表示第j个子载波。

为了进一步分析不同子载波之间的关系,以及CSI数据与手势之间的映射关系。本算法对3个不同天线对所收集的子载波进行对比分析。图3为不同天线对所收集到的子载波数据。

图3 不同天线对的子载波对比

从图3中可看出,不同天线对所收集到的CSI数据虽然看似随机,但在时域维度存在一定程度的相似性,因此需要通过相关技术对子载波进行处理,将部分冗余数据去除,仅保留主要代表手势信息的子载波。同时,原始CSI数据中明显包含较多的噪声干扰。因此为了能够准确提取出手势动作的特征信息,首先需要进行预处理。

2.2 数据预处理

由于Wi-Fi信号在传播过程中容易受到环境干扰、多径传播以及信号衰减等多发因素的影响,从而导致接收端采集到的CSI数据包中存在较多的噪声,这会严重影响算法的手势识别精度,因此需要对原始CSI数据进行预处理。

此外,由于不同手势动作持续时长不一,导致获取到的CSI信号样本的尺寸不一致,这与深度学习输入模型要求的固定数据格式矛盾。因此本算法对原有数据进行裁剪,将手势数据统一重构为900×90,其中900为该手势过程采集到的数据包,90为所有接受端所收到的子载波数。

2.2.1 降维分析

鉴于相同手势数据下的不同子载波具有一定的关联性,若直接将完整数据作为特征直接输入则会导致过多的指标选择工作量,因此进行降维分析。BGR算法使用主成分分析(principal component analysis,PCA)对CSI数据进行子载波选取。

PCA是一种数学降维的方法,即在高维空间中找到一个低维的正交坐标系,通过线性投影将高维数据映射低维空间中,从而到找出若干个综合特征来替代原来的冗余特征,使这些综合特征尽可能的表示出原有的信息量。PCA的具体步骤为首先对所有特征进行去中心化,求出其协方差矩阵。其公式如下

(6)

式中:m为元素个数,ai和bi为矩阵中的元素,μ代表均值。最后计算协方差矩阵的特征值以及相对应的特征向量,再将原始特征投影到选取的特征向量上,得到降维后的新特征。其公式如下

(7)

由于较大方差的信道状态信息对手势动作具有更好动态响应,能够更为细粒度的记录手势的变化特征,因此通过PCA对CSI数据进行子载波选取,根据贡献率大小挑选出10个具有较大方差的子载波作为该次手势动作的输入特征,由此消除原始数据之间的相互影响,降低算法运行的时间复杂度。

2.2.2 滤波和归一化

本算法研究的手势动作的主体为手臂,其摆动频率较低。而环境干扰造成的噪声信息基本处于高频部分[14],因此通过滤波去除高频的噪声分量,保留有用的低频特征信息。利用巴特沃斯滤波器进行低通滤波,可将CSI数据中的高频嘈杂点去除,从而避免模型在训练中学习到过多的无关特征。其具体公式如下

(8)

式中:φp为截至频率,n代表滤波器阶数。通过该方法不仅能除去原始数据中的背景噪声,同时也尽可能保留了低频部分的动作信息。此外为了降低数据方差,使损失函数的收敛过程更加平缓,对CSI数据进行归一化操作。图4为CSI数据预处理前后的对比,其中图4(a)为原始CSI手势数据,其中包含冗余的子载波信息以及噪声干扰;图4(b)为预处理后的CSI数据,可看出特征提取较为明显。

图4 CSI数据预处理前后对比

2.3 模型架构

2.3.1 LSTM

长短期记忆(long-short term memory,LSTM)模型是一种改进优化后的循环神经网络模型,可有效解决传统循环神经网络在训练过程中由长期依赖导致的梯度消失等问题[15]。LSTM由若干个记忆单元构成,其中每个记忆单元又由细胞状态、遗忘门、输入门、更新门4部分组成。通过这些“门”的结构可让信息选择性的通过,用以去除或者传递信息到下一个细胞状态。图5表示LSTM单个记忆单元结构。

图5 LSTM单个记忆单元结构

(1)细胞状态(Ct),存储当前时刻的特征信息,在所有链式记忆单元中传递。

(2)遗忘门,用于控制遗忘上一层细胞状态的内容,根据上一时刻的输出ht-1和当前时刻的输入xt, 通过sigmoid函数将其映射为[0,1]之间的向量ft,表示上一层细胞状态的信息的保留程度,0代表全部遗忘,1代表全部保留。主要公式为

ft=σ(Wf·[ht-1,xt]+bf)

(9)

式中:Wf和bf分别是LSTM模型的权值和偏置,均为模型的训练参数;σ是激活函数sigmoid。

(10)

(4)输出门,基于细胞状态保存的信息选择性的输出细胞状态Ct的内容。通过sigmoid函数输出信息被过滤的程度ot, 再利用tanh函数将当前细胞状态中的信息映射在[-1,1]之间,二者相乘后即得到当前时刻的输出ht。 主要公式为

ot=σ(Wo·[ht-1,xt]+bo)
ht=ot⊗tanh(Ct)

(11)

2.3.2 手势特征融合模型

根据手势动作具有一定的前后依赖关系,本文提出一种基于Bi-LSTM的手势特征融合模型,其网络结构如图6所示。该模型的原理是利用正向的手势动作序列数据与生成的反向手势动作序列数据同时进行特征提取,再由两个序列的隐藏层状态相结合输出识别结果。通过该模型可从时域维度将动作发生前、动作发生中以及动作发生后的CSI信息作为一个整体进行特征提取,其目的是避免以往手势识别方法仅依据手势动作的历史信息作为特征进行分析识别的局限性和不足,能够有效利用完整的手势信息,从而实现高精度的分类识别。

图6 手势特征融合模型

研究[16]表明,在数据集相对较小,而模型训练参数过多时会产生过拟合问题,即在训练集上有较高契合度,但其泛化能力较差。针对模型中存在过拟合的问题,本算法采用Dropout机制在模型中随机选取神经元进行失活处理,从而达到稀疏性约束。其具体原理是以[0,1]之间的概率(一般为0.5)对应用该机制的神经元进行随机失活处理,失活后的神经元会在该次迭代中无法更新权重和偏置,由此使得模型无法通过记忆固有特征信息来识别手势动作,从而将模型变得“稀疏化”,解决了模型的过拟合问题。其公式为

(12)

综上所述,手势特征融合模型网络参数见表1。其中,通过Bidirectional(LSTM)层的不断叠加,利用时序权值共享将前向手势动作序列的信息作为先验知识并与反向手势动作序列的特征进行整合,从而实现对手势过程的双向特征提取。同时,结合BatchNormalization层防止梯度消失以及通过Dropout降低过拟合,最后使用softmax作为Dense层的激活函数,将手势识别的多分类结果输出。

表1 手势特征融合模型网络参数

2.4 训练过程

在模型训练上,BGR算法采用均方根梯度下降算法(root mean square prop,RMSprop)作为优化器,初始学习率为0.0005,以及使用交叉熵损失函数(cross entropy error function)来对模型进行参数寻优。同时,通过将训练数据划分为训练集和验证集,训练集用于反向传播以及更新参数,验证集用于判断训练停止时刻,即在近5次迭代训练时若出现验证集误差升高则停止训练,同时返回本次训练参数。

3 实验结果与分析

3.1 混淆矩阵

经过50个epoch的训练,本算法最终在训练集上准确率达到95.6%,测试集上准确率达到91.49%。将该算法在测试集上对6种手势动作生成混淆矩阵,通过混淆矩阵可以看出算法对不同手势的识别准确率以及将本种手势误识别为其它手势的假阳率。图7为BGR算法对6种手势动作识别结果的混淆矩阵。从图中可以看出,推拉、挥手、鼓掌、画圆、画Z、画N的识别准确率分别为92%、88%、95%、91%、93%、90%,平均准确率为91.49%。

图7 不同手势识别结果的混淆矩阵

3.2 不同数据包数对比

CSI手势动作数据格式为A×M×N×30,其中A为本次手势动作所采集到的数据包数,M为发射端天线数,N为接收端天线数,其中每个天线对分别传输30个子载波数据。由于不同手势动作的采集时间不同,因此其中的数据包数也不统一。为了更好让算法对其进行特征提取,需要将所有数据固定为长度一致的信号片段。由于数据包中包含着从手势动作前到手势动作结束的整个过程信息,因此数据包数的选取也会对算法的性能产生一定的影响。综上,本文选取不同的数据包数进行对比测试,其结果见表2。

表2 不同数据包选取对比

由表2可知,随着数据包数的增加,本算法的平均手势识别准确率也在提升。分析认为CSI数据包中含有大量手势相关的子载波信息,正是通过这些信息模型才能提取并学习到手势动作的相关特征,并实现分类指标。较多的数据包能够提供给模型更加完整的手势动作过程,从而使模型能够对手势过程进行特征融合,因此能够提升模型的精度。而较少的数据包由于手势过程中部分行为信息的缺失,导致模型没有学习到相应的手势特征,因此其识别准确率较低。本文将原始数据集中的数据长度进行统计分析,选取了最短手势数据样本中的最大数据包数900作为整体数据长度,目的是让所有数据样本在格式统一的情况下实现最优识别精度。

3.3 不同样本数对比

由于样本数据中包含着完整的手势动作特征,所以不同大小的训练样本会直接对模型的识别准确率产生影响。为了能够验证算法的迭代拟合能力,因此设置不同的训练样本数进行对比测试。选取了3个不同大小的训练集样本,其中训练集1中每个手势动作的样本数为300,训练集2中每个手势动作的样本数为500,训练集3中每个手势动作的样本数为750,即训练集大小分别为1800,3000,4500。图8为对比测试结果,可看出随着手势的样本数增加,本算法的识别准确率升高,当使用全部数据集的4500个样本时,其准确率最高。分析认为随着不断迭代训练,较多手势样本的训练集可以提供更多维度的手势特征信息,以及强化模型在不同环境噪声下的抗干扰能力,因此能够有效提升算法的手势识别准确率。

图8 不同样本数大小的手势识别结果

3.4 不同子载波数对比

为了能更好对CSI波形数据进行特征提取,因此在原始数据包中选取出不同的子载波作为手势动作的输入特征。当选取的子载波数不同时,同一手势动作的特征信息量会相应的产生差异,为研究选取不同子载波数对算法识别准确率的影响,分别对原始数据进行1个、10个、20个子载波的选取并且分析选取不同子载波数下的手势识别准确率。图9为选取不同子载波数的手势识别结果。

图9 不同子载波数的手势识别结果

在图9中,当选取10个子载波作为输入特征时识别准确率最高。分析认为当选取1个子载波作为输入特征时,其提供的有效信息过少导致模型难以学习到完备的手势动作信息,因此识别准确率较低;而当选取10个子载波作为输入特征时,其提供了较为完备的特征信息以及具有较少的噪声干扰,因此其识别准确率最高;当选取20个子载波作为输入特征时,其提供了较多的冗余信息以及含有部分背景噪声,从而对模型的识别造成一定的干扰,因此其识别准确率居中。

3.5 不同方法对比

为从不同角度验证BGR算法在手势识别问题上的有效性和适用性,因此在测试集上与不同文献中的方法展开综合对比,其对比结果见表3。根据表3可看出BGR算法具有最优的平均识别准确率。

表3 不同方法对比

此外,在相同的实验条件下,通过控制不同训练样本数和不同子载波数两个变量对上述方法进行横向对比实验,得到的对比结果如图10所示。其中图10(a)为不同方法在不同训练样本数下的结果对比;图10(b)为不同方法在不同子载波数下的结果对比。

图10 不同方法对比结果

由图10可知,本文提出的BGR算法在不同训练样本数和不同子载波数条件下均取得了更优的识别效果。分析认为传统RNN方法不能将当前时刻的信息作为先验知识传递给下一刻的隐藏单元并决策输出,因此未能完整利用时序信息先后相关的数据特性,导致其识别准确率较低。其次,LSTM、GRU等方法虽然可通过输入门、遗忘门以及输出门保留“过去”时刻的手势动作信息,但是无法利用“未来”时刻的手势动作信息辅助决策当前的识别判定,因此也具有一定的局限性。而本算法通过利用手势动作前后的时序关系,将连续手势动作数据特征在时域尺度上进行整合分析,进而获取到完整的手势动作信息,由此能够更加精确预测出手势类别,所以在识别准确率上优于其它方法,从而达到了最优的手势识别效果。

4 结束语

本文提出一种基于Bi-LSTM的CSI手势识别检测算法BGR(Bi-LSTM gesture recognition),首先将长度不一的原始手势数据剪裁为固定长度的信号片段,再通过PCA提取出CSI信号主成分特征,并且使用巴特沃斯滤波器除去高频背景噪声和多径效应干扰,然后经归一化后得到时域维度上的连续特征信息,最终利用手势特征融合模型进行前向和反向的复合特征提取并更新模型权重,实现了对推拉、挥手、鼓掌、画圆、画Z、画N等6个手势动作的分类识别。与传统手势识别方法相比,本算法从时间维度考虑到前后手势动作的连续性,并且将手势动作过程作为整体特征进行分析,从而提高了手势识别的准确率,同时具有较低的成本。此外,本文探讨了选取不同数据包数对算法识别准确率的影响、不同样本数对算法识别准确率的影响,以及不同子载波数对算法识别准确率的影响。最后与不同文献中的方法进行横向对比,结果表明该算法具有较高手势识别准确率,因此具有较强的适应性。

另外,由于在复杂环境下Wi-Fi信号的传播会受到干扰和影响,其包含的手势特征语义会产生相应的衰减和模糊。因此如何在多人复杂条件下实现高精度的手势识别以及强化对环境干扰的鲁棒性是未来研究工作的主要内容。

猜你喜欢

手势数据包载波
水声单载波扩频均衡技术研究
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
挑战!神秘手势
C#串口高效可靠的接收方案设计
用于SAR与通信一体化系统的滤波器组多载波波形
低载波比下三电平NPC逆变器同步SVPWM算法
中国移动LTE FDD&TDD载波聚合部署建议
胜利的手势
认手势说数字