一种基于信道状态信息的室内人员行为检测方法

2018-08-17 00:26党小超
计算机工程 2018年8期
关键词:振幅向量矩阵

党小超,,,

(1.西北师范大学 计算机科学与工程学院,兰州 730070; 2.甘肃省物联网工程研究中心,兰州 730070)

0 概述

随着无线传感器网络(Wireless Sensor Networks,WSN)的不断进步与发展,人们已经不局限于只对传统室内定位与位置感知进行研究。近年来,智能家居、军事、工业等领域均开始利用无线电进行位置感知,如典型的基于UWB(Ultra Wideband)的雷达系统[1]。而目前较新颖的基于商用Wi-Fi设备的室内定位技术,在室内入侵检测、校园安全、商场人员检测、病人监护、家中老人小孩的实时检测等多个领域中[2],均有较好的发展优势。

传统的室内定位技术进行位置服务与环境感知时,主要依据接收信号强度(Received Signal Strength Indication,RSSI)[3]技术。但从实验结果中可以发现,这类室内定位技术的精度较低,造成该现象的主要原因是RSSI的稳定性较低,其定位结果会受时间影响。相比RSSI技术,信道状态信息(Channel State Information,CSI)在时间分辨率、频率分辨率、稳定性等方面都具有优势[4]。

文献[5]提出基于CSI模型的低成本高精度被动式目标定位方法LIFS,其将CSI的特点有效地应用于目标定位中,但该方法未考虑检测区域与检测率的关系。文献[6]将相位信息应用在唇语检测系统中,能够达到更细粒度的定位效果,但是其相位信息不易获取,并且在检测过程中要利用专用设备USPR,导致方法稳定性和实用性不高。文献[7]的FIMD系统利用CSI的稳定性,在静态环境下实现了更细粒度的人员检测,但其未取得高检测率,且系统性能会受实验环境的影响。文献[8]的BFP系统利用CSI进行行为无关移动检测,其整体性能较好,但算法的效率较低。文献[9]将SVM应用在基于RSSI的室内人员定位中,但基于RSSI的室内人员检测精度较低。

针对以上方法存在的不足,本文提出一种基于CSI的室内人员行为检测方法Wi-SK。首先采集CSI数据,利用振幅信息作为特征值,选择Kalman滤波算法对原始的CSI数据进行过滤,剔除异常值;然后使用SVM对滤波后的数据作分类处理,并使用PSO修正SVM中的参数后建立指纹库;最后在真实环境中的检测区域内实时采集数据,并利用SVM处理实时提取的特征值,将在真实环境下采集的实时数据与指纹库的数据进行匹配,在此基础上,进行人员行为的检测。

1 相关理论

1.1 信道状态信息

随着无线网络的普及和正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)技术的发展,传统的信号传播格局被改变。在802.11/g/n标准下,通道响应可以从商用Wi-Fi设备中提取出CSI,其以子载波的振幅和相位信息揭示了信号从发送端到接收端的通信链路间的信道状态[10]。由于RSSI不能逐一区分多条信号传播路径,为了更好地表示多径传播,无线信道通常用信道脉冲响应(Channel Impulse Response,CIR)来进行建模[11]。在线性时间不变的情况下,CIR可表示为:

其中,ai、θi和τi分别表示第i条路径的振幅衰减、相位偏移和时间延迟,N表示传播路径总数,δ(τ)是狄拉克脉冲函数。

由于在多径传播过程中会造成频率选择性衰落,为了更好地刻画多径传播,可以选择信道频率响应(Channel Frequency Response,CFR)进行建模。CFR是CIR的傅里叶变换[12],CIR和CFR可以描绘小规模的多径效应并且广泛应用于通道测量。通过Wi-Fi设备可以CSI的形式获取CFR的一个样本[13],即利用兼容IEEE 802.11a/g/n的无线网卡可从每个接收数据包中获取一组CSI,每组CSI代表一个OFDM子载波的幅度和相位,其表示为:

H(k)=‖H(k)‖ej∠H(k)

(2)

其中,H(k)为第k个子载波的CSI,‖H(k)‖和j∠H(k)分别表示第k个子载波的振幅与相位。由于振幅信息较稳定可提高算法的效率,因此本文选用振幅作为特征值。

1.2 卡尔曼滤波

提取第1.1节所述的振幅数据后,利用Kalman滤波算法将异常值剔除。该过程主要步骤为:

步骤1设Xk为k时刻的状态向量,将系统向量转换为线性方程的形式,则系统的状态转移方程[14]如下:

Xk=FkXk-1+BkUk+Wk

(3)

其中,Fk是状态转移矩阵,Bk是控制矩阵,Uk是控制向量,Wk是转移过程中的噪声矩阵。

步骤2若Zk为k时刻系统的观测向量,则观测方程为:

Zk=HkXk+Vk

(4)

其中,Hk是观测矩阵,Vk是观测噪声。假设噪声服从高斯分布,即:

Wk~N(0,Qk),Vk~N(0,Rk)

(5)

其中,Qk和Rk分别为Wk和Vk的协方差矩阵。

步骤3利用Kalman滤波估算k时刻系统的状态量[15]。

1)计算系统k时刻状态的预测值:

2)计算预测值的协方差矩阵:

其中,Pk-1为协方差矩阵。

3)计算Kalman增益矩阵:

4)根据观测值来修正预测值,得到系统状态量的最优估计:

5)更新协方差矩阵:

在已知初始状态量和协方差矩阵的前提下,重复以上步骤,最后得到任意时刻系统的最优值。图1所示为CSI信号在滤波前后的对比示意图,图1(a)中方框标识的是被剔除的异常值。

图1 CSI信号滤波前后对比

1.3 支持向量机

在机器学习中,SVM是一种与学习算法有关的监督学习模型,它可以进行数据分析、模式识别以及分类和回归分析[16]。给定一组训练样本,每个标记属于两类,一个SVM训练算法建立一个模型,将一个新实例分配给一个类或其他类,使它成为一个非概率的二元线性分类[17]。该特征可以有效结合CSI数据,从而降低算法时间复杂度,提高算法整体性能。第1.2节得到滤波后的振幅信息,本节利用SVM将滤波后的数据进行分类。

初始化阶段,将检测区域分为20个方格作为参考点,并按升序进行编号。然后,测试人员逐个遍历参考点,在每个参考点都进行站立、跳跃、半蹲、坐下4个动作。将此时所获得的CSI数据以及振幅、相位的变化传输到服务器。具体步骤如下:

步骤1设T为数据采样的周期,且T为1 s。在测试位置进行站立、跳跃、半蹲、坐下4个动作。假设接收端依次采样的样本训练集为:{(xi,yi)},i=1,2,…,n,则SVM的回归函数为:

f(x)=w·x+b

(11)

其中,x为从CSI振幅或相位数据中提取的特征,w为权向量,b为偏置向量。

步骤2求解式(11)中的w和b,可得最小化目标函数[18]:

其中,C为惩罚系数,Remp(f)为损失函数。

步骤3引入松弛因子,式(12)的优化目标函数转换为:

其中,ε为松弛变量。

步骤5新的特征空间映射了原始数据,引入映射函数φ[19],则SVM回归函数为[18]:

f(x)=w·φ(x)+b

(15)

步骤6式(15)的优化目标函数转化为:

(16)

步骤7引入核函数k(xi,xj)代替(φ(xi),φ(xj)),式(16)转化为如下的优化目标函数:

(17)

步骤8最终SVM的预测函数为:

传统SVM算法求解效率低,算法实时性较差[20],考虑到PSO算法具有易搜索、收敛速度快、整体复杂度较低等优点。因此,本文选择PSO对SVM的参数和核函数进行修正,以提高算法的整体性能。当进行复杂搜索时,这一改进措施能够避免陷入局部最优解的情况[19]。PSO对SVM的参数和核函数进行修正的主要步骤如下:

步骤1设D维搜索空间中有n个粒子。向量Li=(xi1,xi2,…,xiD)表示i粒子的位置空间[19],最优解为Pi=(pi1,pi2,…,piD)。

步骤2设第g个粒子的历史位置为局部最优解Pi(i=1,2,…,n)。

步骤3第i个粒子的速度用向量Vi=(vi1,vi2,…,viD)表示。

步骤4按照如下公式进行每个粒子的位置变化:

Vid(t+1)=w×Vid(t)+c1×rand()×

[Pid(t)-Lid(t)]+c2×rand()×

[Pgd(t)-Lid(t)]

(19)

Lid(t+1)=Lid(t)+Vid(t+1)

1≤i≤n,1≤d≤D

(20)

其中,速度变化区间为[-Vmax,Vmax],当第d(1≤d≤D)维的速度超过阈值或位置发生改变时,速度将取边界值,c1、c2为加速因子,rand()是[0,1]区间内的随机数。

步骤5由于PSO算法随机产生位置与速度,因此通过式(19)、式(20)迭代,可以找到最优解。

2 Wi-SK方法整体流程

本文Wi-SK方法主要包括4个模块:数据采集,数据处理,指纹库建立,特征信息匹配。Wi-SK方法总体流程如图2所示。

图2 Wi-SK方法总体流程

2.1 离线训练阶段

在采集完CSI原始数据包后,进入离线训练阶段。在该阶段,首先收集各测试点的位置坐标,并对接收到的CSI原始数据进行处理,处理过程中先使用Kalman算法对原始数据进行滤波,再使用SVM算法对处理过的CSI数据实现分类;接着,将处理过的数据存到指纹库,并根据环境的变化情况实时更新指纹库。离线训练阶段具体步骤为:

步骤1对CSI数据进行预处理,求出单个信道状态的频域模型,公式如下:

Y=HX+N

(21)

其中,Y为接收信号向量,X为发射信号向量,H为信道矩阵,N为高斯白噪声向量[18]。

步骤2根据步骤1将所有子载波的CSI表示为:

步骤3将单个子载波的CSI表示为:

csi=|csi|ejsin∠csi

(23)

其中,|csi|和csi分别表示对应于该子载波的幅度和相位。

步骤4用Kalman滤波算法对步骤3中的振幅信息进行滤波处理。

步骤5假设接收端依次采样的样本训练集为:{(xi,yi)},i=1,2,…,n,则SVM的回归函数为:

f(x)=w·x+b

(24)

最小化目标函数为:

式(25)的优化目标函数可以转换为[18]:

则SVM回归函数可表示为:

f(x)=w·φ(x)+b

(28)

式(25)的优化目标函数转化为:

(29)

引入核函数k(xi,xj)代替(φ(xi),φ(xj)),则式(29)转化为如下的优化目标函数:

则最终的SVM预测函数为:

步骤6利用第1.4节所述的PSO算法求得最优参数,再根据式(30)、式(31)结合幅度样本数据,从而构建SVM的分类模型。

2.2 在线行为检测阶段

在线行为检测阶段,发送端负责采集每个测试方格的实时CSI数据以及测试人员发生行为变化时的数据,再将采集到的数据发送给接收端。在线行为检测阶段主要步骤如下:

步骤1在真实环境下采集实时数据。

步骤2选择振幅作为特征值。

步骤3设Xk表示k时刻系统的状态向量,则系统的状态转移方程如下[16]:

Xk=FkXk-1+BkUk+Wk

(32)

设Zk为k时刻的观测向量,则观测方程为:

Zk=HkXk+Vk

(33)

假设噪声服从高斯分布,即:

Wk~N(0,Qk),Vk~N(0,Rk)

(34)

利用Kalman算法估算k时刻系统的状态量,步骤如下:

1)计算系统k时刻状态的预测值:

2)计算预测值的协方差矩阵:

3)计算Kalman增益矩阵:

4)根据观测值来修正预测值,得到系统状态量的最优估计:

5)更新系统状态量的协方差矩阵:

步骤4利用PSO算法修正SVM算法中的参数C,构建SVM分类模型对检测数据进行预测。

步骤5将实时采集的振幅数据与指纹库进行匹配。

步骤6设通过以上步骤得出的当前振幅的特征值为A,离线阶段的阈值为B。若A>B,则可判断当前为非静止状态,此时再次根据振幅的幅度变化进行匹配。图3所示为实验室环境下人员行为状态检测信号。从图3(d)可以看出,此时的幅度波动较大,说明动作幅度较大,则可判断此时的行为是跳跃。图3(b)、图3(c)的信号波动较小,即动作较缓慢,则可判断此时的行为是站立或半蹲。

图3 实验室环境下人员行为状态检测信号

3 实验结果与分析

3.1 实验设备

本次实验所用的发射器和接收器均安装有支持IEEE 802.11n协议的Atheros AR9580 NIC,且安装了长度约为1.5 m的外部天线。所有发射器配备Ubuntu 14.04 LTS,32 bit系统和4.1.10 Linux内核版本。驱动程序模块可以在接收到信号并将其保存为其他进程时从Linux内核获取CSI。2台英特尔酷睿i3-4150 CPU台式机,一台作为发送端,另一台作为接收端。所获得的数据在C程序中使用本文提出的Wi-SK算法进行处理。

3.2 实验场景

本次实验分为2个场景:实验室和大厅,分别对应NLOS场景与LOS场景。实验室大小为7 m×5 m,空旷大厅大小为10 m×8 m。实验场景平面结构如图4所示。

图4 实验场景与平面部署

3.3 系统性能分析

当监测区域中有人出现时,利用部署好的实验设备接收数据包并发送给阅读器,然后再转发到服务器。在本次实验中,服务器端得到方向信息后,目标将被检测。在检测过程中,选用振幅信号作为特征值,原因是振幅信号敏感度较高,且容易获取。为证明振幅信号的这一特性,本文分别在多径干扰较多的实验室内和较为空旷的大厅内进行对比测试,结果如图5所示。从图5可以看出,在实验室和大厅内测得的无人时CSI振幅变化存在明显区别,图5(b)的信号波动较小,整体趋势较平稳,原因是空旷大厅内无过多的电磁干扰和多径干扰。因此,本文实验选择振幅作为特征值是可行的。

图5 实验室与空旷大厅无人时振幅信息对比

为验证本文Wi-SK方法的检测性能,本次实验将Wi-SK方法分别与LIFS、FIMD、BFP以及传统的基于RSSI的系统模型,在静态环境检测概率与动态环境检测概率、窗口大小、特征数、检测区域等方面,进行比较分析。

1)静态环境下的检测概率

检测概率即为正确分类概率,在静态环境下称为TN率,图6所示为不同位置和不同时间点的TN率检测结果。从图6可以看出,经过多次测试,各方法的TN率均可达到90%以上。但是,RSSI方法与LIFS方法的TN率值会受时间的影响,因此,会造成其性能不稳定的情况。而Wi-SK方法检测结果较平稳,整体性能优于其他2种方法。

图6 静态环境下3种方法TN率对比

2)动态环境下的检测概率

检测概率在动态环境下称为TP率,图7所示为不同位置和不同时间点的TP率检测结果。从图7可以看出,相比RSSI方法与LIFS方法,Wi-SK方法可以更精确地检测人员的行为,即Wi-SK方法的效率更高。

图7 动态环境下3种方法TP率对比

3)窗口大小的影响

由于窗口大小能够代表延迟的大小,且其对于检测率的整体性能起着重要作用。因此,本次实验选择窗口大小作为指标对不同方法的检测率进行评估。

从图8可以看出,3种方法的检测率均随窗口大小的增加而增加,但是当窗口大小超过某个阈值时,CSI数据将通过人员的不同行为状态而产生差异,即对人员不同状态的检测率产生影响。当窗口较小时,系统很难检测到人员的存在,原因是方差的大小会降低系统的灵敏度,且系统对静态环境的区别度不高。从图中可以看出,Wi-SK方法将滑动窗口大小设为80时可达到较佳检测性能,且检测率较稳定。

图8 检测率与窗口大小的关系

4)特征数的影响

由于使用较多的特征数可能会导致较高的检测率,因此本文对传统的基于RSSI的方法和FIMD方法进行改进。FIMD方法中使用相关矩阵的特征值,其最优值集中在前2个特征数。基于RSSI的方法不能在一段时间内保持稳定,其自身变化多端,对检测率造成相应的影响。而本文Wi-SK方法利用CSI稳定性高的特点,且实验的特征值使用的协方差矩阵更分散,因此检测率较高。

图9所示为检测率与特征数的关系。从图9可以看出,随着特征数的增加,Wi-SK方法的检测率随之增加,且当特征数达到5时,其基本能够保持稳定状态。相比之下,FIMD方法在特征数达到4之后,检测率有所下降,且不够稳定。

图9 检测率与特征数的关系

5)测试区域的影响

为测试人员在不同位置下的行为状态对检测率的影响,将实验区域划分成20个方格,并进行升序编号。在本次实验中,选择编号为1~9的格子进行测试。

如图10所示,在4、5、6、7号格子区域内系统检测率较高,原因是这4个区域距离发送端与接收端较近,且无过多信号干扰。1~3格子的检测率都较低,原因是这3个区域距离接收端与发送端较远,且受到桌子、墙壁等多径效应的干扰。从图10还可以看出,Wi-SK方法的检测率高于其他2个方法。

图10 检测率与测试区域的关系

4 结束语

本文提出一种基于CSI的室内人员行为检测方法Wi-SK。在数据处理方面,首先通过商用Wi-Fi设备采集CSI原始数据,将CSI中的振幅信息作为特征值,对其使用Kalman滤波、SVM算法、PSO算法进行相应处理,并建立指纹库;然后,在实验场景下采集实时数据,并将指纹库中的数据与实时采集的数据进行匹配,从而实现室内人员行为检测的目的。实验结果表明,Wi-SK方法在灵敏度、鲁棒性、检测率等方面均有较好表现,实用性较强。

猜你喜欢
振幅向量矩阵
向量的分解
聚焦“向量与三角”创新题
十大涨跌幅、换手、振幅、资金流向
十大涨跌幅、换手、振幅、资金流向
十大涨跌幅、换手、振幅、资金流向
沪市十大振幅
初等行变换与初等列变换并用求逆矩阵
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
矩阵