| 一种WiFi指纹定位改进算法 |
2. 地球空间信息技术协同创新中心, 湖北 武汉, 430079;
3. 武汉大学灾害监测和防治研究中心, 湖北 武汉, 430079;
4. 江西省数字国土重点实验室, 江西 南昌, 330013
2. Collaborative Innovation Center of Geospatial Technology, Wuhan 430079, China;
3. Hazard Monitoring & Prevention Research Center, Wuhan University, Wuhan 430079, China;
4. Jiangxi Province Key Laboratory for Digital Land, Nanchang 330013, China
随着社会的发展,室外定位服务已不能满足人们日益增长的位置服务[1]需求,室内位置服务成为亟待解决的问题。目前, GNSS (global navigation satellite system)[2, 3]定位技术已广泛应用于室外定位、导航等服务,然而由于卫星信号受房屋、城市峡谷等遮挡的影响,GNSS在室内定位中存在一定的局限。随着WiFi通信技术的发展和智能手机的普适性[4, 5],基于RSSI的WiFi室内定位[6, 7]具有无需特殊硬件布设、廉价易行的特性,已成为室内定位的一个主要研究热点。基于RSSI的WiFi室内定位算法主要包括距离交会定位算法和指纹定位算法[8]。文献[9]研究了基于WiFi信号强度的几种定位算法,分析了各自的优劣性,为未来的定位算法指明了研究方向。文献[10]提出了一种基于WiFi室内定位的改进型位置识别算法,提高了定位算法的抗干扰能力和稳定性。文献[11]提出了一种在智能手机平台将确定性算法和概率分布算法相融合的室内定位新方法,降低了定位的复杂度,提高了定位精度。
考虑到WiFi定位精度受室内环境的影响精度较低,为了提高基于RSSI的WiFi指纹室内定位技术的精度,本文提出了一种基于GPR (Gaussian process regression)模型[12, 13]的WiFi指纹定位改进算法,利用GPR模型建立离线阶段指纹数据库,采用K加权近邻匹配算法[14]进行在线定位。实验表明,基于GPR模型的WiFi指纹定位改进算法,在不增加其他开销的前提下,算法性能稳定[15]。
1 WiFi指纹定位改进算法 1.1 算法的基本思想WiFi指纹定位算法主要分为两个阶段:① 离线阶段,即建立关于RSSI和采样点位置映射的指纹数据库;② 在线阶段,将待测位置接收到的多个AP的RSSI数据与离线阶段位置指纹数据库进行匹配,从而实现定位过程。
离线阶段通常采用快速构建指纹库的方法,主要思想是信号强度取均值进行建库,其表达形式为:
| $\left\{ \begin{align} & ({{x}_{i}},\text{ }{{y}_{i}},\text{ }\left[ \overline{\text{SSID}}\quad \overline{\text{RSSI}} \right]) \\ & \overline{\text{RSSI}}=\frac{\sum\limits_{n}^{1}{{}}\text{RSSI}}{n} \\ \end{align} \right.$ | (1) |
式中,(xi, yi)表示第i个指纹点坐标;SSID表示指纹点上观测到的AP名称的链表;RSSI表示对应AP的RSSI均值构成的列向量。
快速构建指纹库的方法只是将指纹点上获取的RSSI进行了简单的均值处理,然而由于室内环境复杂,指纹点的RSSI观测序列受到多径衰落的影响存在较大的波动,不同地理位置的RSSI均值不具有唯一性,因此,引起基于快速构建指纹库算法的WiFi指纹定位算法性能下降。
考虑到GPR模型是一种严密的监督学习算法,通过对样本数据的学习,能挖掘出更多数据本身的信息。本文提出了一种基于GPR模型的指纹库构建算法,其主要思想是:假定样本数据服从一个特定的高斯过程f~GP(m, k),高斯过程中的超参数最佳估计值可通过样本数据利用贝叶斯原理进行求解,从而建立出GPR预测模型;采集参考点的RSSI信号值和位置坐标信息,利用得到的GPR模型对参考点的RSSI进行预测;将预测结果和坐标信息进行整合存储,即可建立基于GPR预测模型的指纹数据库。
求解高斯过程是基于GPR模型的指纹库构建算法的主要工作内容,高斯过程求解如下:假定高斯过程f~GP(m, k)的一般形式为:
| $\left\{ \begin{align} & m\text{ }\left( x \right)=a{{x}^{2}}+bx+c \\ & k\text{ }\left( x,\text{ }x\prime \right)={{\sigma }_{y}}^{2}{{\text{e}}^{-\frac{{{(x-x\prime )}^{2}}}{2{{l}_{1}}^{2}}}}+{{\sigma }_{y}}^{2}{{\text{e}}^{-\frac{{{(x-x\prime )}^{2}}}{2{{l}_{2}}^{2}}}}+{{\sigma }_{n}}^{2}{{\delta }_{xx\prime }} \\ \end{align} \right.$ | (2) |
式中, m (x)表示高斯过程的均值函数,在GPR处理中常常假定均值函数为常数0;x表示样本数据的RSSI观测值,且服从高斯分布;k (x, x′)表示任意两个随机变量x和x′的协方差,其具体表达式中,等号右边第一项表示信号波的一个短周期参数;第二项表示信号波的一个长周期参数,其中l2≈6l1,此系数项表示信号波的一个长趋势;
考虑f~GP(m, k)在处理过程中均值函数m (x)被假定为常数0的情况,假定(xi, yi)(i=1, 2, …,n)为观测的样本数据,xi表示样本数据RSSI观测值为自变量,根据自变量满足的协方差公式k (x, x′),将所有的自变量协方差组合,可推求出所有样本的协方差矩阵:
| $\mathit{\boldsymbol{K}} = \left[ {\begin{array}{*{20}{c}} {k{\rm{ }}({x_1},{\rm{ }}{x_1})}& \ldots &{k{\rm{ }}({x_1},{\rm{ }}{x_n})}\\ \vdots &{}& \vdots \\ {k{\rm{ }}({x_n},{\rm{ }}{x_1})}& \ldots &{k{\rm{ }}({x_n},{\rm{ }}{x_n})} \end{array}} \right]$ | (3) |
考虑k (x, x′)的表达式,可得:
| $\mathit{\boldsymbol{K}} = \left[ {\begin{array}{*{20}{c}} {{\sigma _f}^2 + {\sigma _n}^2}& \ldots &{{\sigma _f}^2\exp [\frac{{ - {{({x_1} - {x_n})}^2}}}{{2{l_1}^2}}] + {\sigma _f}^2\exp [\frac{{ - {{({x_1} - {x_n})}^2}}}{{2{l_2}^2}}]}\\ \vdots &{}& \vdots \\ {{\sigma _f}^2\exp [\frac{{ - {{({x_n} - {x_1})}^2}}}{{2{l_1}^2}}] + {\sigma _f}^2\exp [\frac{{ - {{({x_n} - {x_1})}^2}}}{{2{l_2}^2}}]}& \ldots &{{\sigma _f}^2 + {\sigma _n}^2} \end{array}} \right]$ | (4) |
式(3) 的对数似然概率的计算公式如下:
| $\begin{array}{l} L = \lg p{\rm{ }}\left( {\mathit{\boldsymbol{y}}|\mathit{\boldsymbol{x}},{\rm{ }}\theta } \right) = - \frac{1}{2}\lg |\mathit{\boldsymbol{K}}| - \\ \quad \quad \frac{1}{2}{\mathit{\boldsymbol{y}}^{\rm{T}}}{\mathit{\boldsymbol{K}}^{ - 1}}y - \frac{n}{2}\lg \left( {2\pi } \right) \end{array}$ | (5) |
式中, L表示似然概率,p (y|x, θ)表示由因变量y关于自变量x的边缘概率密度,并且自变量x服从高斯分布,且高斯分布由超参数θ定义。
由贝叶斯估计原理可知,当似然概率L取最大值时,对应的超参数θ为样本数据服从的高斯过程的最佳参数估计值。超参数θ的估计利用似然优化公式计算:
| $\frac{{\partial L}}{{\partial \theta }} = \frac{1}{2}{\rm{trace}}\left( {{\mathit{\boldsymbol{K}}^{ - 1}}\frac{{\partial \mathit{\boldsymbol{K}}}}{{\partial \theta }}} \right) + \frac{1}{2}{\mathit{\boldsymbol{y}}^{\rm{T}}}\frac{{\partial \mathit{\boldsymbol{K}}}}{{\partial \theta }}{K^{ - 1}}\frac{{\partial \mathit{\boldsymbol{K}}}}{{\partial \theta }}\mathit{\boldsymbol{y}}$ | (6) |
式中, trace·表示求矩阵的迹;K表示协方差矩阵;
通过数值优化算法解算出特定高斯过程中的超参数并建立GPR预测模型后,根据高斯过程的性质可以得到预测值与样本观测值之间的联合概率分布,满足下式:
| $\left[ \begin{align} & \mathit{\boldsymbol{y}} \\ & {{\mathit{\boldsymbol{y}}}_{*}} \\ \end{align} \right]\tilde{\ }N\left(0 ,\rm{ }\left[ \begin{matrix} \mathit{\boldsymbol{K}} & \mathit{\boldsymbol{K}}_{\rm{*}}^{\rm{T}} \\ \mathit{\boldsymbol{K}} & {{\mathit{\boldsymbol{K}}}_{**}} \\ \end{matrix} \right] \right)$ | (7) |
式中, y为样本数据的观测值;y*为预测点的预测值;K*=[k (x*, x1),k (x*, x2),…,k (x*, xn)],k (xi, xj)表示预测点自变量(即RSSI观测值)与样本数据自变量之间的协方差;K**=k (x*, x*);N为联合高斯分布。因此,由式(7) 即可利用观测值y得到最佳预测值y*以及y*的方差,分别为:
| $\left\{ \begin{align} & {{\mathit{\boldsymbol{y}}}_{*}}={{\mathit{\boldsymbol{K}}}_{*}}{{\mathit{\boldsymbol{K}}}^{-1}}\mathit{\boldsymbol{y}} \\ & \operatorname{var}({{\mathit{\boldsymbol{y}}}_{*}})={{\mathit{\boldsymbol{K}}}_{**}}-{{\mathit{\boldsymbol{K}}}_{*}}{{\mathit{\boldsymbol{K}}}^{-1}}\mathit{\boldsymbol{K}}_{\rm{*}}^{\rm{T}} \\ \end{align} \right.$ | (8) |
式中,var(·)表示方差。
在线阶段,K加权近邻算法是目前较为常用且定位性能较好的定位算法。其算法的主要思想是:与离线阶段建立的指纹数据库进行匹配,计算实时测量的RSSI样本数据与指纹数据库中各指纹对应的RSSI值之间的欧氏距离,找出距离实时RSSI样本信号最近的K (K≥2) 个指纹参考点,在所获得的K个位置坐标附上一个归一化加权系数,将加权平均值作为最终的定位结果。具体公式如下:
| $\left( \hat{x},\hat{y} \right)=\sum\limits_{i=1}^{K}{{}}\left( \frac{\eta }{{{d}_{i}}+\varepsilon }\times \left( {{x}_{i}},\text{ }{{y}_{i}} \right) \right)$ | (9) |
式中,ε表示任意极小正参数,避免除数为0,消除上式无意义的可能性;η表示归一化加权系数;xi, yi表示第i个指纹参考点对应的位置坐标;di表示第i个指纹参考点与待定点的欧几里得距离,计算公式如下:
| ${{d}_{i=}}\sqrt{\sum\limits_{j=1}^{n}{{}}{{\left( {{\overline{\text{RSSI}}}_{i}}^{j}-\text{RSS}{{\text{I}}^{j}} \right)}^{2}}}$ | (10) |
式中,RSSIij表示第i (i=1, 2, …, N)个参考点采集到第j个AP的RSSI均值; RSSIj表示在线阶段实时测量得到的第j个AP的RSSI均值;n表示参考点个数。
1.2 算法的实施步骤基于GPR模型的WiFi指纹定位改进算法流程见图 1。其主要步骤如下:
![]() |
| 图 1 基于GPR模型的WiFi指纹定位改进算法流程图 Figure 1 Flow Chart of Improved WiFi Fingerprint Positioning Algorithm Based on GPR Model |
1) 选取特定的高斯过程形式,获取部分位置指纹的数据作为样本数据,利用样本数据估计所选定的高斯过程中的超参数,即可建立GPR预测模型;
2) 获取参考点的RSSI和坐标信息,利用建立的GPR预测模型建立关于参考点的指纹数据库;
3) 获取定位点的RSSI,利用K加权近邻定位算法将定位点获取的RSSI与离线阶段建立的指纹数据库进行匹配,实现定位点的位置估计。
1.3 算法的精度评定指标1) 精度指标。位置估计精度为所有参与计算的位置估计点的点位误差的平均值,即
| $\delta =\frac{1}{N}\sum\limits_{i=1}^{N}{{}}\Delta {{s}_{i}}$ | (11) |
式中,δ为位置估计的精度;N为所有参与检验位置估计点的个数;
2) 位置估计可靠度指标。可靠度为位置估计误差小于某一限差的百分比,即
| ${{\beta }_{\alpha }}=\frac{{{n}_{\alpha }}}{N}$ | (12) |
式中,nα为点位误差小于指定阈值α的个数。
2 实验及分析为了验证本文提出的基于GPR的WiFi指纹定位改进算法,在常见的办公环境场景下进行了一组基于RSSI的WiFi指纹定位实验。实验采用红米手机作为WiFi信号的接收器,数据记录软件采用自主开发的APP,信号发射器采用TP_LINK的路由器。数据采集过程中,尽量保持采样点高度一致,分布均匀,同时利用自主编写的C#数据处理定位软件对数据进行建模解算。
在办公室均匀布设8个AP,选取8个指纹点、6个待定点进行定位实验,获取其位置指纹信息和坐标信息。每个采样点设置1 s的采样率,持续采集2 min。点位分布如表 1所示。表 1中,坐标系为基于实验本身的独立坐标系。
| 表 1 待定点坐标/m Table 1 Coordinate of Fixed Points/m |
![]() |
表 2给出了采用两种不同的指纹库构建的基于WiFi指纹定位算法模型的定位精度以及可靠性的统计信息。
| 表 2 两种不同指纹库构建模型的点位误差精度统计表 Table 2 Point Error Statistics of Two Different Fingerprint Library |
![]() |
由表 2可以看出,在定位精度方面,基于GPR模型的WiFi指纹定位改进算法明显优于快速构建指纹库的定位算法,约提高了一倍。基于GPR模型的改进算法的点位误差在小于2 m限差的可靠度为100%,而快速构建指纹库的定位算法只有66.7%;点位误差在小于1.5 m限差时,基于GPR模型的改进算法的可靠度为83.3%,而快速构建指纹库的定位算法只有33.3%。从数据统计结果可以看出,基于GPR模型的WiFi指纹定位改进算法的性能明显优于快速构建指纹库的定位算法。
3 结束语本文提出的基于GPR模型的WiFi指纹定位改进算法能够有效地平滑时间序列信号的特性,建立指纹数据库。实验结果与分析表明,在不考虑其他因素条件下,基于GPR模型的WiFi指纹定位改进算法的定位精度可达到0.85 m,明显优于同等条件下的快速构建指纹库的定位算法的1.75 m。在点位误差小于1.5 m限差时,基于GPR模型的WiFi指纹定位改进算法的可靠度为83.3%,而快速构建指纹库的定位算法只有33.3%,算法性能有很大的提高。因此,基于GPR模型的WiFi指纹定位改进算法可得到一定的应用和发展。
| [1] |
刘长征. 位置服务系统的研究与实现[D]. 北京: 清华大学, 2004 |
| [2] | 陈俊勇, 党亚明. 全球导航卫星系统的新进展[J]. 测绘科学, 2005, 30(2): 9–12 |
| [4] | Bahl P, Padmanabhan V N.RADAR: An In-Building RF-based User Location and Tracking System [C]. INFOCOM 2000, New York, 2000 |
| [5] | Takashima M, Zhao D, Fukui K, et al. An Experiment of Indoor Location Estimation Using IEEE 802.15.4 [R].Technical Report of IEICE 2005 SN2005-7, Pedestrian, 2005 |
| [6] | 徐亚明, 周建国, 罗海涛. 无线传感器网络室内定位系统的实现[J]. 测绘地理信息, 2013, 38(3): 9–11 |
| [7] | 周立君, 刘宇. 基于RSSI的无线传感器网络节点定位技术研究[J]. 电子测量技术, 2010, 33(8): 115–118 |
| [8] |
张明华. 基于WLAN的室内定位技术研究[D]. 上海: 上海交通大学, 2009 |
| [9] | 张明华, 张申生, 曹建. 无线局域网中基于信号强度的室内定位技术[J]. 计算机科学, 2007, 34(6): 68–71 |
| [10] | 魏恒瑞, 王蔚庭. 基于WiFi定位技术的改进型位置指纹识别算法研究[J]. 制造业自动化, 2014, (23): 148–151 |
| [11] | 王忠民, 陈振, 潘春华. 一种改进的位置指纹智能手机室内定位算法[J]. 西安邮电大学学报, 2014, 19(1): 17–20 |
| [12] | Yao Weixiong, Yang Yi, Zeng Bin. Novel Methodology for Casting Process Optimization Using Gaussian Process Regression and Genetic Algorithm[J]. China Foundry, 2009, 6(3): 232–240 |
| [13] | 何志昆, 刘光斌, 赵曦晶, 等. 高斯过程回归方法综述[J]. 控制与决策, 2013, (8): 1121–1129 |
| [14] |
陈丽娜. WLAN位置指纹室内定位关键技术研究[D]. 上海: 华东师范大学, 2014 |
| [15] |
武汉大学测绘学院测量平差学科组. 误差理论与测量平差基础[M]. 武汉: 武汉大学出版社, 2009 |
2017, Vol. 42





