发明内容
本发明期望提供一种终端及其定位方法和装置,能显著提高定位准确率。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种终端的定位方法,该方法包括:
获得当前位置的RSS向量;
将所述RSS向量与预设的指纹库中的指纹对应的RSS向量进行比对,确定最接近的指纹集合;
根据所述最接近的指纹集合,确定预估位置集合以及集合中每个预估位置的第一概率;
根据预设的室内节点连通图,确定所述预估位置集合与所述终端最近一次定位结果的连通性;
根据所述最近一次定位结果、所述连通性和所述第一概率,计算经过所述最近一次定位结果到达所述预估位置集合中各预估位置对应路径的累计概率;
保留累计概率较大的路径,删除累计概率较小的路径;
根据所述保留路径的终点,确定当前定位结果。
上述方案中,所述将所述RSS向量与预设的指纹库中的指纹对应的RSS向量进行比对,确定最接近的指纹集合包括:
分别计算所述RSS向量与预设的指纹库中的各个指纹对应的RSS向量的欧式距离;
选取对应欧式距离最小的k个指纹,由这k个指纹组成最近接近的指纹集合;
其中,k为大于1的正整数。
上述方案中,所述根据所述最接近的指纹集合,确定预估位置集合以及集合中每个预估位置的第一概率包括:
由指纹集合中所有指纹的对应位置组成预估位置集合;
预估位置的第一概率为该预估位置在所述最接近的指纹集合中出现的概率。
上述方案中,所述方法还包括:
经过所述最近一次定位结果到达一预估位置对应路径的初步累计概率为:所述定位结果对应的累计概率与所述预估位置对应的第一概率之积;
当所述定位结果与所述预估位置连通时,经过所述最近一次定位结果到达所述预估位置对应路径的累计概率为:所述初步累计概率乘以增强因子P,所述P大于1;
当所述定位结果与所述预估位置不连通时,经过所述最近一次定位结果到达所述预估位置对应路径的累计概率为:所述初步累计概率乘以削弱因子R,所述R小于1。
上述方案中,在确定预估位置集合以及集合中每个预估位置的第一概率之后和计算所述累计概率之前,所述方法还包括:
为其他可能的位置赋予一个预设概率U;
根据所述预设概率,将每个预估位置的第一概率调整为第二概率,使得所述预设概率与所有预估位置第二概率之和为1;
之后使用所述第二概率代替所述第一概率参与计算所述累计概率。
上述方案中,在保留累计概率较大的路径,删除累计概率较小的路径之前,所述方法还包括:
根据历史定位结果,判定所述终端的移动趋势;
根据所述移动趋势,调整对应路径的累计概率。
本发明还提供一种终端的定位装置,该装置包括:RSS向量获取模块、指纹选取模块、预估位置模块、连通性确定模块、预估路径模块、路径筛选模块以及确定定位模块;其中,
RSS向量获取模块,用于获得当前位置的RSS向量;
指纹选取模块,用于将所述RSS向量与预设的指纹库中的指纹对应的RSS向量进行比对,确定最接近的指纹集合;
预估位置模块,用于根据所述最接近的指纹集合,确定预估位置集合以及集合中每个预估位置的第一概率;
连通性确定模块,用于根据预设的室内节点连通图,确定所述预估位置集合与所述终端最近一次定位结果的连通性;
预估路径模块,用于根据所述最近一次定位结果、所述连通性和所述第一概率,计算经过所述最近一次定位结果到达所述预估位置集合中各预估位置对应路径的累计概率;
路径筛选模块,用于保留累计概率较大的路径,删除累计概率较小的路径;
确定定位模块,用于根据所述保留路径的终点,确定当前定位结果。
上述方案中,所述装置还包括:
预留概率模块,用于为其他可能的位置赋予一个预设概率U;
预估概率调整模块,用于根据所述预设概率,将每个预估位置的第一概率调整为第二概率,使得所述预设概率与所有预估位置第二概率之和为1;之后使用所述第二概率代替所述第一概率参与计算所述累计概率。
上述方案中,所述装置还包括:
趋势判定模块,用于根据历史定位结果,判定所述终端的移动趋势;
累计概率调整模块,用于根据所述移动趋势,调整对应路径的累计概率。
本发明还提供一种终端,该终端包括上述任意一种定位装置。
本发明技术方案的有益效果在于:定位过程中参考了用户运动的历史信息,将前后定位可能结果集合关联起来,通过计算一棵累积概率树,选取当前累积概率最大的叶节点(当前待测位置)作为定位结果。实验表明,这种方法可以大幅度提高定位准确率。本发明不需要除无线射频模块外的其他传感器,具有低能耗、高精度、轻量级、易移植的特点,方便在可穿戴设备上部署。
具体实施方式
为了更清楚地说明本发明实施例和技术方案,下面将结合附图及实施例对本发明的技术方案进行更详细的说明,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,为了能够定位终端在室内的位置,预先选取室内的关键节点,并将室内节点连通图导入终端中;其次,在室内的关键节点附近设置有无线网络接入点(AP,也称为热点),而终端包含相应的无线模块,并且无线网络接入点与终端中的模块是相匹配的,例如,室内的无线网络接入点为WIFI热点,则终端包含WIFI模块。这里,所述终端可以是手机、平板电脑等便携设备,也可是智能手表、智能手环等可穿戴智能设备。
为了能够利用无线信号的RSS进行定位,需要实现建立指纹库。在一个位置通常可以接受到多个AP的信号,所有接收信号的RSS组成一个向量,与该位置相对应,被称为一个位置指纹,本文简称为指纹。指纹可以通过事先在室内的不同位置采集对于的RSS向量获取,通常,在同一位置进行多次检测,会得到不同的RSS向量,因此,同一位置会对应多个指纹,这些指纹都可存储于指纹库中。指纹库建立好之后,存放于提供定位服务的服务器中,也可以直接导入终端中,无论如何,只要保证终端可以访问指纹库即可。
图1为本发明实施例提供的终端的定位方法的实现流程示意图,如图1所示,该方法包括以下步骤,下述步骤均由终端执行:
步骤101,获得当前位置的RSS向量;
步骤102,将所述RSS向量与预设的指纹库中的指纹对应的RSS向量进行比对,确定最接近的指纹集合;
步骤103,根据所述最接近的指纹集合,确定预估位置集合以及集合中每个预估位置的第一概率;
步骤104,根据预设的室内节点连通图,确定所述预估位置集合与所述终端最近一次定位结果的连通性;
步骤105,根据所述最近一次定位结果、所述连通性和所述第一概率,计算经过所述最近一次定位结果到达所述预估位置集合中各预估位置对应路径的累计概率;
步骤106,保留累计概率较大的路径,删除累计概率较小的路径;
步骤107,根据所述保留路径的终点,确定当前定位结果。
进一步的,上述步骤102,将所述RSS向量与预设的指纹库中的指纹对应的RSS向量进行比对,确定最接近的指纹集合包括:
分别计算所述RSS向量与预设的指纹库中的各个指纹对应的RSS向量的欧式距离;
选取对应欧式距离最小的k个指纹,由这k个指纹组成最近接近的指纹集合;
其中,k为大于1的正整数。
进一步的,上述步骤103,根据所述最接近的指纹集合,确定预估位置集合以及集合中每个预估位置的第一概率包括:
由指纹集合中所有指纹的对应位置组成预估位置集合;
预估位置的第一概率为该预估位置在所述最接近的指纹集合中出现的概率。
进一步的,为了提高定位精度,从室内定位特点出发,充分考虑节点连通性对终端移动路径的影响,因此,所述方法中计算终端可能的移动路径的累计概率包括:
经过所述最近一次定位结果到达一预估位置对应路径的初步累计概率为:所述定位结果对应的累计概率与所述预估位置对应的第一概率之积;
当所述定位结果与所述预估位置连通时,经过所述最近一次定位结果到达所述预估位置对应路径的累计概率为:所述初步累计概率乘以增强因子P,所述P大于1;
当所述定位结果与所述预估位置不连通时,经过所述最近一次定位结果到达所述预估位置对应路径的累计概率为:所述初步累计概率乘以削弱因子R,所述R小于1。
路径的累计概率实质代表该路径为真实路径的可能性,如果预估位置如果与上一次的定位结果不连通,将初步估计的累计概率乘以一个小于1的削弱因子,则表明这条路径为真实路径的可能性降低,相反,如果二者本身是连通的,将初步估计的累计概率乘以一个大于1的增强因子则表明该路径为真实路径的可能性增加。
进一步的,为了提高定位准确性,在确定预估位置集合以及集合中每个预估位置的第一概率之后和计算所述累计概率之前,所述方法还包括:
为其他可能的位置赋予一个预设概率U;
根据所述预设概率,将每个预估位置的第一概率调整为第二概率,使得所述预设概率与所有预估位置第二概率之和为1;
之后使用所述第二概率代替所述第一概率参与计算所述累计概率。
如此,可将小概率事件发生的情况包括进来,使得定位结果更接近实际情况。
进一步的,将终端用户的运动趋势,即终端的移动趋势考虑进来,平滑移动轨迹,可更换的确定移动路径,故而,在保留累计概率较大的路径,删除累计概率较小的路径之前,所述方法还包括:
根据历史定位结果,判定所述终端的移动趋势;
根据所述移动趋势,调整对应路径的累计概率。
为了更好的说明上述定位方法,本发明提供实施例1:
图2为实施例1定位系统整体结构图。用户仅需使用带有Wi-Fi射频模块的移动设备,在具备多个无线接入点(AP)的场地中即可进行定位。指纹信息保存在数据库服务器端,服务器进行数据运算并返回定位结果。指纹库也可存放于本地。实施例1,具体包括以下过程:
预备阶段1——指纹信息采集,具体包括:
步骤(1.1):在定位终端安装Wi-Fi信号采集应用,定位设备需要具备Wi-Fi模块,能够进行Wi-Fi信号扫描,获得当前位置不同AP的信号强度列表。
步骤(1.2):在预定N个位置多次进行Wi-FiRSS采集,预定位置为室内连通图的节点,一般取间距2-4米。每次采集获取多个AP的信号强度值,生成RSS向量,形为fingerprinti=(RSS1,RSS2,...,RSSm);记录指纹信息——(位置,RSS向量),存储至本地或者发送至指纹数据库服务器。
步骤(1.3):指纹数据库服务器对原始指纹信息进行处理,对同一位置采集的不同指纹进行均值和方差过滤,排除异常数据,生成指纹库。指纹库中指纹的样式为(loci,fingerprinti),同一位置loci可以对应多组RSS向量。
预备阶段2——位置信息录入,具体包括:
步骤(2.1.):使用室内地图获取应用,或者直接输入室内节点连通图。
步骤(2.2.):将室内地图转换为以预定位置为节点的室内连通图,输入定位程序。连通图使用邻接矩阵表示:表示位置j在位置i的k方向上,k=0表示节点不连通。连通图的节点通过编号与室内地图位置对应。如何获取室内地图以及如何将室内地图转化为节点连通图有许多现有的方案,在此不与赘述。
定位运行阶段
-初始位置定位
步骤(3.1):运行定位程序,获得初始位置检测到的RSS向量。
步骤(3.2):将所述RSS向量与指纹库中的每个指纹中包含的RSS向量进行比对,分别计算指纹库中每个指纹的RSS向量与当前检测到的RSS向量之间的欧式距离,选出欧式距离最近的k个指纹,取k个指纹中所占比例最大的对应位置作为估计位置。
步骤(3.3):将所有可能的初始位置以及概率保存,作为下一次定位的参考。
-非初始位置定位
步骤(4.1):运行定位程序,获得待测位置的RSS向量。
步骤(4.2):将RSS向量与指纹库中的指纹进行比对,计算欧式距离,选出欧式距离最近的k个指纹,根据k个指纹中每个位置所占比例计算此次定位的可能结果及其概率。
步骤(4.3):根据待测位置的可能结果与上一次定位的可能结果物理位置的连通性计算每种可能路径的累积概率。遍历当前位置和上一个位置的路径,若连通,将累积概率乘以一个增强因子P;若不连通,将累积概率乘以一个削弱因子R;对于与上次定位结果相邻但不在此次匹配结果中的位置,赋予其一预设概率U。
步骤(4.4):根据运动趋势平滑运动轨迹。检测累积概率树中每个分支最后四个节点所构成的部分路径,根据邻接矩阵中记录的方向,若该路径的运动方向变化存在类似“右-右上-右下-右”的改变,则称该路径存在拐点。对于运动路径存在拐点的情况,表示其运动趋势出现改变,将其累积概率乘以一削弱因子T。
步骤(4.5):选择累积概率最大的一条路径作为估计路径。
步骤(5):删除概率极小的路径,将其他可能路径保存作为下一次定位参考。转到步骤(4.)。
图3显示了实施例1所在室内环境下位置节点的连通示意图。节点表示待定位位置,两个节点之间存在连线表示位置间可达。图中位置1为初始位置,路径2-5-7-9表示真实路径,其他路径表示定位过程中出现的偏差路径。表1显示了一次定位过程中Wi-Fi扫描的匹配结果。第一列表示真实的路径,第二列中的数据是每次Wi-Fi扫描结果,即每个可能的位置及其对应的概率,第三列为使用最近邻算法得出的路径结果,为3-5-9-0,与真实路径2-5-7-9差别很大。
表1
真实位置 |
扫描结果 |
估计位置 |
2 |
{1:0.3,3:0.4,2:0.2} |
3 |
5 |
{5:0.4,4:0.3,2:0.3} |
5 |
7 |
{6:0.3,7:0.2,9:0.4} |
9 |
9 |
{0:0.4,8:0.3,9:0.2} |
0 |
利用本发明提供的定位方法进行路径估计进而定位的过程如图4所示,图4显示了基于用户运动信息的定位算法树示例。树的分支表示可能的定位路径结果,节点中的数值表示该可能定位路径的累积概率,与图3的室内位置模型和表1的Wi-Fi匹配结果相对应。Wi-Fi匹配结果由(K近邻)K-NN算法的变体得到。例如,搜索指纹库,取与待测位置RSS指纹欧式距离最短的前K个指纹;这前K个指纹中,标记为位置1的占30%,标记为位置3的占40%,标记为位置2的占20%,低于10%的位置不考虑。开始时,根据Wi-Fi信号扫描的匹配结果,存在3个可能的起点:1,2,3。作为累计概率树的最高层节点,初始位置由于无历史位置参考,使用Wi-Fi扫描匹配概率作为其累计概率。进行第二次扫描,第二次扫描可能的位置分别与上一轮扫描结果根据连通关系和运动趋势计算累积概率,累积概率的计算办法如公式一和公式二所示。去除累积概率小的路径,剩下的可能路径为1-2,1-5,2-4,2-5,3-2,3-5,此时累积概率最大的路径为3-2,仍不符合真实结果。进行第三次扫描,计算第三次扫描结果所有对应路径的累积概率,求得累积概率最大的路径为2-5-6,虽然仍不符合真实路径,却修正了路径第一步和第二步。进行第四次扫描,计算累积概率,得到累积概率最大的路径为2-5-7-9,修正为正确路径。在第三次扫描结果中,的概率为0.3,大于的概率为0.2,且路径2-5-6-9和路径2-5-7-9同样满足运动连续性,然而根据运动趋势,最终定位路径为2-5-7-9.(以上示例中P取3,R取1/3,U取0.1,T取1/2.)
公式一
Qn=Qn×T运动路径存在拐点公式二
表2
图5是本发明实施例提供的终端的定位装置的组成结构示意图,如图5所示,该定位装置包括:RSS向量获取模块501、指纹选取模块502、预估位置模块503、连通性确定模块504、预估路径模块505、路径筛选模块506以及确定定位模块507;其中,
RSS向量获取模块501,用于获得当前位置的RSS向量;
指纹选取模块502,用于将所述RSS向量与预设的指纹库中的指纹对应的RSS向量进行比对,确定最接近的指纹集合;
预估位置模块503,用于根据所述最接近的指纹集合,确定预估位置集合以及集合中每个预估位置的第一概率;
连通性确定模块504,用于根据预设的室内节点连通图,确定所述预估位置集合与所述终端最近一次定位结果的连通性;
预估路径模块505,用于根据所述最近一次定位结果、所述连通性和所述第一概率,计算经过所述最近一次定位结果到达所述预估位置集合中各预估位置对应路径的累计概率;
路径筛选模块506,用于保留累计概率较大的路径,删除累计概率较小的路径;
确定定位模块507,用于根据所述保留路径的终点,确定当前定位结果。
进一步的,上述定位装置还包括:
预留概率模块,用于为其他可能的位置赋予一个预设概率U;
预估概率调整模块,用于根据所述预设概率,将每个预估位置的第一概率调整为第二概率,使得所述预设概率与所有预估位置第二概率之和为1;之后使用所述第二概率代替所述第一概率参与计算所述累计概率。
进一步的,上述定位装置还包括:
趋势判定模块,用于根据历史定位结果,判定所述终端的移动趋势;
累计概率调整模块,用于根据所述移动趋势,调整对应路径的累计概率。
上述各个模块及各个单元在实际应用中,均可由位于终端中的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。
本实施例的定位装置的各个模块对应执行上述定位方法实施例所描述的步骤,因此具有相同的有益效果。另外,应该理解到,以上所描述的定位装置的实施方式仅仅是示意性的,所描述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,模块相互之间的耦合或通信连接可以是通过一些接口,也可以是电性或其它的形式。
上述各个功能模块作为定位装置的组成部分,可以是或者也可以不是物理框,既可以位于一个地方,也可以分布到多个网络单元上,既可以采用硬件的形式实现,也可以采用软件功能框的形式实现。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。
本发明还提供一种终端,该终端包括上述任意一种定位装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
再次说明,以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。