无线感知会议系列【14】SignFi: Sign Language Recognition Using WiFi

摘要:

这篇Paper 是用CNN 做的,用来做手语识别的

模型输入:

csi_tensor [M,N,S,T]

M: tx 发送天线数量

N: rx 天线数量

S: 幅度和相位信息

T: CSI matrix for each instance 数据集大小

模型结构,跟斯坦福的HAR LSTM 有较大差异**[batch_size, time, carrier_number**]

单位 :Computer Science Department, College of William and Mary, USA

SignFi datase:

https://github.com/yongsen/SignFi

SignFi | Sign Language Recognition using WiFi and Convolutional Neural Networks
这篇Paper提出了SignFi系统,利用WiFi技术来识别手语手势。

SignFi以 WIFI CSI Raw Data 作为输入,采用卷积神经网络(CNN)作为分类算法。

现有的基于WiFi的手势识别技术测试的手势不超过25种,且仅涉及手和/或手指手势,而SignFi能够高精度地识别276种手势,这些手势涉及头部、手臂、手和手指的动作。

SignFi通过收集CSI测量值来捕捉手语手势的无线信号特征。原始的CSI测量值会经过预处理,以去除噪声并恢复子载波和采样时间上的CSI变化。预处理后的CSI测量值被输入到一个9层的CNN中进行手势分类。我们在实验室和家庭环境中收集了CSI轨迹并对SignFi进行了评估**。总共为276种手势收集了8,280个手势实例,其中5,520个来自实验室,2,760个来自家庭**。对于使用单个用户的CSI轨迹进行的5折交叉验证,SignFi在实验室、家庭和实验室+家庭环境中的平均识别准确率分别为98.01%、98.91%和94.81%。我们还使用实验室环境中5名不同用户的CSI轨迹进行了测试。对于5名不同用户做出的150种手势的7,500个实例,SignFi的平均识别准确率为86.66%。


目录:

  1. 简介
  2. 背景与动机
  3. SIGNFI 设计
  4. 实验验证
  5. More Discussions on SignFi
  6. 相关工作
  7. 结论

一 简介

据世界聋人联合会(WFD)统计,有7000万聋人使用手语作为他们的第一语言;许多听力正常的人也将手语作为他们的第一或第二语言。仅在美国,20世纪90年代就有50万至200万人使用美国手语(ASL)。许多大学接受ASL作为外语学分,越来越多的人在学习和使用ASL。现代语言协会对美国2696所机构非英语课程的学生注册情况进行了调查。调查显示,从2002年到2013年,ASL课程的注册人数持续增加。2013年,ASL课程的注册人数达到109,577人,使其成为注册人数第三多的语言。聋人群体与不了解或几乎不了解手语的人之间存在着巨大的隔阂。手语识别系统将有助于打破这一隔阂。

目前有一些使用摄像头或Kinect 的手语识别系统,但它们受光线条件的影响。一些系统使用Leap Motion,但它们只能识别手指手势,并且对Leap Motion传感器与人之间的距离和位移非常敏感。还有一些系统使用手套和运动传感器,如SignAloud,但它们具有侵入性,需要将传感器附着在手指上。

许多论文表明,WiFi的信道状态信息(CSI)可以以非侵入的方式识别手和手指手势。也有一些现有的方案WiFi信号被用于识别ASL手势。这些是与我们的工作最相关的论文。但它们仅针对简单的ASL手势进行了评估

【A Robust Sign Language Recognition System with Multiple Wi-Fi Devices】中的5个手势、

【Talk to Your Smart Devices with Finger-grained Gesture】中的9个手指姿势和

【Leveraging Directional Antenna Capabilities for Fine-grained Gesture Recognition.】中的25个手/手指手势。

**我们的目标是识别近300个在日常生活中频繁使用的基本手语手势【35】。分类算法在测试时应具有高识别精度和低计算成本。**当手语手势数量增加到近300个时,现有的分类算法识别精度非常低。

论文【WiFinger:, Leveraging Directional Antenna Capabilities for Fine-grained Gesture Recognition.】均使用带有动态时间规整(DTW)的k近邻(kNN)作为分类算法。我们在实验室环境中使用276个手语手势的CSI轨迹对其进行了测试。对于276个手语手势,kNN与DTW的平均识别精度仅为68%。此外,当有近300个可能的类别时,kNN与DTW在测试阶段的耗时极长。因此,需要使用新的分类算法来进行基于WiFi的手语手势识别。

我们提出了SignFi,它使用9层卷积神经网络(CNN)来准确识别手语手势。它收集CSI测量值以捕获手语手势的无线信号特征。在去除噪声后,SignFi将预处理后的CSI测量值输入到9层CNN中进行手语手势分类。我们收集了276个手语手势的CSI轨迹,每个手势在实验室环境下有20个实例,在家庭环境下有10个实例。SignFi在实验室、家庭和实验室+家庭环境下的平均识别精度分别为98.01%、98.91%和94.81%。

图1比较了SignFi与现有的手语识别技术。大多数现有技术都是在简单的ASL手势上进行测试的,如9个数字和26个字母。SignFi是唯一能够识别276个手语手势且准确率高达94.81%的技术。

综上所述,我们做出了以下贡献:

++(1)我们提出了一种新的信号处理技术,可以从原始CSI测量值中去除噪声。该技术恢复了CSI随子载波和采样时间变化的信息.++

++(2)我们提出了一个9层卷积神经网络,用于使用WiFi信号准确识别手语手势.++

++(3)我们的设计在实验室和家庭环境下对276个手语手势的8,280个实例具有94%以上的准确率。我们还对来自5个不同用户的150个手语手势的7,500个实例进行了测试,准确率为86.66%.++

本文的其余部分组织如下:

  • 第2节介绍了使用WiFi信号进行手语识别的背景和动机。
  • 第3节介绍了SignFi的设计,包括信号处理和9层CNN。
  • 第4节展示了实验设置和评估结果
  • 第5节总结了相关工作并与SignFi进行了比较。
  • 第6节对本文进行了总结并讨论了未来的工作。

二 背景与动机

信道状态信息(CSI)描述了无线信号在特定载波频率下从发射器传播到接收器的过程。无线信号通常通过多条路径传播。对于具有N条路径的多径信道,每个子载波的每个发射和接收天线对的CSI值由和λ决定.

是衰减因子

是发射器到接收器的路径距离

是第n条路径上的相位偏移

λ: 载波波长

h: 是一个复数,可以用其幅度和相位来表示。

如果至少一条路径的幅度或相位发生变化,那么CSI值也会改变。

这是单发,单收数学模型

由于信道状态信息(CSI)能够捕捉到无线信号如何被周围物体反射,因此它可以被用来识别手势]和手指动作。三篇论文[18, 21, 33]利用WiFi信号来识别美国手语(ASL)手势:

33\]识别了5种手势, 18\]识别了9种手指姿势, \[21\]识别了25种手势/手指动作。 我们的目标是不仅识别简单的手势,还要识别近300种在日常生活中频繁使用的基础美国手语手势。分类算法在测试时应具有高识别精度和低计算成本。\[18\]和\[21\]两篇论文都使用了带有动态时间规整(DTW)的k最近邻(kNN)作为分类算法。问题是,当手势数量增加一个数量级时,带有DTW的kNN是否仍然有效。 > \[18\]:**Talk to Your Smart Devices with Finger-grained Gesture.** > > In Proceedings of the 2016 ACM International Joint Conference on Pervasive and Ubiquitous Computing (UbiComp '16). 250--261 > > \[21\] **Leveraging Directional Antenna Capabilities for Fine-grained Gesture Recognition**. > > In Proceedings of the 2014 ACM International Joint Conference on Pervasive and Ubiquitous Computing(UbiComp '14). 541--551. https://doi.org/10.1145/2632048.2632095 > > \[33\] **A Robust Sign Language Recognition System with Multiple Wi-Fi Devices.** > > In Proceedings of the Workshop on Mobility in the Evolving Internet Architecture (MobiArch '17). 19--24. https://doi.org/10.1145/3097620.3097624 在推理的计算成本方面: 当存在近300个可能的类别时,带有动态时间规整(DTW)的k最近邻(kNN)算法并不是非常高效。尽管带有DTW的KNN无需训练时间,但在测试时的开销极高。对于每个测试样本,带有DTW的kNN需要将其与每个训练样本进行比较。当存在276个可能的类别,且每个训练/测试样本包含3600个数据点时,测试过程中需要大量的计算资源。即使只有25个手势**,带有DTW的kNN在测试时每个手势也需要超过5秒的时间**,这一点将在第4.2.2节中展示。 > > #### **DTW的定义与本质** > > 动态时间规整(DTW)是一种用于测量两组时序信号或时间序列之间相似性的算法,允许通过非线性时间轴的拉伸和压缩来匹配序列,从而度量它们之间的相似度。与欧几里得距离等直接度量方法不同,DTW 能够处理时序信号中的**非线性时间变化**,即它允许不同步或不对齐的序列进行相似性度量。 > > DTW 的本质是通过"动态规划"技术,在两条时间序列之间寻找一种**最优的对齐路径** ,以最小化它们的距离。这种方法特别适用于**时序数据**,如语音信号、金融数据、运动轨迹、雷达信号等,其中时间戳的对齐和信号之间的相似度是分析的核心问题 在识别准确性方面,识别近300个手势面临着三大挑战: > (1) 手势数量庞大; > > (2) 许多不同的手势具有相似的手臂、手或手指动作 > > (3) 许多手势包含复杂多样的动作。 **首先:** > 在利用WiFi进行手势识别的研究\[18, 21, 33\]中,测试的手势数量不超过25个。然而,日常生活中频繁使用的基本手势词汇有近300个\[35\]。 **其次:** > 由于许多手势词汇具有相似的动作或姿势,因此很难将它们区分开来。例如,"父亲"和"母亲"这两个手势词汇具有相同的手部和手指姿势,但它们要求主导手位于不同的位置,如图2所示。最后,许多手势涉及头部、手臂、手和手指的动作。主导手并不局限于一个小范围内,它可以靠近人体的不同部位。 ![](https://i-blog.csdnimg.cn/direct/ba9c43e42f7048e79d42e2a92adc9e93.png) > 对于我们在实验中使用的276个手势,我们使用了ASL-LEX数据库\[2\]来检查它们的运动类型。该数据库为近1000个手势提供了手势类型、路径运动类型、一般位置、具体位置以及主导手的移动/前景手指等信息。关于每个类别的定义和描述,请参阅ASL-LEX\[2\]。我们手动为未包含在ASL-LEX中的手势添加了标签。 > > 图3显示了每个类别的手势数量。在这25个手势中,许多手势均匀地分布在3或4个类别中,这使得它们彼此不同。而对于276个手势,同一类别中的手势数量要多得多,这使得它们更难区分。在特定手部位置方面,276个手势有12个类别是25个手势所没有覆盖的。因此,识别276个手势要困难得多。 ![](https://i-blog.csdnimg.cn/direct/4a2733f6773f4e0997cd278b6c2c104e.png) > **带有动态时间规整(DTW)的k最近邻(kNN)算法能否仍然适用于276个手势?** > > 为了回答这个问题,我们在实验室环境中收集了信道状态信息(CSI)测量数据,并评估了带有DTW的kNN算法。图4显示了带有DTW的kNN算法在25个和276个手势上的识别准确率。对于25个手势,带有DTW的kNN算法的准确率超过96%,这与\[18, 21\]中的结果一致。 > > 然而,对于276个手势,平均准确率下降到68%。因此,需要新的算法来提高使用WiFi信号进行手语识别的识别准确率,并降低测试成本。为此,我们提出了使用9层卷积神经网络(CNN)作为分类算法的SignFi。**它在测试时具有高识别准确率和低成本。** ![](https://i-blog.csdnimg.cn/direct/7d6c1ea6acff449abdfff8820da722a0.png) *** ** * ** *** **三 SignFi 设计** ![](https://i-blog.csdnimg.cn/direct/258d0c139cda45ebb48d0225b058ddda.png) SignFi概述如下图5所示: > 原始的CSI测量值会经过预处理以去除噪声。预处理后的CSI的幅度和相位都会被输入到一个9层的卷积神经网络(CNN)中进行手势分类**。** > > **在本文中,我们主要关注分类算法**。CSI测量值会针对每个手势手动分割。为了公平比较,我们使用这些手动分割的CSI轨迹来测试所提出的分类算法和现有的分类算法。自动时间分割的工作留待未来进行。 **3.1 SignFi Signal Processing** **原始的CSI 信号数学模型,不同的Paper 有不同的差异,所以预处理流程也是不同的方案,** **这篇是把发射阵列CSI信号加入进来建模的,很多Paper 只考虑接收阵列.** ![](https://i-blog.csdnimg.cn/direct/0d710e7f109a45dbbc4c8c173c8efb73.png) > 在将原始信道状态信息(CSI)测量值输入分类算法之前,我们需要去除噪声。在我们的实验中,我们使用了具有3个发射天线的线性天线阵列。在这种情况下,第i个天线的信道状态信息(CSI)为 > > ![](https://i-blog.csdnimg.cn/direct/bb6a4942f6d447b88582bc5d551cf17b.png) > > h: 表示多径信道状态信息 > > Δ: 表示以子载波波长为单位的发射天线间距归一化值(参考beamforming 技术) > > ψ: 表示相对于发射天线阵列的离开角。 > > ![h_i](https://latex.csdn.net/eq): **表示多径信道传播(h)和发射天线阵列排列的共同影响** > > 发射天线阵列在第i个发射天线的CSI相位上增加了项(i − 1)Δ cosψ。 > > 我们可以将hi的相位重写为: > > ∠hi = Φi − 2π(i − 1)Δ cosψ(发射阵列排列) > > Φi: > > 是由多径信道传播引起的CSI相位。 > > 我们的目标是获取每个子载波的CSI相位∠hi > 在现实的WiFi系统中,发射机和接收机的采样时钟和载波频率并不是同步的。这会导致采样时间偏移(STO)和采样频率偏移(SFO),从而引入随机的相位偏移。 > > **第i个发射天线的第k个子载波的**测量信道状态信息(CSI)相位**为** > > ![](https://i-blog.csdnimg.cn/direct/7c6736119fbb4f9581d105e8a16333d2.png) > > 其中: > > **![\Phi{i,k}](https://latex.csdn.net/eq): 是由多径信道传播引起的CSI相位,这是需要用到的** > > ![f_{\delta }](https://latex.csdn.net/eq): 两个相邻子载波之间的频率间隔 > > ξ: 由STO和SFO引起的相位偏移,噪声项 ![](https://i-blog.csdnimg.cn/direct/c6a98108673f4003b2397b7d1018b956.png) > 如图6a所示,由于项(i − 1)Δ cosψ的影响,每个发射天线的未封装的CSI相位具有不同的斜率。我们通过最小化K个子载波和N个发射天线上的**线性拟合误差来估计ξ(噪声)** > > ![](https://i-blog.csdnimg.cn/direct/eb1668771614418eaf76041503f092e8.png) > > 其中,**η,ω和β是多元线性回归的拟合变量**。在去除随机相位偏移后,预处理后的CSI相位为 > > **(公式3,测量到CSI相位建模是减去噪声,下面公式加上一个估计的噪声值相当于去除了噪声)** > > ![](https://i-blog.csdnimg.cn/direct/c3ff6b48865f4e2296cb3dd4a575ad8e.png) > > 由于测量的CSI相位被限制在\[−π, π\]范围内,因此原始的CSI测量值无法正确反映CSI相位如何随子载波和采样时间而变化。预处理后的CSI相位被解包以恢复丢失的信息。 > > 如图6b所示,原始的CSI相位从−π到π周期性变化,而预处理后的CSI相位在更宽的范围内近似线性变化。同样,CSI相位随时间的变化也在CSI预处理后得到了校正。 > > 如图6c所示,第一个和第二个发射天线的原始CSI相位变化相似,但它们的预处理CSI相位变化模式却截然不同。原始的CSI相位无法捕捉到发射天线阵列排列的影响,它们提供了关于CSI相位如何变化的冗余信息。预处理后的CSI相位恢复了关于CSI相位如何随子载波和采样时间而变化的信息。预处理后的CSI相位可用于其他基于CSI的感知应用。 **3.2 Gesture Recognition Algorithm** ![](https://i-blog.csdnimg.cn/direct/64ec7393b65b4e158bcb9c358a3e01c4.png) > SignFi使用9层卷积神经网络(CNN)作为分类算法。卷积神经网络能够自动学习参数和特征,从而为复杂问题找到有效的解决方案。此外,即使在类别数量非常大的情况下,卷积神经网络在推理阶段的运行速度也非常快。神经网络可以被组织成多层。一个n层神经网络中的第i层由以下给出: ![](https://i-blog.csdnimg.cn/direct/7d989b86944e47ecba0bac27afb5c7de.png) 其中: > ![y^i](https://latex.csdn.net/eq): 是输出 > > ![x^i:](https://latex.csdn.net/eq) 是输入 > > ![w^i](https://latex.csdn.net/eq): 是权重矩阵 > > ![b^i](https://latex.csdn.net/eq): 是偏置向量, > > ![g^i](https://latex.csdn.net/eq)(i) 是激活函数 \[10\]。 > > 前一层的输出是当前层的输入,即![x^i=y^{i-1}](https://latex.csdn.net/eq)。 > > 对于第一层,![x^1=x](https://latex.csdn.net/eq) 是原始输入。 > > 对于最后一层 ![y^n=y](https://latex.csdn.net/eq)是最终输出。对于分类问题,y 包含与输入 x 对应的标签。卷积神经网络(CNN)仅仅是一个神经网络,其至少有一层涉及卷积操作 神经网络使用优化算法在每一层学习权重 W 和偏置 b,以最小化成本函数。SignFi 使用带有动量(Momentum)的随机梯度下降(Stochastic Gradient Descent,SGD)算法来更新权重和偏置。它沿着损失函数的负梯度方向以小步长进行更新: ![](https://i-blog.csdnimg.cn/direct/7df8c9e0fa784cb4b7fc208706bb40e6.png) > ![](https://i-blog.csdnimg.cn/direct/444b1c121b1e46df8d702002fb8f4f56.png) 其中,θ 是参数向量,l 是迭代索引,α 是学习率,E(θ) 是损失函数,而 γ 是动量项 \[10\]。动量项 γ 控制着前一个梯度步对当前迭代的贡献。SignFi 使用的动量项为 0.9,学习率为 0.01。为了防止过拟合,SignFi 使用 L2 正则化,在损失函数 E(θ) 中为权重添加了一个正则化项。正则化后的损失函数为 ![](https://i-blog.csdnimg.cn/direct/8fab55e411a440c293e1976461bf3c63.png) > > 其中,λ 是正则化因子,而 ![](https://i-blog.csdnimg.cn/direct/9a27fb22c55443be98fbaa33925e009a.png)是正则化函数。SignFi 的正则化因子为 0.01。图 7 展示了 SignFi 中使用的 9 层卷积神经网络(CNN)的架构和参数设置。 **3.2.1 输入层** > 输入层将每个手势的预处理后的信道状态信息(CSI)转换为多维张量,这是卷积神经网络(CNN)所需的输入格式。这一层不学习任何参数;它只是为接下来的层准备数据输入。对于SignFi,每个CSI矩阵的大小为size(csi) = (1, 3, 30)。 > > 每个手势有200个CSI样本,因此每个手势的CSI轨迹的大小为(3, 30, 200) > > 输入层将每个手势的CSI幅度和相位(各自大小为(3, 30, 200))结合起来,并重塑为一个大小为(200, 60, 3)的张量。 > > 3代表天线个数,30 子载波个数 **3.2.2 卷积层** > 卷积层用卷积运算代替了矩阵乘法。SignFi 使用二维卷积: > > ![](https://i-blog.csdnimg.cn/direct/20501308de764efe849de7b8b76c3e1e.png) > > > 其中 I 是输入,K 是卷积核 \[10\]。图 8 展示了一个使用 2×2 卷积核的二维卷积示例。卷积层将输入分成多个区域。在每个区域内,它计算输入与某些权重的点积。包含这些权重的矩阵被称为卷积核。卷积层使用相同的卷积核在输入上垂直和水平移动。卷积层每次移动的步长被称为步幅。SignFi 在垂直和水平方向上都使用了三个 3×3 的卷积核和步幅为 1。为了保持卷积层的输出大小并确保所有输入都被使用相同次数,SignFi 在垂直和水平方向上都使用了 1 的填充。它在原始输入的边缘周围填充了一列/行零。 > > 卷积核的数量控制着卷积层输出的通道数。对于每个输入区域,卷积层将输入与卷积核的点积加上一个偏置项。卷积核及其偏置项也被称为特征图。卷积层在处理输入时学习特征图。由于卷积层对多个输入区域使用相同的特征图,因此它显著降低了训练和测试的计算开销。卷积层在计算机视觉和自然语言处理等复杂问题中非常有效且广泛使用。卷积对 SignFi 识别准确性的影响将在后面的 4.3.1 节中展示 ![](https://i-blog.csdnimg.cn/direct/58c0b9232a4042728e4c70fb0a8a914a.png) **3.2.3 批量归一化层** > 批量归一化用于加速网络训练并降低对网络初始化的敏感性,从而使优化问题变得更容易。这允许使用更大的学习率,从而使网络训练速度大大加快。当训练数据集包含来自不同用户的数据时,它还能提高神经网络的泛化能力。它首先对每个输入通道的迷你批次中的输入xi进行归一化。归一化后的激活值为(此处省略了具体公式,但提到了μB和σB分别为迷你批次的均值和方差\[14\])。在方差接近零的情况下,SignFi使用了一个非常小的数ϵ(10\^-6)来提高数值稳定性。批量归一化层的输出为: > > ![](https://i-blog.csdnimg.cn/direct/28d67a1fff114fe5a19df02ff68930bd.png) > > 其中,κ是缩放因子,ρ是偏移量,而ˆxi是公式(10)中的归一化激活值\[14\]。κ和ρ都是可学习的参数,在训练过程中会进行更新。为了充分利用批量归一化,SignFi在每个训练周期后都对训练数据进行洗牌。 > > 图9a展示了批量归一化对识别准确率的影响。当网络看到训练阶段未展示的新用户数据时,批量归一化层有助于防止过拟合。如果不使用批量归一化,神经网络容易出现过拟合: > > 识别准确率仅为66%,而训练准确率接近100%。 > > 如果仅使用批量归一化但不洗牌训练数据,识别准确率仅提高1%, 而批量归一化结合洗牌则使识别准确率提高了22%。 **3.2.4 ReLU层。** ![](https://i-blog.csdnimg.cn/direct/478e92754a3b47649820b3434d205a85.png) > (ReLU)层为深度神经网络提供了快速有效的训练,因为其激活函数易于计算和优化。已经证明,它比传统的激活函数(如逻辑sigmoid和双曲正切)更有效,并且在卷积神经网络(CNN)中得到了广泛应用\[10\]。ReLU层对每个输入执行阈值操作,将任何小于零的输入值设置为零,如公式(12)所示。经过ReLU层后,输入的大小不会改变。存在一些改进的ReLU,如公式(13)中的Leaky ReLU和公式(14)中的Clipped ReLU,但在我们的实验中,它们的识别准确率低于ReLU。如图9b所示,ReLU的准确率比Leaky ReLU高6%至9%,比Clipped ReLU高6%至14%。可能的原因是: > > 当x \< 0时,Leaky ReLU会引入一些噪声,而当x \> ceiling(某个上限值,Clipped ReLU会丢失一些有用信息。 **3.2.5 平均池化层** > 平均池化层通过下采样减少与后续层的连接数量。它返回矩形区域内输入的平均值。SignFi的平均池化大小为3×3。由于不存在权重或偏置,因此它不具备任何学习能力。平均池化的主要目标是减少后续层需要学习的参数数量。它还有助于减少过拟合。最大池化返回所选输入的最大值,而不是平均值,但如图9c所示,其识别准确率比平均池化低10%。卷积层、ReLU层和平均池化层通常组合为一个单元。对于大型且复杂的数据集,可能存在多个这样的单元相互连接。我们在实验中尝试了使用两个和三个这样的单元,但识别准确率远低于使用一个单元的情况。 **3.2.6 Dropout层。** > Dropout层用于防止过拟合。它随机将一部分输入替换为零。换句话说,在训练过程中,它以给定的dropout概率随机丢弃一些输入以及所有相应的连接。如图9d所示,dropout概率为0.6的dropout层将识别准确率从59%提高到88%。图10展示了带有和不带有dropout的SignFi的训练和测试过程示例。不带dropout的SignFi容易出现过拟合,因为训练准确率达到了100%,而测试准确率仍然保持在50%左右,并且在第100次迭代后并没有显著提高。与平均池化层类似,dropout层不提供任何学习能力。 ![](https://i-blog.csdnimg.cn/direct/561bfaafe56e432c80bacd23bd9ce614.png) **3.2.7 全连接层。** > 全连接层将其所有神经元与前一层的神经元(即dropout层)相连接。这样做的目的是将之前各层学习到的所有特征结合起来,以对输入进行分类。全连接层的大小等于所有可能类别的数量,即在我们的实验中为276。 **3.2.8 Softmax层** > 在分类问题中,全连接层之后必须接一个softmax层,然后再接一个分类层。Softmax层对最后一个全连接层应用softmax函数 ![](https://i-blog.csdnimg.cn/direct/6bae239f410440b6b8cb3975f719a59a.png) ![](https://i-blog.csdnimg.cn/direct/24b494ca0e454cd6a3b0889b01f4a101.png) **3.2.9 分类层** ![](https://i-blog.csdnimg.cn/direct/f11ee78368874b138f9e59e311e5f714.png) > 分类输出层接收softmax函数的值,并使用交叉熵函数将每个输入分配到k个互斥类别中的一个。其中,![t_{ij}](https://latex.csdn.net/eq)表示第i个样本属于第j类,θ是参数向量。![y_j(x_i,\theta)](https://latex.csdn.net/eq)是第i个样本的输出,它是softmax函数的值。它表示网络将第i个输入与第j类相关联的概率,即 > > ![P(t_j=1|x_i)](https://latex.csdn.net/eq) *** ** * ** *** **四 实验** 在本节中,我们首先介绍了实验设置,包括测量布局和位移、数据收集程序以及WiFi设置。我们比较了SignFi与现有分类算法在不同环境下的表现。评估了两个性能 指标: **识别准确率和训练及测试的时间消耗。** 我们还检查了卷积、信号处理和采样率对SignFi识别准确率的影响。最后,我们对5名不同用户执行的150个手势进行了用户独立性测试。 **4.1 Experiment Setup** > 我们收集了276个日常生活中常用的手势的信道状态信息(CSI)轨迹。CSI轨迹是在实验室和家庭环境中测量的。 > > 图11展示了实验室和家庭环境的平面图和测量设置。实验室和家庭的尺寸分别为13m×12m和4.11m×3.86m。实验室周围有更多的物体,导致比家庭环境更复杂的多径环境。在实验室和家庭环境中,接入点(AP)和站点(STA)之间的距离分别为230cm和130cm。在家庭环境中,发射天线阵列与从AP到STA的方向垂直。在实验室环境中,发射天线阵列与直射路径之间的角度约为40度。 这两个环境的主要区别在于: > (1)房间尺寸, > > (2)AP与STA之间的距离, > > (3)发射天线阵列与直射路径之间的角度 > > (4)多径环境 ![](https://i-blog.csdnimg.cn/direct/9f425adebba1461b8fbb26dc82debe44.png) 表1: > 总结了我们在实验中使用的276个手势词,并按不同类别进行了划分。我们从\[35\]中选择了253个基础手势词。这些手势词对于美国手语(ASL)初学者来说最为重要,并且在日常生活中频繁使用。有些手势词包含不同的手势动作,我们只选择了其中一个具有相同意义的手势动作。我们没有选择由超过三个手势组成的复合手势。为了进行对比,我们还对\[21\]中的25个手势动作进行了实验。"电话"和"厨房"这两个手势词已经包含在253个基础手势动作中。因此,在我们的实验中总共测试了276个手势动作。 > > 我们从5名男性用户那里收集了信道状态信息(CSI)轨迹,这些用户在实验前不会手语。表2总结了数据收集的情况。不同用户对于同一个手势词可能会有不同的手势持续时间和略微不同的手/手指动作。对于用户1到4,我们仅在实验室环境中收集了CSI轨迹。这4名用户每人做了150个手势,每个手势重复10次,因此这4名用户共有6000个手势实例。对于用户5,我们在实验室和家庭环境中都收集了CSI轨迹。在实验室环境中,每个手势有20个实例;在家庭环境中,每个手势有10个实例。因此,用户5总共有8280个手势实例。276个手势词的CSI轨迹、标签和视频可供下载2 ![](https://i-blog.csdnimg.cn/direct/dfee84505c5447a18c24571943baddf8.png) **Station (STA)** **WiFi Access Point (AP).** > 12展示了实验室环境下的实验设置。在实验过程中,每位用户首先观看\[35\]中的视频,学习如何为一个单词打手势。一旦用户觉得能够流畅地完成手势动作,我们就开始为该手势动作收集信道状态信息(CSI)轨迹。用户在WiFi站点(STA)前重复手势动作,而STA则与附近的WiFi接入点(AP)交换数据包。当用户在STA屏幕上看到"Sign Starts ... 1"时,便开始做出第一个手势。同时,AP定期向STA发送802.11n数据包。在用户做出手势的过程中,STA会收集CSI测量值。用户重复相同的手势动作,直到STA屏幕上显示"Sign Starts ... \[n\]"。这里的n可以是11或21,具体取决于收集了10个还是20个手势实例。我们为所有手势动作重复这一过程,即观看视频、重复手势动作、收集CSI轨迹。 > WiFi接入点(AP)和站点(STA)是两台安装了Intel WiFi Link 5300的笔记本电脑。信道状态信息(CSI)测量是使用基于802.11n CSI工具\[12\]修改后的openrf\[16\]收集的。WiFi AP和STA在5GHz频段下工作,信道宽度为20MHz。需要注意的是,尽管20MHz的WiFi信道有52个子载波,但802.11n CSI工具仅提供30个子载波的CSI值。AP配备了3根外置天线,而STA配备了1根内置天线。发射功率固定在15dBm。所有实验都在存在其他WiFi信号的环境中进行。如图12所示,用户并不位于STA和AP之间的直射路径上。这是现实生活中的常见情况。这也使得手势识别变得更加困难,因为人体反射的信号强度远低于直射路径上的信号强度。训练和测试是在一台配备8核i7-4790 CPU(主频3.60GHz)和15.6GB内存的Linux台式机上进行的。 [SignFi \| Sign Language Recognition using WiFi and Convolutional Neural Networks](https://yongsen.github.io/SignFi/ "SignFi | Sign Language Recognition using WiFi and Convolutional Neural Networks") **4.2 SignFi与现有方法的比较** > > > 我们将SignFi与\[18, 21\]中使用的基于动态时间规整(DTW)的k近邻(kNN)分类算法进行了比较。在\[21\]中,使用的输入信号是接收信号强度(RSS)以及平均互相关最小的5个子载波的幅度和相位。我们将相同的输入信号输入到基于DTW的kNN中。不同发射天线的信道状态信息(CSI)轨迹为基于DTW的kNN提供了不同的结果。我们选择了识别准确率最高的发射天线。我们还使用了来自所有发射天线和所有30个子载波的CSI轨迹作为输入信号。为了检查输入信号对卷积神经网络(CNN)的影响,我们还使用了来自5个或30个子载波的CSI轨迹来运行CNN。表3总结了我们在比较中使用的每个标签的分类算法和CSI大小。在本节中,我们仅使用了用户5的数据。我们使用来自实验室的5520个实例、来自家庭的2760个实例以及来自笔记本+家庭环境的8280个实例,运行了5折交叉验证。 ![](https://i-blog.csdnimg.cn/direct/152993646ffe45a1b88a7e8e68b96690.png) **4.2.1 识别准确率。** ![](https://i-blog.csdnimg.cn/direct/e062e287dec64fe6a1a0afe258fa7a88.png) > 识别准确率定义为正确分类的实例数除以所有测试实例数的比例。图13展示了不同环境下的识别准确率结果。SignFi为所有数据集提供了高识别准确率。对于276个手势,SignFi在实验室、家庭和笔记本+家庭环境下的平均识别准确率分别为98.01%、98.91%和94.81%。 > > 在仅使用**5个子载波的**非多输入多输出(MIMO)CSI轨迹的情况下,卷积神经网络(CNN)在实验室、家庭和实验室+家庭环境下的平均准确率分别为80.74%、93.37%和83.00%。使用相同的输入(无论是5个子载波还是30个子载波的非MIMO CSI轨迹),**CNN在实验室和实验室+家庭环境下的准确率远高于基于DTW的k近邻(kNN)** > > 对于实验室+家庭环境,尽管实验室和家庭的实验设置差异很大,但SignFi的准确率仍高达94.81%。对于25个手势,所有分类算法在不同输入信号下的三个环境设置中的识别准确率均超过95%。对于276个手势,基于DTW的kNN在实验室和笔记本+家庭环境下的准确率大幅下降。 > > 在实验室环境下,使用5个子载波和30个子载波的CSI轨迹的基于DTW的kNN的平均识别准确率分别仅为68.33%和70.20%。添加MIMO CSI测量进一步将平均准确率降低到51.93%和48.30%。 > > 主要原因是实验室具有复杂的多径环境,对MIMO产生了严重影响。 > > 另一个原因是实验室中WiFi接入点(AP)和站点(STA)之间的距离比家庭环境更长,因此反射信号的强度更低。这导致实验室环境下的噪声信号更多。 > > 基于DTW的kNN在家庭环境下的平均准确率提高到82%。 > > 在使用MIMO和30个子载波的CSI轨迹的情况下,基于DTW的kNN的准确率提高到88.90%。 > > 原因是家庭环境的多径信号较少,且AP和STA之间的距离较短。尽管基于DTW的kNN在使用MIMO和30个子载波的CSI轨迹时达到了88.90%的准确率,但完成测试所需的时间极长。训练和测试的时间消耗将在下一小节中展示。为了更好地理解手势识别,我们将276个手势分为不同的类别,并检查每个类别的识别准确率,如图14所示。 > > 图14中的所有评估结果均来自实验室+家庭环境。对于276个手势,每个类别中每组手势的数量如图2中的图3所示。每个类别中同一组的手势具有相似的模式。评估结果表明: > > (1)分类算法是否能区分相似的手势; > > (2)哪些手势难以识别。 > > SignFi在所有类别的各组中都具有高准确率。这意味着即使对于模式非常相似的手势,SignFi仍然能够区分它们。 > > 对于图14a中的手势类型和图14b中的路径移动类型,各组之间没有显著差异。 > > 对于图14c,当有三个移动/前景手指("mrp"和"imr")时,基于DTW的kNN的准确率最低。 > > 对于图14d中的一般手部位置,无论是SignFi还是基于DTW的kNN, > > 主导手靠近非主导手的手势最难识别。 > > 对于"Hand"的一般手部位置和"Neck"的特定手部位置,使用5个子载波和30个子载波的CSI时,基于DTW的kNN的识别准确率分别仅为40%和51%。 > > 对于"HeadTop"的特定手部位置,基于DTW的kNN的准确率与SignFi相当,如图14e所示。在每个类别的所有其他组中,基于DTW的kNN的准确率远低于SignFi。 ![](https://i-blog.csdnimg.cn/direct/8e46b6435aa341e9a2e13b4462ce4e5b.png) 4.2.2 训练与测试的时间消耗。 > 图15展示了不同信道状态信息(CSI)输入下,不同分类算法的训练与测试时间消耗。SignFi的测试时间远低于采用动态时间规整(DTW)的k近邻(kNN)算法。对于采用DTW的kNN算法,使用5个子载波的非多输入多输出(MIMO)CSI轨迹时,每个手势的测试时间为33.36毫秒。如果输入包含30个子载波的MIMO CSI轨迹,则测试时间激增到5,147.20毫秒。而SignFi的测试时间仅为0.62毫秒。 > 然而,SignFi的训练时间确实比采用DTW的kNN算法长。采用DTW的kNN算法的最大训练时间仅为0.046毫秒。SignFi的每个手势需要8.28毫秒用于CSI处理和卷积神经网络(CNN)训练。使用5个子载波和30个子载波的非MIMO CSI轨迹时,CNN完成训练分别需要0.05毫秒和2.12毫秒。由于训练通常可以离线进行,而测试必须实时完成,因此减少测试时间更为重要。因此,与采用DTW的kNN算法相比,SignFi在实时实现方面更具实用性。 ![](https://i-blog.csdnimg.cn/direct/53ae72f174c74d6f97d4cc6e1de8ac20.png) *** ** * ** *** **五 More Discussions on SignFi** ![](https://i-blog.csdnimg.cn/direct/4bba3d97028a4a7893f7c93ee9203004.png) ![](https://i-blog.csdnimg.cn/direct/ce04e5c5ce46461586a0d5699c140b78.png) 在本节中,我们研究了卷积、信号处理和采样率对SignFi识别精度的影响。我们使用来自用户5的276个手势信号的数据进行了5折交叉验证。 **4.3.1 卷积的影响** 我们使用卷积神经网络(CNN)作为分类算法的原因是,与其他没有卷积层的神经网络相比,CNN具有更高的识别精度。如图16a所示,对于实验室、家庭以及实验室+家庭环境,不使用卷积的SignFi的识别精度分别为84.64%、81.70%和70.34%。对于实验室+家庭环境,由于卷积的使用,精度提高了24.47%,这是三个环境中提高幅度最大的。评估结果表明,卷积层对SignFi的识别精度有显著影响。 **4.3.2 信号处理的影响** 我们还检查了SignFi信号处理(从原始信道状态信息(CSI)测量中去除噪声)的影响,如图16所示。不进行SignFi信号处理时,实验室、家庭以及实验室+家庭环境的平均识别精度分别为95.72%、93.98%和92.21%。对于实验室环境,SignFi信号处理带来的精度提升最高,为4.93%。原因是SignFi信号处理仅去除随机相位偏移,而不滤除其他噪声信号。实验室和家庭环境中接入点(AP)和站点(STA)的布局、周围环境和位移差异很大,导致噪声信号差异很大。 **相位偏移: 还有一种方案是共轭天线相乘算法,用的比较普遍** **4.3.3 采样率的影响。** > 另一个影响SignFi识别精度的重要因素是CSI采样率。对于之前所有的评估结果,WiFi站点大约每5毫秒测量一次CSI。我们改变了从实验室环境收集的CSI数据集的采样时间间隔,并再次对SignFi进行了5折交叉验证。评估结果如图16b所示。 > > 当采样时间间隔从5毫秒增加到10毫秒时,平均识别精度从98.01%下降到95.72%。考虑到有276个手势的5,520个实例,使用10毫秒的采样间隔时,SignFi仍然具有很高的识别精度。 > > 当采样时间间隔增加到20毫秒时,平均识别精度下降到91.12%。基于这些结果,为了获得高识别精度,采样时间间隔不应大于20毫秒。 > > 对于40毫秒和80毫秒的采样间隔,平均精度进一步下降到87.05%和84.17%。 **4.3.4 用户独立性测试** > ' 本节使用来自5个不同用户的150个手势信号的CSI轨迹进行了用户独立性测试。总共有7,500个手势实例。我们使用来自所有5个用户的CSI轨迹进行了自测、5折交叉验证和留一受试者交叉验证。对于自测(即训练和测试仅包括来自同一用户的CSI轨迹),每个用户的识别精度都在98%以上, > > 如图17a所示。在4.4.1节中,我们仅使用用户1到4的CSI轨迹来分离用户5的影响。如表2所示,用户5的CSI轨迹是在用户1到4之前三到四个月收集的。我们无法为用户1到4和用户5使用完全相同的实验设置,如笔记本电脑的位移、周围物体、桌子和椅子的布置等。用户1到4的实验设置几乎相同,但与用户5不同。在4.4.2节中,我们还通过包含用户5的CSI轨迹来展示了不同数据采集日期和设置的影响。 **4.3.5 数据采集日期和设置相似的用户。** > 我们首先使用用户1到4的CSI轨迹进行了5折交叉验证。也就是说,不同用户的CSI轨迹被混合在一起,并随机分为训练集和测试集。平均识别精度为96.68%,如图17b所示。这意味着SignFi对不同用户具有鲁棒性,因为这些用户具有不同的身体尺寸和手势持续时间。对于留一受试者交叉验证,识别精度在73.73%到79.80%之间,平均识别精度为76.96%。与5折交叉验证相比,**留一受试者交叉验证的识别精度下降了20%。** 4.4.2 数据采集日期和设置不同的用户。 > 当包含用户5的CSI轨迹时,5折交叉验证的识别精度下降到86.66%,如图17c所示。这意味着实验设置对SignFi有显著影响。对于留一受试者验证,平均精度下降到67.36%。用户1到3的精度分别下降了13.2%、4%和4.7%。 > > 用户5的识别精度仅为49.3%,这在实际应用中是不够的,但与随机算法(仅具有1/150=0.06%的精度)相比仍然非常好。从评估结果可以看出,不同的用户和实验设置对SignFi有很大影响。当有新用户时,我们可能需要用户首先进行一些手势训练神经网络,以获得良好的识别精度。 *** ** * ** *** **五 相关工作** **5.1 Sign Language Recognition** > 存在许多使用不同信号的手语识别系统。我们在表4中对比了不同的手语识别技术。由于手语识别需要手势识别,我们在表5中总结了手势识别技术。表4简要概述了手语识别技术。有许多基于视觉的手语识别系统使用摄像头\[34\]或Kinect传感器\[13, 28, 36, 47\]。例如,SignAll原型\[34\]使用3个摄像头和1个深度传感器来追踪手势。在\[47\]中,使用Kinect传感器、彩色手套和加速度计来识别26个字母。在\[13, 28, 36\]中,仅使用Kinect传感器来识别手势。论文\[36\]能够识别73个基础手势,准确率为86.0%。这些基于视觉的系统会受到光照条件的影响。最近,许多论文使用Leap Motion传感器进行手语识别\[6, 8, 20, 23, 24, 30, 36, 47\]。如表4所示,这些系统是在数字和字母手势上进行测试的。这些手势仅涉及简单的手指姿势。基于Leap Motion的系统只能识别手指手势,并且手必须位于传感器附近的一个很小区域内。一些手语识别系统使用传感器,如SignAloud中的运动传感器\[26\]和\[32\]中的表面肌电图(sEMG)传感器,但它们具有侵入性,需要将传感器附着在手指上。 > 在\[18, 21, 33\]中,使用WiFi信号以非侵入性的方式识别手势。但它们只能识别简单的美式手语(ASL)手势:在\[33\]中识别5个手势,在\[18\]中识别9个数字手指姿势,在\[21\]中识别25个手/手指手势。SignFi也使用WiFi信号,能够识别276个非常复杂的手势,准确率为97.03%。在表4中列出的所有现有系统中,只有\[36\]在相对大量的复杂手势上进行了评估。它能够识别73个手势,准确率为86.0%。这73个手势不包括在视觉上看起来相似的手势。SignFi能够区分具有非常相似的手/臂/手指动作的更复杂手势,并且比\[36\]中基于Kinect的解决方案具有更高的准确性。 > > 手语识别的一个重要部分是手势识别。表5对比了使用不同信号的手势识别技术。运动传感器,如\[27, 43\]中使用的加速度计,被广泛用于手势识别。一些论文使用加速度计和陀螺仪来识别手指手势\[44, 45\]。一款带有加速度计和陀螺仪的智能手表能够测量肌腱运动,并以98%的准确率识别37种(13种手指手势、14种手势和10种臂势)手势\[45\]。然而,手指手势必须将手腕和手臂固定在椅子扶手上,而手势则必须将手臂固定。因此,手指手势仅涉及手指动作,手势仅涉及手腕动作。这对于手势识别来说并不现实,因为手势可能包含所有手、臂和手指的动作。在\[3--5\]中使用磁传感器,在\[32\]中使用sEMG传感器来识别手指手势,但这些方法需要将传感器附着在签字者的手指上。基于传感器的手势识别系统具有侵入性。 ![](https://i-blog.csdnimg.cn/direct/b7e0e805b6874688912e7b48518ce07b.png) **5.2 Gesture Recognition** > 许多手势识别系统使用音频或无线信号作为输入。SoundWave\[11\]和Audio-Gest\[31\]使用音频信号以高达95%的准确率识别简单的手势。音频信号在\[25, 42, 46\]中被用来追踪二维手指动作,跟踪精度分别为8毫米、1厘米和4.6毫米。对于基于音频的手势识别,设备与手/手指之间的距离必须非常短(通常小于20厘米)。有许多使用无线信号的手势识别系统,包括全球移动通信系统(GSM)\[49\]、电视\[15\]、无线射频识别(RFID)\[15, 41\]、WiFi\[1, 18, 21, 29, 33, 37, 38, 40, 48\]、调频连续波(FMCW)\[22\]和毫米波\[19\]。手语识别需要区分手指级的手势/姿势,而SlideSwipe\[49\]、WiSee\[29\]、WiDraw\[37\]、WiGest\[1\]或WiAG\[40\]并未对此进行测试。虽然其他基于无线的手势识别系统可以检测到手指级的手势,但它们都没有在超过25个手势上进行测试。 > > SignFi能够使用WiFi信号以超过94%的准确率识别276个手势。 ![](https://i-blog.csdnimg.cn/direct/942d0165aa0549eb9cfd1c99a15da269.png) *** ** * ** *** 七 结论 本文提出了一种名为SignFi的手势语识别系统,该系统利用WiFi信号识别常用手势语。SignFi通过WiFi数据包测量信道状态信息(CSI),并采用9层卷积神经网络(CNN)作为分类算法。在实验室、家庭和实验室+家庭环境中,SignFi的平均识别准确率分别为98.01%、98.91%和94.81%。对于5名不同用户完成的150种手势语的7500个实例,SignFi的识别准确率为86.66%。 我们已证明SignFi在两个环境和五名用户中均表现出鲁棒性。然而,还有许多其他因素可能影响识别性能。例如,人与接入点(AP)/站点(STA)之间的距离可能不同。人与AP/STA的相对方向和位置也可能发生变化。周围可能存在多个人或其他移动物体。人或其他物体可能会阻挡从AP到STA的直线路径。我们计划收集更多CSI轨迹,并考虑这些因素进行测试。 另一项重要任务是句子级手势语识别。在本文中,每个手势语的CSI测量都是手动分割的。当CSI轨迹不是手动分割时,这为句子级手势语识别带来了许多挑战。**我们将自动时间分割留给未来的工作。具有长短期记忆(LSTM)功能的循环神经网络(RNN)可能有助于实现自动句子级手势语识别。** [CSI Feature Extraction \| Hands-on Wireless Sensing with Wi-Fi: A Tutorial](https://tns.thss.tsinghua.edu.cn/wst/docs/features/ "CSI Feature Extraction | Hands-on Wireless Sensing with Wi-Fi: A Tutorial")

相关推荐
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab1 天前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab1 天前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP1 天前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年1 天前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
九狼1 天前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS1 天前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区2 天前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤
知识浅谈2 天前
教你如何用 Gemini 将课本图片一键转为精美 PPT
人工智能
Ray Liang2 天前
被低估的量化版模型,小身材也能干大事
人工智能·ai·ai助手·mindx