随着网络信息技术和智能终端技术的高速发展,人们越来越多的时间在室内活动,因而对室内环境下的位置服务(LBS)需求越来越大,高精度室内定位技术的研究日益迫切。主流的室内定位技术包括WiFi技术、蓝牙技术、UWB技术、红外技术,以及基于智能手机MEMS器件的惯导定位技术和新兴的计算机视觉定位技术。WiFi室内定位技术凭借其基础设施分布广泛、成本低的优势成为该领域的研究热点。考虑到室内定位的高精度需求,目前WiFi室内定位研究主要集中在基于接收信号强度指示(Received Signal Strength Indication,RSSI)的指纹定位方法[1-2]。然而,室内环境障碍物众多,多径现象严重,导致RSSI波动大,严重影响了定位精度和效果。
正交频分复用(Orthogonal Frequency Division Multiplexing,OFDM)是WiFi系列标准广泛采用的物理层核心技术,将无线信道划分为正交的子载波,每个子载波是一个窄带平坦衰落信道,因而具有极好的抗多径能力。信道状态信息(CSI)详细地刻画了OFDM子载波瞬时信道信息,对信道变化具有很高的灵敏度,近年来得到了WiFi室内定位研究领域专家和学者的关注。CSI的获取需要特定的工具。华盛顿大学的Halperin等开发的CSITool[3-4]和清华大学团队研发的WiFiRADAR[5]的发布,使得通过修改网卡驱动(如Intel 5300无线网卡和Atheros系列网卡)获取WiFi环境下的CSI成为可能。
由于CSI是复数(包括幅值和相位),定位指纹特征的选择可采用不同的参数。DeepFi[6]只用了CSI的幅值信息,而PhaseFi[7]只使用了CSI的相位信息,二者分别在较为理想环境和复杂环境下进行了实验验证,并采集大量数据,在米级间隔下达到了1~2 m的平均定位误差。早期CSI室内定位研究仅采用单天线的CSI[8]作为指纹,如细粒度室内指纹识别系统(Fine-grained Indoor Fingerprinting System,FIFS)[9]。后来,随着CSI采集技术的成熟,相关研究人员开始将多进多出(Multiple-Input Multiple-Output,MIMO)技术引入到CSI室内定位中,例如Chapre等利用多天线的CSI数据构建CSI矩阵[10],分别利用K近邻(KNN)算法和贝叶斯算法训练大量数据,在2 m左右间隔下达到了米级定位精度。同样实验环境下,FIFS的平均定位精度大约为2 m。可见,MIMO技术的加入提高了CSI定位的性能。
本文构建了一个基于CSI-XGBoost的高精度WiFi室内定位方案。应用MIMO技术提取单接入点(AP)的CSI数据矩阵,将修正后的CSI的幅值和相位作为联合指纹,利用极限梯度提升(eXtreme Gradient Boosting,XGBoost)算法[11]构建高精度指纹库。在线阶段,将实时采集的CSI提取出指纹信息后,基于离线阶段构建的指纹库模型,使用机器学习方法匹配指纹库中与该指纹特征相似度最高的指纹信息,将其对应的位置作为定位结果。进一步利用实际室内环境中的实验数据,分析了采样点间隔、室内视距(Line of Sight,LOS)和非视距(Non Line of Sight,NLOS)环境、缺失值和数据维度等因素对该算法定位性能的影响。
1 CSI信息采集与提取CSI是在物理层层面描述OFDM无线通信系统中收发信机之间的信道属性的物理量,可以提供子载波水平的信道测量。同时,CSI以数据包的形式描述了信道的特性变化,信号在传播过程中经历的损耗、多径和失真都会在CSI中体现。目前支持IEEE 802.11n标准[12]的商用无线网卡可以以CSI信道矩阵的形式提供不同子载波的幅值和相位信息。
在窄带平稳信道中,OFDM系统在频域可以简单建模[5]为
(1) |
式中:Y为接收向量;X为发射向量;H为信道矩阵;N为加性高斯白噪声(Additive White Gaussian Noise,AWGN)向量。
信道矩阵H包含了CSI的幅值和相位信息。IEEE 802.11n标准[12]的OFDM系统包含56个子载波,本文采用Intel 5300无线网卡,只能提取出其中的30个子载波信息。每个子载波的CSI可以表示为
(2) |
式中:Hi为第i个子载波的CSI;|Hi|为第i个子载波的CSI幅值;∠Hi为第i个子载波的CSI相位。
本文通过CSI Tool修改Intel 5300无线网卡的驱动,获得启动网卡的debug模式的权限,该模式允许网卡将其中的CSI等数据以二进制的方式读入系统主存中,然后通过Linux系统提供的系统函数将CSI数据导出为.dat文件形式供后续处理。
2 CSI-XGBoost定位算法本文算法使用一台三天线无线路由器作为发射机,一台安装有Intel 5300无线网卡(三天线)的笔记本电脑作为接收机。考虑到2.4 GHz频段的无线信号有更强的穿墙能力,选择2.4 GHz作为实验频段。一个T-R链路有30个子载波,因而采集到的CSI为一个3×3×30的数值矩阵。基于CSI幅值和相位联合信息的高精度室内指纹定位系统结构如图 1所示,分为离线(训练)阶段和在线(测试)阶段两部分。
2.1 离线阶段在离线阶段,需要采集和提取CSI数据,并分别对CSI的幅值和相位进行修正,去除误差或异常值。修正后的CSI幅值和相位将组成联合指纹特征,与位置信息共同输入到XGBoost算法中进行训练,构成离线指纹库。
2.1.1 预处理在复杂的室内环境中,多径效应会导致CSI幅值发生波动,容易出现超出正常波动范围的异常值。为去除异常值,采用不同子载波的中值作为参考值,如果波动超出一定的阈值,将被视作异常值。单纯的去除异常值会造成数据中出现缺失值,影响定位算法的性能,因而本文采用中值替代的方式。图 2给出了幅值滤波前后的波形图,图 2(a)为滤波之前的CSI幅值波形图,可以看出有明显的异常值存在;图 2(b)为滤波之后的CSI幅值波形图,与图 2(a)相比,不存在明显的异常值,说明该算法可以有效去除异常值。
CSI的相位存在循环性,因而提取出的CSI相位是折叠的,需要利用相位延拓的方法将CSI的相位展开。时钟同步误差的存在导致了相邻子载波之间存在2πδ/F相位偏差,δ为时钟同步误差,F为FFT解调部分的采样数。原始相位的波形如图 3(a)所示,相位延拓后的波形如图 3(b)所示。
由于接入点(Access Point,AP)和测量点(Measurement Point,MP)之间存在时钟同步误差δ和载波频率误差β,延拓后的相位不能直接作为指纹数据。延拓后的相位和真实相位之间的关系[13-14]可以表示为
(3) |
式中:
由于CSI相位是上述2种误差的线性函数,即可以表示为
(4) |
斜率a和截距b的表达式如下:
(5) |
(6) |
线性变换后的相位波形如图 4所示。
2.1.2 指纹库构建指纹库用来保存位置、指纹信息和两者的映射关系。CSI指纹信息包括CSI的全部幅值和相位信息,形式为
(7) |
式中:CSIamplitude为CSI的幅值矩阵,包含所有T-R链路30个子载波的幅值信息;CSIphase为CSI的相位矩阵,包含所有T-R链路30个子载波的相位信息。由于本文采集到的CSI为一个3×3×30的数值矩阵,因而一个指纹是一个1×540的数值矩阵。
本文通过XGBoost算法学习了位置和CSI指纹之间的映射关系,构建了高精度指纹库,指纹库如图 5所示。
作为一种多决策树分类器,XGBoost算法通过构建决策树完成指纹库的构建。XGBoost构建决策树的过程如图 6所示,其基本思想是利用多棵回归树对样本进行训练,将每个决策树的结果融合得到最终的分类结果。回归树的生成需要经历特征选择、分裂和剪枝过程。本文算法的目标函数可以表示为
(8) |
式中:K为构建的决策树的个数,其目标函数分为损失函数
损失函数表示为
(9) |
式中:
(10) |
ft(xi)表示第t轮迭代产生的决策树的描述函数,可以表示为
(11) |
式中:xi为第i个样本的特征值;q为对应的叶子节点的索引号;T为叶子节点的个数;ωq为第q个叶子节点的预测值。
正则化项Ω(fk)通过约束要优化的参数(叶子节点的个数T、叶子节点的预测值ω)来防止出现过拟合,具体的原理这里不再赘述。
利用XGBoost算法构建指纹库的步骤如下:
步骤1 特征选择与分裂。
选取某一位置作为采样点,采集CSI,将修正后的CSI幅值和相位作为一个样本的全部特征。对特征进行列采样,利用贪婪(Greedy)算法求得使目标函数值最小的幅值(或相位)特征及该特征下的值作为本次分裂的分裂点。决策树每次分裂都需要计算目标函数,根据“目标函数最小”原则来选择最优分裂点。
步骤2 剪枝。
为了防止指纹库构建的指纹库模型过于复杂,出现过拟合现象,即构建指纹库使用离线训练数据可以得到很高的正确率,而使用在线测试数据的正确率低。需要对分裂的节点进行剪枝。每次分裂时,计算分裂增益,
(12) |
式中:GL、GR分别表示分裂点左子树、右子树的损失函数的一阶导数;HL、HR分别表示分裂点左子树、右子树的损失函数的二阶导数。γ作为剪枝的阈值,叫做惩罚项。如果该分裂点带来的增益小于阈值γ,则该节点将被剪枝。
对于一棵固定结构的决策树来说,其最优的叶子节点预测值ω*可以表示为
(13) |
式中:
步骤3 停止建树。
当一棵树到达最大深度或者叶子节点的预测值ω的和小于设定的阈值时,则停止分裂。对于生成的每棵决策树,计算其预测结果与真实结果之间的差值,这个差值称为“残差”。残差将作为下一棵决策树学习的目标,通过每棵决策树对残差的学习,预测结果将逐渐逼近真实结果。通过多棵决策树的学习,最后完成离线训练过程。
如果CSI指纹数据存在缺失值,本文算法将当做稀疏矩阵,分裂时将把缺失值分别分到左子树和右子树计算损失,选择损失函数最小的作为缺失数据的分裂方向。
2.2 在线阶段在线阶段如图 7所示,实时采集和提取CSI数据,由于对幅值的修正需要用到其统计信息,本阶段仅对相位进行修正。将处理后的CSI数据与离线指纹库进行匹配,使用机器学习方法找到指纹库中与该指纹特征相似度最高的指纹信息对应的位置作为定位结果。
本文算法的定位流程如下:
步骤1 实时采集指纹信息,并对指纹的幅值和相位特征进行修正。
步骤2 调用离线阶段构建的指纹库模型,将指纹信息与指纹库模型进行匹配,选取指纹信息中与指纹库根节点相同的特征,比较指纹信息的特征值与指纹库根节点的值,判断该指纹信息选择哪个子节点进行比较,如果该指纹信息的特征值大于指纹库根节点的值,则与左子节点再进行比较;反之,与右子节点进行比较。
步骤3 与选定的子节点进行比较,方式与根节点相同,都是比较特征值的大小,直到到达该决策树的最大深度,利用式(13)计算该指纹信息的预测值。
步骤4 重复步骤2、3,直到遍历指纹库的所有决策树,将预测值求和,得到最终的定位结果。
3 实验验证 3.1 实验方案为了验证所提算法的有效性,分别在北京航空航天大学新主楼F座532教室和432教室做了2组实验。AP选择TP-Link三天线路由器,路由器频段设置为2.4 GHz。MP选择安装有Intel 5300三天线无线网卡的笔记本电脑。通过CSITool提取无线网卡的3×3×30的CSI矩阵作为定位的数据来源。F532和F432的实际环境如图 8所示,实验室面积较大,室内环境复杂。实验结果的好坏用定位准确度(location accuracy)、累积分布函数(Cumulative Distribution Function,CDF)以及真实位置和定位结果的估计误差来评定。定位准确度是指匹配正确的测试样本数量占总测试样本数量的比例。
3.2 定位性能 3.2.1 采样间隔本次实验选择如图 9所示的实验规划图直观地描述实验场景。实验区域的大小为4.8 m× 4.8 m,三天线路由器位于实验区域上部,为了研究采样间隔对定位性能的影响,按照0.4、0.8、1.2 m的间隔等间隔采样,分别采集16、36、144点数据,每点采集300次数据。训练集为100个样本,测试集为200个样本,训练集和测试集无缺失值数据存在。
表 1和图 10给出了不同采样间隔对应的定位性能比较。就本次实验结果来看,定位精度和采样间隔呈负相关关系,指纹密度越大,定位精度越差。但是指纹密度变化时,定位精度的变化在可接受的误差内,因而可以认为指纹密度对定位性能的影响不大。当采样间隔为0.8和0.4 m时,采样点间隔减小,其定位准确度和平均定位误差仍保持在较高水平,说明CSI定位方法即使在分米级(0.4、0.8 m)间隔下也能很好地区分不同位置,且在定位准确度方面也不逊色。在不同采样间隔下,CSI的定位准确度均在95%以上,能够在分米级间隔下实现厘米级的平均定位误差。然而当指纹密度增大时,其训练时间呈幂次方增加,而定位精度基本没有提升,因为在后续工作中,可以选择1.2或0.8 m的采样间隔构建指纹库。
定位性能 | 采样间隔/m | ||
1.2 | 0.8 | 0.4 | |
定位准确度/% | 97.7 | 97.5 | 97.4 |
平均定位误差/m | 0.054 | 0.060 | 0.066 |
训练时间/s | 1.69 | 14.29 | 322.99 |
3.2.2 LOS和NLOS环境
实验区域选在北京航空航天大学新主楼F432。F432里有一个封闭的小屋,实验区域大小为6 m×10 m,RP点布设区域有较多障碍物,RP点根据实际环境进行选取,相邻RP点相距0.5 m,共取58个点,实验场景如图 11所示。将一个三天线路由器放置于房间上部,AP和MP天线之间没有明显的遮挡,可看作LOS环境;AP置于小屋内,发出的WiFi信号要穿墙,此时为NLOS环境的情况。在2种实验场景下,逐次采集每个RP点的数据,每个RP点采集300次数据。训练集为100次样本,测试集为200次样本,训练集和测试集无缺失值存在。
表 2和图 12给出了NLOS和LOS环境下各算法的CSI定位性能比较。可以看出,本文算法和支持向量机(Support Vector Machine,SVM)算法在NLOS环境下的定位性能略好于LOS环境。对于KNN算法来说,LOS环境下的平均定位误差要优于NLOS环境下约0.2 m;对于改进后的KNN(Modified KNN,MKNN)[13]算法来说,NLOS环境下的平均定位误差要优于LOS环境下约0.6m,整体定位准确度较差。这一现象和测距定位法刚好相反,这是由于指纹法的原理是根据不同采样点的指纹信息的差异性进行定位匹配的,在NLOS环境下,由于多径现象的存在,使得不同位置处的指纹信息的差异性增大,因而大量实验数据的统计结果显示NLOS环境下的定位性能要优于LOS环境下的定位性能。同时该实验结果表明,本文算法和SVM算法对环境变化的鲁棒性较好,不易受NLOS环境影响。
算法 | 定位性能 | NLOS | LOS |
CSI-XGBoost | 定位准确度/% | 99.01 | 98.84 |
平均定位误差/m | 0.029 | 0.038 | |
CSI-SVM | 定位准确度/% | 98.97 | 98.27 |
平均定位误差/m | 0.030 | 0.054 | |
CSI-KNN | 平均定位误差/m | 3.392 | 3.191 |
CSI-MKNN | 平均定位误差/m | 0.652 | 1.248 |
3.2.3 缺失值
在实验过程中,由于室内环境复杂,导致数据采集过程中会发生丢失,生成的数据集中会出现缺失值。经过多次实验的数据分析与统计,发现缺失值在本次实验采集的数据集中占比为1%左右。针对这一问题,使用3.2.2节中LOS环境下的数据集作为实验数据集,根据采集到的数据分析数据缺失的规律,按照该规律对数据集随机删除了一些数据,形成含有1%缺失数据的对照数据集。将这一组数据集分别使用本文算法和SVM算法、KNN算法、MKNN进算法行定位匹配,表 3和图 13给出了不同算法性能比较结果。
算法 | 定位性能 | 无缺失值 | 有缺失值 |
CSI-XGBoost | 定位准确度/% | 98.8 | 95.9 |
平均定位误差/m | 0.038 | 0.147 | |
CSI-SVM | 定位准确度/% | 98.3 | 93.7 |
平均定位误差/m | 0.054 | 0.225 | |
CSI-KNN | 平均定位误差/m | 1.004 | 4.875 |
CSI-MKNN | 平均定位误差/m | 0.658 | 5.273 |
从表 3和图 13可以看出,在没有缺失值的情况下,本文算法定位性能略优于SVM算法,但相差不大,而KNN算法和MKNN算法的平均定位误差较大。当数据集中有缺失值存在的情况下,本文算法定位准确度降低了约2%,平均定位误差降低了2.87倍,而SVM算法的定位准确度降低了约5%,平均定位误差降低了3.17倍。缺失值的存在对SVM算法的影响要大于XGBoost算法,这是由于SVM的定位原理是基于距离度量的,对数据质量要求较高,当数据出现缺失时,将距离作为判断依据将导致定位偏差变大。同样的,对于以欧氏距离和为定位依据的KNN算法来说,数据存在缺失时,其定位性能大幅下降。
3.2.4 数据维度在使用CSI数据进行室内定位时,由于每个信道的CSI包含30个子载波,因而特征维数较大,在使用机器学习方法进行指纹匹配时,由于高维数据存在稀疏性,随着数据维度的增加,两点之间的欧氏距离趋向于变大。如果单纯利用某点的训练集数据和测试集数据的“距离”作为指纹匹配的依据,很容易出现“误匹配”。表 4和图 14给出了KNN算法、MKNN算法、SVM算法和本文算法的定位性能的比较。可见,在使用KNN算法和基于感知概率[15]的动态加权KNN算法——MKNN时,RSSI的定位性能要优于CSI。考虑到上文提到的数据维度问题,利用主成分分析(Principal Component Analysis,PCA)法对CSI数据进行降维,将降维后的数据输入KNN和MKNN算法,KNN算法的定位性能略有提高,但仍无法满足精度要求,而MKNN的定位性能得到大幅提高,说明KNN算法更适合处理低维数据。而本文算法和SVM算法可以很好地处理高维稀疏数据,定位性能显著优于上述几种KNN算法。
算法 | 平均定位误差/m |
RSSI-KNN | 1.331 |
RSSI-MKNN | 0.249 |
CSI-KNN | 1.773 |
CSI-MKNN | 0.746 |
CSI-PCA-KNN | 1.772 |
CSI-PCA-MKNN | 0.150 |
CSI-SVM | 0.038 |
CSI-XGBoost | 0.054 |
4 结论
本文提出一种基于CSI-XGBoost的高精度WiFi室内定位解决方案,将修正后的CSI幅值和相位信息作为联合指纹特征,通过多决策树的XGBoost算法实现高精度指纹定位。实际室内环境下的实验验证数据分析结果表明,该算法能够提供分米级的室内定位精度。
1) LOS和NLOS环境下的定位性能分析结果证明,所提算法受NLOS影响较小,对室内复杂环境有很强的鲁棒性。
2) CSI-XGBoost算法能够很好地处理稀疏数据,解决CSI指纹特征高维数据稀疏性导致的“误匹配”问题。
3) 当存在数据缺失时,该算法对缺失值不敏感,定位性能明显优于SVM算法,定位准确度大于90%。
[1] |
BAHL P, PADMANABHAN V N. RADAR: An in-building RF-based user location and tracking system[C]//Proceedings of IEEE INFOCOM.Piscataway, NJ: IEEE Press, 2000: 775-784.
|
[2] |
YOUSSEF M, AGRAWALA A.The Horus WLAN location determination system[C]//International Conference on Mobile Systems.New York: ACM, 2005: 205-218.
|
[3] |
HALPERIN D, HU W J, SHETH A, et al. 802.11 with multiple antenna for dummies[J]. ACM SIGCOMM Computer Communication Review, 2010, 40(1): 19-25. DOI:10.1145/1672308 |
[4] |
HALPERIN D, HU W J, SHETH A, et al. Predictable 802.11 packet delivery from wireless channel measurements[J]. ACM SIGCOMM Computer Communication Review, 2010, 40(10): 159-170. |
[5] |
YANG Z, ZHOU Z M, LIU Y H. From RSSI to CSI:Indoor localization via channel response[J]. ACM Computing Surveys, 2013, 46(2): 1-32. |
[6] |
WANG X Y, GAO L J, MAO S W, et al.DeepFi: Deep learning for indoor fingerprinting using channel state information[C]//2015 IEEE Wireless Communications & Networking Conference.Piscataway, NJ: IEEE Press, 2015: 1666-1671.
|
[7] |
WANG X Y, GAO L J, MAO S W.PhaseFi: Phase fingerprinting for indoor[C]//Proceedings of IEEE Global Communication Conference.Piscataway, NJ: IEEE Press, 2015: 1-6.
|
[8] |
WU K S, XIAO J, YI Y W, et al. CSI-based indoor localization[J]. IEEE Transactions on Parallel and Distributed System, 2013, 24(7): 1300-1309. DOI:10.1109/TPDS.2012.214 |
[9] |
XIAO J, WU K S, YI Y W, et al.FIFS: Fine-grained indoor fingerprinting system[C]//Proceedings of IEEE ICCCN.Piscataway, NJ: IEEE Press, 2012: 1-7.
|
[10] |
CHAPRE Y, IGNJATOVIC A, SENEVIRATNE A, et al. CSI-MIMO:An effcient WiFi fingerprinting using channel state information with MIMO[J]. Pervasive Mobile Computing, 2015, 23: 89-103. DOI:10.1016/j.pmcj.2015.07.002 |
[11] |
CHEN T Q, GUESTRIN C.XGBoost: A scale tree boosting system[C]//Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York: ACM, 2016: 13-17.
|
[12] |
LAN/MAN Standards Committee.IEEE Standard for Information technology-Telecommunications and information exchange between systems-Local and metropolitan area networks-Specific requirements: Part 11.Wireless LAN medium access control (MAC) and physical layer (PHY) specifications: IEEE 802.11n[S].Piscataway, NJ: IEEE Press, 2009: 312-335.
|
[13] |
SEN S, RADUNOVIC B, CHOUDHURY R R, et al.You are facing the Mona Lisa: Spot localization using PHY layer information[C]//Proceedings of the 10th International Conference on Mobile Systems, Applications, and Services.New York: ACM, 2012: 183-196.
|
[14] |
WANG X Y, GAO L J, MAO S W. CSI phase fingerprinting for indoor localization with a deep learning approach[J]. IEEE Internet of Things Journal, 2016, 3(6): 1113-1123. DOI:10.1109/JIOT.2016.2558659 |
[15] |
杨萌, 修春娣, 杨东凯. 基于感知概率的室内定位系统[J]. 全球定位系统, 2013, 38(6): 238-241. YANG M, XIU C D, YANG D K. Indoor positioning system using perceptual probability[J]. Global Positioning System, 2013, 38(6): 238-241. (in Chinese) |