一种基于WIFI的室内定位方法
技术领域
本发明涉及一种室内定位技术领域,提出一种基于指纹识别理论的室内定位算法。
背景技术
现有的WIFI定位算法主要有三种:临近算法、三角测量算法和场景分析算法。
1.邻近算法
邻近算法根据目标点和WIFI热点的邻近关系估算目标点的位置。处于目标点的移动设备收集到周围的WIFI热点信号,信号强度最大的WIFI热点所在的位置即认为是目标点的位置。
邻近算法是最简单的一种算法,但是缺点在于:1.需要知道室内的WIFI热点数据,包括热点的SSID和所在位置。2.精确度直接受WIFI热点的分布密度和信号范围影响,一般精度很差。所以该算法无法被广泛使用。
2.三角测量算法
三角测量算法利用三角形的几何性质计算出目标点位置:处于目标点的移动设备接受周围的WIFI热点,根据WIFI热点的到达时间(TOA,time of arrival)、到达角度(AOA,angle of arrival)和信号强度(RSSI,received signal strength indication)计算出目标点和该WIFI热点的距离。当目标点周围存在至少三个热点时,就可以根据三角定位公式计算出目标点的位置。
三角测量算法虽然在精度上比邻近算法好些,但是缺点在于:1.需要知道室内的WIFI热点数据,包括热点的SSID和所在位置。2.WIFI信号在传播过程中,容易受到障碍物或者人流的干扰,所以计算距离的方法存在缺陷,无法保证精确度。所以该算法也无法被广泛使用。
3.场景分析算法
场景分析算法是指纹识别理论的一种简单实现,主要也是采集指纹和定位两个阶段。采集指纹阶段使用移动终端对室内的点位指纹数据进行采集,并录入指纹库。定位阶段,根据目标收到的WIFI数据,去指纹库找到一个最接近的指纹数据,即认为该指纹包含的位置就是目标的位置。
场景分析算法在理想情况下,精确度较高。但是由于WIFI信号在传播过程中容易发生衍射、反射、散射或吸收等现象,所以简单的采集和匹配无法保证精确度,同时该算法也没有给出对海量的指纹数据进行高效的存储和检索的方法。所以该算法也无法被广泛使用。
现有的市面上的一些室内定位技术,如蓝牙定位、Beacon定位。都需要在墙体、地面或楼层等地方安装大量的智能终端设备,往往需要投入大量的成本。并且需要记录相关智能终端设备的数据:终端ID和位置数据。这种方式只适用于少数的大型购物中心。难以得到广泛的应用。
传统的WIFI室内定位算法有:邻近算法、三角测量算法和场景分析算法。这三种算法最大的问题就是准确性问题。由于WIFI信号的穿透能力不强,受干扰的波动较大。即使是商场里面流动的人群都会产生干扰,而且信号越弱的WIFI热点受干扰越严重。所以用WIFI信号强度做简单的几何代数运算,往往会导致定位结果偏差较大。
WIFI指纹识别技术的理论,需要预先采集室内的点位指纹数据,这样的数据往往比较庞大。根据数据统计,中国现有的大型购物中心、百货商场就有2万多个。除此之外,还有许多其他室内场所如机场、博物馆等。一个购物中心需要采集的点位约为3000个,每个点位周围的WIFI热点约为50个。粗略计算,即使把指纹识别的技术应用到全国的十分之一甚至数十分之一的室内场所,指纹库的数据也是上亿级的。这使得现有的WIFI指纹识别方案只能处于实验室阶段或者小面积的应用。
发明内容
本发明所要解决的技术问题是:给出一种易于实施、高精度、高效检索的室内定位领域的基于WIFI的室内定位方法。
本发明为解决上述技术问题采用以下技术方案:
一种基于WIFI的室内定位方法,具体包含以下两个阶段:
采集阶段:采集室内场所的点位指纹数据,对点位指纹数据进行预处理并录入位置指纹库;其中,点位指纹数据包含位置信息和WIFI热点数据;
定位阶段:将目标点周围的WIFI热点数据录入位置指纹库进行匹配,进而根据相似度模型计算出目标点的位置信息。
作为本发明一种基于WIFI的室内定位方法的进一步优选方案,所述采集阶段具体步骤如下:
步骤1,同一点位采集多条位置指纹数据,其中,位置指纹f具体表示如下:
f=(siteId,floorId,x,y,macik,rssiik)i=1,2,…,m.k=1,2,…,n.
其中,siteId表示场地的ID,floorId表示楼层的ID,x表示点位的横坐标,y表示点位的纵坐标,i表示第几个采集记录,k表示特定采集记录中的第几个WIFI热点,macik,rssiik分别表示第i个采集记录中的第k个WIFI热点的MAC地址和信号强度;
步骤2,对步骤1采集的多条位置指纹数据进行预处理,进而录入位置指纹库。
作为本发明一种基于WIFI的室内定位方法的进一步优选方案,所述步骤2具体步骤如下:
步骤2.1,计算每个WIFI热点的信号强度平均值具体计算如下:
其中,rssiij表示第j个WIFI热点在第i个采集记录中的信号强度,cntj表示第j个WIFI热点在所有采集记录中出现的总次数;
步骤2.2,计算每个WIFI热点的信号强度的标准差σj,具体计算如下:
步骤2.3,计算每个WIFI热点的信号强度的偏态skewj,具体计算如下;
步骤2.4,计算每个WIFI热点的出现概率pj,具体计算如下;
其中,m为采集的位置指纹记录数量;
步骤2.5,对步骤2.1至步骤2.4的计算因子进行汇总,汇总为最终的位置指纹,并录入指纹库:
作为本发明一种基于WIFI的室内定位方法的进一步优选方案,根据相似度模型计算出目标点的位置信息具体包含如下步骤:
步骤3.1,将经过步骤2预处理的位置指纹数据推入搜索引擎,实现索引的建立,搜索引擎里面的数据就是所有位置指纹数据的集合idxi:
i=1,2,…,m.j=1,2,…,n.
当目标请求定位的时候,请求数据req为目标周围的WIFI热点数据:
其中,
req=(mack,rssik)k=1,2,…,l.
根据请求数据中的MAC地址,能够快速的筛选出目标周围的指纹数据f1:
其中,
步骤3.2,计算相似度:
步骤3.3,搜索引擎经过,检索和相似度计算后,对索引中的位置指纹数据进行筛选和计算,进而获取目标点的位置信息。
作为本发明一种基于WIFI的室内定位方法的进一步优选方案,所述步骤3.2具体包含如下步骤:
根据MAC地址能够筛选出符合条件的位置指纹数据的集合,将符合条件的位置指纹数据逐条的和请求数据进行相似度计算:
步骤3.21,计算请求的WIFI热点的信号强度权重,具体计算如下:
其中,l表示请求的WIFI热点的数量;
步骤3.22,计算请求的WIFI热点的损失量maccostk,具体计算如下:
其中,mack表示请求的WIFI数据中第k个WIFI的MAC地址,macij表示过滤出的第i条索引数据中的第j个MAC地址,当请求的WIFI热点在索引记录中存在,则损失为0;否则损失为请求WIFI热点数量的加权值;
步骤3.23,计算请求的WIFI热点的信号强度的损失量rssicostk,具体计算如下:
其中,rssik表示请求的第k个WIFI热点的信号强度,表示过滤出的索引数据第i条记录中第j个WIFI信号强度的平均值,skewij表示第i条记录中第j个WIFI的偏态,σij表示第i条记录中第j个WIFI的标准差;
步骤3.24,合并请求的WIFI热点的损失量maccostk和WIFI热点的信号强度的损失量rssicostk,反推相似度cost,具体计算如下:
cost=∑(maccostk+rssicostk)k=1,2,…,l.
步骤3.25,返回搜索结果resulti:
筛选出相似度最高的前几个指纹数据返回,该结果集为第一次筛选出的结果集的子集:
resulti=(siteIdi,floorIdi,xi,yi)i=1,2,…,5.。
作为本发明一种基于WIFI的室内定位方法的进一步优选方案,所述步骤3.3
具体包含如下步骤:
步骤3.31,确定目标点所在场地和楼层:
根据索引返回指纹数据,取相似度最高的一条,设为第h条:
resulth=(siteIdh,floorIdh,xh,yh)
则目标点所在的场地和楼层即为(siteIdh,fIoorIdh),对于其它的指纹数据,去除场地和楼层不是这个的:
步骤3.32,确定目标点的坐标其中,具体计算如下:
步骤3.33,获取目标点位置信息location,其中,具体计算如下:
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1.本发明采用WIFI定位技术,由于现在的商场、博物馆、超市等公共场所都覆盖了WIFI热点,无需额外安装智能硬件设备;
2.本发明为了消除客观因素的干扰,获取定位的高精度,本发明采用的算法属于指纹识别理论的范畴,对采集的指纹数据进行处理,融入平均值、方差、偏态、出现概率等多个计算因子,在定位的时候,对信号强度进行加权后,采用相似度模型计算出目标位置;
3.本发明引入搜索引擎技术,实现大数据存储、加速检索速度,并对现有搜索引擎技术进行二次开发,注入相似度计算函数,大大提升检索效率;
4.本发明更高的精度:根据实践数据所得,一般定位的误差在3米以内;
5.本发明更快的定位:根据使用情况,目标的位置发生变动,可以立即体现在程序上,打开微信搜索小程序儿童共享推车,点选地图功能,可以观察到我司推车在商场的定位情况。
附图说明
图1是本发明采集阶段的流程图;
图2是本发明采集程序的页面;
图3是本发明定位阶段的流程图;
图4是本发明定位阶段的页面。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明公开了一种基于WIFI的室内定位方法,属于计算机科学与技术领域的发明。
本发明属于指纹识别理论的范畴,主要分两个阶段:
采集阶段:采集室内场所的点位指纹数据,点位指纹数据是指同一点位采集的位置指纹;对点位指纹数据进行预处理并录入位置指纹库;其中,点位指纹数据包含位置信息和WIFI热点数据;
定位阶段:将目标点周围的WIFI热点数据录入指纹库进行匹配,进而根据相似度模型计算出目标点的位置信息。
如图1所示,是场采集阶段的流程图和操作页面,工作人员在商场中使用该系统对商场数据进行采集:1.登录采集系统,进入采集页面;2.在页面上选取当前位置的坐标;3.点击采集按钮,程序自动收集周围的WIFI热点数据,完成后自动上报位置指纹数据至应用服务器;4.服务器计算WIFI信号强度的平均值;5.服务器计算WIFI信号强度的标准差;6.服务器计算WIFI信号强度的偏态;7.将处理后的指纹数据推入搜索引擎;8.搜索引擎为指纹数据建立索引;9.搜索引擎返回结果给应用服务器;10.应用服务器返回结果采集终端;11.采集终端展示结果消息。采集程序的页面示意图如图2所示,以南京新街口金鹰为例。
如图3所示,是定位模块的流程图和展示页面。1.登录定位系统的展示页面;2.程序自动收集周围的WIFI热点数据并上报给服务器;3.应用服务器,组织请求数据,构造对搜索引擎的查询语句,发起搜索请求;4.搜索过滤掉MAC不匹配的无效数据;5.搜索计算索引数据和请求数据的相似度;6.搜索返回相似度最高的前几条数据。7.应用服务器根据返回的数据计算目标所在场地和楼层;8.应用服务器计算目标的横坐标、纵坐标;9.构造目标位置数据并返回;10.定位页面展示目标位置。定位阶段的页面如图4所示,以苏州中心为例。
具体实施例如下:
一种基于WIFI的室内定位方法,所述采集阶段具体步骤如下:
步骤1.同一点位采集多条位置指纹数据,其中,位置指纹f具体表示如下:
由于WIFI信号在传播过程中容易发生衍射、反射、散射或吸收,针对这一现象本发明在采集阶段给出优化,对于一个点位采集多条指纹记录,规避了个别指纹不正确的问题,所以位置指纹表示为:
f=(siteId,floorId,x,y,macik,rssiik)i=1,2,…,m.k=1,2,…,n.
其中siteId表示场地的ID,floorId表示楼层的ID,x表示点位的横坐标,y表示点位的纵坐标,i表示第几个采集记录,k表示特定采集记录中的第几个WIFI热点,macik,rssiik分别表示第i个采集记录中的第k个WIFI热点的MAC地址和信号强度。
步骤2.指纹数据预处理:对采集的多条位置指纹数据进行预处理,进而录入指纹库。
对采集的多条记录进行处理,最终再次整理为一条采集记录:
步骤2.1,计算每个WIFI热点的信号强度平均值具体计算如下:
其中,rssiij表示第j个WIFI热点在第i个采集记录中的信号强度,cntj表示第j个WIFI热点在所有采集记录中出现的总次数;
步骤2.2,计算每个WIFI热点的信号强度的标准差σj,具体计算如下:
步骤2.3,计算每个WIFI热点的信号强度的偏态skewj,具体计算如下;
步骤2.4,计算每个WIFI热点的出现概率pj,具体计算如下;
其中,m为采集的位置指纹记录数量;
步骤2.5,对步骤2.1至步骤2.4的计算因子进行汇总,汇总为最终的位置指纹,并录入指纹库:
步骤3.1,将经过步骤2预处理的位置指纹数据推入搜索引擎,实现索引的建立,搜索引擎里面的数据就是所有位置指纹数据的集合idxi:
i=1,2,…,m.j=1,2,…,n.
当目标请求定位的时候,请求数据req为目标周围的WIFI热点数据:
其中,
req=(mack,rssik)k=1,2,…,l.
根据请求数据中的MAC信息,能够快速的筛选出目标周围的指纹数据f1:
其中,
经过这一步检索,能够过滤掉绝大部分无效指纹,但结果集还是较大,根据实践结果,筛选出来的指纹数据仍然有上百条甚至上千条。
步骤3.2,计算相似度
根据MAC地址能够筛选出符合条件的指纹集合,接下来需要对这些指纹逐条的和请求数据进行相似度计算:
a)计算请求的WIFI信号强度权重
其中l表示请求的WIFI热点数量。
b)计算请求的WIFI热点的损失量:
,其中mack表示请求的WIFI数据中第k个WIFI的MAC地址,macij表示过滤出的第i条索引数据中的第j个MAC地址。当请求的WIFI热点在索引记录中存在,则损失为0;否则损失为请求WIFI热点数量的加权值。
c)计算请求的WIFI信号强度的损失量:
其中rssik表示请求的第k个WIFI热点的信号强度,表示过滤出的索引数据第i条记录中第j个WIFI信号强度的平均值,skewij表示第i条记录中第j个WIFI的偏态,σij表示第i条记录中第j个WIFI的标准差。
当请求的WIFI热点在索引记录中存在,信号轻度的损失量为二者的差并融合偏态和方差的运算值;否则损失为请求WIFI热点数量的加权值。
d)合并损失量,反推相似度:
cost=∑(maccostk+rssicostk)k=1,2,…,l.
到此,就计算出了请求的WIFI数据和一条过滤出的索引数据中的WIFI数据的损失量。重复a)-d)步骤,计算出请求数据和其他索引数据的损失量,损失量越小,则表示相似度越高。
返回搜索结果:
筛选出相似度最高的前几个指纹数据返回(一般为3-5条),该结果集为第
一次筛选出的结果集的子集:
resulti=(siteIdi,floorIdi,xi,yi) i=1,2,…,5.
步骤3.3,索引数据后处理
搜索引擎经过一次检索和一次相似度计算后,对索引中指纹数据进行了两个维度的筛选,返回了为数不多的符合要求的指纹数据f2,一般为3-5条。接下来需要对这这些指纹数据进行更进一步的筛选和计算
a.确定所在场地和楼层
根据索引返回指纹数据,取相似度最高的一条,假设为第h条:
resulth=(siteIdh,floorIdh,xh,yh)
那么认为目标所在的场地和楼层即为(siteIdh,floorIdh),对于其他的指纹数据,
去除场地和楼层不是这个的:
b.确定目标的坐标
c.最终得到目标点的位置信息;
综上,本发明采用WIFI定位技术,由于现在的商场、博物馆、超市等公共场所都覆盖了WIFI热点,无需额外安装智能硬件设备;本发明为了消除客观因素的干扰,获取定位的高精度,本发明采用的算法属于指纹识别理论的范畴,对采集的指纹数据进行处理,融入平均值、方差、偏态、出现概率等多个计算因子,在定位的时候,对信号强度进行加权后,采用相似度模型计算出目标位置;本发明引入搜索引擎技术,实现大数据存储、加速检索速度,并对现有搜索引擎技术进行二次开发,注入相似度计算函数,大大提升检索效率;本发明更高的精度:根据实践数据所得,一般定位的误差在3米以内;本发明更快的定位:根据使用情况,目标的位置发生变动,可以立即体现在程序上,打开微信搜索小程序儿童共享推车,点选地图功能,可以观察到我司推车在商场的定位情况。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。