本发明涉及人数统计领域,尤其涉及一种基于wifi信道状态信息和支持向量机进行室内人数统计的方法。
背景技术:
室内人数对于很多应用来说是很重要的信息,例如,可以帮助商家确定进店顾客的数量并据此安排员工,可以监控公共场所人群密度并及时启动应急措施以确保安全,可以根据楼内人数进行自动空调调节以节约能源等。传统人数统计方法主要采用视频监控方法或者无线射频方法。视频监控方法目前已经获得广泛应用,但在弱光环境下或非视距情况下,摄像头无法良好工作,导致监控质量下降或者监控盲区,此外视频监控还存在较大隐私问题,不适用于私人空间。基于无线射频的监控近年来也获得较多关注,如采用无线传感器网络、红外线、超宽带等,但这些方法都需要安装部署专有设备,成本高,普适性差。
基于wifi的无线网络已获得广泛部署,其在提供无线数据传输服务的同时,可以用来进行监控和人数统计。该方法不需要增加额外硬件设施,也不需要人员携带电子设备,仅利用现有的wifi无线网络就能完成人数统计,成本低,普适性强,因此是极具市场前景和发展潜力的解决方案。由于人体会对周围的wifi信号产生反射、散射、衍射、衰减等效果,通过监测wifi信号的变化就可以确定室内人数。目前使用最广泛的用于测量wifi信号变化的能量特性是接收信号强度指示(receivedsignalstrengthindicator,rssi),可以用来进行人数统计。但是由于室内环境的复杂性,wifi信号存在多径效应,即信号会通过多条路径从发送端传播到接收端,且每条路径具有不同延迟、衰减和相位移动,导致rssi是多条路径信号的叠加,从而导致rssi不稳定,用于人数统计时精度较差。
技术实现要素:
本发明的目的是针对上述存在的问题,提出一种基于wifi信道状态信息(channelstateinformation,csi)和支持向量机(supportvectormachines,svm)的精确的室内人数统计方法。
本发明为解决上述技术问题所采用的技术方案是,一种基于wifi信道状态信息和支持向量机的室内人数统计方法,包括以下步骤:
1)室内人数统计模型训练步骤:
1-1)采集不同人数场景下的csi原始数据样本,所述样本包括发送天线个数、接收天线个数、信号发送频率、信道状态信息csi矩阵,并记录当前人数;
1-2)移除原始数据样本中csi矩阵的第一维度,将产生的二维矩阵从线性(电平)空间转换到对数(功率)空间,将矩阵中每一个复数转换成幅值;
1-3)应用基于密度的聚类算法(density-basedspatialclusteringofapplicationswithnoise,dbscan)对由每一对发送和接收天线组成的信道中的csi数据进行聚类,通过删除离群点得到去噪后的csi数据;
1-4)使用膨胀矩阵算法对去噪后的csi数据进行特征提取,获得每条子载波的非零率,作为csi特征指纹样本。该膨胀矩阵算法包含以下步骤:将每条子载波的幅值序列转换为一个二维矩阵;膨胀该二维矩阵;计算膨胀后的二维矩阵中的非零率;对所有信道中的所有子载波进行上述操作,得到非零率向量作为csi特征指纹样本;
1-5)基于csi特征指纹样本,采用v-svr(supportvectorregression)算法训练得到初步svm回归模型,表达人数和csi特征指纹样本之间的依赖关系;
1-6)对初步svm回归模型进行参数寻优,采用网格搜索和交叉验证方法尝试比较不同参数组合,得到最优模型参数及最优svm回归模型。
2)室内人数统计步骤:
2-1)采集未知人数场景下的csi原始数据样本;
2-2)按照步骤1-2)、1-3)和1-4)对csi原始数据样本进行处理和特征提取,获取当前csi特征样本指纹;
2-2)通过步骤1-5)和1-6)建立的svm回归模型,根据当前csi特征样本指纹来确定当前场景中的人数。
由于室内丰富的多径效应,使得基于wifirssi的人数统计不能提供足够的精确性。信道状态信息csi是一种更加精细的物理层信息,描述信道中各子载波的幅值和相位,能够充分利用室内多径效应,对环境变化更加灵敏。因此,本发明的基于csi的方法能够更加精确地进行人数统计。在获得csi数据后,本发明采用基于密度的聚类算法dbscan对csi数据进行去噪,然后使用膨胀矩阵算法获得每条子载波的非零率作为csi特征指纹样本,从而强化信号幅值的大变化对于人数统计的影响,而降低由于环境噪声引起的信号幅值的小变化的影响。本发明借助于svm回归算法,能够在不考虑复杂室内环境的情况下,获得人数和csi特征指纹样本之间精确的非线性依赖关系模型,从而达到精确统计室内人数的目标。
本发明的有益效果是:能够基于现有wifi无线网络进行精确的人数统计,成本低,普适性强,无隐私问题,室内人员可随意走动、站或坐。本发明能够达到平均误差人数0.67的精度,明显高于基于rssi的人数统计精度。
附图说明
图1为基于csi和svm的室内人数统计方法的流程图;
图2为基于csi和svm的室内人数统计方法的环境部署图。
具体实施方式
一种基于wifi信道状态信息csi和支持向量机svm的室内人数统计方法,流程如图1所示,具体实施步骤如下:
1)环境部署:基于csi的人数统计要求室内覆盖wifi信号,设备为一台接入点(accesspoint,ap)和一台监测点(monitoringpoint,mp),均配置intelwirelesslink5300agn(iwl5300)无线网卡,该网卡具有3根天线。ap端发送数据,mp端接收数据,布局方式如图2所示。
2)csi原始数据采集:训练阶段,将室内场景分别设为w个人,w=0,1,2,3,4,5…,让他们在室内中随机走动。对于不同人数的场景,接收端mp均以20hz的采样率采集来自发送端ap的csi原始数据,分别采集5分钟,然后从采集到的6000个csi数据样本中选取1000个作为训练样本,来规避因为环境干扰导致的信号不稳定问题。样本数据中包括:发送天线个数ntx,接收天线个数nrx,数据包发送频率f,原始csi矩阵h。原始csi矩阵h是一个ntx×nrx×ns的三维矩阵,第三维是信道中的ns条子载波信息:h=|h|ejθ,其中|h|是子载波幅值,θ是子载波相位。
3)csi数据生成:针对采集的csi原始数据,首先移除原始csi矩阵h中的第一个维度,获得ntx个nrx×ns的二维矩阵,然后将二维矩阵从线性(电平)空间转换成对数(功率)空间,并将矩阵中每一个复数转换成幅值,产生csi数据。
4)csi数据去噪:由于csi数据中存在一定噪声,即同一对发送和接收天线的数据中会存在一些偏离集群的数据,因此,为了提高人数统计的精度,本发明采用基于密度的聚类算法dbscan来去除csi数据中的噪声。由于每一对发送和接收天线组成一条信道,因此一对ap-mp中包含ntx×nrx条信道;每条信道包含ns条子载波,因此一对ap-mp中包含ntx×nrx×ns条子载波。按照信道将csi数据集分成ntx×nrx个子数据集,每个子数据集包含ns条子载波信息。令子数据集中每条子载波的序号为index,幅值为value,在每个子数据集上应用dbscan算法进行聚类,dbscan的两个参数分别是领域半径e和最小包含点数minopt。去噪步骤如下:
a)根据经验选取合适的参数e和minopt;
b)将子数据集中所有对象标记为未访问状态,即“unvisited”;
c)随机选择一个未访问对象o(undex,value),标记为“visited”;检查o的邻域是否至少包含minopt个对象:如果不是,则标记o为离群点;如果是,则标记o邻域内所有点为“visited”,并为o创建一个新的簇r和一个候选集合q,然后把o的邻域中所有对象放在候选集合q中;
d)迭代地把候选集合q中不属于其它簇的对象添加到簇r中,直到q为空,簇r完成;
e)转到步骤c)处理下一个对象;
f)将标记成离群点的对象对应的样本数据从训练数据集中删除,达到数据去噪的目的。
5)csi特征提取:
a)选取一个子载波i,创建一个m×p的矩阵m0并初始化为零矩阵,按照下式计算k:
其中h代表csi数据矩阵,p代表数据包的个数,m代表矩阵分辨率,hij代表第j个数据包的第i个子载波的幅值,hmax和hmin分别代表csi数据中幅值的最大值和最小值。将矩阵m0中第k行第j列的值设为“1”,这样每列只有1个“1”,其余都是“0”。当信号幅值发生较大变化时,相邻行非零值所在的列距离就会增大;
b)将矩阵m0中值为“1”的元素的周围元素也设为“1”,并以膨胀率d进行膨胀操作,生成膨胀矩阵mc。当信号幅值发生较大变化时,膨胀后的重叠区域就会较少,使得mc中有更多的“1”存在;
c)计算膨胀矩阵mc中“1”的个数,然后计算膨胀矩阵中的非零率,记为pi;
d)重复步骤a)、b)、c),迭代计算所有子载波的非零率,得到向量
e)向量
6)svm回归模型训练:使用步骤5)获得的csi特征指纹样本和对应的人数来训练svm回归模型,以建立csi特征指纹样本和人数之间的依赖关系。样本格式为:
其中,ti为样本i的特征指纹,ci为指纹样本i所对应的人数,m为样本个数,为pij样本i中子载波j的非零率,n为子载波数量。对svm回归模型的训练就是解决如下问题:
其中,w和b代表依赖关系的方向和位置,v∈(0,1]是一个参数,∈表示精度,c为常量,ξi,
数量。不断调整参数进行回归模型训练,直到得到最优参数,确定最优回归模型:
其中,αi与
7)人数统计:实际统计人数时,算法根据实时采集的csi原始数据经过去噪和特征提取后,通过训练得到的svm回归模型确定人数,包括如下步骤:
a)按照步骤2)的方式采集csi原始数据;
b)按照步骤3)的方式生成csi数据;
c)按照步骤4)的方式对csi数据进行去噪;
d)按照步骤5)的方式对csi数据进行特征提取;
e)根据svm回归模型和当前csi特征指纹样本,确定实时人数。
实施例的识别精度如下表: