一种指纹定位方法和装置
技术领域
本发明实施例涉及通信领域,尤其涉及一种指纹定位方法和装置。
背景技术
近年来,随着移动互联网的迅速发展,数据和多媒体业务快速增加,人们对于室内定位的需求日益增加。相较于全球定位系统(Global Positioning System,简称GPS)卫星定位技术,局域网(Wireless Local Area Networks,简称WLAN)定位技术更适用于在高楼相当密集的城市或者室内运行等场景。
现有技术中,常用的WLAN定位技术主要采用指纹定位方法。指纹定位过程主要分为建立指纹库阶段和实时定位阶段。建立指纹库阶段需要采集待定位区域内不同位置检测到的信号强度值,并与检测到的信号强度值对应的接入点(Access Point,简称AP)的媒体访问控制(Media Access Control,简称MAC)地址组成一组指纹信息;实时定位阶段,将待定位点上测量到的信号强度值与指纹库中信号强度值按照一定的算法匹配,计算出最终的位置坐标。
现有技术中的指纹定位方法在计算位置坐标时需要遍历所有指纹,在指纹定位过程中计算复杂度高;因此亟需一种指纹定位方法,实现在指纹定位过程中降低指纹匹配的计算复杂度。
发明内容
本发明实施例提供一种指纹定位方法和装置,用以实现在指纹定位过程中降低指纹匹配的计算复杂度。
本发明实施例中提供一种指纹定位方法,包括:
获取终端上第j次定位的待定位点检测到的L个信号中每个信号对应的AP的标识和所述L个信号中每个信号对应的信号强度值;其中,所述L为大于等于2的整数;所述j为大于等于1的整数;
确定出所述L个信号中信号强度值最高的两个信号,分别为第一信号和第二信号;
根据所述第一信号的信号强度值确定第一预设范围;
根据所述第二信号的信号强度值确定第二预设范围;
从参考指纹库中确定出优选指纹库,所述优选指纹库中的每个指纹信息为至少包括所述L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;其中,所述参考指纹库中包括所述终端所在的待定位区域的所有指纹点的指纹信息;所述预设信号强度条件为信号强度值既满足所述第一预设范围又满足所述第二预设范围的指纹信息;
根据所述L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与所述优选指纹库中的指纹信息的匹配结果,确定所述待定位点的位置坐标。
可选地,所述根据所述L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与所述优选指纹库中的指纹信息的匹配结果,确定所述待定位点的位置坐标之后,还包括:在所述j大于2的情况下,获取所述终端的第j-1次定位的位置坐标;根据所述终端的第j次定位的位置坐标和所述终端的第j-1次定位的位置坐标,确定所述第j次定位的位置坐标和所述第j-1次定位的位置坐标之间的距离差值;在所述距离差值大于所述距离阈值的情况下,对所述第j次定位的位置坐标进行校正,得到校正后的待定位点的位置坐标。
可选地,所述参考指纹库通过以下方式建立,包括:确定待定位空间区域中预设方式分布的所有指纹点;针对所述所有指纹点中的每个指纹点,获取所述指纹点的指纹信息;其中,所述指纹信息包括所述指纹点的坐标值、终端在所述指纹点检测到的M个信号中每个信号对应的接入点AP的标识和所述M个信号中每个信号对应的信号强度值;M为大于等于1的整数;根据所述所有指纹点中的每个指纹点的指纹信息,建立参考指纹库。
可选地,所述根据所述所有指纹点中的每个指纹点的指纹信息,建立参考指纹库之前,还包括:针对所有指纹点中的每个指纹点,执行:在所述指纹点检测到的信号个数M小于3的情况下,确定所述指纹点周围间隔最近的k个指纹点;其中,k为大于等于1的整数;确定出所述指纹点周围间隔最近的k个指纹点的指纹信息;计算所述k个指纹点的指纹信息中同一AP标识的信号强度值的平均值并组成均值集合;从所述k个指纹点的指纹信息中确定出扩充AP的标识、及所述扩充AP的标识对应的信号强度值的平均值,作为所述指纹点的指纹信息。
可选地,所述扩充AP的标识符合以下条件中的任一项:所述扩充AP的标识对应的信号强度值的平均值为所述均值集合中最大值;或,所述扩充AP的标识在所述k个指纹点的指纹信息中出现次数最多。
本发明实施例中提供一种指纹定位装置,包括:
获取单元,用于获取终端上第j次定位的待定位点检测到的L个信号中每个信号对应的AP的标识和所述L个信号中每个信号对应的信号强度值;其中,所述L为大于等于2的整数;所述j为大于等于1的整数;
处理单元,用于确定出所述L个信号中信号强度值最高的两个信号,分别为第一信号和第二信号;根据所述第一信号的信号强度值确定第一预设范围;根据所述第二信号的信号强度值确定第二预设范围;从参考指纹库中确定出优选指纹库;根据所述L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与所述优选指纹库中的指纹信息的匹配结果,确定所述待定位点的位置坐标;其中,所述参考指纹库中包括所述终端所在的待定位区域的所有指纹点的指纹信息;所述优选指纹库中的每个指纹信息为至少包括所述L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;所述预设信号强度条件为信号强度值既满足所述第一预设范围又满足所述第二预设范围的指纹信息。
可选地,所述获取单元,还用于:在所述j大于2的情况下,获取所述终端的第j-1次定位的位置坐标;所述处理单元,还用于:根据所述终端的第j次定位的位置坐标和所述终端的第j-1次定位的位置坐标,确定所述第j次定位的位置坐标和所述第j-1次定位的位置坐标之间的距离差值;在所述距离差值大于所述距离阈值的情况下,对所述第j次定位的位置坐标进行校正,得到校正后的待定位点的位置坐标。
可选地,所述获取单元,还用于:在确定待定位空间区域中预设方式分布的所有指纹点的情况下,针对所述所有指纹点中的每个指纹点,获取所述指纹点的指纹信息;其中,所述指纹信息包括所述指纹点的坐标值、终端在所述指纹点检测到的M个信号中每个信号对应的接入点AP的标识和所述M个信号中每个信号对应的信号强度值;M为大于等于1的整数;处理单元,还用于:确定待定位空间区域中预设方式分布的所有指纹点;根据所述所有指纹点中的每个指纹点的指纹信息,建立参考指纹库。
可选地,所述处理单元,还用于:针对所有指纹点中的每个指纹点,执行:
在所述指纹点检测到的信号个数M小于3的情况下,确定所述指纹点周围间隔最近的k个指纹点;其中,k为大于等于1的整数;确定出所述指纹点周围间隔最近的k个指纹点的指纹信息;计算所述k个指纹点的指纹信息中同一AP标识的信号强度值的平均值并组成均值集合;从所述k个指纹点的指纹信息中确定出扩充AP的标识、及所述扩充AP的标识对应的信号强度值的平均值,作为所述指纹点的指纹信息。
可选地,所述扩充AP的标识符合以下条件中的任一项:所述扩充AP的标识对应的信号强度值的平均值为所述均值集合中最大值;或,所述扩充AP的标识在所述k个指纹点的指纹信息中出现次数最多。
本发明实施例中,从参考指纹库中确定出优选指纹库,优选指纹库中的每个指纹信息为至少包括L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;预设信号强度条件为信号强度值既满足第一预设范围又满足第二预设范围的指纹信息;如此,得到的优选指纹库中的包括的指纹信息与待定位点检测到的信号的信息最接近、优选指纹库中每个指纹信息至少包括待定位点检测到的L个信号中每个信号对应的AP的标识、且满足预设信号强度条件;根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标;因此,本发明的过程相对于现有技术中的遍历参考指纹库中的所有指纹信息、确定待定位点的位置的方法,需要进行匹配的次数较少,进而在指纹定位过程中可有效降低指纹匹配的计算复杂度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
图1为本发明实施例提供的一种指纹定位系统示意图;
图2为本发明实施例提供的一种指纹定位方法流程示意图;
图3为本发明实施例提供的在另一种指纹定位方法流程示意图;
图4为本发明实施例提供的一种指纹定位装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在日常生活中,实现低成本、高精度的室内定位,有很多应用场景,例如,在商场中,可以采用定位技术对用户的个人位置进行定位,并推送其附近商店的信息,或对用户进行路线指引,实现智能购物;再例如,在突发灾难现场,可以通过定位技术,确定被困人员的位置,并对被困人员实施快速救援。
图1示例性示出了本发明实施例适用的一种指纹定位系统示意图;如图1所示,该指纹定位系统包括终端101、接入点102、接入点103、接入点104和接入点105,终端101在待定位点接收到接入点102、接入点103、接入点104和接入点105的信号,其中,接入点102、接入点103、接入点104和接入点105均为基站型的接入点,终端可为手机、平板电脑、可穿戴设备、计算机等可使用定位功能的可移动设备。
本发明实施例中,终端101在不同的位置进行定位时,在不同的定位点检测到的信号不同;若终端在某个接入点的信号分布范围内,则可以接收到该接入点的信号。如图1所示,终端101在A点进行定位时,可接收到接入点102和接入点103的信号;终端101在B点进行定位时,可接收到接入点102、接入点103、接入点104和接入点105的信号;终端101在C点进行定位时,可接收到接入点104的信号。
图2示例性示出了本发明实施例提供的一种指纹定位方法流程示意图。
基于图1所示的指纹定位系统,如图2所示,本发明实施例提供的一种指纹定位方法,包括以下步骤:
步骤S201:获取终端上第j次定位的待定位点检测到的L个信号中每个信号对应的AP的标识和L个信号中每个信号对应的信号强度值;其中,L为大于等于2的整数;所述j为大于等于1的整数;
步骤S202:确定出L个信号中信号强度值最高的两个信号,分别为第一信号和第二信号;
步骤S203:根据第一信号的信号强度值确定第一预设范围;
步骤S204:根据第二信号的信号强度值确定第二预设范围;
步骤S205:从参考指纹库中确定出优选指纹库,优选指纹库中的每个指纹信息为至少包括L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;其中,参考指纹库中包括终端所在的待定位区域的所有指纹点的指纹信息;预设信号强度条件为信号强度值既满足第一预设范围又满足第二预设范围的指纹信息;
步骤S206:根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标。
本发明实施例中,在步骤S201中,可选地,每个信号对应的AP的标识有多种,可以为接入点标识符(Access Point Identifier,简称APID),也可以为AP的媒体访问控制(Media Access Control,简称MAC)地址;信号强度值为接收信号的强度指示(ReceivedSignal Strength Indicator,简称RSSI)值。举个例子,以AP的标识为APID为例,L等于3,在待定位点检测到3个信号,分别为信号1、信号2、信号3,信号1对应的AP的标识为APID1、信号强度值为-50dbm,信号2对应的AP的标识为APID2、信号强度值为-40dbm,信号3对应的AP的标识为APID3、信号强度值为-55dbm。
本发明实施例中,在步骤S202中,确定出L个信号中信号强度值最高的两个信号的方式有多种,其中一种方式为:根据信号强度值从大到小对L个信号进行排序,将排序位置第一的信号,确定为第一信号,将排序位置第二的信号,确定为第二信号;另一种方式为:将L个信号中两个信号之间进行信号强度值比较,确定出信号强度值最大的一个信号,作为第一信号,再在L个信号中出第一信号之外的L-1个信号确定出信号强度值最大的一个信号。
本发明实施例中,在步骤S203和步骤S204中,第一预设范围和第二预设范围根据实际应用需求设定,此处不作具体限定;例如,第一信号的信号强度值为RSSI1,第二信号的信号强度值为RSSI2,第一预设范围可设置为(RSSI1-α,RSSI1+α),第二预设范围可设置为(RSSI1-β,RSSI1+β),其中,α大于0,β大于0,α和β可根据实际需求进行设定。
举个例子,例如,信号1、信号2和信号3的信号强度值分别为-50dbm、-40dbm和-55dbm,其中,第一信号为信号2、第一信号对应的AP的标识为APID2、信号强度值为-40dbm,例如,α等于4,则第一预设范围为(-44dbm,-36dbm);第二信号为信号1、第二信号对应的AP的标识为APID1、信号强度值为-50dbm,例如,β等于5,第二预设范围为(-55dbm,-45dbm)。
本发明实施例中,在步骤S205中,待定位区域可为一个三维空间区域,也可为二维平面区域;待定位区域中的每个指纹点对应一个指纹信息,也就是说,若待定位区域中包括100个指纹点,则参考指纹库中包括100个指纹信息。可选地,每个指纹点的指纹信息包括以下内容中的任一种或任多种:该指纹点检测到的每个信号的标识、该指纹点检测到的每个信号对应的AP的标识、每个信号对应的信号强度值、该指纹点的坐标值。举个例子,例如,每个指纹信息中包括该指纹点检测到的每个信号对应的AP的标识、该指纹点检测到的每个信号对应的信号强度值;再例如,每个指纹信息中包括该指纹点检测到的每个信号对应的AP的标识、该指纹点检测到的每个信号对应的信号强度值、该指纹点的坐标值。
可选地,预设信号强度条件具体可为:第一信号对应的AP的标识在指纹点检测到的信号强度值满足第一预设范围、且第二信号对应的AP的标识在指纹点检测到的信号强度值满足第二预设范围的指纹信息。
沿用上述例子,在待定位点检测到的信号1、信号2和信号3,分别对应的AP的标识为APID1、APID2和APID3,其中,确定出的第一信号对应的AP的标识为APID2、信号强度值为-40dbm,在待定位点检测到的第二信号对应的AP的标识为APID1、信号强度值为-50dbm,那么,确定出的优选指纹库中的每个指纹信息至少包括APID1、APID2和APID3、且每个指纹信息中的APID2对应的信号强度值满足第一预设范围(-44dbm,-36dbm)、每个指纹信息中的APID1对应的信号强度值满足第二预设范围(-55dbm,-45dbm)。
可选地,从参考指纹库中确定出优选指纹库的具体方式有多种,此处不作具体限定。例如,可以从参考指纹库中确定出至少包括L个信号中每个信号对应的AP的标识的所有指纹信息,组成候选指纹库;再从候选指纹库中确定出第一信号对应的AP的标识在指纹点检测到的信号强度值满足第一预设范围、且第二信号对应的AP的标识在指纹点检测到的信号强度值满足第二预设范围的所有指纹信息,组成优选指纹库。再例如,从参考指纹库中确定出同时满足:至少包括L个信号中每个信号对应的AP的标识和预设信号强度条件的所有指纹信息,组成优选指纹库。
本发明实施例中,在步骤S206中,可采用现有技术中的适用于本发明实施例的指纹匹配算法进行匹配,例如,最近邻算法、贝叶斯概率算法等。举个例子,例如,待定位点检测到的3个信号的信息为:3个信号中每个信号对应的AP的标识、每个信号对应的信号强度值,表示为{APID1,APID2,APID3,RSSI1,RSSI2,RSSI3},优选指纹库中包括N个指纹点,其中,第m个指纹点的指纹信息为{xm,ym,zm,APID1,APID2,APID3,APID4,RSSIm,1,RSSIm,2,RSSIm,3,RSSIm,4},将待定位点检测到的3个信号的信息分别和优选指纹库中的N个指纹点对应的指纹信息进行匹配,确定出和待定位点检测到的3个信号的信息匹配的一个指纹点的指纹坐标,作为待定位点的位置坐标。
本发明实施例中,从参考指纹库中确定出优选指纹库,优选指纹库中的每个指纹信息为至少包括L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;预设信号强度条件为信号强度值既满足第一预设范围又满足第二预设范围的指纹信息;如此,得到的优选指纹库中的包括的指纹信息与待定位点检测到的信号的信息最接近、优选指纹库中每个指纹信息至少包括待定位点检测到的L个信号中每个信号对应的AP的标识、且满足预设信号强度条件;根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标;因此,本发明的过程相对于现有技术中的遍历参考指纹库中的所有指纹信息、确定待定位点的位置的方法,需要进行匹配的次数较少,进而在指纹定位过程中可有效降低指纹匹配的计算复杂度。
上述步骤S201中,若终端第j次定位的待定位点检测到的信号个数L等于1,则将该待定位点检测到的1个信号作为第一信号,并继续执行上述实施例中的步骤S203、步骤S205,其中,步骤S205中的预设信号强度条件为:信号强度值满足第一预设范围的指纹信息;继续执行步骤S206。
基于上述实施例,本发明实施例中,待定位点检测到的L个信号的信息包括L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值。根据待定位点检测到的L个信号的信息与优选指纹库中的每个指纹信息进行匹配的匹配结果,确定待定位点的位置坐标。可选地,匹配结果有多种表示方式:
其一,匹配结果可为:优选指纹库中确定出的与待定位点的L个信号的信息匹配的一个指纹信息。例如,匹配结果中该指纹信息为与L个信号的信息匹配程度最高的指纹信息,进而将该指纹信息中的坐标作为待定位点的位置坐标。如此,相对于优选指纹库中其它的指纹点,本发明实施例中确定出的该匹配程度最高的指纹点的位置,最接近待定位点的位置;因此,将该匹配程度最高的指纹点的坐标,可更准确的确定出待定位点的位置坐标。
其二,匹配结果可为:优选指纹库中确定出的与待定位点的L个信号的信息匹配的多个指纹信息。例如,匹配结果中的多个指纹信息为与待定位点的L个信号匹配程度较高的K个指纹点的指纹信息,其中,K为个数阈值,可设置为大于2的整数,可根据具体需求设置;根据该K个指纹信息中的坐标,确定待定位点的位置坐标。如此,本发明实施例中将匹配程度较高的K个指纹点的位置坐标的均值作为待定位点的位置坐标。
上述步骤S206中,确定所述待定位点的位置坐标之后,还包括:向终端发送待定位点的位置坐标。可选地,根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标之后,在j小于等于2的情况下,也就是说,j等于1或j等于2时,向终端发送待定位点的位置坐标;在j大于2的情况下,向终端发送待定位点的校正后位置坐标。
可选地,根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标之后,还包括:在j大于2的情况下,获取终端的第j-1次定位的位置坐标;根据终端的第j次定位的位置坐标和终端的第j-1次定位的位置坐标,确定第j次定位的位置坐标和第j-1次定位的位置坐标之间的距离差值;判断距离差值和距离阈值的大小,存在两种情况:第一种,在距离差值不大于距离阈值的情况下,将第j次定位的位置坐标作为待定位点的位置坐标,发送至终端;第二种,在距离差值大于距离阈值的情况下,对第j次定位的位置坐标进行校正,得到校正后的待定位点的位置坐标;将校正后的待定位点的位置坐标发送至终端。
本发明实施例中,距离阈值可根据实际需求进行设置。针对上述第一种情况,第j次定位的位置坐标和第j-1次定位的位置坐标之间的距离差值不大于距离阈值,说明两次定位的位置坐标比较接近,不需要进行校正。
针对上述第二种情况,第j次定位的位置坐标和第j-1次定位的位置坐标之间的距离差值大于距离阈值,说明本次定位的位置坐标不准确,需要进行校正。可选地,待定位点的位置坐标的具体校正方法如下:
首先,确定出第j次定位的位置坐标(xj,yj,zj);
其次,确定校正方法,根据校正方法对第j次定位的位置坐标进行校正,具体存在以下两种情况:
第一种:若j小于等于d时,其中d为正整数,一般d的取值范围可为[3,6];则第j次定位的位置坐标根据前j-1次的位置坐标进行校正,具体的校正方法如下:
步骤一,确定出终端前j-1次定位的位置坐标为(x1,y1,z1)、(x2,y2,z2)…………(xj-1,yj-1,zj-1),计算前j-1次定位的位置坐标中,每相邻的两个位置坐标之间的相对距离差值,得到{(Δx1,Δy1,Δz1),(Δx2,Δy2,Δz2),…(Δxi,Δyi,Δzi),…,(Δxj-2,Δyj-2,Δzj-2)},其中,Δxi=xi+1-xi,Δyi=yi+1-yi,Δzi=zi+1-zi,1≤i≤j-2;
步骤二,根据前j-1次定位的位置坐标对第j次定位的位置坐标进行校正,得到第j次定位的较正后的位置坐标(x′j,y′j,z′j);其中,x′j、y′j和z′j的值分别由下述公式(1)、(2)和(3)计算得到:
其中,上述公式(1)中,j为终端当前的定位次数,x′j为第j次定位的位置坐标校正后的X轴对应的坐标值,xj-1为第j-1次定位的位置坐标的X值,Δxi为第i+1次定位的位置坐标的X值和第i次定位的位置坐标的X值的差值;
其中,上述公式(2)中,j为终端当前的定位次数,y′j为第j次定位的位置坐标校正后的Y轴对应的坐标值,yj-1为第j-1次定位的位置坐标的Y值,Δyi为第i+1次定位的位置坐标的Y值和第i次定位的位置坐标的Y值的差值;
其中,上述公式(3)中,j为终端当前的定位次数,z′j为第j次定位的位置坐标校正后的Z轴对应的坐标值,zj-1为第j-1次定位的位置坐标的Z值,Δzi为第i+1次定位的位置坐标的Z值和第i次定位的位置坐标的Z值的差值。
第二种:若j大于d时,其中d为正整数,一般d的取值范围可为[3,6];则第j次定位的位置坐标根据第j-d次至j-1次定位的位置坐标进行校正,具体的校正方法如下:
步骤一,确定出终端第j-d次至第j-1次定位的位置坐标为(xj-d,yj-d,zj-d)、(xj-d+1,yj-d+1,zj-d+1)……(xj-1,yj-1,zj-1),计算出第j-d次至第j-1次次定位的位置坐标中,每相邻的两个位置坐标之间的相对距离差值,得到{(Δx1,Δy1,Δz1),(Δx2,Δy2,Δz2),…(Δxp,Δyp,Δzp),…,(Δxd-1,Δyd-1,Δzd-1)},其中,Δxp=xj-p-xj-p-1,Δyp=yj-p-yj-p-1,Δzp=zj-p-zj-p-1,1≤p≤d-1;
步骤二,根据第j-d次至第j-1次定位的位置坐标对第j次定位的位置坐标进行校正,得到第j次定位的较正后的位置坐标(x′j,y′j,z′j);其中,x′j、y′j和z′j的值分别由下述公式(4)、(5)和(6)计算得到:
其中,上述公式(4)中,j为终端当前的定位次数,x′j为第j次定位的位置坐标校正后的X轴对应的坐标值,xj-1为第j-1次定位的位置坐标的X值,Δxp为第j-p次定位的位置坐标的X值和第j-p-1次定位的位置坐标的X值的差值,1≤p≤d-1;
其中,上述公式(5)中,j为终端当前的定位次数,y′j为第j次定位的位置坐标校正后的Y轴对应的坐标值,yj-1为第j-1次定位的位置坐标的Y值,Δyp为第j-p次定位的位置坐标的Y值和第j-p-1次定位的位置坐标的Y值的差值,1≤p≤d-1;
其中,上述公式(6)中,j为终端当前的定位次数,z′j为第j次定位的位置坐标校正后的Z轴对应的坐标值,zj-1为第j-1次定位的位置坐标的Z值,Δzp为第j-p次定位的位置坐标的Y值和第j-p-1次定位的位置坐标的Y值的差值,1≤p≤d-1。
本发明实施例中,在确定两次之间的定位点的位置坐标的距离差值大于距离阈值的情况下,将当前确定的待定位点的位置坐标进行校正,一方面,避免了当前待定位点的定位错误;另一方面,降低了此次定位出现错误之后,下一次定位继续出现错误的可能性;如此,提高了定位精度。
可选地,参考指纹库通过以下方式建立,包括:确定待定位空间区域中预设方式分布的所有指纹点;针对所有指纹点中的每个指纹点,获取指纹点的指纹信息;其中,指纹信息包括指纹点的坐标值、终端在指纹点检测到的M个信号中每个信号对应的接入点AP的标识和M个信号中每个信号对应的信号强度值;M为大于等于1的整数;根据所有指纹点中的每个指纹点的指纹信息,建立参考指纹库。
本发明实施例中,可选地,待定位区域可为三维空间区域,也可为二维空间区域。可选地,预设方式可为等间距方式,也可为指定位置方式;通过以下进行说明:
第一种,若待定位区域中的所有指纹点是等间距分布,以待定位区域为二维平面区域为例,例如,在10米*10米的待定位区域中,每相邻的两个指纹点之间间隔为1米,那么该待定位区域可以确定出121个指纹点,每个指纹点周围存在间隔最近的4个指纹点;依此类推,以待定位区域为三维空间区域为例,若待定位区域中的所有指纹点是等间距分布的方式,在10米*10米*10米的待定位区域中,每相邻的两个指纹点之间间隔为1米,每个指纹点周围存在间隔最近的6个指纹点。可见,此种方式确定出的指纹点考虑了待定位区域中的每个点,充分采集待定位区域中的所有指纹点,以使建立的参考指纹库中的指纹信息更加丰富,保证了参考指纹库中的指纹信息的完整性,进而提高定位精度。
第二种,若待定位区域中的所有指纹点是指定位置方式分布,以待定位区域为三维空间区域为例,例如,商场分为三层,每层5米高,可以将商场中的用户能够到达的每个点的确定为指纹点,举个例子,例如,在商场的每一层的0至2米高的区域内确定指纹点;又例如,在自动扶梯所在的空间区域内确定指纹点;再例如,在升降电梯所在的空间区域内确定指纹点。如此,确定出的指纹点考虑了待定位区域中用户能够到达的区域,也就是说,在用户可能使用定位方法的区域内,采集指纹点,进而确定参考指纹库中的指纹信息既满足定位需求,又能够使得定位过程中的匹配算法的计算复杂度降低。
可选地,针对所有指纹点中的每个指纹点,获取指纹点的指纹信息的方式有多种,本发明实施例提供其中一种方式为:可以为一次采集该指纹点的M个信号所得到的指纹信息;举个例子,在第i个指纹点的坐标为(xi,yi,zi),在该指纹点采集到3个信号,3个信号对应的AP的标识分别为APID1、APID2、APID3;APID1对应的信号强度值为RSSIi,1、APID2对应的信号强度值为RSSIi,2、APID3对应的信号强度值为RSSIi,3;则该指纹点的指纹信息可表示为:
(xi,yi,zi,RSSIi,1,RSSIi,2,RSSIi,3,APID1,APID2,APID3);
本发明实施例提供其中另一种方式为:在预设时长内多次采集该指纹点检测到的信号,根据该多次采集的信号确定该指纹点的指纹信息;为了更清楚的说明该过程,举如下示例:例如预设时长为6小时,在每隔0.1小时采集一次信号,也就是说,预设时长内共采集61次信号,根据预设时长内采集的61次信号,确定出该指纹点的指纹信息,具体过程如下:
第一步,采集该指纹点的参考坐标(xi,yi,zi);
第二步,在预设时长采集第一次信号,得到3个信号对应的AP的标识分别为APID1、APID2、APID3;APID1对应的信号强度值为RSSIi,1、APID2对应的信号强度值为RSSIi,2、APID3对应的信号强度值为RSSIi,3;
第三步,依次采集61次信号,得到每一次的信号对应的AP的标识分别为APID1、APID2、APID3,以及APID1、APID2、APID3对应的信号强度值;
第四步,对AP标识为APID
1对应的60次采样信号进行卡尔曼滤波,并对滤波后的信号进行加权平均,将该均值
作为APID
1的信号强度;对AP标识为APID
2对应的61次采样信号进行卡尔曼滤波,并对滤波后的信号进行加权平均,将该均值
作为APID
2的信号强度;对AP标识为APID
3对应的61次采样信号进行卡尔曼滤波,并对滤波后的信号进行加权平均,将该均值
作为APID
3的信号强度;
第五步,该指纹点的指纹信息可表示为:
可选地,根据所有指纹点中的每个指纹点的指纹信息,建立参考指纹库之前,还包括:针对所有指纹点中的每个指纹点,执行:
在该指纹点检测到的信号个数M不小于3的情况下,将该指纹点检测到的M个信号中的每个信号对应的AP的标识、每个信号对应的信号强度值、该指纹点的坐标值,作为该指纹点的指纹信息;
在指纹点检测到的信号个数M小于3的情况下,确定该指纹点周围间隔最近的k个指纹点;其中,k为大于等于1的整数;确定出指纹点周围间隔最近的k个指纹点的指纹信息;计算k个指纹点的指纹信息中同一AP标识的信号强度值的平均值并组成均值集合;从k个指纹点的指纹信息中确定出扩充AP的标识、及扩充AP的标识对应的信号强度值的平均值,作为指纹点的指纹信息。
本发明实施例中,对该指纹点周围间隔最近的k个指纹点进行举例说明,例如在等间距分布的待定位区域内,存在以下情况:
若待定位区域是二维平面区域,非边缘处每个指纹点周围存在4个间隔最近的指纹点;在边缘的顶点每个指纹点周围存在2个间隔最近的指纹点;在边缘的每条边上的每个指纹点周围存在3个间隔最近的指纹点;
若待定位区域是三维空间区域,以长方体为例,非顶点、边、面上的每个指纹点周围存在6个间隔最近的指纹点;顶点上的每个指纹点周围存在3个间隔最近的指纹点;边上的每个指纹点周围存在4个间隔最近的指纹点;面上的每个指纹点周围存在5个间隔最近的指纹点。
为了更清楚的说明i个指纹点检测到的信号个数M小于3的情况,该点的指纹信息确定过程,举如下示例:
例如,M等于2,在第i个指纹点检测到2个信号,2个信号分别对应的AP的标识为APID1和APID2,其中,APID1对应的信号强度值为RSSIi,1、APID2对应的信号强度值为RSSIi,2;以k等于6为例:
第一步,确定出第i个指纹点周围最近的6个指纹点,分别为A、B、C、D、E、F;
第二步,分别确定A、B、C、D、E、F点检测到的信号的标识、以及每个信号对应的信号强度值;其中,A点检测到的信号的标识为APID1、APID2、APID4,分别对应的信号强度为RSSIA,1、RSSIA,2、RSSIA,4;B点检测到的信号的标识为APID1、APID2、APID3,分别对应的信号强度为RSSIB,1、RSSIB,2、RSSIB,3;C点检测到的信号的标识为APID1、APID3、APID4、APID5,分别对应的信号强度为RSSIC,1、RSSIC,3、RSSIC,4、RSSIC,5;D点检测到的信号的标识为APID2、APID3、APID4、APID5,分别对应的信号强度为RSSID,1、RSSID,3、RSSID,4、RSSID,5;E点检测到的信号的标识为APID1、APID3、APID4,分别对应的信号强度为RSSIE,1、RSSIE,3、RSSIE,4;F点检测到的信号的标识为APID2、APID3、APID5,分别对应的信号强度为RSSIF,2、RSSIF,3、RSSIF,5;
第三步,分别统计出A、B、C、D、E、F点检测到的所有信号的AP的标识中,除第i个指纹点检测到2个信号的AP的标识之外的同一AP的标识的次数;其中,APID3被检测到的次数为5次,APID4被检测到的次数为4次,APID5被检测到的次数为3次;
第四步,计算A、B、C、D、E、F点检测到的所有信号的AP的标识中,除第i个指纹点检测到2个信号的AP的标识之外的同一AP的标识对应的信号强度值的平均值,组成均值集合;其中,均值集合中包括:APID
3对应的信号强度值为
APID
4对应的信号强度值为
APID
5对应的信号强度值为
第五步,从上述A、B、C、D、E、F点检测到的信号除第i个指纹点检测到2个信号的AP的标识之外的AP的标识中,确定出扩充AP的标识,并从均值集合中确定出扩充AP的标识对应的信号强度值的平均值;
第六步,将扩充AP的标识、扩充AP的标识对应的信号强度值的平均值、APID1、APID2、信号强度值为RSSIi,1、信号强度值为RSSIi,2,作为该指纹点的指纹信息。
一般情况下,每个指纹点检测到至少3个信号,才能在指纹匹配过程中,准确的确定出待定位点的位置;本发明实施例中,在某个指纹点检测到的信号个数小于3的情况下,确定出扩充AP的标识、以及扩充AP的标识对应的信号强度值的均值作为指纹信息;如此,避免了第i个指纹点检测的信号少于3个信号,出现定位不了或定位出错的情况,进而提高定位精度,减小定位误差。
可选地,扩充AP的标识符合以下条件中的任一项:扩充AP的标识对应的信号强度值的平均值为均值集合中最大值;或,扩充AP的标识在k个指纹点的指纹信息中出现次数最多。
本发明实施例中,针对第一项条件,扩充AP的标识对应的信号强度值的平均值为均值集合中最大值,分为两种情况:
第一种,确定出k个指纹点的指纹信息中出现次数大于次数阈值的所有AP的标识,确定出出现次数大于次数阈值所有AP的标识在均值集合中的信号强度值的均值、并确定出均值最大值;将该最大值对应的AP的标识作为扩充AP的标识;可选地,次数阈值可根据实际需求进行设定,比如设置为k/2;
沿用上述例子,例如,第i个指纹点周围最近的6个指纹点,分别为A、B、C、D、E、F;将次数阈值设置为3,出现次数大于次数阈值3的除第i个指纹点检测到2个信号的AP的标识之外的所有AP的标识为APID
3和APID
4,从
中确定出最大值,比如最大值为
将APID
3作为扩充AP的标识。
第二种,k个指纹点的指纹信息中不存在出现次数大于次数阈值的AP的标识,则在均值集合中确定出最大值;将均值集合中的最大值对应的AP的标识作为扩充AP的标识;
沿用上述例子,例如,第i个指纹点周围最近的6个指纹点,分别为A、B、C、D、E、F;将次数阈值设置为5,那么6个指纹点的指纹信息中不存在出现次数大于5的AP的标识,此时,确定出均值集合
中的最大值,比如最大值为
那么将
对应的信号的AP的标识,作为扩充AP的标识。
如此,既保证了扩充AP的标识在该指纹点周围最近的指纹点处检测到的次数较多,又保证了该扩充AP的标识对应的信号强度值为均值集合中的较大的值;因此,该指纹点检测到该扩充AP的标识对应的信号的可能性最大,而且使得指纹点检测到该扩充AP的标识对应的信号的强度值较大,进而保证了参考指纹库中的指纹信息的完整性,提高定位精度。
本发明实施例中,针对第二项条件,扩充AP的标识在k个指纹点的指纹信息中出现次数最多;举如下示例:
沿用上述例子,例如,第i个指纹点检测到2个信号,2个信号分别对应的AP的标识为APID1和APID2,第i个指纹点周围最近的6个指纹点,分别为A、B、C、D、E、F;其中,A、B、C、D、E、F点检测到的所有信号的AP的标识中,除第i个指纹点检测到2个信号的AP的标识之外的同一AP的标识的次数分别为:APID3被检测到的次数为5次,APID4被检测到的次数为4次,APID5被检测到的次数为3次;确定出6个指纹点的指纹信息中出现次数最多的AP的标识为APID3,将APID3作为扩充的AP的标识。如此,保证了该指纹点检测到该扩充的AP的标识对应的信号的可能性最大,而且保证了参考指纹库中的指纹信息的完整性,进而提高定位的精度。
图3示例性示出了本发明实施例提供的另一种指纹定位方法流程示意图,基于图1所示的系统架构,如图3所示,该方法包括以下步骤:
步骤S301:确定待定位空间区域中预设方式分布的所有指纹点;
步骤S302:针对所有指纹点中的每个指纹点,获取指纹点的指纹信息;其中,指纹信息包括指纹点的坐标值、终端在指纹点检测到的M个信号中每个信号对应的接入点AP的标识和M个信号中每个信号对应的信号强度值;M为大于等于1的整数;
步骤S303:针对所有指纹点中的每个指纹点,执行:确定该指纹点检测到的信号个数M是否小于3;若是,则执行步骤S304;若否,则执行步骤S307;
骤S304:确定出该指纹点周围间隔最近的k个指纹点的指纹信息;其中,k为大于等于1的整数;
步骤S305:计算k个指纹点的指纹信息中同一AP标识的信号强度值的平均值并组成均值集合;
步骤S306:从k个指纹点的指纹信息中确定出扩充AP的标识、及扩充AP的标识对应的信号强度值的平均值、M个信号中每个信号对应的接入点AP的标识和M个信号中每个信号对应的信号强度值,作为指纹点的指纹信息;
步骤S307:根据所有指纹点中的每个指纹点的指纹信息,建立参考指纹库;
步骤S308:获取终端上第j次定位的待定位点检测到的L个信号中每个信号对应的AP的标识和L个信号中每个信号对应的信号强度值;其中,L为大于等于2的整数;j为大于等于1的整数;
步骤S309:确定出L个信号中信号强度值最高的两个信号,分别为第一信号和第二信号;
步骤S310:根据第一信号的信号强度值确定第一预设范围;根据第二信号的信号强度值确定第二预设范围;
步骤S311:从参考指纹库中确定出优选指纹库;优选指纹库中的每个指纹信息为至少包括L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;其中,参考指纹库中包括终端所在的待定位区域的所有指纹点的指纹信息;预设信号强度条件为信号强度值既满足第一预设范围又满足第二预设范围的指纹信息;
步骤S312:根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标;
步骤S313:确定j是否大于2;若是,则执行步骤S314;若否,则执行步骤S318;
步骤S314:获取终端的第j-1次定位的位置坐标;
步骤S315:根据终端的第j次定位的位置坐标和终端的第j-1次定位的位置坐标,确定第j次定位的位置坐标和第j-1次定位的位置坐标之间的距离差值;
步骤S316:确定距离差值是否大于距离阈值;若是,则执行步骤S317;若否,则执行步骤S318;
步骤S317:对第j次定位的位置坐标进行校正,得到校正后的待定位点的位置坐标,并向终端发送待定位点的校正后位置坐标;
步骤S318:终端的第j次定位的位置坐标作为待定位点的位置坐标,并向终端发送待定位点的位置坐标。
从上述内容可以看出:从参考指纹库中确定出优选指纹库,优选指纹库中的每个指纹信息为至少包括L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;预设信号强度条件为信号强度值既满足第一预设范围又满足第二预设范围的指纹信息;如此,得到的优选指纹库中的包括的指纹信息与待定位点检测到的信号的信息最接近、优选指纹库中每个指纹信息至少包括待定位点检测到的L个信号中每个信号对应的AP的标识、且满足预设信号强度条件;根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标;因此,本发明的过程相对于现有技术中的遍历参考指纹库中的所有指纹信息、确定待定位点的位置的方法,需要进行匹配的次数较少,进而在指纹定位过程中可有效降低指纹匹配的计算复杂度。而且,在参考指纹库的建立过程中,对于检测到的信号个数M小于3的指纹点,确定出扩充AP的标识和扩充AP的标识对应的信号强度值,避免了第i个指纹点检测的信号少于3个信号,出现定位不了或定位出错的情况,进而提高定位精度,减小定位误差;进一步地,扩充AP的确定条件,保证了该指纹点检测到该扩充AP的标识对应的信号的可能性最大,而且使得指纹点检测到该扩充AP的标识对应的信号的强度值较大,进而保证了参考指纹库中的指纹信息的完整性,提高定位精度。
图4示例性示出了本发明实施例提供的一种指纹定位装置的结构示意图。
基于相同构思,本发明实施例提供的一种指纹定位装置,用于执行上述方法流程;如图4所示,该指纹定位装置400包括获取单元401、处理单元402和发送单元403;其中:
获取单元401,用于获取终端上第j次定位的待定位点检测到的L个信号中每个信号对应的AP的标识和所述L个信号中每个信号对应的信号强度值;其中,所述L为大于等于2的整数;所述j为大于等于1的整数;
处理单元402,用于确定出所述L个信号中信号强度值最高的两个信号,分别为第一信号和第二信号;根据所述第一信号的信号强度值确定第一预设范围;根据所述第二信号的信号强度值确定第二预设范围;从参考指纹库中确定出优选指纹库;根据所述L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与所述优选指纹库中的指纹信息的匹配结果,确定所述待定位点的位置坐标;其中,所述参考指纹库中包括所述终端所在的待定位区域的所有指纹点的指纹信息;所述优选指纹库中的每个指纹信息为至少包括所述L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;所述预设信号强度条件为信号强度值既满足所述第一预设范围又满足所述第二预设范围的指纹信息。
可选地,所述装置400还包括:发送单元403,用于在所述j小于等于2的情况下,向所述终端发送所述待定位点的位置坐标。
可选地,所述获取单元401,还用于:在所述j大于2的情况下,获取所述终端的第j-1次定位的位置坐标;所述处理单元402,还用于:根据所述终端的第j次定位的位置坐标和所述终端的第j-1次定位的位置坐标,确定所述第j次定位的位置坐标和所述第j-1次定位的位置坐标之间的距离差值;在所述距离差值大于所述距离阈值的情况下,对所述第j次定位的位置坐标进行校正,得到校正后的待定位点的位置坐标。
可选地,所述发送单元403,还用于:在所述j大于2的情况下,向所述终端发送所述待定位点的校正后位置坐标。
可选地,所述获取单元401,还用于:在确定待定位空间区域中预设方式分布的所有指纹点的情况下,针对所述所有指纹点中的每个指纹点,获取所述指纹点的指纹信息;其中,所述指纹信息包括所述指纹点的坐标值、终端在所述指纹点检测到的M个信号中每个信号对应的接入点AP的标识和所述M个信号中每个信号对应的信号强度值;M为大于等于1的整数;处理单元402,还用于:确定待定位空间区域中预设方式分布的所有指纹点;根据所述所有指纹点中的每个指纹点的指纹信息,建立参考指纹库。
可选地,所述处理单元402,还用于:针对所有指纹点中的每个指纹点,执行:在所述指纹点检测到的信号个数M小于3的情况下,确定所述指纹点周围间隔最近的k个指纹点;其中,k为大于等于1的整数;确定出所述指纹点周围间隔最近的k个指纹点的指纹信息;计算所述k个指纹点的指纹信息中同一AP标识的信号强度值的平均值并组成均值集合;从所述k个指纹点的指纹信息中确定出扩充AP的标识、及所述扩充AP的标识对应的信号强度值的平均值,作为所述指纹点的指纹信息。
可选地,所述扩充AP的标识符合以下条件中的任一项:所述扩充AP的标识对应的信号强度值的平均值为所述均值集合中最大值;或,所述扩充AP的标识在所述k个指纹点的指纹信息中出现次数最多。
上述内容可以看出:从参考指纹库中确定出优选指纹库,优选指纹库中的每个指纹信息为至少包括L个信号中每个信号对应的AP的标识且满足预设信号强度条件的指纹信息;预设信号强度条件为信号强度值既满足第一预设范围又满足第二预设范围的指纹信息;如此,得到的优选指纹库中的包括的指纹信息较少、优选指纹库中每个指纹信息至少包括待定位点检测到的L个信号中每个信号对应的AP的标识、且满足预设信号强度条件;根据L个信号中每个信号对应的AP的标识、L个信号中每个信号对应的信号强度值与优选指纹库中的指纹信息的匹配结果,确定待定位点的位置坐标;因此,本发明的过程相对于现有技术中的遍历参考指纹库中的所有指纹信息、确定待定位点的位置的方法,需要进行匹配的次数与待定位点检测到的信号的信息最接近,进而在指纹定位过程中可有效降低指纹匹配的计算复杂度。而且,在参考指纹库的建立过程中,对于检测到的信号个数M小于3的指纹点,确定出扩充AP的标识和扩充AP的标识对应的信号强度值,避免了第i个指纹点检测的信号少于3个信号,出现定位不了或定位出错的情况,进而提高定位精度,减小定位误差;进一步地,扩充AP的确定条件,保证了该指纹点检测到该扩充AP的标识对应的信号的可能性最大,而且使得指纹点检测到该扩充AP的标识对应的信号的强度值较大,进而保证了参考指纹库中的指纹信息的完整性,提高定位精度。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。