一种基于双步指纹匹配架构的蓝牙室内定位方法
技术领域
本发明涉及室内导航定位领域,具体涉及一种基于双步指纹匹配架构的蓝牙室内定位方法。
背景技术
随着移动互联网的飞速发展,各种新式的移动设备如可穿戴设备以及手机的广泛应用,基于位置服务(LBS,Location Based Service)的需求同时也不断增加,基于位置的定位技术引起了人们越来越多的关注。近十多年中,全球定位系统(GPS,GlobalPositioning System)一直是室外导航定位的黄金标准,然而在室内由于信号的衰减、信号的折射反射等一系列问题,导致GPS在室内定位的应用中存在局限性。而随着移动互联网技术的发展,人们对室内定位服务的需求也逐渐增多,尤其在商场超市、场馆以及许多交通枢纽等区域,对定位的精度要求也越来越高。然而室内定位环境复杂,存在着不同类型的干扰源,例如:室内障碍物影响电磁波的传播从而导致阴影效应和多径效应等,同时来自其他无线设备的干扰和噪声也影响了室内定位精度。
到目前为止,已有多种技术应用于室内定位,主要有:RFID(Radio FrequencyIdentification)、超声波、UWB(Ultra Wide Band)、低功耗蓝牙、WLAN(Wireless LocalArea Networks)、Zig Bee等等,其中RFID、超声波、UWB等技术虽然定位精度高,但部署成本过高,不能广泛的适用于室内定位;Zig Bee技术定位精度较低;WLAN技术虽然应用广泛,然而WLAN信号抗干扰能力较差,容易受到其它信号的干扰。低功耗蓝牙中尤其是近两年发展起来的iBeacon技术,仅需一颗纽扣电池,便可持续供电多年,同时iBeacon具有更高的信号稳定性、抗干扰能力更强,在成本、定位精度等方面较其它技术有明显的优势。目前主流的两类的蓝牙定位算法分别为:基于RSSI(Received Signal Strength Indication,接受信号强度)的位置指纹算法和基于RSSI测距的定位算法,其中基于RSSI的位置指纹算法虽然算法相对复杂,需要更多的前期数据作为支撑,但是拥有更强的抗干扰能力和更高的定位精度,是目前一种相对主流的蓝牙定位算法。但是,位置指纹定位算法的一大问题是在线定位阶段的匹配效率;由于指纹定位算法需要采集到的蓝牙RSSI信息与指纹库中的全部RSSI数据进行比对计算,当定位范围较大时,比如大型的商场或者会展中心等环境,位置指纹数据库会变得非常庞大。这时,如果依然将整个指纹数据库当作搜索空间的话,位置匹配阶段的时间复杂度将变得非常高,并且指纹定位算法采用服务器端计算的方式存在一定的网络延时,最终将导致无法实现实时的定位。
发明内容
本发明拟提出一种基于双步指纹匹配架构的蓝牙室内定位方法,通过采用双步指纹匹配的方式,使得算法可以同时兼顾准确性和实时性,有效解决了在大室内场景下的指纹匹配实时性较差的问题。
为了实现上述目的,本发明的技术方案是:
一种基于双步指纹匹配架构的蓝牙室内定位方法,包括:建立采样点蓝牙信标指纹库和采用双步指纹匹配实现坐标定位;其中:
所述建立采样点蓝牙信标指纹库过程是:在室内定位区域内放置m个蓝牙信标并赋予序号,设置n个采样点,在每一个采样点用无线信号采集设备采集所接收到的全部m个蓝牙信标信号的信号强度值,信号强度值称为RSSI值,并由m个RSSI值构建成为该采样点处的RSSI向量,存储全部n个采样点各自的RSSI向量和相应采样点的坐标形成所述室内定位区域的采样点蓝牙信标指纹库,指纹库中的RSSI向量形式为:其中,代表第j个采样点处所接受到的第1个蓝牙信标的RSSI值。
所述采用双步指纹匹配实现坐标定位包括
第一步:定位坐标粗选;
其过程是:用定位设备获取进入所述室内定位区域内运动物体蓝牙相对于全部m个蓝牙信标的信号强度值,形成运动物体蓝牙所处位置的RSSI向量,将蓝牙信标指纹库中全部n个采样点对应的RSSI向量与定位设备所获取的运动物体蓝牙所处位置的RSSI向量比对,确定蓝牙信标指纹库中与所述运动物体蓝牙所处位置的RSSI向量疑似接近的RSSI向量,并由此确定所述指纹库中疑似接近的RSSI向量对应的蓝牙信标序号;
第二步:定位坐标精确匹配;
其过程是:根据粗选中所得的蓝牙信标序号的坐标信息,采用自适应加权近邻算法输出运动物体的定位;
其中:
在定位坐标粗选中,所述将蓝牙信标指纹库中全部n个采样点的RSSI向量与定位设备所获取的运动物体蓝牙所处位置的RSSI向量比对,确定蓝牙信标指纹库中与所述运动物体蓝牙所处位置的RSSI向量疑似接近的RSSI向量的步骤是:
步骤一:将定位设备从运动物体蓝牙所处位置获取的信标序号从1至m的全部蓝牙信标的信号强度值构成的RSSI向量表示为确定运动物体蓝牙相对于所接收到的Rnew中距离RSSI值线性区中心值最近的两个RSSI值,确定其对应的蓝牙信标序号,序号分别定义为a和b,两个RSSI值分别定义为与
步骤二:判断蓝牙信标指纹库序号从1至n的全部RSSI向量是否同时满足和其中thre为预先设置的接近比较阈值,如果满足,则将RSSI向量所对应的蓝牙信标判定为“疑似接近蓝牙信标”,并将其序号以及对应的RSSI向量放入疑似接近指纹库Dnew,对蓝牙信标指纹库中全部RSSI向量指纹信息按照上述原则进行筛选,最终得到疑似接近指纹库Dnew;
在定位坐标精确匹配中,所述采用自适应加权近邻算法输出运动物体的定位的步骤是:
第一步:对疑似接近指纹库Dnew进行筛选确定接近指纹总个数K;
其过程是:
用公式:确定定位设备所获取的RSSI向量Rnew与疑似接近指纹库Dnew中疑似接近蓝牙信标RSSI向量之间的欧式距离;
其中:
Rnew(t)代表定位设备所获取的RSSI向量Rnew中的第t个元素,R′j(t)代表疑似接近指纹库Dnew中第j个RSSI向量R′j中的第t个元素,将距离计算结果dj(j=1,…,n′)进行升序排列后,得到升序排列后的序列进而计算除最小值外其它欧氏距离值与最小值的差△dj:
计算数列{△dj,j=1,…,n′-1}的标准差std,以std为标准对数列{△dj}中的元素进行筛选,筛选原则如下:
从count=1开始进行筛选,判断△dcount<0.6×std和count<6是否同时成立;如果同时成立,则count=count+1,重复上述判断流程;如果不成立,则结束判断,输出最终的count的值,count值即为本次匹配中匹配成功的接近指纹总个数K值;
第二步:挑选中的前count个元素:进而获得与其对应的蓝牙采样指纹点序号,定义为match1,…,matchcount,利用计算归一化系数:
最终定位结果(X,Y)为:
(xi,yi),i=1,…,n为蓝牙采样指纹点坐标。
方案进一步是:所述接近比较阈值thre是10.
方案进一步是:在所述建立采样点蓝牙信标指纹库过程中,所述无线信号采集设备采集所接收到的全部m个蓝牙信标信号的信号强度值,需要在采样点停留一段时间,并将该时间段内所采集到的信号强度值进行平均,将平均的结果作为最终的信号强度值。
方案进一步是:所述n个采样点分布设置在室内定位区域内,或围绕室内定位区域周边设置。
方案进一步是:在建立采样点蓝牙信标指纹库过程中,如果采样点处无法接收到某个蓝牙信标的蓝牙信标信号的信号强度值,则该蓝牙信标所对应的信号强度值设置为-120db;
在定位坐标粗选中,如果定位设备无法接收到某个蓝牙信标的信号强度值,则该蓝牙信标所对应的信号强度值设置为-120db。
本发明的有益效果是:
(1)本发明采用双步指纹匹配架构,通过“粗筛选+精匹配”的方式实现采集到的蓝牙RSSI信息与蓝牙数据指纹库中信息准确快速匹配,与传统方案相比,该方案在保证匹配准确度的同时,有效降低了算法的计算量,更加适用于大室内场景下蓝牙定位的实现。
(2)本发明引入粗筛选的方法对蓝牙数据库进行快速筛选,粗筛选的意义在于快速筛选出与数据库中那些“疑似”与采集信息比较接近的指纹信息,快速剔除匹配可能性较小的指纹消息从而实现数据精简,达到提升算法运算效率的目的。
(3)本发明所设计室内地图信息与行人导航信息的融合方案自适应加权K近邻算法(AWKNN,Adaptive Weighted K-Nearest Neighbors),可以用于精匹配阶段中的指纹配对,与传统算法不同,该算法并不是挑选固定个数的指纹信息作为匹配成功结果,而是根据匹配结果的离散程度,动态自适应地调整匹配成功的指纹信息个数。该方法有效提升了算法的抗干扰性,在复杂的电磁环境下仍然能有相对稳定的定位结果输出。
下面结合附图和实施例对本发明进行详细描述。
附图说明
图1为本发明算法整体流程框图;
图2为粗筛选阶段的算法流程图;
图3为蓝牙RSSI值与相对距离之间关系示意图;
图4为精匹配阶段的算法流程图。
具体实施方式
一种基于双步指纹匹配架构的蓝牙室内定位方法,本方法采用双步匹配架构,包含粗筛选和精匹配两个匹配阶段;2.精匹配阶段采用自适应加权K近邻算法(AWKNN,Adaptive Weighted K-Nearest Neighbors),提高了匹配的抗干扰能力;实施例整体流程框图如图1所示。
基于双步指纹匹配架构的蓝牙室内定位方法包括:建立采样点蓝牙信标指纹库和采用双步指纹匹配实现坐标定位;建立采样点蓝牙信标指纹库阶段是离线数据采集阶段:在场景内完成蓝牙信标的部署,同时利用相关设备完成蓝牙RSSI数据指纹库的建立。
因此,所述建立采样点蓝牙信标指纹库过程是:在室内定位区域内放置m个蓝牙信标并赋予序号,m数量多少视区域大小而定,相互间隔在1m至5m之间;设置n个采样点,所述n个采样点可以是分布设置在室内定位区域内,也可以是围绕室内定位区域周边设置。采样点的间距视定位精度要求而定,每一个采样点会对应一个采样点坐标(坐标可记为(xi,yi),i=1,…,n),为了确保采集RSSI信号的准确性,在采集过程中,需要无线信号采集设备在该采样点停留一段时间,并将该时间段内所采集到的RSSI值进行平均,将平均的结果作为最终的RSSI值;在每一个采样点用无线信号采集设备采集所接收到的全部m个蓝牙信标信号的信号强度值,信号强度值称为RSSI值,并由m个RSSI值构建成为该采样点处的RSSI向量,这样,每一个采样点都可以获得一个RSSI向量;存储全部n个采样点各自的RSSI向量和相应采样点的坐标形成所述室内定位区域的采样点蓝牙信标指纹库,指纹库中的RSSI向量形式为:其中,代表第j个采样点处所接受到的第1个蓝牙信标的RSSI值。必须要说明的是:如果采样点处无法接收到某个蓝牙信标的蓝牙信标信号的信号强度值,则该蓝牙信标所对应的信号强度值设置为-120db,。当完全遍历完全部的采样点之后,便可以获得该区域的一套蓝牙指纹库D=<R1 … Rn>以及该指纹库所对应的采样点坐标(xi,yi),i=1,…,n,至此完成离线数据采集过程。
所述采用双步指纹匹配实现坐标定位包括
第一步:定位坐标粗选,粗筛选阶段是根据定位设备采集到的蓝牙RSSI信息对蓝牙数据库中的指纹信息进行筛选,确定库中哪些指纹信息“疑似”与采集信息比较接近。粗筛选阶段的算法流程图如图2所示;
定位坐标粗选过程是:首先假定有一个运动物体(例如行人)携带具有蓝牙的定位设备进入室内定位区域,用定位设备获取进入所述室内定位区域内运动物体蓝牙相对于全部m个蓝牙信标的信号强度值,形成运动物体蓝牙所处位置的RSSI向量,将蓝牙信标指纹库中全部n个采样点对应的RSSI向量与定位设备所获取的运动物体蓝牙所处位置的RSSI向量比对,确定蓝牙信标指纹库中与所述运动物体蓝牙所处位置的RSSI向量疑似接近的RSSI向量,并由此确定所述指纹库中疑似接近的RSSI向量对应的蓝牙信标序号;
第二步:定位坐标精确匹配;
其过程是:根据粗选中所得的蓝牙信标序号的坐标信息,采用自适应加权近邻算法输出运动物体的定位;
其中:
在定位坐标粗选中,所述将蓝牙信标指纹库中全部n个采样点的RSSI向量与定位设备所获取的运动物体蓝牙所处位置的RSSI向量比对,确定蓝牙信标指纹库中与所述运动物体蓝牙所处位置的RSSI向量疑似接近的RSSI向量的步骤是:
步骤一:将定位设备从运动物体蓝牙所处位置获取的信标序号从1至m的全部蓝牙信标的信号强度值构成的RSSI向量表示为其中:如果定位设备无法接收到某个蓝牙信标的信号强度值,则该蓝牙信标所对应的信号强度值设置为-120db,对Rnew中的全部元素进行遍历;由于RSSI值线性区是线性区是蓝牙设备的一种固有属性,当蓝牙设备型号确定,发射功率确定后,线性区就已经可以确定了。因此,根据此特性,确定运动物体蓝牙相对于所接收到的Rnew中距离RSSI值线性区中心值最近的两个RSSI值,确定其对应的蓝牙信标序号,序号分别定义为a和b,两个RSSI值分别定义为与RSSI值与相对距离之间的关系,以本实施例所使用蓝牙信号为例,二者实际关系图如图3所示。从图中可以看出,在图中的方框标记处,RSSI近似与距离成为线性关系,该区间定义为RSSI线性区;
步骤二:判断蓝牙信标指纹库序号从1至n的全部RSSI向量是否同时满足和其中thre为预先设置的接近比较阈值,如果满足,则将RSSI向量所对应的蓝牙信标判定为“疑似接近蓝牙信标”,并将其序号以及对应的RSSI向量放入疑似接近指纹库Dnew,对蓝牙信标指纹库中全部RSSI向量指纹信息按照上述原则进行筛选,最终得到疑似接近指纹库Dnew;其中thre为预先设置的阈值,通常在5-20范围内选择,数值越大,则进入Dnew的指纹信息也就越多,而距离线性区较远的蓝牙信标精度相比于距离较近的蓝牙信标精度要低,所以说利用数值与定位精度成负相关;但是如果数值过小,导致没有足够多的指纹信息可以进入Dnew,那么也会因为信标数目不足而导致精度显著下降,所以说该数值既不能过大也不能过小,本实施例中设置为10。
本实施例精匹配阶段所使用的匹配算法为AWKNN算法。在传统KNN以及WKNN算法中,最近邻的样本点的选择的准确性取决于K值(匹配成功的样本个数)。如果K值太小,那么被选择的最近邻样本点随之减少,若样本点的选择存在误差,那么势必也会造成较大的定位估计误差;如果K值过大,在增加了计算开销的同时,更容易引入许多距离较远的样本点,同样也会导致定位估计误差的增大。因此,AWKNN算法采用了一种自适应决定K值的算法。
因此,在定位坐标精确匹配中,所述采用自适应加权近邻算法输出运动物体的定位的步骤是:
第一步:对疑似接近指纹库Dnew进行筛选确定接近指纹总个数K;
其过程是:
用公式:确定定位设备所获取的RSSI向量Rnew与疑似接近指纹库Dnew中疑似接近蓝牙信标RSSI向量之间的欧式距离;
其中:
Rnew(t)代表定位设备所获取的RSSI向量Rnew中的第t个元素,R′j(t)代表疑似接近指纹库Dnew中第j个RSSI向量R′j中的第t个元素,将距离计算结果dj(j=1,…,n′)进行升序排列后,得到升序排列后的序列进而计算除最小值外其它欧氏距离值与最小值的差△dj:
计算数列{△dj,j=1,…,n′-1}的标准差std,以std为标准对数列{△dj}中的元素进行筛选,筛选原则如下:
从count=1开始进行筛选,判断△dcount<0.6×std和count<6是否同时成立;如果同时成立,则count=count+1,重复上述判断流程;如果不成立,则结束判断,输出最终的count的值,count值即为本次匹配中匹配成功的接近指纹总个数K值;上述筛选原则的核心思想为:如果出现距离波动较大的点(大于0.6倍的距离差值序列标准差),则说明该点可能受到相关噪声干扰或者离定位点距离较远,该点及以后的点不应该被匹配成功,而该点之前的点则可作为匹配成功点而输出;
第二步:挑选中的前count个元素:进而获得与其对应的蓝牙采样指纹点序号,定义为match1,…,matchcount,利用计算归一化系数:
最终定位结果(X,Y)为:
(xi,yi),i=1,…,n为蓝牙采样指纹点坐标。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。