APP下载

基于CSI的手势识别方法研究

2022-01-28熊小樵冯秀芳

计算机应用与软件 2022年1期
关键词:准确度载波手势

熊小樵 冯秀芳 丁 一

1(太原理工大学信息与计算机学院 山西 晋中 030600) 2(太原理工大学软件学院 山西 晋中 030600)

0 引 言

随着人机交互技术的发展,手势识别作为智能家居、手语翻译、虚拟现实等重要物联网应用的基础技术,在日常生活中得到广泛的应用。

目前,人们普遍运用基于视觉和穿戴式设备两种手势识别技术。但是,基于视觉的手势识别技术存在易受光照条件的影响、设备成本高、无法保障个人隐私等问题,而基于穿戴式设备的手势识别技术则需要用户佩戴专用设备,不仅限制了用户的自由,而且难以实现以人为中心的人机交互。因此,研究一种无须用户携带任何设备、不受光线强弱影响、部署代价低的手势识别技术,具有很高的现实价值与应用意义。

利用来自Wi-Fi设备的信道状态信息进行手势识别,具有无须携带设备、保障个人隐私、可在夜间工作和成本低等优点,为消除传统手势识别技术运用中存在的各种限制提供了新的解决思路和技术方法。

在多次进行的实验中发现,当用户位于Wi-Fi设备信号区域内时,他的每一个手势动作都会迅速影响Wi-Fi信号的传播路径,进而通过分析接收端收集到Wi-Fi信号中的细粒度CSI信号特征,可以立刻识别出用户不同的手势动作。然而,由于无线信号传播具有高动态性,且在传播过程中稳定性较弱,又因室内环境存在显著的多径效应等,也容易限制手势识别的准确度[1]。

为解决运用Wi-Fi设备进行手势识别时存在的问题,本文提出基于CSI的手势识别方法HandFi,其核心技术是引入衡量室内环境变化的指标PEM(Percentage of non-zero Element),将PEM作为相对于基准环境的扰动因子,根据环境的变化调整手势数据的特征值矩阵,减少了实验环境对手势识别的限制,并设计更具操作性的CNN-GRU模型,同时依托该模型获得更高的手势识别准确度。

1 相关工作

在早期基于Wi-Fi设备的手势识别领域,Abdelnasser等[2]提出了WiGest系统,通过分析RSS信号变化的特征识别7种手势来控制媒体播放器,在单个接入点的情况下准确率为87.5%;Li等[3]提出WiFinger系统,利用动态时间规整计算不同手指特征的距离作为kNN分类器的输入,对9种美国符号语言进行识别,实现了手指级别的手势识别,准确度达到了90.4%;Tan等[4]提出WiFinger,采用主成分分析和多维动态时间规整对手势进行识别,对环境变化和个体多样性都具有鲁棒性,且达到93%以上的识别准确率。

在跨领域手势识别研究工作中,研究人员做了大量研究,Venkatnarayan等[5]提出WIMU系统,通过分段DFS功率配置文件以进行多人活动识别;Virmani等[6]提出WiAG从不同领域导出CSI之间的转换函数,并生成虚拟训练数据;Zhang等[7]提出CrossSense采用转移学习的思想,设计出域间信号特征转换的模型;Zheng等[8]提出Widar3.0在较低的信号水平上推导和估计手势的速度剖面,只需要训练一次分类器,实现不同领域手势的识别。

在手写识别领域,Fu等[9]提出Wri-Fi无设备手写识别系统,将26个大写字母的书写模式引起的CSI波形作为特征空间,使用隐马尔可夫模型建模和分类,在两个写作区域得到平均准确度分别为86.75%和88.74%;Cao等[10]提出Wi-Wri系统,能以高精度检测和识别书面信件,手写字母大小在5 cm左右,且达到98.1%以上的文字运动检测准确率和82.7%以上的文字识别准确率;Sun等[11]提出的WiDraw系统,实现了空中手写识别,允许用户绘制字母、单词和句子,达到了91%的单词识别精度。

2 基本理论概述

2.1 CSI概述

802.11 a/g/n网络使用正交频分复用技术将信号调制成多个子载波同时传输,信号在传播过程中受到不同程度的衰减和散射,而从接收端物理层获得的CSI中可以分析出接收端与发射端之间的信道质量,反映出信号在传播过程中的衰减因子。因此,使用CSI可识别出用户的手势动作[12]。

在正交频分复用系统中,经过多径信道之后的接收信号可以用式(1)表示。

Y=HX+N

(1)

式中:X和Y分别为发射信号向量和接收信号向量;H是信道增益矩阵;N是高斯白噪声。

根据式(1),H可表示为:

(2)

H=[H1,H2,…,Hk,…,HN]

(3)

式中:Hk是第k个子载波的CSI。由于Intel 5300网卡可以获得30个正交频分复用子载波上的信道频率采样,故N的取值为30。每组CSI代表一个正交频分复用子载波的振幅和相位:

(4)

通过式(1)-式(4),得到CSI的信道矩阵,而信道矩阵描述了信号在每条传输路径上的衰减因子,其每个元素的值都包含着信号散射、环境衰弱和距离衰减等信息[13]。因此,在接下来的实验中,使用收集到的CSI数据中每个子载波的振幅和相位属性来分析子载波在一段时间内的变化规律[14]。

2.2 PEM扰动因子

为了衡量CSI在室内不同环境的变化程度,本文引入了相对于理想环境下的扰动因子PEM[15]。该算法实现步骤分为三步,第一步是将CSI振幅转换为二维矩阵,其公式为:

(5)

式中:Cd是处理之后的CSI幅度值矩阵(30×P),即30行P列的矩阵,其中每个元素都是振幅,P是实验中收集数据包的总数;Cl和Cu分别是CSI测量的Cd的最小值和最大值;Mc是新建矩阵的行,长度与实验中收集数据包的总数相同。具体方法是将Mc×P矩阵M0中的元素初始化为0,由式(5)将M0中第k行第j列元素设为1。

第二步是求扩展矩阵。选择合适的扩展系数D,将1周围D距离内的所有行列设置为1,扩展之后,CSI的矩阵M0被转化为扩展后的矩阵M。

第三步是计算每个子载波的扩展矩阵中非零元素百分比P[i],即第i个子载波的PEM。采样时重叠区域越多,在扩展矩阵中非零元素百分比越低。因此,P[i]能够揭示CSI子载波的变化情况,在某种意义上可以表示室内移动人群的数量,反映室内的多径情况。

这样,通过上述三个步骤,就可获得30个子载波的PEM矩阵,如式(6)所示。

P=[PEM1,PEM2,…,PEMk,…,PEM30]

(6)

在之后的实验中加入PEM扰动因子,通过分析待测试数据的PEM特征,确定当前室内环境的多径情况,调整在当前环境下待测试数据的特征值矩阵,然后再使用训练好的模型进行识别测试。

3 HandFi方法的设计与实现

本文提出的基于CSI的手势识别方法HandFi,分为四个部分:数据采集、信号预处理、识别算法设计和输出。图1为HandFi手势识别方法流程。

图1 HandFi手势识别方法流程

3.1 数据采集

在实验中使用装有Intel 5300网卡的笔记本电脑作为接收端,PHICOMM K2路由器作为发射端发射信号,频率为5.2 GHz。通过Halperin等设计的CSI Tool来解析CSI数据,使用MATLAB 2016a处理数据。接收端和发射端之间的距离为1.5 m,距离地面高度为1.1 m,志愿者坐在接收端和发射端旁边的椅子上在空中手写阿拉伯数字,手势区域大小设置为25 cm×25 cm,在进行手势动作时保持身体其他部位静止,只用手和手臂来书写。

实验场景为安静的办公室和环境嘈杂的实验室,办公室面积为46.08 m2,只配有1套桌椅和1个书柜,环境空旷;实验室面积为98.27 m2,其中包含16位实验室成员、16套办公桌椅、1个书柜、电脑等实验设备若干,环境相对嘈杂,多径效应显著,与办公室环境有明显的区别。

实验数据限定于在空中手写10个阿拉伯数字这10种手势。考虑到用户多样性和实验环境对实验的影响,邀请10位志愿者(7位男生和3位女生)参加数据收集工作,志愿者的年龄从22岁到26岁不等,身高从155 cm到185 cm不等。之后在办公室和实验室环境中均收集250组数据,每组数据包含空中手写0~9这10个手势各1次,得到5 000个样本。

3.2 信号预处理

1)天线对选取。CSI的频率具有多样性,其包含的子载波对于环境变化的敏感度不同。通过分析数据发现,具有较高振幅的子载波具有较大的静态响应,而具有较大方差的子载波具有较大的动态响应,该子载波对环境变化更敏感。所以,选择具有较大方差的天线对能提取更多手势信息,之后数据维度由1×3×30变为1×1×30。

2)巴特沃斯滤波。原始CSI时间序列流具有噪声,且包含许多的异常值,将数据通过巴特沃斯低通滤波器(Butterworth Low-Pass Filter,BLPF)可移除数据中的高频噪声。通过设置滤波器的下限和上限截止频率,更好地滤除数据中的噪声。多普勒频率公式如下:

(7)

式中:υm是手势动作的速度;λ是电磁波的波长;f是多普勒频率。对于工作在5.2 GHz频段的路由器,手和手指运动的下限截止频率与上限截止频率分别为0.2 Hz和6 Hz。图2分别为实验中三次手势动作的原始CSI波形以及使用中值滤波、移动平均滤波和BLPF滤波后的波形,通过对比可见经BLPF处理之后,波形更加平滑,去噪效果更好。

(a)原始信号图

3)主成分分析。由于传统的低通滤波器不能很好地去除CSI时间序列中的突发和脉冲噪声,对BLPF滤波之后的CSI数据进行主成分分析(Principal Component Analysis,PCA)可消除突发和脉冲噪声。图3为经PCA处理后的CSI波形,可见滤波效果更加明显。

图3 主成分分析后的波形图

4)时频分析。由于小波变换在时间分辨率和频率分辨率上具有更高的均衡性,所以在特征提取阶段,使用小波变换从时域和频域两个方面来分析不同手势动作的特征。实验中使用haar小波函数对滤波后的CSI数据进行7层小波分解,使用小波软阈值过滤掉仍存在于低频段数据中的噪声,之后进行每一层的特征提取。

本文获得了无人、用户静坐、手势动作和走动四种场景的快速傅里叶变换轮廓,验证不同的运动具有的差异性,从而判断收集到的数据是否包含手势信息。图4是不同场景的快速傅里叶变换频率分布图,可见在无人和用户行走的场景中,运动能量强度差异明显,但用户静坐和手势动作两种场景中运动能量强度差异较小。

(a)无人场景

5)数据分割。通过小波变换能观察到在用户进行手势动作时,时频图中有明显的波形变化,但从图4中发现,用户在无手势动作和有手势动作这两种场景中,运动能量强度差异相对较小。对于这种情况,本文引入能量指示器来检测手势动作,能量指示器计算公式如下:

(8)

式中:E是各个场景的能量;n是时间窗长度;C是时间窗长度内的归一化快速傅里叶变换系数。

图5为三位志愿者在上述四种场景中的能量统计。实验中三位志愿者在安静的办公室环境内依次完成静坐、手势动作和走动三种运动,每种运动持续4 s。

图5 三位志愿者在四种场景中的能量

为了找到手势动作的起点和终点,实验中持续监控两个连续窗口的运动能量差异,与预先设置的阈值相比较,找到手势动作的起点和终点,通过对数据进行分割,提取手势动作的有效数据。

为减少室内多径效应对手势识别准确度的影响,使用PEM扰动因子调整CSI数据的特征值矩阵。图6是室内人数与PEM值的关系,将扩展系数D设置为15时,随着室内人数的增多,PEM值呈增长趋势。因此,根据室内人数使用PEM值调整CSI数据的特征值矩阵,减少实验环境对识别准确度的影响。

图6 室内人数与PEM值的关系

3.3 HandFi识别算法设计

本文设计深层神经网络模型来挖掘手势动作的时空特征,将预处理后的数据作为输入,分类结果作为输出,由用于空间特征提取的卷积神经网络(Convolutional Neural Network,CNN)和用于时间建模的递归神经网络(Recurrent Neural Network,RNN)组成。图7所示为HandFi手势识别模型的流程,它包括输入层、CNN层、GRU层和输出层。

图7 手势识别模型的流程

CNN是提取空间特征和压缩数据的有效技术,本文先使用CNN处理输入数据,卷积层卷积核大小为3×3,池化层用max-pooling对特征进行下采样,输出为两层以ReLU为激活函数的全连接层,且在两层全连接层之间添加Dropout层减少过拟合,最后一层全连接层的输出序列作为后续时间模型的输入。

CSI序列不仅包含手势的空间特征,还包含手势动作的时间特征。RNN能模拟复杂的时序动态,而长短期记忆(Long Short-Term Memory,LSTM)和门控递归单元(Gated Recurrent Unit,GRU)比原始RNN具有更强的学习长期依赖性的能力,GRU在序列建模方面取得了与LSTM相当的性能,但涉及的参数较少,更容易用较少的数据进行训练,所以本文选择GRU进行时序建模。GRU层将CNN层的输出序列作为输入,GRU的输出结果在到达全连接层之前经过一个用于正则化的Dropout层,之后使用具有交叉熵损失的Softmax分类器进行分类预测。模型中选取4 000个样本作为训练集,1 000个样本作为测试集。

4 实验结果与分析

4.1 子载波数量的影响

将30个子载波按方差大小排序,分别选取10、20和30个子载波做对比实验。图8是两种实验环境中不同子载波数量对应手势识别的准确度。在两种实验环境中,当子载波数量为30个时,识别准确度明显高于其他两种情况。所以,在实验中设置子载波的数量为30个。

图8 子载波数量的影响

4.2 手势区域大小的影响

实验设置两种尺寸的手势区域:25 cm×25 cm和50 cm×50 cm,在办公室环境中,志愿者在这两种不同的区域手写阿拉伯数字,手势幅度有明显的不同,为两个区域训练独立的CNN-GRU模型,对比手势区域大小对识别准确度的影响。

图9所示是手势区域大小对手势识别准确度的影响,在手势区域扩展之后,手势识别的平均准确度由94.24%提高到95.17%,表明手势区域的扩展对于手势识别准确度提高并不明显,结合实际情况,本文在实验过程中设置手势区域大小为25 cm×25 cm。

图9 手势区域大小的影响

4.3 发射速率的影响

不同的发射速率对手势识别准确度影响很大。实验中验证了发射端每秒发送200、400、600、800、1 000个数据包时算法识别准确度。从图10可以看出,发射速率与识别准确度总体呈正相关性,每秒发送1 000个数据包时准确度最高。但更高的发射速率需要更好的硬件设施来支撑,所以将发射速率设置为每秒发送1 000个数据包。

图10 发射速率的影响

4.4 系统整体性能

将HandFi所达到的识别准确度和当前流行的手势识别方法进行对比,从而分析HandFi的识别性能。图11是两种实验环境中10个手势动作识别准确度的混淆矩阵,其中:X轴是预测分类手势;Y轴是志愿者实际的手势动作;对角线为每一种手势的识别准确度。

(a)办公室环境

图11(a)是办公室环境中手势识别准确度,图11(b)是实验室环境中手势识别准确度,且HandFi在办公室场景平均识别准确度为95.29%,在实验室场景平均识别准确度为93.19%。但可以看出,HandFi对于相似手势的识别仍存在很大的不足,如在区分相似手势0和6的过程中存在不可忽视的错误。

图12是HandFi所用CNN-GRU深度学习模型与现有的7种比较典型的方法识别准确度的对比,可见在两种实验环境中CNN-GRU模型的识别准确度比其他识别方法的准确度更高,HandFi所用CNN-GRU模型相对于CNN-LSTM模型准确度提高较少,但CNN-GRU模型算法复杂度更低,用较少的数据进行训练可达到更理想的识别准确度。

图12 识别算法在不同环境的识别准确度对比

5 结 语

本文提出的基于CSI的手势识别方法HandFi,以10个阿拉伯数字的独特书写模式引起的CSI波形变换为基础,通过BLPF滤波和PCA提取不同数字手势动作的特征,引入表示实验场景环境变化的指标PEM,根据室内多径情况调整手势数据特征,减少环境对手势识别的限制,然后设计CNN-GRU模型挖掘CSI序列的时空特征,实现动态手势识别。大量的实验结果表明,在安静的办公室和环境嘈杂的实验室环境中识别准确度分别达到了95.29%和93.19%。但为了有效减少相似手势的识别误差,在之后的研究中将考虑使用多个发射器进行手势识别。同时,为使HandFi能更快地应用于现实生活,仍需进一步解决实时性问题。

猜你喜欢

准确度载波手势
影响重力式自动装料衡器准确度的因素分析
挑战!神秘手势
低载波比下三电平NPC逆变器同步SVPWM算法
中国移动LTE FDD&TDD载波聚合部署建议
胜利的手势
论提高装备故障预测准确度的方法途径
Word中“邮件合并”功能及应用
为什么更快解读LTE—ACat.9三载波聚合
对GB 17167实施过程中衡器准确度要求问题的探讨
认手势说数字