本发明涉及定位技术领域,特别涉及一种基于wifi融合预测的定位方法及系统。
背景技术:
人们对于位置服务(locationbasedservice)的需求一直以来都很强烈,人的很多行为都是基于位置的。然而,基于卫星信号的定位系统在室外定位中展现出的良好性能并没有延伸到室内定位中。卫星信号在地表的强度很微弱,很容易被楼宇建筑阻挡或散射,通常不能穿透建筑墙体,人体对其阻碍也特别大,无法进入室内,因此会出现很多室内定位盲区,导致卫星定位系统在人们常常工作和活动的室内场所却无法定位。为了弥补卫星系统在室内环境下定位的缺陷,国内外对室内定位技术展开了热烈研究。
随着无线局域网(简称wlan)迅速发展,大部分室内场所都实现的wlan的覆盖,而且现有移动终端都可以接入无线局域网,这为基于wlan的室内定位技术带来了极大的便利。在基于wlan的室内定位研究中,根据wifi信号强度值构造指纹库,通过指纹的匹配实现定位,是当前研究的热点。
基于wifi信号强度值的指纹定位研究中,如何提高室内定位的精度一直是困扰研究者的主要问题。室内环境复杂多变,受到多径效应、人体吸收、信号干扰等多方面的影响,因而严重影响了定位算法的定位精度。因此选择合适的滤波技术,定位算法是提高定位精度的有效途径。同时,室内环境中的人的运动轨迹包含着丰富的位置信息,而这些信息往往被研究者忽视。在室内环境中人的运动轨迹都是有规律可循的,利用这些轨迹信息可以预测当前的位置信息,进而优化基于wifi的定位系统得到的结果,进而可以达到提升定位精度的目的。
在当前基于wifi信号强度值的指纹定位研究中,所采集的指纹质量较低一直是当前系统存在普遍问题。wifi信号受到多径效应、人体吸收、信号干扰等多方面的影响,其不确定性与非线性严重影响定位精度。同时,在当前系统的定位算法不具有良好的性能,会引入计算误差。在恶劣的室内环境中,传统的基于wifi信号的定位系统就无法运作或者得到准确度较低的定位结果。研究者在研究的过程中往往忽视了用户在室内的历史位置信息。
技术实现要素:
针对当前定位系统中存在的各种弊端,本发明提出一种基于wifi融合预测的定位方法及系统,所述方法包括:
s1、在参考点处采集来自各个接入点的接收信号强度数据;
s2、建立改进卡尔曼模型,并对不同环境下的改进卡尔曼模型进行训练,将获取的数据输入训练好的改进卡尔曼模型进行滤波,获得指纹库;
s3、移动终端采集接收信号强度数据,并利用改进卡尔曼模型进行滤波;
s4、根据指纹库和基于上一个时刻位置约束的wknn定位算法得到wifi定位系统的定位结果;
s5、判断历史轨迹库中轨迹数量是否达到阈值;若未达到则进行步骤s6,否则进行s7;
s6、将基于wifi定位系统的定位结果按照时间先后顺序串联形成用户轨迹并存储在历史轨迹库中;
s7、基于历史轨迹库中的数据通过融合传感器信息的马尔科夫预测模型得到当前位置的预测结果;
s8、基于拉格朗日和梯度逼近的位置融合算法得到当前位置最优值,并将该值加入历史轨迹库。
进一步的,建立改进的卡尔曼模型包括:利用神经网络对卡尔曼增益的过程协方差q与观测噪声协方差r建模与参数训练,在不同的室内环境下,利用嵌入神经网络的卡尔曼滤波系统进行信号的采集,同时在采集过程中不断调整神经网络的参数,使得神经网络的输出达到最优,即卡尔曼模型中的过程协方差q与观测噪声协方差r达到最优,然后对采集的数据利用改进的卡尔曼模型进行滤波,得到指纹库。
进一步的,步骤s4具体包括:
将测试节点处实时采集的信号强度指纹与位置指纹库利用wknn算法进行匹配;
根据上一时刻的位置来划定一个范围,这个范围表示为用户当前位置可能的范围;
若wknn算法选取的k个参考点位置与这个范围发生重叠时,则对k个参考点进行二次加权处理;
根据当前k个参考点的权重信息和位置信息得到wifi定位系统的定位结果。
进一步的,步骤s7具体包括:
利用马尔科夫预测模型,基于历史轨迹库中的轨迹信息,利用上一时刻位置,得到当前位置的权重矩阵;
利用陀螺仪和磁力计来采集其航向角度,将采集的航向角度传递给马尔科夫预测模型;
在马尔科夫预测模型中,对处于航向中的位置增加权重,而不在航向中的位置保持原权重;
对重新加权后的数据进行归一化处理,更新当前位置权重矩阵,把矩阵中权重最大的位置作为预测结果。
进一步的,步骤s8具体包括:
若基于wifi定位方法得到的位置为a,融合传感器信息的马尔科夫预测模型预测出的位置为b,则根据这两个位置构建定位区域范围;
建立拉格朗日方程,在定位区域范围内,当估算距离与实际距离的误差处于极小值时,解出位置a和位置b的初步坐标值a'和b';
利用梯度逼近法对初步坐标进行修正,获得修正后的坐标an'和bn';
根据获得的坐标an'和bn',利用质心算法求解得到得到最终的定位结果。
本发明还提出一种基于wifi融合预测的定位系统,包括移动终端、storm平台以及边缘计算平台,移动终端包括数据采集模块,边缘计算平台包括离线数据处理模块、基于wifi的定位模块、融合传感器信息的马尔科夫预测模块以及位置融合模块,其中:
storm平台用于存储指纹库和历史轨迹库;
数据采集模块包括wifi数据采集单元、陀螺仪和磁力计数据采集单元,wifi数据采集单元用于在参考点采集来自各个接入点的接收信号强度;陀螺仪和磁力计数据采集单元用于采集航向信息;
离线数据处理模块包括改进的卡尔曼滤波器和指纹构建单元,改进的卡尔曼滤波器用于对采集的数据进行滤波,去除噪声;指纹构建单元用于根据参考点处采集的各个接入点的接收信号强度以及参考点的位置信息构建指纹库,并将指纹库上传到storm平台;
基于wifi的定位模块用于根据移动终端采集的接收信号强度利用基于上一位置约束的wknn算法得到wifi定位结果;
融合传感器信息的马尔科夫预测模块,利用历史轨迹信息以及陀螺仪和磁力计的信息得到当前位置的预测结果;
位置融合模块,用于将预测结果与wifi定位结果进行融合,得到最终的定位结果。
本发明在wifi定位系统中针对传统卡尔曼滤波无法感知噪声的弊端,引入神经网络改进卡尔曼滤波,使其可以根据室内环境中噪声的变化不断修改噪声协方差,提升卡尔曼滤波的滤除噪声的能力。同时,根据历史定位信息的原理,引入基于上一时刻位置约束的wknn定位算法,对wknn处理后的数据进行二次加权,从而提高了wifi定位系统的精度。针对wifi定位系统容易受室内环境的影响的缺陷,我们充分利用用户在室内的历史位置信息,利用融合传感器信息的马尔可夫模型预测当前位置。最后,利用拉格朗日和梯度逼近将预测模型得到的位置与wifi定位系统得到的位置进行融合,提升整个定位系统的精度,整个系统即使在恶劣的室内环境中依然可以保证很好的定位性能。
附图说明
图1为本发明一种基于wifi融合预测的定位方法流程图;
图2为本发明一种基于wifi融合预测的定位方法离线阶段指纹库建立示意图;
图3为本发明一种基于wifi融合预测的定位方法基于上一时刻位置约束的wknn定位算法示意图;
图4为本发明一种基于wifi融合预测的定位方法基于wifi指纹的定位流程图;
图5为本发明一种基于wifi融合预测的定位方法马尔科夫位置预测流程图;
图6为本发明一种基于wifi融合预测的定位方法位置融合流程图;
图7为本发明一种基于wifi融合预测的定位方法坐标修正示意图;
图8为本发明一种基于wifi融合预测的定位方法质心算法示意图;
图9为本发明一种基于wifi融合预测的定位系统框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种基于wifi融合预测的定位方法,包括以下步骤:
s1、在参考点处采集来自各个接入点的接收信号强度数据;
s2、建立改进卡尔曼模型,并对不同环境下的改进卡尔曼模型进行训练,将获取的数据输入训练好的改进卡尔曼模型进行滤波,获得指纹库;
s3、移动终端采集接收信号强度数据,并利用改进卡尔曼模型进行滤波;
s4、根据指纹库和基于上一个时刻位置约束的wknn定位算法得到wifi定位系统的定位结果;
s5、判断历史轨迹库中轨迹数量是否达到阈值;若未达到则进行步骤s6,否则进行s7;
s6、将基于wifi定位系统的定位结果按照时间先后顺序串联形成用户轨迹并存储在历史轨迹库中;
s7、基于历史轨迹库中的数据通过融合传感器信息的马尔科夫预测模型得到当前位置的预测结果;
s8、基于拉格朗日和梯度逼近的位置融合算法得到当前位置最优值,并将该值加入历史轨迹库。
本实施例分为wifi定位和马尔科夫位置预测两个部分,其中wifi定位又分为离线指纹库的采集阶段和在线定位阶段,离线指纹库采集丰富的指纹用于在线阶段的定位。在初期,wifi定位的结果保存并根据位置的先后发生顺序生成用户历史轨迹,存入历史轨迹库中。当历史轨迹库的轨迹数量到达设定的阈值,此时wifi定位系统的定位结果不再存入轨迹库。马尔可夫预测模型开始工作,利用历史轨迹库的数据结合传感器信息进行当前位置的预测。同时,利用拉格朗日和梯度逼近法融合当前wifi定位系统的定位结果,得到高精度的定位结果。与此同时,定位结果存入历史轨迹库,丰富历史轨迹库的数量。
wifi定位的离线阶段流程如图1所示,离线阶段的主要任务是构建指纹库,指纹库的构建过程如图2所示,包括:
将待定位区域划分为固定大小的采样间隔,在间隔顶点处进行编号,作为参考点;
在参考点处采集rssi数据,并把rssi数据经过改进卡尔曼滤波的处理,记为{rssii1,rssii2,...,rssiim},m为部署接入点的总数;
将参考点对应的位置坐标与采集到的各接入点信号强度值构成一条完整的指纹,表示为rpi={rssii1,rssii2,rssii3,...,rssiim,(x,y)};
其中,i={1,2,...,n}表示参考点的数量,rssiim表示第i个参考点处采集的第m个接入点的接收信号强度数据;(x,y)表示参考点的坐标;
所有参考点的指纹构成指纹库。为降低采集数据中的引入的噪声,保证采集到的数据的有效性,采用卡尔曼滤波进行数据处理。但是传统的卡尔曼滤波算法将卡尔曼增益的过程协方差q与观测噪声协方差r设定为固定值,这样的方案无法应对多变的室内环境。本发明将神经网络引入卡尔曼滤波中,利用神经网络对过程协方差和观测噪声协方差进行建模与参数训练,包括以下步骤:
在建立指纹库之前,在不同的室内环境下,利用嵌入神经网络的卡尔曼滤波系统进行信号的采集,同时在采集过程中不断调整神经网络的参数,使得神经网络的输出达到最优,使卡尔曼滤波能根据噪声的变化更改q和r,达到当前状态下最好的滤波效果;
在构造指纹库时,训练好的卡尔曼滤波系统应用于信号的采集,这样嵌入神经网络的卡尔曼滤波可以适应不同的室内环境,达到最好的滤除噪声的能力,从而保证存入指纹库中的数据所含噪声最小。
wifi定位的在线定位阶段的流程如图2所示,在此阶段,为保证定位结果的准确度,引进基于上一时刻位置约束的wknn定位算法,该算法包括:
将测试点处实时采集的信号强度指纹与位置指纹库进行匹配,根据传统的wknn算法,根据测试点指纹与参考点指纹的欧式距离选取距离测试点指纹最近的k个参考点指纹,并根据距离的大小给这k个指纹赋予不同的权重,距离越远权重越小,便可得到u={rp1,rp2,...,rpi,...,rpk}集合和对应的权重集合
在上述基础上,本发明根据历史定位信息的原理,即一个人在一段时间内的位置不会发生突变,用上一个估计的位置来划定一个范围,这个范围表示为用户当前位置可能的范围,在wknn算法选取的k个参考点位置与这个范围发生重叠时,则对k个参考点进行二次加权处理,二次加权后的权重集合表示为:
wnew={wnew1,wnew2,...,wnewi,...,wnewk};
其中,
例如图3中,圆心处的三角形表示上一个时刻的位置,图中圆圈表示用户在当前时刻可能出现的范围,半径为r,黑色位置表示为wknn选定的参考点rp∈u。u与圆圈重叠时,对k个参考点进行二次加权处理。
构建历史轨迹库的过程如图4所示,在历史轨迹库构建初期,轨迹数量未达到设定的阈值,输出wifi定位的定位结果作为当前整个系统的定位结果,并将这些定位结果按定位的先后顺序串联起来形成一个个的用户轨迹存储到历史轨迹库中。同时,系统自身会根据设置阈值
基于历史轨迹库中的数据通过融合传感器信息的马尔科夫预测模型得到当前位置的预测结果的过程如图5所示,当历史轨迹库中的数据达到阈值,不再使用单一的wifi定位系统结果作为输出结果,而是使用融合预测的定位结果作为输出。利用马尔科夫模型,基于历史轨迹库中的轨迹信息,利用上一时刻位置,得到上一时刻的前进方向概率向量,在前进方向概率向量中概率值最大的就是当前的位置。例如,根据历史轨迹库中的信息,当前位置可能出现在e1,e2,e3,e4.e5,e6中的某个位置,在上一时刻得到的前进方向概率向量为(0.15,0.15,0.25,0.15,0.15,0.15),则代表当前位置最有可能出现在e3。然而当上一时刻的前进方向概率向量为(0.15,0.2,0.2,0.15,0.15,0.15)时,模型就无法正常预测,所以为保证预测模型的准确性,充分利用移动终端自身的传感器信息,利用陀螺仪和磁力计来采集行人的航向角度,将这些信息传递给预测模型,对在处于航向中的位置增加权重,而不在航向中的位置保持原权重。对重新加权后的数据进行归一化处理,得到新的权重,进而得到更加准确地结果。若发现e2处于航向中,便对原概率向量进行重新赋值,得到(0.15,0.2+ω,0.2,0.15,0.15,0.15),其中ω>0,并做归一化处理得到新的概率向量
基于拉格朗日和梯度逼近的位置融合算法的流程如图6所示,设二元函数z=f(x,y),约束条件
在位置融合算法中,首先基于wifi定位方法计算出一个位置坐标a,其坐标表示为(xa,ya),然后基于融合传感器信息的马尔科夫模型计算出一个位置坐标b,其坐标表示为(xb,yb),两个位置坐标构建定位区域范围,此时的区域范围是坐标计算结果的约束条件。在此基础上,需分别计算未知点punknown到a,b在条件约束范围内估算距离与实际距离误差的极小值。设定二元函数为f(x,y)=(xi-x)2+(yi-y)2-δdi2,该函数的目的是求得在约束条件下的极小值,即计算实际距离与估算距离的差值最小值。综上所述,建立拉格朗日方程可以计算出在约束条件下的极小值点。
a'是f(x,y)在约束条件下的极小值点,即位置a的初步坐标;b'是f(x,y)在约束条件下的极小值点,即位置b的初步坐标;其获取过程包括:
设二元函数f(x,y)=|(xi-x)2+(yi-y)2-δdi2|,求出f(x,y)的极小值,即(xi-x)2+(yi-y)2与δdi2的差值最小,令f(x,y)>0,a(xa,ya)表示基于wifi的定位结果,a'与a的距离为da=(xa-xa')2+(ya-ya')2,(xa',ya')表示a'的坐标。建立有约束条件的拉格朗日方程来计算坐标,表示为:
上述公式中,f(x,y)表示已知位置的点、未知点、距离关系之间的二元函数,
坐标约束范围为:(xa<x<xb,ya<y<yb),建立如下约束方程:
其中,θ表示(x,y)坐标的范围之和,θ=(xb-xa)+(yb-ya),采用拉格朗日乘数法,得到如下方程式:
l(x,y)=(xa-x)2+(ya-y)2-da2+λ*(x+y-θ);
根据上述公式分别求x、y的偏导数,令偏导数为0,并联合约束方程建立如下方程组:
通过解方程组,可以得到x、y、λ的值,这里的(x,y)为极值点,即是f(x,y)在
求解得x、y、λ的值,x、y即为位置a的初步坐标a'(xa',ya');同理,可求得位置b的初步坐标b'(xb',yb')。
利用梯度逼近法对初步坐标进行修正,如图7,为了使未知点坐标在定位区域内,令修正方向为定位区域中心,p表示定位区域中心(xp,yp),循环迭代不断修正更新未知点坐标,直到修正后的坐标在ab约束的定位范围内,建立如下函数:
f(x,y)=(x-xp)2+(y-yp)2;
将每次迭代步长设为
对上式
得到an'与bn'后,利用质心算法求解punknown,如图8,根据an'(xan',yan')和bn'(xbn',ybn')列方程求解得到e和f的坐标,分别为(xe,ye)和(xf,yf),计算公式如下:
图中的点g、点h、点i和点k分别是an'e、an'f、bn'e和bn'f与两圆交点,通过下式计算出点g的坐标,表示为:
同理可以计算出h、i、k的坐标。
得到a~f点的坐标后构造出一个多边形,这个多边形的质心则为
其中,xg、xh、xe、xf、xi、xk分别为点g、h、e、f、i、k的x轴坐标,yg、yh、ye、yf、yi、yk分别为点g、h、e、f、i、k的y轴坐标,将得到的punknown作为参考数据存入到历史轨迹库中,增强历史轨迹库的健壮性和可靠性。
本发明还提出一种基于wifi融合预测的定位系统,如图9,包括移动终端、storm平台以及边缘计算平台,
本发明还提出一种基于wifi融合预测的定位系统,包括移动终端、storm平台以及边缘计算平台,移动终端包括数据采集模块,边缘计算平台包括离线数据处理模块、基于wifi的定位模块、融合传感器信息的马尔科夫预测模块以及位置融合模块,其中:
storm平台用于存储指纹库和历史轨迹库;
数据采集模块包括wifi数据采集单元、陀螺仪和磁力计数据采集单元,wifi数据采集单元用于在参考点采集来自各个接入点的接收信号强度;陀螺仪和磁力计数据采集单元用于采集航向信息;
离线数据处理模块包括改进的卡尔曼滤波器和指纹构建单元,改进的卡尔曼滤波器用于对采集的数据进行滤波,去除噪声;指纹构建单元用于根据参考点处采集的各个接入点的接收信号强度以及参考点的位置信息构建指纹库,并将指纹库上传到storm平台;
基于wifi的定位模块用于根据移动终端采集的接收信号强度利用基于上一位置约束的wknn算法得到wifi定位结果;
融合传感器信息的马尔科夫预测模块,利用历史轨迹信息以及陀螺仪和磁力计的信息得到当前位置的预测结果;
位置融合模块,用于将预测结果与wifi定位结果进行融合,得到最终的定位结果。
进一步的,位置融合模块包括初步坐标计算单元、初步坐标修正单元以及基于质心算法的位置计算单元其中:
初步坐标计算单元,用于根据wifi定位结果和预测模型预测出的结果建立拉格朗日方程,求解初步坐标;
初步坐标修正单元,用于对获得的初步坐标利用梯度逼近法对其进行修正;
基于质心算法的位置计算单元,用于对修正后的坐标利用质心算法计算得出最终的位置结果。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。