宋宛真,冯秀芳
(1.太原理工大学 信息与计算机学院,山西 晋中 030600;2.太原理工大学 软件学院,山西 晋中 030600)
随着无线设备的全面覆盖以及移动终端设备的广泛应用,基于Wi-Fi的接收信号强度指示(received signal strength indication,RSSI)指纹室内定位技术成为室内定位的主流方法之一。该技术不需要额外的硬件设备,且适用性高。但由于室内环境的复杂多变及室内人员流动等造成的多径效应、数据的时效性、天线增益等问题,使测量的数据存在很大误差。文献[1]将指纹动态采集与径向基函数(radial basis function,RBF)相结合,采用遗传算法对自由形状参数进行优化。文献[2]根据信号的邻近信息对区域进行分类,限制搜索范围;文献[3]利用人工免疫系统对RBF神经网络的中心向量选择进行优化。文献[4]通过优化粒子群算法,进一步优化RBF神经网络的输出向量。文献[5]结合TOA和RBF神经网络训练距离测量,输出距离误差。文献[6]对AP算法p进行改进。文献[7]结合AP算法与统计学进行定位,降低了人工选择中初始聚类中心不当的概率。文献[8]通过动态调整AP算法中的相似度,避免了其陷入震荡。文献[9]提出了一种基于改进的快速聚类算法LM算法相结合的室内定位算法,降低了RBF神经网络的错误率。综上所述,AP算法中p以及阻尼因子λ的确定、室内定位中定位精度问题仍是重点研究课题,本文提出一种加权仿射传播算法(weighted affine propagation,WAP)与广义RBF神经网络相结合的室内定位方法(weighted affine propagation indoor position,WAP_IP),构建指纹数据库时对RSSI值进行处理,并通过广义RBF神经网络进行误差修正,提高定位精度。
基于Wi-Fi的位置指纹室内定位法主要利用广泛分布的Wi-Fi信号,信号接收装置会接收到来自各个信号发射端的信号,称之为RSSI信号。在指纹室内定位中,无线信号的强度会随着传播距离的增加而衰减,且其衰减符合对数衰减模型[10],常用的衰减公式如下
(1)
其中,RSSId0代表距离为d0时,RP接收到的信号接收强度;n代表路径衰减参数,其与室内环境变化密切相关;Xs代表具有标准差的零均值正态随机变量,当路径无衰减,置为零。
基于WAP_IP算法定位分为两个阶段:离线阶段和在线阶段,具体流程如图1所示。
图1 室内定位流程
在离线阶段即RSSI数据采集阶段,室内环境布置参考点,对参考点接收到的数据值以及其位置坐标进行卡尔曼滤波处理,分析各个时段的RSSI数值,对指纹数据进行优化后构建指纹数据库。
通过熵值法对AP算法p进行加权处理,通过AP算法进行粗定位之后,得到粗定位结果。结合WAP算法与广义RBF神经网络,不断修正定位误差,得到最后的误差修正值。
在线定位阶段,将终端设备收集到的样本值与数据库中匹配,通过WAP算法计算得出大致位置坐标。然后通过训练好的广义RBF神经网络进行训练得到定位误差,对粗定位误差进行修正,得到最终的定位结果,并将最后的修正结果存入指纹数据库。
RSSI值随着室内环境及时间变化而变化,针对RSSI值存在的时效性问题,固定位置多次测量RSSI值,并对固定位置接收的RSSI值进行分析,分析多组数据后得到RSSI值分布基本呈现高斯分布, 将RSSI值分布图转化为高斯概率函数分布图,求解一组RSSI数据均值和方差,利用高斯分布函数计算RSSI值。
高斯分布函数如下所示
(2)
其中,m为RSSI数据均值,s为RSSI数据方差。
位置指纹存储形式为式(3)所示
R(xi,yi)=(R(xi,yi,1),R(xi,yi,2),…,R(xi,yi,n))
n=1,2,…,N
(3)
其中,n代表实验中AP数量,(xi,yi)分别代表位置点横纵坐标。
基于Wi-Fi的指纹室内定位需要预先对所有节点进行聚类。AP聚类是Fery提出通过分析数据点之间的相互传播关系来确定聚类中心的一种聚类方法,聚类中将所有节点都看作可能的聚类中心,根据欧氏距离计算节点间的相似度矩阵,通过节点间相似度关系找出最合适的聚类中心。AP聚类算法[13]相较于WKNN[12]、朴素贝叶斯算法[13]、SVM[14]等分类算法,所需要的数据和数据发射端数量较少,不仅可以节省时间,而且自确定聚类中心可以减少人为确定聚类中心带来的误差。
AP聚类中有两个重要的参数,分别为p和λ,算法中以p作为节点为聚类中心的度量,p会影响聚类的数目,p值越大,聚类数目越多。通过熵值法对AP聚类的相似度进行优化后,对优化后的p进行加权处理,WAP聚类算法具体流程如图2所示。
图2 WAP聚类流程
AP聚类算法构造相似性矩阵S,并将S作为算法的输入。通过熵值法对AP算法聚类相似度矩阵计算进行优化,计算熵值法的参数
(4)
其中,xij为指纹库中第i个数据点的第j个RSSI值,i=1,2,…,n;j=1,2,…,N,n为样本数,N为RSSI值数,ωj表示权重。节点i,k之间相似度为
s(i,k)=((xi-xk)2+(yi-yk)2)1/2
(5)
得到的权值计算数据点之间的相似度,对相似度进行均值加权处理,取p=ωj*mean(s(i,k))。
节点间传递的消息划分为两类:吸引度和归属度。吸引度是节点i传递向节点j的信息,表示节点j对节点i的吸引度,记为r(i,j),归属度是节点i选择节点j作为它的聚类中心的合适程度,记为a(i,j),如果节点j适合作为其它节点的聚类中心的合适度较大,节点j作为节点i的聚类中心的合适度也会较大,计算方法如下
r(i,j)=s(i,j)-max{a(i,k)+s(i,k)},k∈1,2,…,N
(6)
(7)
其中,s(i,j)代表节点i、j之间的相似性;a(i,k)代表i对节点k的归属度;s(i,k)代表节点i、k之间的相似性。更新吸引度和归属度的过程中,加入阻尼因子,用λ来表示,阻尼系数一般取值为(0,1),加入阻尼因子,使仿射传播算法能够快速收敛。吸引度和归属度更新如下
ri=(1-λ)ri+λri-1
(8)
ai=(1-λ)ai+λai-1
(9)
样本根据r(i,j)+a(i,j)的值进行更新,对于RPi,如果r(i,j)+a(i,j)最大,RPj为RPi的聚类中心。否则,将选择RPi。
传统RBF神经网络中,如果样本数量过于庞大,由于隐层基函数数量与样本数相同,基函数数量过大,从而导致整个神经网络计算复杂度大幅度提高。广义RBF神经网络只需基函数的数量大于输入向量的维数,在一定程度上减少了训练过程中可能导致的病态问题。基于WAP广义RBF神经网络结构如图3所示。
图3 基于WAP广义RBF神经网络
第一步采取自组织选取中心学习方法,首先熵值法加权AP聚类算法,求解隐含层基函数的中心与方差,通过矩阵运算求出隐层到输出层之间的权值向量;再通过最小二乘法,对3个目标参数进行优化。选取广义RBF神经网络的基函数为高斯核函数
神经网络用于训练的输入向量为一组已测试的RSSI向量值及其通过AP聚类算法得到的粗定位结果,输出向量为粗定位结果与真实位置的差值,即误差值ΔY=(Δx,Δy)。
输入向量表达形式为
R(xi,yi)=(R(xi,yi,1),R(xi,yi,2),…,R(xi,yi,n),Xi,Yi)n=1,2,…,N
将X简化为
X=(x1,x2…xN+2)T,i=1,2,…,N
选择M个基函数训练数据,其表达形式为
其中,x为基函数个数,xi为隐层第i个单元中心。通过AP聚类算法得出聚类中心后,确定径向基函数方差,方差sij的确定是通过m个聚类中心点的距离决定
(10)
sij=αdij
(11)
其中,α是重叠系数,取0.5。室内定位结果为(x,y)的误差值(Δx,Δy),所以共两个输出,基于径向基函数技术的函数为基函数的线性组合
(12)
根据矩阵法求解得到广义RBF神经网络权值,广义RBF神经网络确定后,根据测得的样本采用最小均方误差(LMS)对得到的权值、方差进行修正。此时网络的均方误差函数为
(13)
为使目标参数最小化,根据均方误差函数对Δxi、 Δwi、 Δsij求导,可以得到其误差修正准则为
(14)
经过广义RBF神经网络训练后,根据得到的误差修正粗定位结果,得到较为精确的待测点的位置坐标。
实验在14 m*11 m的课题室进行,共6个路由器作为信号发射装置,选取笔记本电脑作为参考点接收来自6个信号发射装置的信号,以左上墙角为坐标中心,建立坐标轴,由于室内桌椅阻挡,参考点位置坐标不易测量,选取固定点作为参考点进行数据测量。随机选取位置坐标,课题室内置桌椅人员流动都会对接收到的RSSI信号产生影响,存在多径效应的影响,所以测量时间选取人流量较少的时间,减少人员流动对信号的干扰,由于楼层信号发射端过多,对测量的信号进行卡尔曼滤波后,建立指纹数据库。信号接收端通过AP算法聚类后,通过广义RBF径向基神经网络进行训练,最终通过训练好的神经网络得到定位坐标。
实验随机选取100个参考点进行测量。100个参考点分布如图4所示。图中每个圆圈代表一个节点的位置。
图4 随机节点分布
不同时间相同地点,采集100个数据点的RSSI值,分析收集到的RSSI数据值,每个固定位置可得到如图5、图6的分布图,由图可看出,指纹数据大致呈现高斯分布,将得到的指纹分布图转换为频率分布图,进行固定位置RSSI值求解。
图5 固定点接收RSSI信号
图6 固定点接收RSSI信号频率分布
定位时对节点的聚类分别采用knn聚类算法、AP聚类算法以及WAP聚类算法进行聚类,之后分别采用基于AP聚类算法的广义RBF神经网络、基于knn聚类算法的广义RBF神经网络算法、基于WAP聚类算法的lazy_RBF神经网络算法以及基于WAP_IP算法对参考点的数据进行训练,测试数据点实验结果如图7、图8所示。
图7 误差分布
图8 误差累积分布
通过计算,得到3种聚类算法的定位方法平均误差分别为:1.6539、1.4458、1.0227,基于WAP聚类方法的定位误最小。基于WAP聚类算法的lazy_RBF神经网络定位算法与基于WAP_IP的定位算法平均误差分别为:1.1428、1.0227,基于WAP_IP的定位算法平均误差最小。
通过计算得出的平均误差结果以及图7、图8曲线可以看出,基于WAP_IP算法即图中直线曲线误差及累计误差均为最小,90%以上的样本点误差都在2 m以下。
针对RSSI数据存在的时效性问题,提出一种指纹数据库优化方案,对固定点不同时间段RSSI值进行分析,通过高斯概率分布计算固定点RSSI值,有效降低了时效性对于实验的影响。针对定位精度问题,提出一种WAP_IP定位算法,该方法在聚类时采用WAP算法对聚类过程中p进行加权优化,并结合广义RBF神经网络进行误差修正,提高了室内定位的精度。下一步计划在聚类前通过区域划分,对小区域进行聚类,得到更准确的聚类结果,通过对广义RBF神经网络参数进一步优化,并结合其它定位方法,进一步提高室内定位的精度。