基于胶囊网络的WiFi手势识别方法

张 梦,管同元,卓豪辉,吴茗蔚

(浙江科技学院 信息与电子工程学院,浙江 杭州 310023)

非接触手势识别具有巨大的应用市场,采用摄像头[1-2]、雷达[3-4]以及传感器[5-6]等方式虽然取得了一定成效,但仍存在光照敏感、设备昂贵以及操作不便等弊端。与之相比,基于WiFi信道状态信息(Channel State Information,CSI)的手势识别具有成本低、扩展性强和不受光照条件影响等优点。近年随着深度学习的发展,许多基于深度学习的WiFi手势识别方法被提出。CrossSense[7]通过漫游网络实现了跨场景的手势识别;
EI[8]使用对抗网络实现了6种动作的识别;
刘佳慧等[9]使用长短期记忆网络(Long-Short Term Memory,LSTM)实现了对4种手势的识别。上述深度学习方法通过直接建立CSI数据与动作间的映射取得了良好成效。但直接建立原始信号与手势映射的模式,限制了对信号动力学的理解。对此,Widar3.0[10]提出身体速度谱(Body-coordinate Velocity Profile,BVP)这一概念并结合CNN-GRU深度学习模型,在手势识别问题上取得了良好成效。王炽等[11]在BVP基础上提出3D-CNN模型实现对6种手势识别。理论上,深度学习模型训练期间用到的标记数据越充分,所得到的模型效果越好。但数据的收集和标注需要耗费极大的人力和物力,由于难以收集到足够多的数据,最终导致训练出来的模型性能不佳。另一方面,手势和不同个体间的差异会直接导致BVP数据在格式上出现差异。虽然可以通过重采样进行标准化处理,但标准化后的BVP特征与CSI不再是直接映射关系,模糊了其对手势的表达。

为解决上述2个问题,本文基于胶囊网络(Capsule Network,CapNet)[12]结构简单、不会因池化丢失信息的优点并结合门循环单元[13](Gated Recurrent Unit,GRU)提出了一种基于CapNet的迁移学习模型GRU-CapNet,将图像识别领域中训练好的模型迁移到WiFi手势识别任务中,以提升手势识别准确率。另外,还提出一种改进的BVP估计算法,通过动态计算CSI手势数据的分割模式,直接得到格式统一的BVP特征数据,避免了重采样导致映射关系不直接的问题。在公开数据集和家用小型轿车场景下分别进行了试验,结果验证了所提方法的有效性。

CSI是估计通信链路的信息,频率为f的子载波的CSI可表示为[14]:

H(f)=‖H(f)‖ej∠H(f),

(1)

式中,H(f)为单个子载波的CSI;
‖H(f)‖和∠H(f)表示CSI的幅度与相位。移动物体会导致信号产生多普勒频移(Doppler Frequency Shift,DFS),同时信号传播过程存在多径效应。多径效应下,频率为f的子载波在t时刻的CSI可通过DFS来描述[15]:

(2)

式中,Hs为不包含DFS的静态分量总和;
Pd表示包含DFS的动态信号集合;
αl表示复杂衰减;
φ(f,t)为相位偏移。通过共轭相乘、减去均值以及功率调整操作,可以得到含有显著DFS的分量[16]。随后,通过短时傅里叶变换即可得到多普勒频移分布(Doppler Frequency Shift Profile,DFSP)。

1.1 BVP估计算法

以人的朝向为x轴正方向,所在位置为原点建立坐标系。BVP通过式(3)计算[10]:

(3)

式中,M为各接收端与发射端建立的链接数;
V为BVP数据;
D(i)和c(i)为不同链接中的DFSP和传播衰减;
EMD(·,·)为2个分布的EMD距离[17];
η为稀疏正则化系数;
‖·‖0用于度量非零量的个数;
A(i)表示第i条链接上速度与多普勒频移的映射矩阵,其满足公式[10]:

(4)

(5)

1.2 基于动态CSI分割模式的BVP估计算法

CSI数据长度会因手势及手势执行对象间的差异而变化,进而导致BVP的序列长度发生变化。为了消除这种差异,Widar3.0中[10]通过重采样来统一BVP序列长度,其流程如图1(a)所示。

(a) 固定分割模式

(b) 动态分割模式图1 不同分割模式BVP计算流程Fig.1 BVP calculation process under different segmentation models

(6)

动态分割模式较固定分割模式相比,其在最初阶段通过标准BVP序列长度计算CSI模式段长度。因此,可直接得到标准格式的BVP数据,进而建立起原始CSI数据与BVP特征之间的直接映射关系。同时,动态分割模式下不再需要进行额外的重采样操作,进而提升了BVP的计算效率。

卷积神经网络(Convolutional Neural Network,CNN)在分类、检测等视觉任务领域取得了很好的效果[18]。CNN可以根据应用场景自动提取图像的适当特征,但其在训练过程中需要大量地标记数据。本文使用迁移学习来解决上述问题,迁移学习就是将源领域的学习模型迁移到目标领域,其不要求源域数据和目标域数据具有相同分布,因此可以将图像识别领域训练好的模型应用到WiFi手势识别任务中。

2.1 胶囊网络及动态路由

与传统的CNN不同,传统CNN在进行池化操作时存在丢失实体在区域内位置信息的缺陷,而胶囊网络通过向量来表示相应的特征,不会丢失实体在区域内的位置信息[12]。其核心部分为基础胶囊(Primary Caps)和数字胶囊(Digit Caps)。

对于一个普通输入,构建一个包含T×D个通道的卷积层,其中T为基础胶囊通道的数量,D为每个胶囊的维度。通过卷积计算,即可得到长和宽为L×W的T×D个输出通道,这样便创建了L×W×T个维度为D的基础胶囊。

数字胶囊由s个胶囊组成,每个胶囊代表一个类别,通过计算每个胶囊的二范数来表示当前类别的概率,二范数最大的胶囊即表示模型的预测类别。基础胶囊通过动态路由算法来确定与数字胶囊的关联,任意数字胶囊的输入通过式(7)计算[12]:

(7)

(8)

经过r次迭代,胶囊之间的路由权重便得以建立。

2.2 GRU-CapNet

BVP特征反映了速度在时间和空间上的变化,包含了速度在时间上的信息。为了防止卷积神经网络丢失时间维度上的信息,本文综合使用了循环神经网络和CNN。通过组合GRU和CapNet,并使用迁移学习迁移在Mnist数据集上预训练的CapNet,提出了一种基于CapNet迁移学习的GRU-CapNet(tf)网络,其结构如图2所示。之所以选择GRU与CapNet有如下考虑:

图2 GRU-CapNet结构Fig.2 GRU-CapNet structure

① GRU与LSTM相比在时序建模方面的性能与LSTM相当,但涉及的参数更少,在数据受限的情况下更容易训练(后续试验部分会进行验证);

② CapNet相较于图像识别领域的其他模型,如:AlexNet[18],VGG-19[19],ResNet[20]等,克服了池化操作带来的信息损失且结构更加简单。而本文的出发点在于通过迁移学习让模型在有限数据集下能够充分训练获得更高的准确率,而迁移学习过程中模型无法进行完全迁移,需要针对具体应用进行微调。也就是说模型中的部分参数需要重新进行训练,那么在这种情况下,CapNet作为一种结构更为简单的模型所涉及到需要重新训练的参数更少,因此更加符合本文需求。

对于输入格式是20×20×20的手势BVP序列,首先使用包含784个单元的GRU提取BVP数据的时序特征。随后将得到的特征向量重塑成28×28的特征映射图并且进行归一化处理,输入到在Mnist数据集上预训练过的胶囊网络迁移结构中。迁移结构包含Conv1卷积层和基础胶囊层,第1层Conv1卷积层是由256个9×9卷积核组成的普通卷积层,卷积核的步长为1并使用ReLU作为激活函数;
第2层基础胶囊层,其中包含了32个8d胶囊,每个胶囊卷积核大小是9×9,步长为2,同样使用ReLU作为激活函数。

紧随迁移结构的是数字胶囊层,数字胶囊层由n个16d的数字胶囊组成,每个数字胶囊的值由基础胶囊层的输出通过动态路由算法计算得到。最后,通过计算数字胶囊层中每个数字胶囊的二范数来表示在不同类别上的概率。由于数字胶囊层胶囊的个数n与手势分类的类别有关,需要针对不同类别修改数字胶囊的个数,因此数字胶囊层无法直接迁移已训练好的权重,需要进行重新训练,即微调(Fine Tuning)。

为验证本文提出方法的有效性,在公开室内数据集和家用小型轿车应用场景下采集到的数据集上分别进行了试验。试验过程中,计算机操作系统为Win10,CPU分别为Intel i7-9700和Intel i5-6500;
GPU为NVIDIA Tesla K80;
有关BVP计算的试验程序均在Matlab R2016b上实现;
有关手势识别模型的训练和测试试验程序在Python 3.7.9上实现,使用到的相关库及版本号为:Numpy 1.19.2,Pandas 1.2.4,TensorFlow 2.1.0。

3.1 公开数据集试验

本节试验所用数据集来自Widar 3.0:DataSet提供的室内CSI手势数据,其包含16志愿者×6手势×5位置×5朝向×5次重复共12 000个CSI手势数据,6种手势分别为推&拉、右扫、拍手、划动、画圆以及画Z。

3.1.1 特征提取算法对比试验

试验分别使用动态CSI分割模式与固定CSI分割模式在公开CSI数据集上计算对应的BVP特征集。为了方便表示,称固定CSI分割模式所得BVP特征集为BVPSet,动态CSI分割模式所得BVP特征集为DBVPSet。为了验证本算法的通用性,分别在GRU[13],LSTM[9]模型以及引言中所提基于BVP提出的CNN-GRU[10],3D-CNN[11]模型和本文所提GRI-CapNet(tf)模型上使用五折交叉验证进行测试。即将BVP数据分为5份,分别取其中一份作为测试集,剩下的作为训练集进行训练,最终计算出这5次结果的平均值作为试验结果。为了保证每份数据不会出现偏斜的情况,采用同分布采样保证每份数据在各个手势类别上的分布一致,最终所得结果如表1所示。

表1 特征集准确率Tab.1 Accuracy of feature set 单位:%

结果表明,不同模型在DBVPSet上所得识别准确率均优于在BVPSet上所得识别准确率,准确率分别提升1.57%~3.34%。因此可以说明基于动态CSI片段分割的BVP估计算法能够有效地提高数据支撑度,增强BVP与CSI间的映射关系。进一步,统计了在DBVPSet上不同模型的识别延迟与内存占用情况,如表2所示。

在计算资源有限的前提下,可用资源与服务的有效派发是一个重要问题.依据分布式计算、并行计算、虚拟化等技术,云计算能够有效地将服务器和计算机资源以统一的资源池形式进行有机融合,根据用户需求动态高效地进行资源分发,提高了资源利用率和降低了使用成本[1].这种基于共享架构的计算模式,需要按照用户的不同需求进行响应并保证服务质量(Quality of Service, QoS),实现灵活的资源分配.因此,合理且高效的云计算资源调度分配模型的设计,对于提高资源利用率和实现良好的用户体验至关重要.

表2 识别延迟和内存占用Tab.2 Identify latency and memory usage

从各模型占用内存与识别延迟可以看到,本文提出的GRU-CapNet模型虽然占用内存最大,但其识别延迟仅为4.78 ms,与其他模型仅存在不超过2.5 ms的差异,因此可认为各模型的识别延迟处于相近水平。结合表1和表2也可以验证,GRU相对于LSTM有接近的性能(DBVPSet上识别准确率仅相差0.42%),同时涉及到的参数更少(占用内存相比LSTM减少2.8 MB)。

为了更全面地比较改进前后特征提取算法的差异,使用2台设备进行对照试验分别统计了不同标准长度下的BVP平均计算延迟和准确率。其中,设备1使用Intel i7-9700处理器,设备2使用Intel i5-6500处理器,其余软硬件配置均相同。计算延迟与识别准确率分别如表3和图3所示。

表3 计算延迟统计Tab.3 Calculating latency statistics

图3 识别准确率Fig.3 Recognition accuracy

显然,在动态CSI分割模式下,不同设备上BVP计算延迟均显著减少,且减少程度随着BVP标准序列长度的增加逐渐加大,最高减少了21.7 s。这是因为随着标准序列长度的增加,重采样计算所需计算的采样点逐渐增多;
而在动态CSI分割模式下不再需要进行重采样操作,所以大幅减少了BVP计算延迟。

各模型识别准确率随标准序列长度的增加出现先增后减的趋势,在取值为20时均达到最大。这是因为序列较短与过长情况下BVP的时间特征过度压缩和过于分散,从而引起特征包含的有效信息不足。所以选定20作为标准序列长度,此时计算延迟在不同设备上分别减少了6.6,12.1 s。

3.1.2 迁移学习对照试验

为了验证迁移学习的效果,本节进行了迁移前后的对照试验,3.1.1节中已验证DBVPSet数据集数据支撑度更高,本节迁移学习相关试验均在DBVPSet上进行,同样地采用五折交叉验证。为方便对比,使用GRU-CapNet(raw)表示未使用迁移学习的GRU-CapNet原始模型,其路由迭代次数均设置为3。训练过程中迁移前后模型GRU-CapNet(raw)与GRU-CapNet(tf)在测试集上准确率(Accuracy)随训练迭代次数的变化情况如图4所示。

图4 准确率变化曲线Fig.4 Accuracy variation curve

由图4可知,在相同情况下,使用迁移学习使得模型在训练过程中的准确率提升速度更快。同时可以发现,在使用迁移学习过后,仅需少量训练迭代模型识别准确率即可超过90%,最终准确率相比未使用迁移学习的模型提升了大约8%。训练过程中GRU-CapNet(raw)与GRU-CapNet(tf)的损失(Loss)随训练迭代次数的变化趋势如图5所示。

图5 损失变化曲线Fig.5 Loss variation curve

损失随着训练迭代次数的增加呈现下降的趋势,最终趋于稳定。其中,GRU-CapNet(raw)的损失稳定在0.1左右,GRU-CapNet(tf)的损失稳定在0.04左右。相较于未使用迁移学习的原始模型而言,使用迁移学习后模型的整体损失更低,同时初始损失处于较低区间内。最终GRU-CapNet(raw)与GRU-CapNet(tf)模型五折交叉验证的平均结果如表4所示。

表4 五折交叉验证平均结果Tab.4 5-fold cross-validation average results

图6 GRU-CapNet(raw)混淆矩阵Fig.6 Confusion matrix of GRU-CapNet (raw)

图7 GRU-CapNet(tf)混淆矩阵Fig.7 Confusion matrix of GRU-CapNet (tf)

3.2 车辆应用场景试验

本节在家用小型轿车场景下应用本文所提有关方法针对驾驶员手势识别进行了相关试验。

3.2.1 数据采集

试验环境为家用小轿车,车辆型号为雪佛兰科鲁兹。采用一台路由器作为发送设备,3台安装有Intel 5300网卡的笔记本电脑作为接收设备。发包频率为1 000 Hz,发送设备与接收设备以及被测对象的布局如图8所示。

图8 试验环境Fig.8 Test environment

测试手势分别为挥手、画圆、画Z和推&拉4种,图9为不同手势动作的示意图。共有14位志愿者参与了数据采集,每人每种手势采集了20个数据样本,最终获取共计1 120个手势CSI数据。

(a) 挥手

(b) 画圆

(c) 画Z

(d) 推&拉图9 手势示意Fig.9 Hand gestures

3.2.2 结果与分析

使用动态CSI分割模式的BVP估计算法对采集到的驾驶员手势数据进行处理,然后通过GRU-CapNet(tf)模型进行识别分类。试验过程中使用五折交叉验证,同时与3.1.1节中使用到的其他模型进行对比试验,其结果如表5所示。

表5 各模型识别准确率Tab.5 Recognition accuracy of different models 单位:%

在车辆应用场景下,GRU-CapNet(tf)的驾驶员手势识别准确率达到了97.95%,较其他模型提升6.63%~8.04%。GRU-CapNet(tf)对4种手势的分类混淆矩阵如图10所示。其中,推&拉动作的识别准确率最高,达到98.93%,挥手的识别准确率为98.57%,画Z的识别准确率为97.5%,画圆的识别准确率最低为96.79%。

图10 混淆矩阵Fig.10 Confusion matrix

从结果可知,本文所提方法在有限数据集上得到的性能远高于其他方法。这是因为迁移的预训练模型在源领域已经充分训练,相较于从0开始训练其初始状态已处于较高水平,因此所得结果远高于其他方法。

本文提出了一种基于胶囊网络迁移学习的WiFi手势识别方法GRU-CapNet。同时在已有BVP估计算法的基础上提出了一种基于动态CSI分割模式的BVP估计算法。通过试验证明,基于迁移学习的GRU-CapNet模型在数据集受限条件下性能显著高于其他模型,在驾驶员手势识别应用场景下对手势的识别准确率达到97.95%,为手势识别方法提供了新的思路;
改进的BVP估计算法能够明显提升数据支撑度且显著减少计算延迟。在接下来的工作中,将针对BVP计算过程中延迟较高的问题进行进一步研究,以提升整体识别过程的实时性。

猜你喜欢 手势胶囊准确率 时光胶囊现代装饰(2021年2期)2021-07-21乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析健康之家(2021年19期)2021-05-23不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨医学食疗与健康(2021年27期)2021-05-132015—2017 年宁夏各天气预报参考产品质量检验分析农业科技与信息(2021年2期)2021-03-27颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察健康体检与管理(2021年10期)2021-01-03时光胶囊小学生优秀作文(低年级)(2020年4期)2020-07-24挑战!神秘手势红领巾·萌芽(2019年9期)2019-10-09胜利的手势小学阅读指南·低年级版(2017年6期)2017-06-12聚焦“毒胶囊”中国科技术语(2012年3期)2012-03-20认手势说数字数学大世界·小学低年级辅导版(2010年9期)2010-09-08

推荐访问:手势 胶囊 识别