一种基于CSI相位差的手势识别系统及识别方法转让专利

申请号 : CN201910609062.5

文献号 : CN110502105B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王拥军马维华

申请人 : 南京航空航天大学

摘要 :

本发明公开了一种基于CSI相位差的手势识别系统及识别方法,其中,无线信号接收端监听无线信道,获取无线信号发射端发送的数据,并将采集到的数据发送给服务器;服务器对多个无线信号接收端采集到的数据进行解析、预处理、相位校准以及实时匹配,进而给出分类结果,并将分类结果通过网络发送给相应设备,实现对相应设备的控制;同时,服务器会将识别的结果通过日志的形式保存在服务器本地数据库中,用于数据分析、数据挖掘和查询功能。本发明充分利用CSI的相位信息以及多径效应和MIMO系统的空间多样性,不仅能够识别中心链路上的手势动作,还能够识别距离中心链路较远的微弱手势动作,实现无死角感知。

权利要求 :

1.一种基于CSI相位差的手势识别方法,其特征在于,包括以下步骤:(1)服务器接收到来自无线信号接收端采集的原始CSI数据;

无线信号接收端接收无线信号发射端向无线信道注入的数据,并利用Atheros-CSI-Tool提取原始CSI数据;

(2)服务器对接收到的原始CSI数据进行解析,提取相位信息,对相位进行解卷绕;具体为:服务器利用Atheros-CSI-Tool解析二进制流,获得Nr×Nc×M个子载波的原始CSI数据,其中Nr表示接收天线数量,Nc表示发射天线数量,M表示子载波个数,并计算所有子载波的相位;然后分别对每一组M个子载波采用下式进行解卷绕;

其中, 表示子载波的相位;

(3)服务器通过一个线性变化算法对相位进行校准,接着借助MIMO技术获得无线接收端两根天线对应的相位差;相位校准的具体方法为:无线信号接收端测量到第m个子载波的相位 表示为:

其中, 表示相位真实值,δ表示时间偏移,β表示未知的相位偏移,Z表示测量噪声,km表示子载波索引,N表示FFT点数;

定义两个系数a和b,分别表示测量相位的斜率和均值,如下:

由于子载波索引是对称的, 因此

令 得:

(4)对步骤(3)的相位差进行滤波处理,包括异常点去除、环境噪声去除和高频噪声去除;

(5)通过所有子载波的平均绝对偏差选择变化最大的子载波;

(6)通过基于方差的滑动窗口判断手势的起始点和结束点,从而将手势动作从时间序列中分割出来;具体的:在进行手势特征匹配之前,首先需要对采集到的时间序列进行分割,在无手势动作时,相位差值保持在一个恒定值;有手势动作时,相位差值突然增大或减小;采用基于方差的滑动窗口进行分割,在静止状态,滑动窗内的方差很小,基本为零;在有手势动作时,滑动窗内的方差突然增大,当超过设定阈值时,将该滑动窗标记为起始帧;当滑动窗内的方差突然减小,并在连续一段时间内低于设定阈值,则将方差突然减小的滑动窗标记为结束帧;

(7)采集手势数据,并进行标记,用于步骤(8)的模式匹配;

(8)采用动态时间规整DTW算法将待匹配的手势与步骤(7)标记好的手势数据进行特征匹配;具体的:假设有两段长度分别为m和n的手势序列Q=(q1,q2,…qm)和C=(c1,c2,…cn),其中Q为数据库中存储的经过标记的手势,C为待匹配手势,匹配过程如下:(81)构造m×n的距离矩阵Dmn,距离矩阵的每个元素dij为qi和cj的欧式距离,通过下式计算:dij=(qi-cj)2;

其中,1≤i≤m,1≤j≤n;

(82)从D11开始根据动态规划求解规整路径,得出最短的累计距离,即两段手势的最大相似度;

(83)重复步骤(81)和步骤(82),直到遍历所有的手势模板,将最小的累计距离对应的手势标记作为分类结果;

(9)输出分类结果。

2.根据权利要求1所述的一种基于CSI相位差的手势识别方法,其特征在于,步骤(4)具体包括以下步骤:(41)通过Hampel滤波器对步骤(3)中的相位差进行异常点去除;

(42)通过Savitzky-Golay滤波器对步骤(3)中的相位差进行环境噪声去除;

(43)通过小波滤波对步骤(3)中的相位差进行高频噪声去除。

3.根据权利要求1所述的一种基于CSI相位差的手势识别方法,其特征在于,步骤(7)具体为:首先初始化每个动作对应的标记值,然后根据实际的采集手势动作,赋予步骤(6)每个时间序列一个对应的标记值。

4.根据权利要求1所述的一种基于CSI相位差的手势识别方法,其特征在于,其采用基于CSI相位差的手势识别系统进行手势识别,系统包括服务器、无线信号发射端和多个无线信号接收端,其中,无线信号接收端监听无线信道,获取无线信号发射端发送的数据,并将采集到的数据发送给服务器;服务器对多个无线信号接收端采集到的数据进行解析、预处理、相位校准以及实时匹配,进而给出分类结果,并将分类结果通过网络发送给相应设备,实现对相应设备的控制;同时,服务器会将识别的结果通过日志的形式保存在服务器本地数据库中,用于数据分析、数据挖掘和查询功能。

5.根据权利要求4所述的一种基于CSI相位差的手势识别方法,其特征在于:无线信号发射端和接收端均为支持Atheros 95系列网卡的设备,均工作于Monitor模式下。

6.根据权利要求4所述的一种基于CSI相位差的手势识别方法,其特征在于:无线信号发射端通过注入命令向无线信道注入数据,而各个无线信号接收端则先将MAC地址设置为与发射端一样,通过Atheros-CSI-Tool工具提取CSI原始数据;同时,各个无线信号接收端通过TCP协议与服务器建立可靠的连接,将采集到的CSI原始数据发送给服务器处理。

说明书 :

一种基于CSI相位差的手势识别系统及识别方法

技术领域

[0001] 本发明涉及无线网络和人体行为识别领域,尤其涉及一种基于CSI相位差的手势识别系统及识别方法。

背景技术

[0002] 随着人机交互(HCI)技术的发展,人体行为的感知和分析成为实现更高层次人机交互的重要一环,尤其是对手势等肢体动作的识别和理解。在人体行为识别和人机交互领域,对人体手势动作的检测及识别在智能家居、虚拟现实(VR)以及沉浸式游戏中具有非常重要的作用。在智能家居领域,对人体手势动作的检测能够实现隔空家具控制,为用户节省大量的时间和人力成本,使家居生活变得更加智能。同时,在虚拟现实以及沉浸式游戏中,用户无需佩戴任何专用传感器就可以实现对虚拟物品和游戏的控制,既节省了成本,在用户体验方面也得到大幅度提升。如此,用户仅需动动手指就可以实现对现实和虚拟物体的控制。由于无线信号本身属于电磁波,信号的传播具有折射,散射和反射等特性,因此与传统的摄像头和红外线相比,覆盖范围更广,不受温度,光线强度和视距的影响。同时,由于无线基础设施完善,在普适性和性价比方面具有很大的优势。
[0003] 当前比较流行的手势识别系统多数是基于计算机视觉、红外线和专用可穿戴传感器,借助机器学习、数字信号处理等方法达到手势识别的目的。由于客观因素,上述的方法存在种种不足。传统基于红外线的手势识别方法由于视距、温度等因素不利于部署。随着深度学习的发展,基于计算机视觉的识别方法在准确率和稳定性方面得到大幅度提升,但其易受光照条件的限制,且计算量和功耗较大。而基于专用传感器的识别方法需要使用者能够熟悉并使用具有传感器的智能设备,这对于多数老年人来说,是一件很困难的事。
[0004] 现有的基于无线信号的人体手势动作检测系统都是提取无线信号的信号强度,具体来说是RSSI或者CSI的振幅值,通过分析并提取手势动作对信号强度的影响,使用模式匹配或者机器学习的方法实现手势的识别。如刘东东,王亮和李伟等提出的CN105573498B。这种方法是典型的采用CSI的振幅值,通过归一化、滤波和模式匹配识别手势动作。这种方法最大的缺陷是局限于收发端的中心链路,对于离中心链路较远的微弱手势动作没有检测能力。又如肖江,王羽西和金海等提出的CN107633227A。这种方法也是通过提取CSI的振幅值,通过机器学习方法实现手势动作的分割和识别。但是,该方法同样不具备非中心链路上的微弱手势信号识别能力,当用户距离设备较远时,手势动作已经完全淹没在噪声当中,无法识别。以上两种方法均未充分利用CSI的相位信息。

发明内容

[0005] 发明目的:设计并实现了一种基于CSI相位差的手势识别系统及识别方法。本发明的技术方案针对现有基于CSI振幅的手势识别系统的弱点,解决了非中心链路上的微弱信号识别问题,特别是人体手势的微弱信号,摆脱了无线信号发射端和接收端的中心链路限制,充分利用多径效应和MIMO系统的空间多样性,能够在更广的覆盖范围对更微弱的信号进行识别,更加具有普适性,使得基于CSI的手势识别应用范围更加广泛。
[0006] 技术方案:为实现上述发明目的,本发明采用以下技术方案:
[0007] 一种基于CSI相位差的手势识别系统,包括服务器、无线信号发射端和多个无线信号接收端,其中,无线信号接收端监听无线信道,获取无线信号发射端发送的数据,并将采集到的数据发送给服务器;服务器对多个无线信号接收端采集到的数据进行解析、预处理、相位校准以及实时匹配,进而给出分类结果,并将分类结果通过网络发送给相应设备,实现对相应设备的控制;同时,服务器会将识别的结果通过日志的形式保存在服务器本地数据库中,用于数据分析、数据挖掘和查询功能。
[0008] 可选的,无线信号发射端和接收端均为支持Atheros 95系列网卡的设备,均工作于Monitor模式下。
[0009] 可选的,无线信号发射端通过注入命令向无线信道注入数据,而各个无线信号接收端则先将MAC地址设置为与发射端一样,通过Atheros-CSI-Tool工具提取CSI原始数据;同时,各个无线信号接收端通过TCP协议与服务器建立可靠的连接,将采集到的CSI原始数据发送给服务器处理。
[0010] 本发明还提供了一种基于CSI相位差的手势识别方法,包括以下步骤:
[0011] (1)服务器接收到来自无线信号接收端采集的原始CSI数据;
[0012] 无线信号接收端接收无线信号发射端向无线信道注入的数据,并利用Atheros-CSI-Tool提取原始CSI数据;
[0013] (2)服务器对接收到的原始CSI数据进行解析,提取相位信息,对相位进行解卷绕;
[0014] (3)服务器通过一个线性变化算法对相位进行校准,接着借助MIMO技术获得无线接收端两根天线对应的相位差;
[0015] (4)对步骤(3)的相位差进行滤波处理,包括异常点去除、环境噪声去除和高频噪声去除;
[0016] (5)通过所有子载波的平均绝对偏差选择变化最大的子载波;
[0017] (6)通过基于方差的滑动窗口判断手势的起始点和结束点,从而将手势动作从时间序列中分割出来;
[0018] (7)采集手势数据,并进行标记,用于步骤(8)的模式匹配;
[0019] (8)采用动态时间规整DTW算法将待匹配的手势与步骤(7)标记好的手势数据进行特征匹配;
[0020] (9)输出分类结果。
[0021] 进一步的,步骤(2)具体为:服务器利用Atheros-CSI-Tool解析二进制流,获得Nr×Nc×M个子载波的原始CSI数据,其中Nr表示接收天线数量,Nc表示发射天线数量,M表示子载波个数,并计算所有子载波的相位;然后分别对每一组M个子载波采用下式进行解卷绕;
[0022]
[0023] 其中, 表示子载波的相位。
[0024] 进一步的,步骤(3)中相位校准的具体方法为:
[0025] 无线信号接收端测量到第m个子载波的相位 表示为:
[0026]
[0027] 其中, 表示相位真实值,δ表示时间偏移,β表示未知的相位偏移,Z表示测量噪声,km表示子载波索引,N表示FFT点数;
[0028] 定义两个系数a和b,分别表示测量相位的斜率和均值,如下:
[0029]
[0030]
[0031] 由于子载波索引是对称的, 因此
[0032] 令 得:
[0033]
[0034] 进一步的,步骤(4)具体包括以下步骤:
[0035] (41)通过Hampel滤波器对步骤(3)中的相位差进行异常点去除;
[0036] (42)通过Savitzky-Golay滤波器对步骤(3)中的相位差进行环境噪声去除;
[0037] (43)通过小波滤波对步骤(3)中的相位差进行高频噪声去除。
[0038] 进一步的,步骤(6)具体为:在进行手势特征匹配之前,首先需要对采集到的时间序列进行分割,在无手势动作时,相位差值保持在一个恒定值;有手势动作时,相位差值突然增大或减小;采用基于方差的滑动窗口进行分割,在静止状态,滑动窗内的方差很小,基本为零;在有手势动作时,滑动窗内的方差突然增大,当超过设定阈值时,将该滑动窗标记为起始帧;当滑动窗内的方差突然减小,并在连续一段时间内低于设定阈值,则将方差突然减小的滑动窗标记为结束帧。
[0039] 进一步的,步骤(7)具体为:
[0040] 首先初始化每个动作对应的标记值,然后根据实际的采集手势动作,赋予步骤(6)每个时间序列一个对应的标记值。
[0041] 进一步的,步骤(8)中假设有两段长度分别为m和n的手势序列Q=(q1,q2,…qm)和C=(c1,c2,…cn),其中Q为数据库中存储的经过标记的手势,C为待匹配手势,匹配过程如下:
[0042] (81)构造m×n的距离矩阵Dmn,距离矩阵的每个元素dij为qi和cj的欧式距离,通过下式计算:
[0043] dij=(qi-cj)2;
[0044] 其中,1≤i≤m,1≤j≤n;
[0045] (82)从D11开始根据动态规划求解规整路径,得出最短的累计距离,即两段手势的最大相似度;
[0046] (83)重复步骤(81)和步骤(82),直到遍历所有的手势模板,将最小的累计距离对应的手势标记作为分类结果。
[0047] 有益效果:与现有技术相比,本发明针对现有基于CSI信号的手势识别系统的弱点,即对手势等微弱信号的感知距离短,感知能力弱,提出使用CSI相位差,从收集到的相位差信息中提取出手势模式的方法识别出不同类型的手势动作。其有益效果在于此种方法不需要局限于发射端和接收端的中心链路,能够对距离设备发射端和接收端较远的微弱手势信号进行识别,感知距离更远,感知能力更强,这是目前现有使用信号强度的方法无法做到的。同时,该方法无需使用机器学习方法进行训练,所需采集的数据量小,节省了数据采集时间,准确率高,以此达到信号覆盖范围的扩展和微弱信号的识别,完成对手势的快速识别。

附图说明

[0048] 图1是距离中心链路5米处画圆手势的CSI振幅变化情况的示意图;
[0049] 图2是距离中心链路5米处画圆手势在接收端天线1上的CSI相位变化情况的示意图;
[0050] 图3是距离中心链路5米处画圆手势在接收端天线2上的CSI相位变化情况的示意图;
[0051] 图4是本发明系统结构的示意图;
[0052] 图5是本发明实施流程的示意图;
[0053] 图6是原始相位与校准后的相位对比示意图;
[0054] 图7是异常点与环境噪声去除后的相位差对比示意图;
[0055] 图8是进一步利用小波滤波后的相位差对比示意图;
[0056] 图9是不同子载波的MAD值的示意图。

具体实施方式

[0057] 下面结合附图和具体实施例对本发明的技术方案进行详细说明。
[0058] 随着无线网络的普及,Wi-Fi设备已经遍布我们日常生活。本发明利用从商用Wi-Fi设备提取的信道状态信息(Channel State Information,CSI),能够实现在无线信号发射端和接收端的中心链路和非中心链路上检测和识别人体的手势动作。该发明的好处在于:不需要额外的设备,仅家用路由器即可实现手势识别,成本较低,同时覆盖范围广,不受环境因素,如温度,光照条件等影响,即使是照明条件不佳的地方,系统仍然能够很好地检测到手势动作。相比于当前比较流行的方法而言,更具有普适性和鲁棒性,相比于同样基于CSI信号的手势识别方法而言,能够检测到距离更远、非中心链路上的微弱手势信号,而不仅仅局限在收发端的中心链路上。
[0059] 本发明的基本原理是利用在无线信号的覆盖范围内,人体的不同手势动作会对CSI的相位差产生不同影响,我们根据不同手势动作的特征,使用模式匹配算法实现手势动作的检测和识别。相对于以上两种方法而言,本发明充分利用CSI的相位信息以及多径效应和MIMO系统的空间多样性,不仅能够识别中心链路上的手势动作,还能够识别距离中心链路较远的微弱手势动作,实现无死角感知。
[0060] 本发明根据人体的手势动作会对无线信号产生扰动,采用商用Wi-Fi设备收集CSI数据,充分利用多径效应和MIMO系统的空间多样性,使用相位校准、信号处理和模式匹配的方法在无线发射端和接收端的中心链路和非中心链路上对微弱手势信号进行检测和识别。
[0061] 图1是距离中心链路5米处画圆手势的CSI振幅变化情况,图2和图3分别是距离中心链路5米处画圆手势在接收设备不同天线上的CSI相位变化情况。从两幅图的对比中可以看出CSI相位能够感知到更远距离的微弱手势信号,而CSI振幅的感知能力有限。
[0062] 图4是本发明的识别系统结构图,其中无线信号发射端和接收端均为支持Atheros 95系列网卡的设备,可以是家用无线路由器或者定制设备,且均有三根无线天线,均工作于Monitor模式下。在手势等行为识别方面,Monitor模式能够根据需要对发射端和接收端设备的系统参数进行调整,有利于提高识别准确率。本发明无线信号接收端图中仅列出2个,实际应用中可以根据需要进行扩展,扩大识别范围。该系统包含系统服务器104,主要负责对无线信号接收端102和103采集到的数据进行解析、预处理、相位校准以及实时匹配,进而给出分类结果。识别服务器会将识别结果通过网络发送给相应设备,实现对相应设备的控制。同时,服务器会将识别的结果通过日志的形式保存在服务器本地数据库中,用于数据分析、数据挖掘和查询等功能。无线信号接收端的主要功能就是监听信道,获取无线信号发射端发送的数据,并将采集到的数据通过TCP协议发送给服务器。
[0063] 这种系统架构最大的好处是,充分利用了服务器强大的计算能力,将所有数据处理流程集中在服务器端,接收端的负载相对较小,只需要采集数据并发送给服务器。这样可以降低对接收端的物理性能要求,使得接收端的体积更小,价格更便宜,性价比更高。
[0064] 识别系统中的无线发射端和接收端通过无线信道进行通信,接收端与服务器之间可以通过有线网或者无线网进行通信。无线信号发射端通过注入命令向无线信道注入数据,而各个无线信号接收端则先将MAC地址设置为与发射端一样,通过Atheros-CSI-Tool工具提取CSI原始数据。同时,各个无线信号接收端通过TCP与服务器建立可靠的连接,将采集到的原始数据发送给服务器处理。
[0065] 图5是本发明的一种具体实施流程:
[0066] 步骤201:服务器接收到来自无线信号接收端采集的原始CSI数据;
[0067] 无线信号接收端接收无线信号发射端向无线信道注入的数据,并利用Atheros-CSI-Tool提取原始CSI数据。
[0068] 步骤202:服务器利用Atheros-CSI-Tools提供的函数接口对接收到的原始CSI进行解析,获得a+b·j复数形式的CSI,其中a为实部,b为虚部,j为虚数单位。通过 计算相位信息,接着根据下式对相位进行解卷绕。
[0069]
[0070] 其中, 表示子载波的相位。
[0071] 步骤203:服务器通过一个线性变化算法对相位进行校准。接着,借助MIMO技术,将两根接收天线上获得的相位相减获得相位差。
[0072] 步骤204:通过Hampel滤波器对步骤(203)中的相位差进行异常点去除。Hampel滤波器原理如下:对于测量数据X=(x1,x2,…xn),首先计算X的中位数Median,然后计算X中每一个测量值与该中位数的绝对差值,即|xi-Median|,将得到的序列记为Y。计算Y的中位数,这个中位数通常称为绝对中位差(Median Absolute Deviation,MAD)。定义标准分数(standard score)Zi`:
[0073]
[0074] 一般当一个测量值的Z值超过3时就认为该值为异常值。
[0075] 步骤205:通过Savitzky-Golay滤波器对步骤(204)中去除异常点的相位差进行环境噪声去除。Savitzky-Golay滤波器原理如下:对于一组测量数据X=(x1,x2,…xn),设滤波窗口为s(s≤n,本发明的滤波窗口设为7个测量数据点),多项式次数为m(本发明采用3次多项式),采用m次多项式对窗口内的数据进行拟合,对X进行拟合后的数据p(n)为:
[0076]
[0077] 其中,xk(k=0,1,...,m)是多项式p(n)的k次幂项,ak表示多项式k次幂项xk的系数。
[0078] 步骤206:通过小波滤波对步骤(205)中去除环境噪声的相位差进行高频噪声去除。小波滤波原理如下:小波滤波通常包括三个步骤:分解、设置软阈值和重构。首先,选取coif5为小波基,对相位差进行5层分解。第j层的近似系数λ(j,k)和细节系数γ(j,k)分别通过下面两个式子计算:
[0079]
[0080]
[0081] 其中,x[n]表示离散的相位差信号, 表示尺度函数,ψj,k(n)、ψj+1,k(n)为小波函数,L表示x[n]的长度。接着,使用一个软阈值对γ(1,k),γ(2,k),…γ(j,k)进行高频噪声去除。最后,通过下面的式子重构x[n]。
[0082]
[0083] 其中,λ(j,k)表示近似系数,γ(j,k)表示细节系数,j、k∈Z,j决定了幅度和狭窄程度,k决定了其沿X轴方向的位置。
[0084] 步骤207:通过所有子载波的平均绝对偏差选择变化最大的子载波,平均绝对偏差大的子载波变化大,平均绝对偏差小的子载波变化小。
[0085] 步骤208:根据经验设定一个δt(50≤δt≤150个测量数据)大小的滑动窗口,每次滑动一个窗口δt的大小,通过基于方差的滑动窗口判断手势的起始点和结束点,当滑动窗口内的相位差方差突然增大时将滑动窗口左侧标记为起始点,当滑动窗口内的相位差方差突然减小并在连续一段时间内保持在很小的值,则将突然减小的滑动窗口右侧标记为结束点,从而将手势动作从时间序列中分割出来。
[0086] 步骤209:采集手势数据,初始化每个动作对应的标记值,如上挥手势标记值为1,下挥手势标记值为2,以此类推。根据采集的手势动作,赋予步骤208分割出来的手势动作一个对应的标记值,完成标记,用于步骤210的模式匹配。
[0087] 步骤210:采用动态时间规整(Dynamic Time Warping,DTW)算法将待匹配的手势与步骤209标记好的手势数据进行特征匹配。
[0088] 步骤211:输出分类结果。
[0089] 本发明实施的具体方法如下:
[0090] 本发明采用两台Net Gear wndr4300V1家用路由器分别作为无线信号发射端和接收端,采用一台Dell G7 7588作为服务器。无线信号发射端和接收端工作在Monitor模式(注入-监听)。两台Net Gear wndr4300V1家用路由器均安装Atheros-CSI-Tool开源工具,分别工作在注入模式(无线信号发射端工作在注入模式)和监听模式(无线信号接收端工作在监听模式),其中注入设备(无线信号发射端)不断向无线信道注入数据,监听设备(无线信号接收端)接收数据并利用Atheros-CSI-Tool提取CSI。在路由器系统里,通过echo命令设置无线信号发射端使用一根天线,无线信号接收端使用两根天线。同时,通过无线命令设置无线信号发射端和接收端工作在5GHz频段,信道带宽40MHz。无线信号发射端以3ms/packet的速率向无线信道注入数据包,无线信号接收端每次接收到Nr×Nc×114个子载波的振幅和相位信息,其中Nr表示接收天线数量,Nc表示发射天线数量,并通过TCP协议发送至服务器进行解析。
[0091] 服务器利用Atheros-CSI-Tool提供的函数解析二进制流,获得1×2×114个子载波的CSI,并计算所有子载波的相位。由于CSI相位是在[-π,π]变化的,在π处会产生2π的跳变,因此需要先对每一组114个子载波进行解卷绕。同时由于CSI相位受时间偏移和相位偏移的影响呈现出均匀分布,无法正确反应环境的变化,图6显示了未经校准的测量相位 在[-π,π]的分布。因此需要对相位进行校准,具体算法步骤如下所示:
[0092] 无线信号接收端测量到第m个子载波的相位 可以表示为:
[0093]
[0094] 其中, 表示相位真实值,δ表示时间偏移,β表示未知的相位偏移,Z表示测量噪声,通常是高斯白噪声,km表示子载波索引(40MHz带宽下为[-58,-57,…,-3,-2,2,3,…,58],共114个子载波),N表示FFT点数,在IEEE 802.11n,40MHz带宽下其值为128。
[0095] 步骤1:对每一组114个子载波的相位进行解卷绕,获得连续变化的相位。对每一个子载波的相位 使用如下方法进行判断:
[0096]
[0097] 步骤2:定义两个系数a和b,分别表示测量相位的斜率和均值,如式(3)式(4):
[0098]
[0099]
[0100] 在40MHz带宽下,n=114。由于子载波索引是对称的, 因此
[0101] 步骤3:令校准后的相位 得:
[0102]
[0103] 校准后的相位如图6所示,可以看出原本均匀分布的相位经过校准已经能够反映环境的变化。
[0104] 支持IEEE 802.11n/ac的路由器设备大多由多根天线组成的MIMO系统。图2和图3分别是画圆手势在接收端两根上的相位变化情况,可以看出天线1变化较小,天线2变化较大。如果仅选择其中一根天线作为目标天线,由于用户的位置是实时变化的,在某个位置目标天线可能检测不到手势的变化,而非目标天线检测到了。因此,本发明充分利用MIMO系统的空间多样性,将两根天线的相位差作为手势识别的基信号,提高了系统检测远距离微弱手势信号的能力,而且避免了天线选择问题。
[0105] 原始的相位差信号同样受到环境噪声的干扰,包括异常点、环境噪声和高频噪声。本发明利用Hampel滤波器对异常点进行检测和剔除。由于环境噪声具有比较大的随机性,会干扰最后的识别结果,在异常点剔除后采用Savitzky-Golay滤波器对环境噪声进行过滤。Savitzky-Golay滤波器是一种基于局部多项式最小二乘法拟合的滤波器,用于数据的平滑滤波,其最大的优点在于滤除环境噪声的同时保持信号的形状不变。图7是滤波后的相位差。从图中可以看出,Hampel滤波器很好地滤掉了异常点,Savitzky-Golay滤波很好地拟合了低频成分,同时将部分高频成分滤除。
[0106] 为了进一步平滑波形,去除高频噪声,采用离散小波变换(DWT)进行滤波。离散小波变换可以在时频域内对信号进行分析,在不同尺度上对信号进行分解,具有多分辨率的特点。具体来说,离散小波变换将相位差信号分解为近似成分和细节成分,近似成分描述了相位差的波动趋势,即低频成分,细节成分描述了相位差的高频噪声和波动细节。为了能够在保留细节的同时去除高频成分,采用软阈值对细节成分进行处理。同时,采用coif5小波对相位差进行分解。图8为进一步经过小波滤波后的相位差信号,可见大部分高频噪声已经去除。
[0107] 由于频率多样性,相同传播路径下不同子载波产生的相位偏移不同。根据可知,中心频率越大的子载波在相同传播路径下具有更大的相位偏移,对手势的变化更敏感,有利于感知距离较远的微弱手势信号。但是根据式(1),中心频率大的子载波受到时间偏移项δ的影响也越大,对手势变化更敏感的同时对噪声也更敏感。本发明利用平均绝对偏差(Mean absolute deviation,MAD)来衡量不同子载波对手势的敏感程度。平均绝对偏差描述了样本点的离散程度,MAD值越大的子载波变化越大,能够反映更微弱的手势变化。从图9可以看出,索引较大的子载波有更大的变化,更适合作为目标子载波。子载波是按顺序存储在数组中的,因此每个子载波会有一个对应的索引值,即1,2,……114。
[0108] 在进行手势特征匹配之前,首先需要对采集到的手势动作进行分割。在无手势动作时,相位差值保持在一个恒定值。有手势动作时,相位差值突然增大或减小,因此采用基于方差的滑动窗口进行分割。根据经验设定一个合理的滑动窗口,在静止状态,滑动窗内的方差很小,基本为零。在有手势动作时,滑动窗内的方差突然增大,当超过设定阈值时,将该滑动窗标记为起始帧。当滑动窗内的方差突然减小,并在连续一段时间内低于设定阈值,则将方差突然减小的滑动窗标记为结束帧。
[0109] 在不同时刻或者不同用户做同一个手势的速度或幅度可能都会有所差别,导致同一个手势动作产生的波形不完全相同。因此本文利用动态时间规整(DTW)算法计算分割后的手势与标记的手势的最小距离,从而实现手势动作的匹配与分类。具体步骤如下所示:
[0110] 假设有两段长度分别为m和n的手势序列Q=(q1,q2,…qm)和C=(c1,c2,…cn),其中Q为数据库中存储的经过标记的手势,C为待匹配手势,匹配过程如下:
[0111] 步骤1:构造m×n的距离矩阵Dmn,距离矩阵的每个元素dij为qi和cj的欧式距离,通过下式计算:
[0112] dij=(qi-cj)2  (12);
[0113] 其中,1≤i≤m,1≤j≤n。
[0114] 步骤2:从D11开始根据动态规划求解规整路径,得出最短的累计距离,即两段手势的最大相似度。
[0115] 步骤3:重复步骤1和2,直到遍历所有的手势模板,将最小的累计距离对应的手势标记作为分类结果。
[0116] 通过以上三个步骤,可以实现不同手势的匹配和分类,并且无需训练,节省了训练时间,具有很高的反映速度。除此之外,上述方法仅需要采集很少的手势作为匹配模板就可以实现很高的识别准确率,节省了数据采集的时间。在中心链路和非中心链路上,分别可以实现90%和86.5%的手势识别准确率。