一种基于众包指纹分簇和匹配的室内子区域定位方法技术

技术编号:12699753 阅读:117 留言:0更新日期:2016-01-13 19:06
本发明专利技术公开了一种室内子区域定位方法,包括:在给定目标区域中设置N个信号源,并将目标区域依据物理结构划分成K个子区域,终端设备接收到指纹后将其上传到服务器构成指纹集,当服务器接收到的指纹集中指纹的数目达到设定阈值后,则将当前指纹集利用分簇算法划分成K个簇,并将这K个簇一对一地匹配到K个子区域中,再将各指纹簇中所有指纹的均值作为对应子区域的区域指纹用于定位,定位时计算定位指纹和子区域指纹中所有对应信号的差值序列,得到各差值序列的方差,并将具有最小方差的子区域为最终定位结果。本发明专利技术能够解决现有指纹定位技术中人工采集指纹信号以构建指纹数据库带来的工作量大和异质设备定位精度差的问题。

【技术实现步骤摘要】
一种基于众包指纹分簇和匹配的室内子区域定位方法
本专利技术属于通信与无线网络
,更具体地,涉及一种基于众包指纹分簇和匹配的室内子区域定位方法。
技术介绍
随着互联网技术广泛渗入人们的生活,人们在购物、饮食、娱乐、出行、医疗等方面都发生了革命性的变化。与此同时,人们对室内定位与导航服务的需求日益增加。目前,主流室内定位技术包括:WiFi定位、蓝牙定位、LED定位、RFID等。相比其他定位技术,基于信号强度(ReceivedSignalStrength,简称RSS)的WiFi定位技术是目前市场使用率较高的技术之一。主要原因是WiFi具有较小的实现成本和能够满足一定需求的定位精度。基于RSS的室内定位技术主要分为两类:基于测距的定位和基于非测距的定位。前者通过接收到的RSS信号,根据传播模型计算目标到各信号源的距离,从而推测目标所在位置。但该方法受室内复杂环境影响大,很难准确估计传播模型。后者将不同地理位置接收到的信号向量作为该位置的“指纹”并构建各个位置的指纹数据,定位时通过与指纹数据库中的数据进行比较实现定位。本专利技术采用基于非测距定位技术中最常用的技术——指纹定位技术,传统指纹定位技术分为两个阶段:离线训练阶段和在线定位阶段。训练阶段需要专业人员采集房间各参考点的指纹信息,并存储到指纹数据库。定位阶段通过将定位设备接收的指纹信号与指纹数据库中指纹对比获取设备位置信息。由于室内环境中信号路径损耗、反射、吸收等影响具有波动性,需要采集一段时间保证信号的准确性,从而增大指纹采集工作量。同时,当室内环境或者路由器发生变化时,原有指纹数据库定位精度将下降。另一方面。由于不同移动设备用于接收信号源信号的芯片并不相同,很多定位算法并不能很好实现不同设备利用RSS定位的问题。近年来,随着众包思想的广为人知,一些室内定位的研究学者提出利用众包将离线阶段指纹信息采集工作转移到普通用户上从而大大减少训练阶段工作量。然而大部分基于众包的定位方法仍然需要众包用户标记当前采集信号点的物理位置,这与传统的人工采集工作并没有实质差别,而且还面临着众包用户恶意或无意造成的错误指纹等问题。另一方面,针对基于RSS的异质手机定位方法一般解决思路是利用不同设备之间信号的线性相关性。有的算法通过计算任意两种设备的线性相关性消除差异,这种方法需要大量数据,工作量大且实现复杂。还有的算法利用信号之间的大小排序代替信号绝对值的比较,虽然这种算法一定程度上减少了异质设备的差异,但并没有很好利用信号之间差异大小这一信息。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种基于众包指纹分簇和匹配的室内子区域定位方法,其目的在于,解决现有指纹定位技术中,训练阶段采集参考指纹工作量大和异质设备定位精度差的技术问题。为实现上述目的,按照本专利技术的一个方面,提供了一种基于众包指纹分簇和匹配的室内子区域定位方法,包括以下步骤:(1)在给定目标区域中设置N个信号源,保证目标区域中任何位置都能使终端设备接收到来自至少一个信号源的信号,并将目标区域依据物理结构划分成K个子区域,令ri=(ri1,…,rin,…,riN)表示终端设备在某一时刻接收到的N个信号源的指纹,其中rin表示第i个指纹从第n个信号源接收到的信号强度,其中n=1,2,…,N,i=1,2,…,M,M为指纹总数,M、K和N都是自然数;(2)终端设备接收到指纹ri后将其上传到服务器,服务器将所有接收到的指纹保存在本地数据库中构成指纹集:(3)服务器判断其当前接收到的指纹集中指纹的数目是否达到一设定阈值,如果是,则对当前指纹集中的每个指纹,计算它的局部密度和差异距离,通过这两个属性值在指纹集中选择K个指纹作为K个簇中心点,然后将其他指纹划分到这K个中心点所在的簇中,同时服务器开始接收新一轮指纹数据用于指纹集的更新,即重复上述步骤(2);否则直接重复上述步骤(2);(4)根据K个子区域的物理特征和K个指纹簇中指纹特征将各个指纹簇一对一地匹配到子区域中。(5)根据步骤(4)中得到的各个簇与对应子区域的匹配关系计算子区域的指纹Fk,具体而言,Fk=(fk1,fk2,…,fkn,…,fkN)为第k个子区域的指纹,其中fkn表示第k个子区域对应的第个指纹簇中所有指纹接收到的来自第n个信号源的信号强度的均值;(6)在终端设备请求定位时从服务器下载子区域的指纹,并将在终端设备请求位置接收到的指纹与下载的子区域的指纹进行比较,或者终端设备将接收到的指纹ro上传到服务器,服务器将该指纹与子区域指纹进行比较,最终获取终端设备定位的子区域。优选地,步骤(3)包括以下子步骤:(3-1)计算指纹集R中所有M个指纹的两两欧式距离矩阵D=[dij]M×M,其中dij表示第i个指纹和第j个指纹的欧式距离;(3-2)对每个指纹ri,计算它的局部密度其中χ(x)是指示器函数,当x<0时,χ(x)=1,否则χ(x)=0;dc是截断距离,具体而言,令T为矩阵D的上三角矩阵所有元素按从小到大顺序排列的向量,dc的取值为T的第α个百分位数,其中α的最佳取值为1;(3-3)对每个指纹ri,计算它的差异距离δi:定义这个具有最小欧氏距离的指纹为指纹ri的父亲,反过来ri是该指纹的子女;对局部密度最高的指纹ri(ρi=max(ρ))而言,其差异距离是所有局部密度不是最高的指纹中差异距离的最大值,即为δi=maxj≠iδj;(3-4)根据指纹集R中所有指纹的局部密度和差异距离选择K个指纹作为指纹簇的中心点。(3-5)将选择的指纹簇中心点指纹的后代划分到该指纹所在的指纹簇中。优选地,步骤(3-4)的选择方法是首先定义两个临界值ρth和δth,ρth表示所有指纹局部密度构成的集合的第β个百分位数,δth是所有指纹差异距离构成的集合的第γ个百分位数,然后令Φ表示所有满足ρi>ρth且δi>δth的指纹集,初始化β和γ后,若Φ中有不少于K个指纹,则选择Φ中ρ×δ最大的K个指纹作为簇中心点,否则按照固定步长增大β和γ,其中β按照0.2的步长,γ按照0.1的步长,直至找到K个簇中心为止。优选地,步骤(4)包括以下子步骤:(4-1)获取子区域和指纹簇的匹配方案;具体而言,所有可能的匹配方案一共有p=1,2,…,K!种,另Op=[ok]1×K表示第p种匹配方案,其中ok表示第k个子区域被匹配到第ok个指纹簇中,k=1,2,…,K,ok=1,2,…,K;(4-2)获取子区域的归一化欧氏距离矩阵Ds=[suv]K×K,其中suv表示第u个子区域坐标到第v个子区域坐标归一化欧式距离;(4-3)获取所有匹配方案对应的簇的归一化距离矩阵,令表示第p种匹配方案对应的归一化距离矩阵,其中表示第u个指纹簇到第v个指纹簇归一化欧式距离。(4-4)计算各子区域和指纹簇匹配方案的匹配度,并取匹配度最高的匹配方案得出各子区域对应的指纹簇。优选地,步骤(4-2)具体为,令各子区域质心的物理坐标为(xk,yk),,获取其欧氏距离矩阵,并对该矩阵进行归一化,其中为第u个子区域物理坐标与其他子区域物理坐标之间欧式距离的最大值。优选地,步骤(4-3)具体为,利用多维尺度分析算法将各指纹簇中所有指纹的均值降维到二维空间,其坐标表示为获取其欧式距离矩阵,其中为第u个指纹簇M本文档来自技高网
...
一种基于众包指纹分簇和匹配的室内子区域定位方法

【技术保护点】
一种基于众包指纹分簇和匹配的室内子区域定位方法,其特征在于,包括以下步骤:(1)在给定目标区域中设置N个信号源,保证目标区域中任何位置都能使终端设备接收到来自至少一个信号源的信号,并将目标区域依据物理结构划分成K个子区域,令ri=(ri1,…,rin,…,riN)表示终端设备在某一时刻接收到的N个信号源的指纹,其中rin表示第i个指纹从第n个信号源接收到的信号强度,其中n=1,2,…,N,i=1,2,…,M,M为指纹总数,M、K和N都是自然数;(2)终端设备接收到指纹ri后将其上传到服务器,服务器将所有接收到的指纹保存在本地数据库中构成指纹集:(3)服务器判断其当前接收到的指纹集中指纹的数目是否达到一设定阈值,如果是,则对当前指纹集中的每个指纹,计算它的局部密度和差异距离,通过这两个属性值在指纹集中选择K个指纹作为K个簇中心点,然后将其他指纹划分到这K个中心点所在的簇中,同时服务器开始接收新一轮指纹数据用于指纹集的更新,即重复上述步骤(2);否则直接重复上述步骤(2);(4)根据K个子区域的物理特征和K个指纹簇中指纹特征将各个指纹簇一对一地匹配到子区域中。(5)根据步骤(4)中得到的各个簇与对应子区域的匹配关系计算子区域的指纹Fk,具体而言,Fk=(fk1,fk2,…,fkn,…,fkN)为第k个子区域的指纹,其中fkn表示第k个子区域对应的第个指纹簇中所有指纹接收到的来自第n个信号源的信号强度的均值;(6)在终端设备请求定位时从服务器下载子区域的指纹,并将在终端设备请求位置接收到的指纹与下载的子区域的指纹进行比较,或者终端设备将接收到的指纹ro上传到服务器,服务器将该指纹与子区域指纹进行比较,最终获取终端设备定位的子区域。...

【技术特征摘要】
1.一种基于众包指纹分簇和匹配的室内子区域定位方法,其特征在于,包括以下步骤:(1)在给定目标区域中设置N个信号源,保证目标区域中任何位置都能使终端设备接收到来自至少一个信号源的信号,并将目标区域依据物理结构划分成K个子区域,令ri=(ri1,…,rin,…,riN)表示终端设备在某一时刻接收到的N个信号源的指纹,其中rin表示第i个指纹从第n个信号源接收到的信号强度,其中n=1,2,…,N,i=1,2,…,M,M为指纹总数,M、K和N都是自然数;(2)终端设备接收到指纹ri后将其上传到服务器,服务器将所有接收到的指纹保存在本地数据库中构成指纹集:(3)服务器判断其当前接收到的指纹集中指纹的数目是否达到一设定阈值,如果是,则对当前指纹集中的每个指纹,计算它的局部密度和差异距离,通过这两个属性值在指纹集中选择K个指纹作为K个簇中心点,然后将其他指纹划分到这K个中心点所在的簇中,同时服务器开始接收新一轮指纹数据用于指纹集的更新,即重复上述步骤(2);否则直接重复上述步骤(2);(4)根据K个子区域的物理特征和K个指纹簇中指纹特征将各个指纹簇一对一地匹配到子区域中;(5)根据步骤(4)中得到的各个簇与对应子区域的匹配关系计算子区域的指纹Fk,具体而言,Fk=(fk1,fk2,…,fkn,…,fkN)为第k个子区域的指纹,其中fkn表示第k个子区域对应的第个指纹簇中所有指纹接收到的来自第n个信号源的信号强度的均值,其中,表示第k个指纹簇中所有指纹的集合;(6)在终端设备请求定位时从服务器下载子区域的指纹,并将在终端设备请求位置接收到的指纹与下载的子区域的指纹进行比较,或者终端设备将接收到的指纹ro上传到服务器,服务器将该指纹与子区域指纹进行比较,最终获取终端设备定位的子区域,其中,表示从第n个信号源接收到的信号强度。2.根据权利要求1所述的室内子区域定位方法,其特征在于,步骤(3)包括以下子步骤:(3-1)计算指纹集R中所有M个指纹的两两欧式距离矩阵D=[dij]M×M,其中dij表示第i个指纹和第j个指纹的欧式距离;(3-2)对每个指纹ri,计算它的局部密度其中χ(x)是指示器函数,当x<0时,χ(x)=1,否则χ(x)=0;dc是截断距离,具体而言,令T为矩阵D的上三角矩阵所有元素按从小到大顺序排列的向量,dc的取值为T的第α个百分位数,其中α取值为1;(3-3)对每个指纹ri,计算它的差异距离δi:δi=minj:ρj>ρidij,ρi≠max(ρj),其中,j:ρj>ρi表示j的取值范围为局部密度大于第i个指纹的指纹;定义这个具有最小欧氏距离的指纹为指纹ri的父亲,反过来ri是该指纹的子女;对局部密度最高的指纹ri(ρi=max(ρ))而言,其差异距离...

【专利技术属性】
技术研发人员:王邦陈秋云刘文予莫益军
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1