魏玉婷,王森,逄德明,陈颖文
(1.国防科技大学计算机学院,湖南 长沙 410015;2.国家信息中心,北京 100038)
2000 年以来,无线技术快速发展,Wi-Fi 覆盖越来越广,几乎家家户户、各大活动场所都有部署,因此使用无线CSI(Channel State Information,信道状态信息)来感知人类活动成为可能,不需要部署专用的设备传感器就能感知人类活动,可以使用CSI 来持续检测无线信道的变化。基于无线CSI 感知人类活动的主要工作原理为:通过发射器产生的无线电波在传播过程中会发生直射、反射和散射等物理现象,从而形成多个传播路径,这使得在信号接收机处形成的多径叠加信号携带了反映信号传播空间的信息[1]。比如,当人在室内活动时,如图1 所示,有一对收发机,当人移动时,人体反射的Wi-Fi信号会随之发生变化,除此之外,家具、墙壁等也会反射信号一起叠加到接收机处,从而可以根据信号的变化,再结合人工智能的方法感知以达到识别人类活动的目的。因为人是活动的,家具墙壁等物体是静止的,所以人体产生的反射路径称为动态路径,家具、墙壁等产生的反射路径称为静态路径。现如今,智能无线感知已被广泛应用到多个领域,比如感知人类的日常行为[2-3]、检测人们的健康[4-5]和手势识别[6-7]等。
图1 人体移动造成的多径传播变化
目前使用无线CSI 来感知人类活动主要分为四个步骤:数据采集、数据预处理、特征提取和建模分类[8]。通常采用一个发送机和一个或多个接收机采集数据,发送机一般为路由器,接收机一般为装有Intel 5300 网卡的笔记本电脑,且每个接收机会配备三个全向天线,分别对应三个CSI 流。
由于原始数据往往会不完整并且可能包含许多错误和噪音,所以在特征提取之前,首先要进行数据预处理,通常这个过程会采用线性插值、带通滤波器去除噪声和主成分分析选取子载波的方法。但是,带通滤波器通过平滑滤波去噪,在这过程中不仅会消除噪声,也会去除原始信号中的高频部分,且直接对CSI 原始信息进行去噪,往往不能消除原始CSI 振幅中的高脉冲噪声和突发噪声。然后进行特征提取,这个环节的重点是建立信号与人类活动之间的对应关系,现有系统一般是在时域中提取振幅和相位作为分类的特征,但是同种活动在不同的位置或方向进行时可能会产生不同的CSI 信号。最后对提取的特征进行分类识别,传统的方法会采用支持向量机或K近邻算法,但前者解决多分类问题较为困难,常用于解决二分类问题且难以训练大规模样本;后者的预测结果容易受噪声数据影响并且K值的选择不固定。使用智能无线感知做手势识别,既没有传统摄像头对光线的要求,也不存在可穿戴传感器给人们带来的不便,且在智能家居、人机交互等方面广泛被应用,所以国内外许多研究学者对基于智能无线感知的手势识别进行了许多研究,已经取得了很大的进展,识别准确率在90%左右且应用前景也很乐观。但是,目前对该领域的研究存在的主要问题是有效特征缺失和分类模型精度低,由于大部分提取的特征都依赖于所部署的环境,所以当环境发生变化时感知性能就会较低。对于分类模型,无线信号在实际传播过程中会有衍射、散射等情况,导致无线感知的实际结果和模型的预测结果之间存在差异,造成识别精度低。
鉴于此,本文基于小波分析和迁移学习的方法,提出了一个智能无线感知识别手势的方法,在数据预处理部分,考虑到无线信号实际传播与理想有差异,所以采用CSI 比值和小波去噪消除原始信息中的噪声,再在主成分分析的基础上,采用最大比合并法将子载波合成一个信噪比最大的波;随后再将预处理好后的时序数据转化为图像特征,在时频域中分析信号并增加分类的可解释性;最后采用预训练好的卷积神经网络分类识别,提高识别准确率和可迁移性。
方法设计主要分为三个部分:数据预处理、特征提取和分类。在Widar 数据集中选取了6 个手势并获取了它们的原始信号。在数据预处理部分,先进行线性插值统一所有记录通道的采样率,再使用CSI 比值和离散小波变换消除信号里的高脉冲噪声和突发噪声;在特征提取部分,采用连续小波变换生成谱图;最后在分类部分,采用预训练好的卷积神经网络对手势进行分类。
CSI[9-10]是一种描述信道的数据,可以表示通信链路之间的传播特性,携带了在某时间测量的载波频率的信道频率响应。令发射机信号为X(f,t),接收机信号为Y(f,t),其中f表示载波频率,它们之间的关系如式(1)所示:
H(f,t)即在时间t下测量的载波频率为f的信道频率响应,它是一个复值;ak(f,t)表示第k条路径衰减和初始相位偏移;表示第k条路径上有一个传播延迟为τk(t)的相位偏移;表示第k条路径上收发机之间载波频率差为Δf造成的相位偏移。则H(f,t)可以由式(2)表示:
CSI 可以通过Intel 5300 和Atheros 无线网卡获取,采用OFDM 调制方式,每个CSI 的测量都包含30 个子载波,每个子载波的维度和收发机的天线数有关,将给定天线对和子载波频率得到的一系列信道频率响应值称为CSI 流。
由于收集到的原始CSI 数据包含了大量的噪声而不能直接使用,所以先对其进行预处理,消除载波偏差和去除噪声。先通过线性插值的方法使所有记录通道具有相同的采样率,这样可以解决因非视线链接和穿墙等因素造成某些链路信号较弱从而导致的丢包问题。然后,将同一接收机的两个天线的振幅求比值,这样可以消除原始CSI 振幅中难以消除的高脉冲噪声和突发噪声。因为脉冲噪声在同一接收机上是用相同的电平放大每个天线的功率,虽然功率会随着时间的推移变化,但是在同一接收器上的不同天线之间的功率是一致的,这样处理后还可以显著扩大传感范围和传感精度[11]。这里会计算天线的离散系数,再选取最大的两个天线的CSI 求比值,进行CSI 比值后的结果明显更清晰、噪声更少,如图2所示。最后,因为每个CSI 都有30 个子载波,根据每个子载波的信噪比做加权平均合成一个子载波,这样可以获得一个具有更高信噪比的波形[12]。因为手势活动和噪声难以直接分离,所以先采用手势活动频率范围内的功率谱密度与手势活动频率范围外的功率谱密度的比值去估计每个子载波的信噪比。接下来将每个子载波乘上对应的信噪比并采用离散小波变换去噪再做主成分分析,离散小波变换可以将信号分解成几个频率级别,这样可以得到需要的频级并去除噪声。因为第一主成分的方差是最大的,所以以第一主成分来调整每个子载波,并将其符号添加到每个子载波的信噪比中,再做加权平均得到一个合并的信号。这样可以使所有子载波融合在一起,得到的子载波信噪比最大,而高的信噪比可以使得噪声更低,有利于得到清晰的波形并分析波形与不同手势之间的关系。
将时间序列转换为图像,可以将信号的全局和局部特征都加以考虑,并增加可解释性。基于此原理,采用连续小波变换将时序数据转化为图像特征再进行图像分类。连续小波变换公式如式(3) 所示:
其中,x(t)是原时域信号,ψ(t)是小波基,τ、s分别是平移变换和尺度变换参数。从式子可以看出,连续小波变换就是原时域信号与选定的小波基在不同尺度下变换或者平移变换下的正交值,正交值越大,说明在这个尺度和平移变换的小波基下原信号占得比重也越大。因为连续小波变换是选取一个中心频率,使用尺度变换得到其他的中心频率,再使用平移变换得到其他区间的小波基函数,然后与原时域信号中对应基函数区间的一段相乘再积分,得到原时域信号这一段含有的频率,所以使用连续小波变换生成谱图后,可以在图上清楚地辨认出原时域信号的频率组成成分以及它们各自对应的时间区间。这里采用连续小波变换生成谱图而不使用短时傅里叶变换,是因为短时傅里叶变换的窗口大小不易设置,窗口太小会导致窗内信号太短、频率分辨率差,窗口太大会导致时间分辨率差,所以这里采用连续小波变换来生成谱图作为分类特征。
根据信号做连续小波变换后得到的小波系数生成谱图,如图3 所示。左边是一个推拉的手势动作,右边是一个滑的手势动作。从图中可以看出两个动作的不同,左边明显由推和拉两个手势片段构成,因为有两个手势频段,所以单个片段的持续时间并不长且频率段较集中,跨度不大;右边的手势动作只有一个手势片段,所以条纹较长,时间跨越较大,并且跨越的频段较大,频率集中的范围也比推拉动作的低。因此,对信号做连续小波变换生成图像特征后,可以在时频域上分析手势动作,并增加了特征的可解释性。
近年来,深度卷积神经网络在图像分类中的表现比之前基于手工特征的图像分类方法性能更优越[13]。因此,利用预训练好的卷积神经网络对手势进行识别分类,这样可以增强系统的性能,还可以应对一些训练测试环境不完全相同的情形。虽然深度学习的神经网络模型在智能无线传感中已被广泛应用,但仍然存在很难找到足够训练数据的问题。因此,可使用从其他数据集训练的模型,再根据具体的问题进行参数修改和完善,这样就可以解决数据量不足且具有一定的普适性。
图2 CSI比值前后对比
图3 推拉动作生成谱图(左)和滑动动作生成谱图(右)
这里,采用SqueezeNet[14]网络进行手势分类。SqueezeNet是一个轻量化的网络,它在CNN(Convolutional Neural Networks,卷积神经网络)的基础上构建了一个新的模块,这样可以使其参数比CNN 的参数量减少9 倍,还可以在神经网络中延迟下采样。前者有利于在保证模型精度的情况下减少参数数量,并提高计算速度;后者有利于在有限的参数数量下最大化模型精度。在使用SqueezeNet 时,因为要将网络提取的特征合并为类别概率、损失值和预测标签的信息,所以要将根据数据集修改参数后的新层替换原来网络中的一些层。基于此原理,利用预训练好的卷积神经网络对图像进行分类以达到识别手势的目的,在提高了分类准确率的基础上,使得手势识别系统也具有一定的普适性。
本文在Widar3.0 数据集中选取了6 个基本手势动作,分别是推拉、从上到下扫过、鼓掌、从下到上滑过、画字母“Z”和画字母“N”。选取的数据是在一个空荡的教室中采集,有两个志愿者分别做每个动作20 次和一个志愿者做每个动作10 次,6 个动作一共300 个样本。数据都是在5.825 Hz 的165 频道上工作,每秒发送1 000 个数据包,再使用配备Intel 5300 无线网卡的接收机和CSI工具获取原始CSI。
为了验证上述手势智能无线感知方法的准确率,使用了2.1 节中采集的数据测试,收集的数据90%用于训练,10% 用于测试,手势识别的准确率平均在94% 以上。本文采用了Widar3.0 中6 个手势动作的数据集,验证上述方法对手势识别的准确率,并与Widar3.0[15]、CARM[16]的实验结果进行对比,表1 是这几种方法实验后的平均准确率:
表1 多种方法的准确率
Widar3.0 中采用了六个接收机的数据,提取多个角度的多普勒速度,然后从中提取了身体坐标系下手势的速度剖面,最后使用GRU 深度学习模型对手势进行分类,复现后相同的数据集手势识别准确率平均在90% 左右。CARM 提出了CSI 速度模型,建立CSI 值与人类不同活动速度之间的关系,再量化不同活动的速度与活动之间的关系以达到识别的目的,采用了主成分分析去噪并使用离散小波变换提取特征,最后使用隐马尔科夫模型识别活动,复现后相同的数据集手势识别准确率在83% 左右。本文基于小波分析和迁移学习的原理设计的无线感知手势识别方法,准确率比Widar3.0 提高了4% 左右,比CARM 提高了10% 左右。
在本文所提的智能无线感知手势识别方法中,从特征提取方面,提取了不同于其他手势识别的系统的特征,将时序数据转化为图像特征,增加了特征的维度和可解释性。从准确率方面上看,该方法对手势的准确率平均在94%左右,观察到第五个画“Z”字和第六个画“N”字这两个手势的识别容易混淆,可能是这两个手势在手势片段、频段范围以及持续时间上都比较相似,所以导致识别精度降低。从普适性方面,该方法只能适用于环境不变或环境有稍微改变的情形下,在跨域的情形下,还需要进一步研究并改善该方法,比如使用多个接收机获取多个截面的谱图,并使用自适应加权图融合多视图的聚类方法[17]对谱图进行处理和融合,最后再进行手势识别。
本文基于小波分析和迁移学习的方法原理,使用无线信道状态信息设计了一个手势识别的系统,其中包括线性插值、CSI 求比值、使用信噪比合成子载波的数据预处理和使用连续小波变换生成图像作为特征,以及使用预训练好的卷积神经网络做手势分类。同时,基于现有的手势数据集对上述系统进行实现与验证,平均识别准确率在94% 左右。接下来,会更关注目标在不同的位置做相同手势的问题,可以使用多个接收器获得多个角度的谱图视角对此问题进行更深入的研究。