郑 勤,许志猛,陈良琴
(福州大学物理与信息工程学院,福建 福州 350108)
人体感知技术是支持许多应用工程的关键技术,可以应用于医疗护理[1]、 运动健身、 智能家居[2]、 监控防盗等领域,具有广阔的应用前景.
传统的人体感知技术主要应用于相机[3]、 雷达[4]、 可穿戴设备[5]等,但这些传统方法都有各自的局限性. 基于相机的人体感知技术需要在光照条件适当的前提下,才能识别相机视线范围内的人体活动,并且当用户暴露在相机下,容易产生一种隐私被侵犯的不适感; 基于雷达的人体感知技术,低性能的雷达感知范围仅仅几十厘米,局限性大,高性能的雷达成本昂贵,不便于大规模部署; 基于可穿戴设备的人体感知技术有较精确的感知能力,但需要用户以特定的方式穿戴设备以确保设备可以正常工作,并非所有用户都乐于长期穿戴一个设备,具有较大的局限性. 基于WiFi的人体感知技术可以很好地解决以上的限制,它不依赖于光照条件,不侵犯用户的隐私,低成本,精度较高,并且用户不需要携带任何设备.
在过去几年,基于WiFi的人体感知技术得到了极大的发展. 文献[6]利用WiFi的信道状态信息(channel state information,CSI)的幅度和相位信息来检测环境中是否有人,人是否在移动; 文献[7]使用支持向量机(support vector machines,SVM)来进行跌倒检测; 文献[8]使用定向天线,根据用户在说话时唇部的运动来识别简单的口语; CARM[9]建立了CSI速度模型和CSI活动模型,量化建立CSI信号变化和特定运动的相关性,实现了9种动作的分类; SignFi[10]使用卷积神经网络,能够较好地识别276个手势.
传统的研究成果能够识别特定的动作,但是不能识别特定动作所对应的用户的身份. 文献[11]利用CSI信号识别检测用户的步态信息,加以识别,但是需要用户走过一条较长的路径,这对于很多用户是不方便的. 在很多环境,例如家庭、 办公室,都是多个用户共同使用,在区分不同动作的同时,区分用户的身份也是很有必要的. 例如,在家庭环境中,可以设定家长使用动作可以打开微波炉,但是小孩使用那种动作却不能.
为此,本研究提出一种基于WiFi的手势和身份识别算法(recognition algorithm of gestures and humans via WiFi,Wi-GAH),该算法可以同时识别用户手势和身份,具有较高的准确率.
研究提出的Wi-GAH总体流程如图1所示. 将采集得到的CSI数据经过数据预处理,分成训练集和测试集,然后将训练集数据输入设定好的神经网络模型中,训练出一个可以很好识别训练集数据的模型,最后利用这个模型来识别测试集中的数据.
图1 Wi-GAH流程图Fig.1 Flow chart of Wi-GAH
WiFi采用正交频分复用(orthogonal frequency division multiplexing,OFDM)技术,所以获取的信道动态变化具有多样性. 一个天线对的信道矩阵描述公式如下:
yi=Hixi+ni(i∈1, …,NS)
(1)
其中:NS代表子载波的个数;xi和yi分别代表发送端和接收端的信号;ni代表噪声; 可以通过将接收端信号除以发送端信号来估计出第i个子载波信道矩阵Hi. 信道矩阵被称为CSI,它反映发送端信号到接收端信号受到信道的影响.
获得的CSI包括幅度和相位2个成分. Wi-GAH对原始CSI取模,得到其幅度信息. Wi-GAH处理的CSI数据,1发3收,每个天线对有30个子载波,信号发送频率为100 Hz,发送时间为2 s,所以一个样本包含18 000个幅度值. 90个子载波的幅度随时间变化,它们具有时间相关性; 3根天线摆放的位置不同,得到的幅度不同,它们具有空间相关性; 每个天线对的30个子载波具有不同的频率,由于物体运动造成的影响不同,它们具有频率相关性. 为了充分利用18 000个幅度值的相关性,Wi-GAH将每个样本变换为三维矩阵,矩阵大小为3×30×200.
Wi-GAH的神经网络结构如图2所示.
图2 神经网络结构图Fig.2 Structure diagram of neural network
每个样本经过数据预处理后获得的矩阵大小为3×30×200,输入层将矩阵转置为更适合CNN处理的类似图像的矩阵200×30×3,其中200×30称为面积,3称为通道数. 输入层不学习任何参数.
批归一化层[12]可以减小过拟合的可能性,降低网络对于特征值初始化的依赖,增加Wi-GAH的稳定性. 批归一化的公式如下
(2)
卷积层有局部连接,权重共享的特点,用卷积运算代替全连接层的乘法运算,大大减少了运算单元,加快了计算的速度. 而且正是因为计算单元的减少,使模型过拟合的可能性降低,使模型更加稳定. 本研究使用二维卷积,公式如下
(3)
其中:I表示输入矩阵;K表示卷积核. 卷积核的通道数通常与输入特征图的通道数相同,所以卷积核的实际大小需要在二维的基础上乘以当前输入特征图的通道数. Wi-GAH使用卷积核大小均为3×3,但是由于每个卷积层输入特征图通道数的不同,卷积层1~4卷积核的实际大小分别为3×3×3、 3×3×8、 3×3×8、 3×3×16. 为了保留每个输入特征图的边缘信息,避免因为多次卷积而面积越变越小,Wi-GAH设置卷积核的步长均为1,并且在边缘补0,可以得到面积与输入特征图的面积相等的输出特征图. 对于卷积层来说,输出的特征图的通道数等于卷积核的个数. 随着网络层数的加深,面积的减少,为了学习到更多的有效参数,需要把通道数变大,所以Wi-GAH也在后面的卷积层中适当地增加了卷积核. 卷积层1~4卷积核个数分别为8、 8、 16、 16. Wi-GAH卷积层均使用线性整流函数(rectified linear unit,ReLU),如下式
f(x)=max{0,x}
(4)
ReLU[13]可以减小在反向传播时可能出现的梯度消失的情况,它能使用一部分特征为0,减小特征相互依存的关系,缓解过拟合的情况.
平均池化层将核内的特征平均得到新的特征,减少了特征的数量,保留了有效的特征,可以加快计算的速度. Wi-GAH的池化核均为3×3,步长为3,余下特征丢弃.
Dropout[14]层在不同的训练轮次随机丢弃一些神经元,所以层间的连接参数不会过大,让每个神经元都能发挥作用,可以减小过拟合的可能. Wi-GAH中Dropout层随机丢弃的概率为0.5,能充分发挥Dropout层的效果.
Wi-GAH通过展平层将22×3×16的特征图重组成一维,方便与全连接层相连. 全连接层的所有神经单元将与上一层所有神经单元连接起来,它们包含Wi-GAH的大部分参数. 全连接层1和2使用的激活函数是ReLU,全连接层3和4使用激活的函数是softmax,softmax公式如下
(5)
其中:Si代表第i类的概率;C代表类的总数,即输出矩阵是样本属于各个分类的概率.
对于多分类问题,损失函数如下
(6)
L=αLg+βLh
(7)
α和β分别是2个损失函数的系数,2者的和为1. 在侧重识别某一个任务的时候,可以调整它们的值,使模型的性能偏向了某个任务,Wi-GAH均设置为0.5.
本实验基于SignFi[7]中采集的CSI数据集中的部分数据. 数据是在一个13 m×12 m的实验室中采集的,实验室周围摆放着许多物品,CSI信号受到多径效应的严重影响. 两台使用Intel 5300网卡,安装有csitool[15]的笔记本电脑为信号发送机和信号接收机,二者之间的直线距离为230 cm. 信号发送机和信号接收机在5 GHz频段工作,信道带宽为20 MHz. 信号发送机使用1根天线; 信号接收机使用3根天线,使用30路子载波. 特别的是,虽然实验人员的位置相对固定,但是实验人员的位置并不在信号发送机和信号接收机直线路径之间,这增加了感知的难度.
使用的数据为4个用户每人做150种手势动作,每种手势重复10次,一共为6 000个CSI样本. 4个用户年龄为26~39岁,身高为168~180 cm,体质量为55~90 kg. 手势动作不仅仅包括小幅度的活动手指,也可能包括头部、 四肢、 躯干的大幅度运动. 本研究的训练和测试使用的电脑操作系统均为Window 10,显卡为RTX 2080 Ti,运行内存为32 GB. 使用4 800个样本作为训练集,1 200个样本作为测试集,学习率为0.001,批大小为64.
Wi-GAH处理的手势分类和人物分类均为多分类任务,且分布均匀,故使用准确率A作为评估指标,如下式
(8)
(9)
其中:Ag和Ah分别是动作识别准确率和身份识别准确率;ξ和ζ为2个准确率的系数,在侧重不同的准确率的时候可以调整其大小,Wi-GAH将ξ和ζ设置为0.5.
2.3.1处理不同任务的性能分析
图3 处理不同任务的准确率Fig.3 Accuracy in handling different tasks
处理不同任务的准确率如图3所示,在高达150种手势的情况下,本研究算法依然能够较好地识别出该样本所对应的人或者手势. 当在需要同时识别人物和手势的情况下,识别准确率会比单独识别某一方面更高一些. 这是因为在有多种任务的条件下,神经网络的过拟合的可能性会变小,会自动寻找同时满足多种任务的特征,所以找到的特征鲁棒性更强,更有效.
在很多情况下,并不需要具体识别出哪一个人,只需要识别出用户是否有适合的权限. 例如在家庭环境中,父母可以使用厨房用品或者电视机,但是出于安全或者从儿童健康成长考虑,儿童使用厨房用品或者电视机则需要受到限制; 例如在实验室,教师和学生的权限不同,但是并不需要识别出教师和学生的具体身份,只需要识别用户处于哪个类别. 研究将4位实验人员分成2类,假定其中2位为有权限的人员,另外2位为没有权限的人员,其两两组合共3种. 识别权限的方式有2种,一种是先识别出具体哪个人,再识别其对应的权限类别; 另外一种是直接识别该人对应的权限类别. 实验结果如表1所示.
表1 权限识别准确率
可以看出,识别身份再识别权限和直接识别权限的准确率差别很小. 直接识别权限减小了Wi-GAH分类层的连接数,不关注于冗余信息的识别,减小了参数的总数,但是并没有造成性能的下降. 直接识别权限可以简化识别权限任务模型,特别是需要识别较大量的人员时.
2.3.2不同输入矩阵对于准确率的影响
本研究使用的Wi-GAH算法采用三维输入矩阵. 采用二维矩阵的输入也是一种常见的选择,也就是将200×30×3的矩阵转换为200×90的矩阵,但是减小维度可能会造成信息的损失. 此外,考虑到0~2 Hz频率的信号可能与动作无关,可将三维矩阵滤除0~2 Hz频率的信号后作为另一种新的输入矩阵. 保持Wi-GAH其他结构不变,将输入矩阵替换为以上两种输入矩阵,得到的准确率与Wi-GAH的准确率对比如图4所示.
图4 不同输入矩阵的识别准确率Fig.4 Recognition accuracy of different input matrices
从图4中可以看出,本研究采用的Wi-GAH算法在动作识别准确率、 身份识别准确率、 组合准确率上均优于采用其他两种输入矩阵的算法. 因为三维矩阵能充分利用天线摆放位置不同所产生的空间信息,所以比起二维矩阵输入,三维矩阵输入提供的有效信息更丰富,对识别手势动作和人物身份有所帮助. 此外,由于滤波器在过滤噪声的同时也会滤除部分有效的信号,可能对识别率有负面影响,增加滤波器后识别准确率出现了下降. 考虑到神经网络丢弃神经元、 池化等操作,也有去除噪声的功能,一定程度上可以代替滤波器,因此本研究的应用环境,输入矩阵可以不加滤波器.
2.3.3不同深度的神经网络对于准确率的影响
SignFi[7]使用很少层的神经网络进行手势识别,本研究模仿其神经网络结构,来执行和Wi-GAH同样的任务. 另外,在Wi-GAH的基础上,在平均池化层2和Dropout层间增加2个卷积层,1个批归一化层和1个平均池化层,这个更深的网络也执行和Wi-GAH同样的任务. 实验结果如图5所示.
图5 使用不同深度网络的准确率Fig.5 Accuracy of using different deep networks
从图5中可以看出,Wi-GAH在动作识别准确率、 身份识别准确率、 组合准确率均明显优于SignFi. 因为Wi-GAH使用了更深的神经网络模型,拟合函数的能力比更浅的神经网络SignFi要强. 同时,本研究采用的Wi-GAH算法在动作识别准确率、 身份识别准确率、 组合准确率均明显优于在Wi-GAH基础上再加深4层的网络. 模拟结果表明,并非采用更深的层数就一定具有更好的识别效果,因为Wi-GAH平均池化层2输出的特征图的面积仅有22×3,已经不适合继续缩小了,继续缩小反而会掩盖有效特征,所以本研究采用的Wi-GAH的深度是比较合适的.
研究提出一种基于CSI的人体感知算法Wi-GAH. Wi-GAH采用不需要手工设计特征的神经网络模型,使用多任务学习的方法,可以同时识别人的动作和身份,解决了现有研究不能同时识别动作和身份的问题. 在150种手势中识别手势的准确率能达到95.67%,识别4个人的准确率能达到87.33%,识别有无权限的准确率高达92.05%. 未来可以进一步结合迁移学习的方法获得高性能的训练模型,或通过优化多任务中损失函数的权重来进一步提升身份识别准确率.