柳 村,冯秀芳
(太原理工大学 软件学院,山西 晋中 030600)
手势识别作为人机交互的重要组成部分,具备广泛的应用前景。目前常见的手势识别研究主要分为计算机视觉、无线信号和穿戴设备传感器3种方向。
基于计算机视觉的研究主要依托于高清摄像头采集到的视频或者图片,利用图像处理技术对手势信息进行特征提取,达到手势识别的目的。文献[1-3]主要使用高清图像和深度学习结合的方式达到准确判断人体行为的目的。但该研究方法受限于摄像头的性能,并且易受光照和遮挡物等外在条件的干扰。
基于穿戴设备传感器的研究主要依托于专用传感器道具,并根据不同行为产生的传感器变化信息实现手势识别。文献[4,5]分别通过两种不同的传感器和特征算法实现穿戴者的行为检测。但该研究方法需要专用道具的支持,存在安装困难、成本较高等问题,无法在日常生活中实现大规模的使用。
基于无线信号的研究主要依托于日常生活中常见的Wi-Fi信号,从网络设备中获取到包含人体行为的信号信息,利用信号波动特征进行识别,具有覆盖范围广、实现成本低的优势。文献[6]使用子载波融合和不良数据链路剔除等方法实现了人体动态活动的识别;文献[7]通过获取动态信道状态信息(channel state information,CSI)分量,提高了识别的准确率;文献[8]通过提取CSI中的幅度和相位信息,采用改进后的支持向量机对人体动作进行分类识别。
针对当前研究存在的缺陷,本文提出一种基于无线信号和改进TCN的手势识别方法GRT,结合Widar-3.0[9,10]中的CSI原始数据实现10种手写阿拉伯数字手势的分类识别,并取得了较为突出的效果。
信道状态信息是一种协议的数据格式,用以表示基于正交频分复用技术的无线网卡从物理层系统频带内子载波粒度的信道频率响应(channel frequency response,CFR)采样,是一条通信链路上的信道属性,反映出信号在传输路径上的信号延迟、衰减和相移,包含子载波的幅度和相位信息,如式(1)所示
Hk=|Hk|e-j∠Hk
(1)
式中:Hk表示第k个子载波的CSI数据, |Hk| 为第k个子载波的幅值数据,∠Hk为第k个子载波的相位数据[11]。本文主要研究依托于子载波的幅值信息。
人体的行为活动会对信号状态产生较大影响。在室内环境中,通信链路的射频信号会遭受各种物理因素的干扰,出现反射、衍射以及散射等现象。如图1所示,当信号传播碰到人体时,会改变信号的传播方向,通过接收和分析此时信号传播的不同状态,可以实现人体不同行为的分类及判别。
设X(f,t) 和Y(f,t) 为发送信号和接收信号在时刻t时频率为f的子载波频域信息表示,其中H(f,t) 为此时的CFR[12],则这两个信号的关系可以由式(2)表示为
图1 Wi-Fi信号动态传播
Y(f,t)=H(f,t)×X(f,t)
(2)
CSI是由各个天线对不同频率子载波对应的CFR组成,包括静态路径和动态路径的频率状态响应。故当人体在Wi-Fi信号区域内活动时,整体CSI就会发生变化,产生的变化信息即为无线信号中的手势特征。
由于CSI数据具有较好的稳定性和鲁棒性,GRT方法使用Wi-Fi信号的CSI数据对人体不同的手势进行识别,且幅值数据相对于相位数据具备更好的特征性,故本文使用CSI数据当中的幅值信息作为GRT的研究数据。
整体流程如图2所示,核心部分包括数据预处理和特征提取两个模块。
图2 GRT方法流程
数据预处理阶段,对于原始CSI数据当中的大量噪声和干扰信息,使用巴特沃斯低通滤波和离散小波变换对数据进行滤波和去噪处理,并在此基础上进行数据归一化,之后将其整理成分别代表不同发射天线上的子载波集合。特征提取阶段,将经过预处理的CSI分组数据以多输入的网络结构结合搭建好的改进TCN进行训练,生成有效模型,并统计训练过程的损失值和不同手势的识别准确率。
本文所使用的CSI数据来源于Widar-3.0公开数据集。其中包含了人体在完成0~9这10个手写阿拉伯数字手势下产生的CSI原始数据。每个手势数据文件经过处理之后可以得到一个复数矩阵N×30×3×1,即CSI的幅值信息,其中N代表该手势动作下产生的CSI数据包的数量,30代表子载波的数量,3代表发射天线的数量,1代表接收天线的数量。每个CSI数据包均可用矩阵表示,如式(3)所示
(3)
式中:s1n、s2n、s3n分别表示CSI数据3条CSI流的第n个振幅数据[8]。人体行为所引起的信号变化特征主要存在于每一条CSI信号流当中,需要对原始的CSI数据进行预处理,更好地凸显其中的特征。
由于Wi-Fi信号易受环境干扰,会使得产生的CSI数据出现噪声过大、信号杂乱等问题,从而影响之后的分类工作。为了便于进行特征提取,需要对CSI原始数据进行预处理。
GRT使用低通滤波、数据去噪以及归一化的方法对数据进行预处理。
2.2.1 低通滤波处理
在本文所研究的数字手势识别当中,人体的主要运动部位是手指和手臂,故引起的振动频率主要分布在低频部分,而产生的噪声信息主要分布于高频部分。鉴于该特点,使用巴特沃斯滤波器进行低通滤波,可以最大程度保证通频带内频率响应平缓。其具体表示如式(4)所示
(4)
式中: |H(ω)| 表示振幅,ω表示信号的频率,n表示滤波阶数,ωc表示截止频率。该方法在起到消除噪声干扰的同时,最大程度保证了低频部分特征的完整性,从而提升之后特征提取的效果。
但由于巴特沃斯滤波器在阻带中增益下降的速度较慢,噪声消除能力有限,导致经过处理了的信号数据仍存在部分高频噪声,不能直接用于模型训练。
2.2.2 数据去噪处理
鉴于小波变换在时频局部化提取特征的显著性,GRT方法使用离散小波变换对滤波后数据进行去噪处理。通过变换使得基本小波的尺度和平移进行离散化,并将信号分成近似系数和细节系数。其中近似系数描述信号的低尺度,即低频信息;细节系数描述信号的高尺度,即高频信息。小波变换的目的是突出信号在某一方面的特征,主要的公式如式(5)所示
(5)
式中:a为小波的尺度,τ为小波的平移量,μ为固定参数。而离散小波变换主要是对数据进行拆分重构处理,使得信息当中某个频段的特征凸显出来。
由于本文所研究的数据特征主要位于低频部分,因此GRT方法通过离散小波变换对数据的高频部分进行信号重构,将动态阈值用于细节系数,达到进一步去除噪声的目的。
图3为原始CSI幅值数据和两次去噪处理及数据归一化后的CSI幅值数据的对比图。数据归一化的目的主要是使得数据转变为标准化的格式,方便之后网络的特征提取。
图3 CSI数据预处理前后对比
经过对比可以证实巴特沃斯滤波器和离散小波变换方法的有效性,保证信号数据变化趋势完整的前提下,实现了噪声的去除。
经过上述数据预处理得到的信号信息为一维数据,并且具有较强的时序性。GRT方法提出一种改进的时间卷积网络(temporal convolutional networks,TCN)对信号序列数据进行特征提取。
由于原始TCN存在参数量随着网络深度增大而大幅增加的问题,在这种情况下易导致过拟合现象的发生。为了避免这种情况的发生,更好地实现特征复用和特征的深度提取,GRT在TCN的基础上进行改进和优化。
2.3.1 TCN结构的改进
针对参数量增大问题,GRT方法在TCN当中引入密集连接结构进行网络优化。密集连接是一种实现特征复用的跨层连接方式。其网络结构的输出可用式(6)表示
Xl=Hl([X0,X1,…,Xl-1])
(6)
式中:l表示对应网络的层,X0,X1,…,Xl-1表示对应层的输出,Hl表示非线性变换过程,该过程是一个组合操作,其中可能包括卷积、批归一化、池化等过程。通过密集连接得到的网络每一层输出都是之前所有层特征拼接并进行非线性变换的结果,使得尽可能保留了之前层的特征信息,实现了特征复用,同时在一定程度上可以规避TCN网络对于小数据集下参数过多引起的过拟合现象。
改进后的TCN网络如图4所示,将TCN网络当中的每个时间模块利用密集连接的方式进行改进,在减少卷积通道数量的同时降低特征维度,达到利用较小参数实现深度特征提取的目的,也在最大程度上避免了过拟合情况的产生[13]。
图4 改进后的TCN结构
如表1所示,由于更改了网络结构,可训练参数量发生了下降,使得网络训练速度加快,资源消耗减少,更适应于对时延性能有要求的手势识别。
表1 不同网络类别的参数量
2.3.2 时间模块的改进
如图5所示,原始TCN当中的时间模块结构使用了ResNet[14]当中的残差块,同时利用因果卷积和扩张卷积结合搭建新的模型块,形成时间模块。之后使用权重归一化和Dropout层来堆叠网络规避过拟合现象。这样的结构不仅使得残差结果对数据的波动更加敏感,而且良好地解决了网络退化的问题。
图5 ResNet中的残差块
但由于外部结构使用了密集连接跨层结构,时间模块内部的残差连接可以去除,在减少参数量的同时保证了特征提取效果。同时为了降低模块的特征维度,在结构中额外加入一层一维卷积进行处理,可以更有效地捕获特征信息,如图6所示。
图6 改进后的时间模块结构
同时为了更好地保留历史信息部分,时间模块当中继续沿用了原始TCN当中的因果卷积和空洞卷积设计内容,对于具备时间特征的数据或序列有良好的建模能力。
相比于通过门控单元存储信息的长短时记忆网络(long short-term memory,LSTM),放弃使用门控单元,而是通过因果卷积增加网络层数的方式来获取历史信息并通过当前已知的条件去预测结果,其具体表示如式(7)所示
(7)
式中:x1,x2,…,xt-1代表已知的历史信息,需要对当前时刻t下的结果进行预测,得到预测结果p(x)。
为了代替门控单元实现对历史信息的存储,需要增大网络层数堆叠信息或者选取较大的卷积核增加感受野,这样不仅使得网络的运算量突增,而且会导致梯度消失等问题,对网络的训练效果产生影响。扩张卷积的引入可以在避免以上问题的同时扩大卷积的感受野,使其获取到更多历史信息,提升预测的准确率。感受野RF可以用式(8)表示
RF=(K-1)×d+1
(8)
式中:K为滤波器大小,d为膨胀因子系数,扩大感受野需要改变这两个参数的大小。在扩张卷积操作中,膨胀因子d会随着网络深度的增加以指数方式增长,引入扩张卷积网络能用较少的层数获得更大的感受野。
并且根据CSI幅值数据特性,将空洞卷积的扩张率进行了改进,由之前随着时间模块的递进式扩张方式进一步调整为更适合GRT方法的扩张率增长方式。使得在有限网络层数内获取到更多的历史信息,在一定程度上提升了对当前时刻结果的预测的准确度,也避免了无用的层数堆叠。
2.3.3 整体网络结构的改进
由于上述提出的改进方法增大了网络深度,在此情况下为了增强网络的鲁棒性和泛化能力,需要使用较多的数据进行训练。本文所使用CSI幅值拥有3组相关信号数据,为了更好地实现手势信号的深度特征提取且避免过拟合发生,GRT方法引入多输入网络结构进行训练。
如图7所示,首先将3组天线对的CSI幅值数据分别通过改进后的TCN进行训练后进行特征融合,对融合后的特征进行了展平(Flatten)处理,同时加入了Dropout层来抑制整体模型过拟合现象的发生,最后利用全连接层和Softmax多分类进行数据类别的预测。
图7 结合多输入的网络结构
2.3.4 损失函数的设置
本文使用的手势信号标签为阿拉伯数字0~9,分别对应10种不同的手势,属于多分类训练任务。为了提升训练效果,对数据集标签使用独热编码处理。由于改进TCN属于多输入单输出型网络,训练过程中在进行Softmax回归处理之后需要使用交叉熵损失函数进行交叉熵计算以保持良好的分类精度
(9)
式(9)为交叉熵的计算,其中lable(i)为独热编码后的标签变量,C为分类数,n为训练样本数,predict(i)为对应的预测结果向量。利用交叉熵损失函数的计算来判定实际的输出与期望的输出的接近程度,同时结合梯度下降来不断进行权重的更新,以此增强模型的准确率。
本文所采用数据集选取自Widar3.0,其中包含3类室内场景下10个手写数字手势的信号数据,分别为阿拉伯数字0~9,总计2000个CSI信息包。该数据集由配置Intel5300网卡的商用Wi-Fi设备以30 Hz的采样率持续接收CSI数据分组,发射端的天线数量为3根,接收端的天线数量为1根,在真实场景下进行采集,因此包含场景噪声等诸多干扰因素,有助于验证GRT方法的鲁棒性。
实验数据选取数据集中每个手势的80%作为训练样本,将数据集中每个手势剩余的20%作为测试样本,使用Adam优化算法来适应调整训练过程中的学习率变化。
本文实验的评价指标为手势识别分类的准确率,并使用混淆矩阵进行实验分析。
本文所进行的主要实验和对比实验均依托于Python 3.7下的谷歌深度学习框架Tensorflow2.0构建。硬件配置见表2。
本文所使用的GRT方法对训练样本数据进行预处理之
表2 本文实验的硬件配置
后,通过多输入的方式将其引入到改进TCN网络当中进行训练。测试样本数据使用同样的预处理方法进行操作,输入已训练好的模型当中进行测试,并整理实验结果得到识别准确率。图8是对10种手势进行识别的混淆矩阵,表示每个手势动作被识别成10个动作的概率。
图8 手势识别结果的混淆矩阵/%
从图8中可以看出每种手势识别的准确率均为较高水平,平均识别准确率达98.3%,其中手势较为复杂的几类数字识别率更高,出现误判的可能较小,例如手写数字“8”,由于其手部动作较为明显且完整,对于整个信号区域内的信号动态传播影响作用较大,GRT方法基本可以做到准确识别。而对于手部动作较为相似的手势可能会出现极少量的误判情况。
3.4.1 不同样本数量影响
由于训练样本的CSI数据当中包含着复杂的环境信息和动作信息,且深度学习的方法具有依赖大规模数据集的特点,需要从大量的数据当中提取到特征信息并进行分类,所以训练样本的大小也会对训练结果产生一定的影响。本文实验分别选取每个动作的120个、140个、160个、180个、200个样本进行训练并观察测试结果,见表3。
表3 不同训练样本数量的影响
由表3可以看出,随着训练样本数量的增加,该模型的手势平均识别精度也在增加。这说明样本数量是影响实验结果的一个重要因素,在一定范围内增大样本数据的数量更有利于模型精度的提升,但随着样本的数量增大,引起平均识别精度提高的速率明显变小,验证样本数量已经逐渐满足了本文所提出网络的特征提取需求,识别精度趋于平稳状态,过多的训练样本反而会导致网络训练过慢,影响系统的实用性。本文实验选择的单个手势训练样本数为200个,使得网络在训练效率和识别精度之间达到平衡状态,可以使用较少的资源得到较高的手势识别准确率。
3.4.2 不同子载波数量影响
在CSI数据当中包含的子载波数量为A×M×N×30,其中A为获取到的数据包个数,M为发送端天线数,N为接收端天线数。每根天线上传输了固定的30条子载波,子载波的选取数量也会对实验结果产生一定的影响。本文实验选择每根天线上10条、20条、30条不同的子载波数量进行训练并观察结果。
如表4所示,随着每根天线上选取子载波数量的增加,该模型的手势识别平均精度也在增加,验证了子载波数量是影响实验结果的一个重要因素。由于本文所使用实验器材涉及3组不同的天线对,每组天线对上都保留了在无线信号环境下手势的特征信息,使用多组数据并列输入的方式会尽可能保留手势动作的特征性。相较于不同样本数量,不同的子载波数量对于模型平均识别精度的提升更大,由于在较少子载波用于训练的情况下,CSI幅值数据所体现出来的特征性有限,对于一些动作微小的手部动作特征无法提取完全,手势识别的准确率也较低。
表4 不同子载波数量的影响
但随着网络输入的子载波数量越多,可以提取出更多有效的信息进行高精度的识别。为了达到识别的最佳效果,本文选择每根天线均使用全部的30条子载波进行实验,实现最优识别结果。
3.4.3 消融实验对比
由于本文所提出的GRT方法当中使用了改进的TCN网络,需要进行消融实验来确定改进模块的有效性。
实验主要分为4组进行,第一组使用本文提出的完整改进TCN结构;第二组使用在第一组的基础上去除多输入网络结构改进的TCN;第三组使用在原始网络基础上仅保留密集连接改进的TCN;第四组使用不进行任何改进的原始的TCN网络。表5为消融实验的对比结果。
通过表5的对比结果可以看出,对比原始TCN每一步的网络改进思路都对平均识别精度有一定的提升,验证了改进TCN的可行性和GRT方法的有效性。
3.4.4 不同方法对比
为了验证本文提出GRT方法的有效性,在完全相同的
表5 消融实验对比结果
数据集和实验环境下使用其它文献方法和部分深度学习网络与GRT方法进行实验对比。包括KNN、AFSA-SVM、LSTM、GRU、CNN、TCN这6种方法,分别使用各个网络进行模型训练并测试,得到对比结果见表6。
表6 不同方法对比结果
从表6中可以看出深度学习方法的平均识别精度整体略高于机器学习方法。这是由于深度学习可以从大量数据当中直接获取到更高等级的特征,有助于特征提取的进行,从而实现更高精度的分类识别。其它深度学习网络由于特征提取的单一性和不完整性,均在平均识别精度上低于GRT方法。实验结果表明,GRT方法当中的改进TCN相对于其它方法具有更好的识别效果。
同时为了进一步对GRT方法进行对比验证,在不同训练样本数和不同子载波选取数两个变量下分别对其它4种不同深度学习网络的平均识别精度进行统计,并与GRT方法进行对比,得到的对比结果如图9所示。
图9 不同方法对比结果
GRT方法在不同训练样本和不同数量子载波选取条件下精确度均优于其它4种网络。由于包含了TCN利用了网络深度实现历史信息的存储的特点,同时加入空洞卷积来代替循环神经网络当中的输入门、遗忘门和输出门,对比LSTM、GRU和CNN在减少参数量的同时增加了网络的鲁棒性,更好地实现有效信息的提取。相较TCN,GRT方法通过融入密集连接的思想,尽可能减少了模型的参数,加快训练速度的同时避免了较小数据集下过拟合情况的产生,在准确率上获得了较大的提升。GRT方法在模型结构上使用多输入网络的方式对所有数据进行处理,摒弃了传统的主成分分析方法,最大程度上保留了所有信号的特征信息,相比于选取特定信息进行训练在准确率上有较为显著的提升。以上对比结果表明了GRT方法的有效性和合理性。
本文提出一种基于无线信号和改进TCN的手势识别方法GRT。首先使用巴特沃斯低通滤波、离散小波变换和数据归一化对提取到的CSI幅值数据进行预处理,在最大程度上保留信号特征的同时去除干扰噪声;之后构建融入密集连接的改进TCN网络,将处理好的CSI幅值数据以天线为单位通过多输入网络的结构分组输入到网络当中进行训练,最后实现对0~9这10种手写阿拉伯数字的手势识别。实验结果表明,本文提出方法在普适环境下平均识别率达到98.3%,具有良好的识别效果,验证了改进网络的可行性和合理性。
由于无线信号的衰退性和不稳定性,在不同环境下特征表现不同,易受到各种人为动作的干扰。如何在多人复杂环境下实现高精度的人体行为识别,减少环境造成的影响是未来工作当中研究的重点内容。