基于WiFi信号的人体动作识别系统
肖玲1,2, 潘浩1     
1. 湖南大学 信息科学与工程学院, 长沙 410082;
2. 湖南大学 嵌入式系统与网络实验室, 长沙 410082
摘要

针对传统人体动作识别方法存在的硬件成本高、系统搭建复杂等问题,提出了一个利用普通的商用WiFi设备的人体动作识别系统,通过分析WiFi信号的信道状态信息(CSI)识别家居环境中8个常见的人体动作.为了获取相同时刻的CSI测量值,提出针对不同时间间隔的CSI序列进行插值处理的方法.通过分析不同的子载波和人体动作的相关性,提取不同动作对应的子载波特征方差,进而采用基于稀疏表示分类的算法进行分类.在真实的家居环境中对该系统进行实验,平均识别率可达到96.4%.

关键词: WiFi     信道状态信息     稀疏表示分类     人体动作识别    
中图分类号:TN929.5 文献标志码:A 文章编号:1007-5321(2018)03-0119-06 DOI:10.13190/j.jbupt.2017-194
Human Activity Recognition System Based on WiFi Signal
XIAO Ling1,2, PAN Hao1     
1. College of Computer Science and Electronic Engineering, Hunan University, Changsha 410082, China;
2. Laboratory of Embedded Systems and Networks, Hunan University, Changsha 410082, China
Abstract

Aiming at the problems of high hardware cost and complex system construction in traditional human body activity recognition methods. The human activity recognition system using commercial WiFi devices was presented, utilizing the WiFi signal channel state information (CSI) to identify eight familiar activities. To obtain CSI measurements at the same time, a new method of interpolating CSI sequences for different time intervals was proposed. By analyzing different subcarrier and the correlation of human motion, the variance of subcarrier characteristic corresponding to different actions is extracted, and to recognize it when using the algorithm based on sparse representation classification. Experiment with the system in a real home environment shows the average recognition rate can reach 96.4%.

Key words: wireless fidelity     channel state information     sparse representation classification     human activity recognition    

近年来,随着人们对健康和运动的关注不断增加,如何实现家居环境下的人体活动监测成为了迫切需求.在人体动作识别研究的发展过程中,识别技术也在不断创新.基于视频监控和专用无线电设备[1]技术都受到硬件成本的限制;基于传感器技术[2]捕获人体动作的数据,会给用户的生活带来诸多不便.

随着WiFi(wireless fidelity)技术的快速发展,利用普通的商用WiFi设备就可以进行人体动作识别相关研究,大大降低了硬件的成本. Youssef等[3]通过普遍存在商用WiFi设备获得接收信号强度指示(RSSI,received signal strength indication)来检测人体的位置.与RSSI相比,信道状态信息(CSI,channel state information)作为物理层的信息,能够测量每个子载波的幅度和相位信息,具有一定的多径分辨能力.在复杂的环境中,CSI的结构特征能够保持相对稳定.最近,针对不同的应用场景,基于无线信号的人体活动识别系统相继提出. WiSee[4]测量由于人体的反射造成的多普勒频移来识别9个手势,需要依靠无线电设备提取复杂的信号. WiFall[5]是利用WiFi信号的CSI时间的稳定性和频率的多样性设计的被动式跌倒检测系统. Wang等[6]提出E-eyes系统,利用CSI直方图作为指纹识别日常的人体活动. WiFiU[7]利用商用的WiFi设备捕获人体的步态特征,但是指定移动的路线和方向,对发包率的要求太高.利用普通的WiFi设备和较低的发包率获取CSI测量值,分析每个数据包中的CSI幅值信息,重点分析和比较了每个动作引起的所有子载波的CSI幅值的变化模式,进而提取子载波的特征,对人体的站、走、刷牙、开门、下蹲、炒菜、拖地、睡觉等8个动作进行分类和识别,实验结果表明,所提出的系统可以达到96.4%的平均识别率.主要贡献为:

1) 针对接收端数据包时间间隔存在差异这一问题,提出对CSI测量值进行插值处理的方法,从而获取相同时间间隔的CSI序列;

2) 充分利用数据流的所有子载波,提出利用特征方差矩阵并结合基于稀疏表示分类算法进行人体动作识别,在家居环境中,识别了8个常见的人体动作.

1 CSI-SRC识别方法 1.1 CSI和系统概述

CSI作为物理层的信息,同时作为信道特征,反映了无线信道的性能,可以通过普通的WiFi设备获得WiFi信号从发射端到接收端的CSI测量值.具体而言,即在接收端的每个数据包都包含了CSI的一组测量值,每组CSI代表一个正交频分复用(OFDM, orthogonal frequency division multiplexing)子载波的幅度和相位[8]

$ \mathit{\boldsymbol{H}}\left( k \right) = \parallel \mathit{\boldsymbol{H}}\left( k \right)\parallel {{\rm{e}}^{{\rm{j}}\angle \mathit{\boldsymbol{H}}(k)}} $ (1)

其中:H(k)表示第k个子载波的CSI值,‖H(k)‖表示第k个子载波的幅度,∠H(k)表示相位.通过现有的WiFi设备可以获得30个子载波的幅度和相位信息.在室内环境中,CSI利用其自身特性依然能够保持整体的结构稳定,为后续的人体动作的特征分析和提取奠定了良好的基础.

基于WiFi信号的CSI设计了一个人体动作识别系统.系统的识别框架如图 1所示,结合稀疏表示分类(SRC,sparserepresentation classification)算法和CSI测量值,系统的关键部分在于数据处理和特征提取.因此在数据处理部分,系统对子载波进行插值处理、低通滤波以及利用小波变换进行时频域的分析;在特征提取部分,提取所有子载波的特征方差作为每个动作的特征.

图 1 识别框架
1.2 子载波插值处理

在家居环境中,不可避免会受到多径效应、环境噪声和硬件设备等影响.通过对原始数据的分析,发现不同的用户在时间t内做相同的动作时,接收端接收的数据包的数目不同,并且相邻数据包时间间隔也不同.另外,同一个用户做不同的动作时依然会有此类问题.如果直接使用原始数据进行特征分析和提取,会忽略不同的动作在一个时隙内存在延时或提前的问题.假设每个动作对应的CSI时间序列的长度都相同,但无论是相同的动作还是不同的动作,它们所对应的CSI序列在时域上都不是严格对齐的.为了有效利用提取的时间戳和所有子载波的CSI测量值,提出对不同的CSI时间序列都进行插值处理的方法,即选取相同时间t内的所有子载波的CSI序列,设置相同样本数和时间间隔,进而计算出不同动作的CSI序列在相同时刻的CSI值.具体而言,即对于n个不同CSI时间序列,假设所有CSI序列表示为

$ \mathit{\boldsymbol{H}} = \left\{ {{H_1}\left( 1 \right), {H_2}\left( 2 \right), \ldots , {H_n}\left( t \right)} \right\} $ (2)

为了对比和分析n个CSI序列在tΔ时刻的CSI值,采用一维线性插值的方法,即对于其中一个CSI时间序列,假设t0时刻的CSI值为H0t1时刻的CSI值为H1:

$ {H_\Delta } = {H_0} + a\left( {{H_1} - {H_0}} \right), {\rm{ }}a = ({t_\Delta } - {t_0})/\left( {{t_1} - {t_0}} \right) $ (3)

通过式(3)计算出tΔ时刻对应的CSI值HΔ.对所有序列都进行插值处理,因此可求得相同时刻的CSI值,表示为

$ {\mathit{\boldsymbol{H}}_\Delta } = \{ {H_{\Delta 1} }\left( 1 \right), {H_{\Delta 2} }\left( 2 \right), \ldots , {H_{\Delta n} }({t_\Delta })\} $ (4)

插值处理方法的优点在于能够获取不同的动作在相同的时刻对应的CSI值,从而更好地分析不同的动作的CSI变化的相关性.

由于WiFi信号在传播的过程中会受到环境噪声的影响,选择巴特沃兹低通滤波器对原始信号进行降噪处理,如图 2图 3所示,从站和拖地2个动作的原始波形可以看出,环境噪声对接收端的CSI测量值产生了较大的影响,掩盖了由于人体的动作造成的CSI值的变化模式.经过低通滤波器降噪处理之后,情况得到明显改善,在去除无关噪声成分的同时有效地保留了每个动作的特征,从图 4图 5中可以明显地看出,当人体做不同的动作(如站、拖地)时,CSI幅值的变化存在较大的差异,实验中也发现,有些动作(如下蹲、睡觉)的变化趋势出现类似的情况,在进行分类时较难区分,因此单纯的幅值信息不能作为动作的特征,准确描述每个动作的特征在1.4节特征提取中会做详细介绍.

图 2 降噪前站的CSI变化

图 3 降噪前拖地的CSI变化

图 4 降噪后站的CSI变化

图 5 降噪后拖地的CSI变化
1.3 小波变换

CSI不仅提供了细粒度的时域信息,而且还包含了丰富的频域信息.小波变换能够对信号进行时频分析和处理,它的特点是通过变换突出信号局部的特征,能自适应时频信号分析的要求.因此对所有子载波进行小波变换,利用db5(Daubechies小波)作为小波函数进行多层分解,通过分解得到近似系数和细节系数,最后利用近似和细节系数进行信号重构.假设原始的CSI序列为H(t),H(t)分解关系可以表示为

$ \mathit{\boldsymbol{H}}\left( t \right) = {\mathit{\boldsymbol{A}}_n} + {\mathit{\boldsymbol{D}}_n} + {\mathit{\boldsymbol{D}}_{n - 1}} + \ldots + {\mathit{\boldsymbol{D}}_1} $ (5)

其中:A表示低频近似成分,D表示高频细节成分, n表示分解层次.由于人体动作的频率相对较低,其特征主要包含在近似成分中,通过提取包含低频信息的近似成分,分析不同人体动作的特征.小波变换在一定程度上起到了进一步滤波的作用,从而更加清晰地展现了每个动作对应的子载波变化的局部特征.

1.4 子载波特征方差提取

在选取子载波时,并没有采取平均值的处理或者选取部分子载波,而是充分利用获取的30个子载波,因为简单地进行平均处理会掩盖不同的子载波的CSI测量值存在差异这一特征,从而在此基础上,利用所有子载波构造识别所需的特征矩阵.不同的人体动作会引起WiFi信号相对应的变化,通过提取WiFi信号的CSI值,同时结合子载波的波动情况,分析每个动作的特征,正如之前所提到的,有些动作的变化模式差别较大,特征区别明显;然而还有一些动作的变化模式比较相似,区分难度较大,为了解决这个关键的问题,笔者充分利用一个数据流的所有子载波,经过对接收端采集到的30个子载波的CSI值的分析,发现不同的人体动作会引起每个子载波的变化,从整体的变化模式来看,相同动作的子载波的变化趋势是基本相似的,由于不同的子载波对相同的动作的敏感度有所不同,因此CSI测量值也会出现差异.如图 6所示,对于相同的动作(如开门),不同子载波的变化趋势大体相同,但是CSI测量值不同,因此,根据不同的子载波存在的差异性,针对每个动作提取所有子载波的特征.

图 6 不同子载波的变化

在接收端获取的CSI的幅值信息虽然在一定程度上反映了每个动作的变化情况,但依然不能直接用于实验.单纯的CSI幅值信息并不能很好地刻画每个动作的特征,仅仅反映了不同动作引起CSI序列整体的变化趋势,并且每个子载波的变化和CSI值也存在一定的差异.因此选取方差作为特征值,对于任意动作对应的CSI序列,在选取的每一个时隙内,移动方差的分布情况能够反映CSI测量值的离散程度,同时也可以反映对应动作的变化情况,并作为每个动作的特征,因此通过计算CSI值的方差来提取每个动作的特征是合理并且有效的.根据所有子载波序列的这一特点,并结合SRC分类算法,提出在t时间内对每个子载波的CSI序列求移动方差,即在移动窗口内,计算CSI测量值的方差,每一个窗口内的方差都反映了对应时间序列的CSI值的离散程度,同时也可以作为人体动作稳定的特征.首先,在接收端采集的CSI幅值信息表示为

$ \mathit{\boldsymbol{H}} = \{ {H_1}\left( 1 \right), {H_2}\left( 2 \right), \ldots , {H_k}(t)\} $ (6)

其中Hk(t)表示的是第k个子载波在t时刻的CSI幅值,在t时间内,计算滑动窗口m内的CSI幅值的方差,即

$ \mathit{\boldsymbol{V}}\left( {{H_k}\left( m \right)} \right) = \frac{1}{m}\sum\limits_{i = 1}^m {\left[ {{H_k}\left( i \right) - \frac{1}{m}\sum\limits_{i = 1}^m {{H_k}{{\left( i \right)}^2}} } \right]{\rm{ }}} $ (7)

通过式(7),计算每个子载波在时间t内的移动方差,得

$ \mathit{\boldsymbol{V}} = \left\{ {{V_1}\left( 1 \right), {V_2}\left( 2 \right), \ldots , {V_k}\left( n \right)} \right\} $ (8)

其中:$ n = \frac{t}{m}, {V_k}(n)$表示第k个子载波在第n个窗口内的方差,因此得到了一个特征方差矩阵V,该矩阵包含所有子载波的主要特征,同时也代表了由于人体的动作引起的CSI变化模式,不同的动作(如刷牙、拖地)的移动方差分布有明显的不同,并且分布情况也很好地诠释了相应动作的特征,刷牙的动作相较于拖地的动作而言,首先是动作的范围后者明显大于前者,其次动作的幅度也不相同,从而导致子载波移动方差不同的分布情形.

1.5 动作分类

在1.2节中,对子载波的CSI序列进行插值处理,目的是获取不同的动作在相同时刻的CSI值.同时该处理方法能够提高利用SRC算法进行分类的识别率,原因在于经过插值处理之后,不同的CSI序列在时域上是严格对齐的,因此能够提高训练样本和测试样本进行有效配对的准确率. SRC分类算法将不同类别的对象放入训练集中,在进行分类时,利用训练集中每个样本的线性组合来描述这个未知类别的对象,而最合适的描述是稀疏的.结合1.4节的子载波特征方差,每个动作都可以提取与其对应的特征方差矩阵,提出基于SRC算法[9]的动作分类方法,因此,将提取的8个动作的特征方差矩阵组成一个训练样本的矩阵,表示为:Vtrain={V1, V2, …, Vi},其中Vi表示第i个动作的特征方差矩阵.对于任意一个测试样本Vtest,可以表示为

$ {\mathit{\boldsymbol{V}}_{{\rm{test}}}} = {\mathit{\boldsymbol{V}}_{{\rm{train}}}}\mathit{\boldsymbol{\alpha }} $ (9)

根据式(9),可以求得系数α,但由于一般情况下,样本的数量远大于特征的维数,为了求得唯一解,因此式(9)的约束条件为系数α尽可能的稀疏,即可描述为

$ \begin{array}{l} {\mathit{\boldsymbol{V}}_{{\rm{test}}}} = {\mathit{\boldsymbol{V}}_{{\rm{train}}}}\mathit{\boldsymbol{\alpha }}\\ {\rm{s}}{\rm{.t}}{\rm{. }}\;\;{\rm{min}}\parallel \mathit{\boldsymbol{\alpha }}{\parallel _1} \end{array} $ (10)

求得最优的系数α之后,通过求残差来确定相应的动作类别,即

$ \begin{array}{l} \mathit{\boldsymbol{V}}_{{\rm{test}}}^* = \mathop {{\rm{argmin}}}\limits_i {\mathit{\boldsymbol{x}}_i}({\mathit{\boldsymbol{V}}_{{\rm{test}}}}), \\ {\mathit{\boldsymbol{x}}_i}({\mathit{\boldsymbol{V}}_{{\rm{test}}}}) = \parallel {\mathit{\boldsymbol{V}}_{{\rm{test}}}} - {\mathit{\boldsymbol{V}}_i}\mathit{\boldsymbol{\alpha }}_i^*{\parallel _2} \end{array} $ (11)

通过提取所有子载波的特征方差形成的特征方差矩阵,同时利用SRC算法对家居环境中常见的8个动作进行区分,获得了较好的分类效果.

2 实验结果与分析 2.1 实验数据采集

在家居环境中对该系统的性能进行评估,选用家用的路由器(newifi R8630)作为发射端,配备有Intel 5300 NICs和开源工具CSI-Tools[10]的戴尔笔记本(dell vostro 3400)作为接收端,在普通公寓环境中评估该系统.如图 7所示, 图中描述了发射端和接收端的位置,实验中选取了比较常见的8个动作:站、走、刷牙、开门、下蹲、炒菜、拖地、睡觉.测试者在该环境下分别做这8种动作,同时利用CSI工具在接收端获得实验所需的CSI信息.

图 7 实验环境
2.2 动作识别结果

实验分别采集了6男4女共10个测试者的8个动作的数据,基于每个动作的样本数据进行分类,并采取用户独立的验证方式,对每个用户进行动作识别时,训练样本中不包含该用户的动作.图 8给出了实验结果,从图中可以看出,除了炒菜、睡觉和走路3个动作之外,其余动作的识别率均在97%以上,有些具有相对比较稳定的特征的动作的识别率达到100%,说明该系统能够对实验中选取的家居环境下的8个人体动作进行有效的区分.

图 8 8个动作识别率混淆矩阵

另外,为了进一步评估该系统的性能,也采用其他的分类方法进行了对比实验,即采用支持向量机(SVM[11],support vector machine)和K近邻(KNN,K-nearest neighbor)的分类算法进行分类,识别率对比情况如图 9图 10所示,图 9描述的是不同动作的识别率对比情况,图 10说明了不同用户的识别率对比情况.从图中可以看出,无论是所有动作的识别率,还是不同用户的平均识别率,采用SRC的方法都要高于其他2种方法,分类效果最佳.这也验证了提出的插值处理方法和子载波特征方差矩阵方法的有效性.

图 9 不同动作识别率对比

图 10 不同用户识别率对比

整体的实验结果表明,该系统在家居环境中具有有效性和鲁棒性,对该环境下的8个人体动作能够进行稳定且有效的识别,后续的工作需要进一步完善该系统,实现家居环境下的自主活动监测.

3 结束语

提出了一个基于WiFi信号的人体动作识别系统,利用普通家庭使用的WiFi设备即可采集信道状态信息,进而利用CSI进行家居环境的活动监测.在家居环境中,对该系统的性能进行评估,实验结果表明,对8个常见的动作的分类效果较好,平均识别率可达到96.4%.

该系统针对的是家居环境中单人的动作识别,期间没有考虑较大的宠物的干扰和家具位置的改变所带来的影响.未来将主要研究多人的环境下的动作识别,以及多个接收端的情况下,在不同的位置识别同一个动作.

参考文献
[1] Sung J Y, Ponce C, Selman B, et al. Unstructured human activity detection from RGBD images[C]//2012 IEEE International Conference on Robotics and Automation. Saint Paul: IEEE, 2012: 842-849.
[2] 钱志鸿, 王义君. 面向物联网的无线传感器网络综述[J]. 电子与信息学报, 2013(1): 215–227.
Qian Zhihong, Wang Yijun. Internet of things-oriented wireless sensor networks review[J]. Journal of Electronics and Information Technology, 2013(1): 215–227.
[3] Youssef M, Mah M, Agrawala A. Challenges: device-free passive localization for wireless environments[C]//ACM International Conference on Mobile Computing and networking. Montreal: ACM, 2007: 222-229.
[4] Adib F, Katabi D. See through walls with WiFi![J]. ACM SIGCOMM Computer Communication Review, 2013, 43(4): 75–86. doi: 10.1145/2534169
[5] Wang Y, Wu K, Ni L M. WiFall:Device-free fall detection by wireless networks[J]. IEEE Transactions on Mobile Computing, 2017, 16(2): 581–594. doi: 10.1109/TMC.2016.2557792
[6] Wang Y, Liu J, Chen Y Y, et al. E-eyes: device-free location-oriented activity identification usingfine-grained WiFi signatures[C]//International Conference on Mobile Computing and Networking. Hawaii: ACM, 2014: 617-628.
[7] Wang Wei, Liu A X, Shahzad M. Gait recognition using wifi signals[C]//ACM International Joint Conference on Pervasive and Ubiquitous Computing. Heidelberg: ACM, 2016: 363-373.
[8] 杨铮, 刘云浩. 雷达:从RSSI到CSI[J]. 中国计算机学会通讯, 2014, 10(11): 55–60.
Yang zheng, Liu Yunhao. Wi-Fi radar:from RSSI to CSIWi-Fi[J]. Communications of the CCF, 2014, 10(11): 55–60.
[9] Wright J, Yang A Y, Ganesh A, et al. Robust face recognitionvia sparse representation[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2009, 31(2): 210–227.
[10] Halperin D, Hu Wenjun, Sheth A, et al. Tool release:gathering 802.11n traces with channel state information[J]. ACMSIGCOMM Computer Communication Review, 2011, 41(1): 53. doi: 10.1145/1925861
[11] Chang C C, Lin C J. LIBSVM:a library for support vector machines[J]. ACM, 2011, 2(3): 1–27.