田家英,张志华

(1.兰州交通大学 测绘与地理信息学院,甘肃 兰州 730070;2.甘肃省地理国情监测工程实验室,甘肃 兰州 730070)

随着无线电通信技术、移动互联网技术的发展以及移动终端设备硬件性能的提升,基于位置的服务(Location Based Service,LBS)正逐渐成为移动互联网时代的一颗新星[1]。随着服务能力的增强,LBS已在医院、商场智能家居等众多领域发挥了重要作用。相对传统室外定位,室内定位环境复杂,信号受建筑物遮挡和多径效应的影响,全球卫星导航系统(Global Navigation Satellite System,GNSS)定位精度受到严重制约,无法满足室内位置服务的需要。因此,如何提供高质量的室内位置服务已经成为当今的研究热点。

当前,基于蓝牙、红外线、地磁、超带宽、WIFI等技术实现的室内定位系统已在特定的范围内得到一定的应用[2]。相对于其它技术,覆盖范围广、部署成本低和较高定位精度使得基于WIFI的室内定位成为当前室内定位的主流技术。国内外学者针对WIFI室内定位做了大量研究。文献[3]从目前主流室内定位技术的定位原理、技术分类体系和定位方法对室内定位做了一个宏观的研究。文献[4]从信号特征提取上提出改进粒子滤波信号强度提取法,减小噪声对定位精度的影响。文献[5]提出结合室内影响因素约束的权重改正模型,提高基于三角形定位法的定位精度。文献[6]针对室内复杂环境,提出基于方差的加权距离改进的加权K近邻法,得到更高的定位精度。文献[7]提出基于余弦相似度的指纹匹配算法,在保证定位精度有效的前提下降低指纹匹配算法的复杂度。现阶段,基于位置指纹的WIFI室内定位存在离线建库工作量大、指纹数据受噪声干扰、指纹匹配算法效率低等问题。本文在分析现有基于位置指纹的室内定位方法的基础上,在离线建库阶段,通过对定位区域空间网格化,基于参考点空间关系对指纹数据分级。在线定位阶段通过对指纹数据逐级匹配,提高匹配效率,减小定位误差,并通过实验进行验证。

1 室内定位方法概述

目前,室内定位技术从原理上来讲可以分为两类:基于信号传播模型和基于位置指纹的定位[8]。基于信号传播模型的定位方法主要是通过测量待测目标与参考节点之间的距离或角度信息建立合适的数学模型(如三角定位模型、圆周定位模型等)

解算出待测点的位置,常用的测距方法有基于信号到达时间 (Time of Arrival, TOA)、基于信号到达时间差 (Time Difference of Arrival, TDOA)、基于信号到达角度 (Angle of Arrival, AOA)和基于接收信号强度指示(Received Signal Strength Indication, RSSI)[9]等;基于位置指纹的定位方法不直接依赖待测目标和参考节点之间的距离或角度关系,而是将不易测量的位置信息和容易测量的信号特征(如信号强度)建立映射关系,间接确定待测目标的空间位置。

2 WIFI位置指纹定位

2.1 WIFI室内定位原理

由AP发射信号的路径损耗传播模型[10]可知,RSSI会随着传播距离的增加逐渐衰减,当室内存在障碍物时,信号会受到遮挡,强度的衰减也不再规律,不同位置获取AP的RSSI也存在差异。通常在某一固定位置,能同时获取到多个AP的RSSI数据。基于上述特性,实现基于WIFI的室内定位,按照定位原理可分为两类,二者比较详见表1。由于位置指纹算法无需AP的具体位置和发射功率信息即可实现定位,定位方式较为灵活,因此,该方法已经成为基于WIFI室内定位的主流技术,本文主要以位置指纹算法原理为基础对基于WIFI的室内定位技术进行研究。

2.2 位置指纹室内定位流程

基于位置指纹定位算法的室内定位通常分为两个阶段:离线建库阶段和在线定位阶段,定位原理如图1所示。

离线建库阶段:

1)将连续的定位区域离散格点化,选择合适的采样间隔设置参考点并采集参考点处的相关信息;

2)通常采集到的RSSI数据都含有噪声,通过高斯滤波、均值滤波等方法对数据进行预处理;

3)将处理后的RSSI信息和空间位置信息建立映射关系,存入指纹数据库,建立信号无线地图(Radio Map, RM)。

表1 基于WIFI的室内定位技术比较

在线定位阶段:将待测点处的RSSI信息与指纹数据库中的数据进行匹配,将相似度最高的指纹数据对应的位置作为待测点处的空间位置。常见的指纹定位算法主要有近邻法、朴素贝叶斯法、最大似然概率法、核函数法、神经网络法和支持向量回归法等[11]。

图1 位置指纹定位原理

2.3 位置指纹定位算法

在线定位阶段,将在待测点采集到的RSSI信息与指纹库中的数据进行匹配,实现在线定位。目前用于指纹定位的算法较多,近邻算法具有实现简单、普适性强且不需要考虑参数和诸多的假设问题等优点,因此,本文选择近邻法作为数据匹配的算法。

近邻算法[12]分为最近邻法(Nearest Neighborhood,NN)、K近邻法(K Nearest Neighborhood,KNN)和加权K近邻法(Weighted K Nearest Neighborhood,WKNN)。NN是求出待测点处的RSSI向量与指纹库的RSSI向量间的矢量欧几里得距离[13](简称欧式距离)最小的指纹数据,将其对应的空间位置信息作为待测点的位置信息;KNN是在NN的基础上求出K个欧式距离最小的指纹数据,将其对应的空间位置取平均值作为待测点的位置信息;单纯的求均值无法有效的表达K个指纹数据各自所占的权重,因此WKNN在KNN的基础上将均值改为权重,进一步提高定位的精度。近邻算法的核心思想是通过计算待测点处的RSSI向量与指纹库中的指纹向量的相似度,将相似度最高的K(K≥1)个指纹数据对应的空间位置求均值或加权均值的结果作为待测点的空间位置,算式为

(1)

3 基于数据分级的位置指纹室内定位

3.1 离线建库阶段

3.1.1 RSSI数据预处理

离线建库阶段采集参考点处接收到AP的RSSI值,建立RSSI特征向量。由于室内环境较为复杂,干扰因素较多,采集到的数据中存在噪声影响,RSSI会出现一些偏差较大的奇异点。因此,本文将采集的RSSI数据先进行高斯滤波[14]处理,滤除小概率数据,然后进行均值滤波处理。

高斯滤波处理:由于RSSI受干扰产生波动,其总体呈现正态分布的特点,因此,采用高斯滤波对RSSI进行初步处理,滤除小概率数据。通过实际环境采集实验数据,本文选取概率在90%以内的数据,即RSSI∈(μ-1.65σ,μ+1.65σ),其中μ为均值,σ为标准差。

(2)

均值滤波处理:将经高斯滤波处理后的多个RSSI值求算术平均值。

(3)

3.1.2 基于空间位置关系的数据分级

通常一条指纹数据由两部分组成:参考点处的空间坐标信息和多个AP信号的RSSI组成的信号强度向量。本文在此基础上增加RSSI数据级别,基于参考点的空间位置关系对数据进行分级。

离线建库时对定位区域按照适当的间隔设置参考点。基于WIFI路径损耗传播模型,本文将参考点设置如图2所示(以两级数据为例)。在指纹数据建库时根据采样间隔将参考点P1,P3,P5,P11,P13,P15,P21,P23,P25数据设为1级,其它数据设为2级。假设采集第i个参考点数据,需要记录该点的空间坐标位置(xi,yi)和多个AP信号的RSSI组成的信号强度向量RSSIi=(rssi1,rssi2,…,rssin)以及基于空间位置关系设置的数据级别level,将坐标信息、数据级别和RSSI值建立映射关系存入数据库中,如式(4)所示。

(4)

图2 定位区域参考点设置示意图

3.2 在线定位阶段

在线定位阶段,将定位终端n次扫描获取多个RSSI值进行均值滤波处理,得到待测点处的RSSI强度向量,然后与指纹库中数据进行最近邻匹配,寻找相似度最高的指纹数据。本文实验中指纹匹配采用WKNN算法,WKNN算法中K的取值影响定位结果[15],基于本文数据分级的特性,选择K=4的WKNN算法进行位置求解。

由于指纹数据库中的数据增加了数据级别属性,改进算法后的在线定位流程如下:

1)将待测点处的RSSI向量数据基于NN算法与指纹库中数据级别为1的指纹数据进行计算,获取欧式距离最小的前4个值。4个指纹数据通常会出现如下3种情况:

(1)分布在以1级数据对应采样间隔di为边长的矩形上,如图2中P1,P3,P11,P13。

(2)其中3个指纹点分布在以di为边长的矩形上,如图2中P1,P3,P11,P23,此时舍弃P23同时将P13作为补偿点。

(3)零散的分布在以2di为边长的矩形上,如图2中P1,P3,P23,P25,若P1欧式距离小于P25,则将P25舍弃,同时添加P21作为补偿点,反之将P1舍弃,添加P5作为补偿点。

2)通过1)中确定4个欧式距离最小的1级指纹点,通过对应的空间位置信息确定最小外包矩形,获取空间位置在矩形范围内的2级指纹数据。

3)将待测点处的RSSI向量数据与2)中获取的2级指纹数据匹配,求出欧式距离。

4)将1)中修正后的和2)中计算得到的欧式距离进行排序,选择欧式距离最小的4个值,通过WKNN算法求出待测点的坐标信息。

基于WKNN算法改进后的位置指纹在线定位阶段流程如图3所示。

图3 改进后的在线定位流程

4 实验分析和评估

针对本文实验方案开发设计了基于WIFI位置指纹定位系统原型,由于位置指纹匹配是一个比较消耗资源的过程,因此系统采用当前主流的B/S(Browser/Server,浏览器/服务器模式)架构[16]。服务端以MyEclipse作为开发环境,采用Java语言编写,开发基于Java+Tomcat+MySQL模式的原型系统。客户端采用Android系统的小米MI 5S手机。该系统主要分为两大功能模块:离线数据采集模块和在线定位模块。

4.1 实验环境及数据采集

本文选取8 m×12 m的办公楼大厅作为实验区域,实验区域内不同参考点可以扫描到AP的个数存在差异,本文选择大部分参考点都能扫描到的6个AP作为RSSI信号发射源,参考点间隔1.2 m,选取81个参考点,18个测试点。在采集数据过程中,为尽量减小因单向采集和人体遮挡所带来的影响,分别在参考点4个方向上每次采样40次,共计160次,采样间隔设为10 s。图4为室内定位原型系统的离线数据采集界面。

图4 离线数据采集界面

软件数据采集功能模块可以自主的设置采样间隔、采样次数,实现自动采集。采集到的数据结构如表2所示。

表2 采样信息数据结构

4.2 数据预处理

由于室内环境复杂,存在障碍物等因素,室内环境中采集到WIFI的RSSI信息包含随机噪声。本文先采用高斯滤波处理,滤除小概率数据,然后再采用均值滤波处理。双重滤波处理从一定程度上减少噪声的影响,使指纹库数据更能反映实际信号特征。图5为RSSI高斯滤波前后分布对比图。通过图5可见,RSSI数据通过高斯滤波处理后其概率分布曲线更逼近真实值分布曲线,经高斯滤波后将小概率数据滤除,有效的减小高斯噪声的影响。

图5 RSSI高斯滤波处理前后分布对比

4.3 在线定位实验结果及分析

实验过程中通过位置估计的精度、可靠度以及邻近点搜索的可靠度3个指标[17]来评价本次的实验结果。定位阶段,分别采用WKNN算法和本文提出的改进算法进行实验对比,实验结果见图6。从两种算法定位对比分析(见表3)可以看出,改进后的算法指纹数据匹配次数大幅减少,平均定位误差减小0.5 m,有效提高定位精度。

表3 两种算法定位对比分析表

图6 实验结果对比数据

5 结束语

本文在总结分析当前室内定位技术的基础上,提出了一种基于近邻法改进的室内定位算法。离线建库阶段,使用高斯滤波和均值滤波对RSSI双重滤波处理,提高位置指纹数据库的可信度;通过对定位区域网格化,基于参考点空间分布关系对指纹数据分级。在线定位阶段,通过数据级别缩小匹配范围,减小指纹数据匹配工作量的同时提高定位精度。但基于位置指纹算法实现的室内定位的离线建库工作量较大,如何在保证定位精度的前提下减小离线建库工作量将是今后的研究方向。