一种室内定位中静止状态下防止定位抖动的聚类处理方法与流程

文档序号:12949577阅读:793来源:国知局

本发明属于室内定位技术领域,特别涉及一种静止定位防抖动聚类处理技术。



背景技术:

近十多年中,伴随着我们出行的全球定位系统(gps)一直是室外导航定位的黄金标准,然而在室内由于信号的衰减、信号的折射反射等一系列问题,导致gps在室内定位的应用中存在局限性。近十多年来,随着无线技术的发展,无线技术在室内定位的应用越来越广泛,如wlan技术、zigbee、蓝牙等。目前定位算法也有很多种,如基于距离的定位和基于指纹的定位算法,它们的主要研究点在于提高定位精度以及降低算法复杂度上。本文主要集中解决在通用定位技术中,对于静止情况下定位结果点跳变剧烈的问题。因此本文所提出的聚类处理方法适用于任何一种定位算法。本文采用的方式是对定位结果中正确定位附近点和跳动点分别进行聚类,选择出正确定位附近点的类别作为最终的定位结果,从而达到静止情况下的定位稳定性。

目前较为普遍成熟的聚类算法为knn聚类算法,而knn聚类算法主要是针对多类别的聚类问题,这种问题中多个类别都有明显的分类,而静止情况下定位点中,跳动点不能构成一个明显的分类,这些点跳动无规律,不能构成一个点簇,所以使用knn聚类算法不太适用于解决该类问题,另外knn聚类算法实现也相对复杂。



技术实现要素:

本发明为解决上述技术问题,提出了一种室内定位中静止状态下防止定位抖动的聚类处理方法,分别对稳定点类以及跳动剧烈点类作聚类,在定位迭代一定次数后,使用稳定点类中的均值作为定位结果,从而加快定位的响应速度。

本发明采用的技术方案是:一种室内定位中静止状态下防止定位抖动的聚类处理方法,包括:

s1、初始化两个空类别;同时初始化持续静止计数器;

s2、对两个类别进行清空,并将持续静止计数器清零;

s3、判断用户是否处于运动状态,若是则返回步骤s2;否则执行步骤s4;

s4、当持续静止计数器值为0,执行步骤s5;当持续静止计数器值为1,执行步骤s6;当持续静止计数器值大于1且小于m,执行步骤s7;当持续静止计数器值为m,执行步骤s8;当持续静止计数器值大于m,输出步骤s8的定位结果;

s5、根据用户端反馈回来的处于静止状态首次得到的定位点放入其中一个类别中;然后返回该定位点作为本次的定位结果;并将持续静止计数器加1;

s6、若本次定位点与步骤s5中首次定位点放入的类别中的点之间的距离小于n,则将该点放入步骤s5中首次定位点放入的类别中,并返回该类别中点的平均值作为本次定位结果;否则将本次定位点放入另一类别中,并返回该点与步骤s5中首次定位点放入的类别中点的平均值作为定位结果,然后将持续静止计数器加1;返回步骤s3;

s7、将本次的定位与两个类别中的所有点进行比较,将本次定位点放入与本次定位结果距离小于n的点数较大的那一个类别中;并返回本次定位结果所放入类别中所有点的均值作为本次定位结果;并将持续静止计数器加1;返回步骤s3;

s8、比较两个类别中总点数的大小,返回总点数较大的类别中点的均值作为本次定位结果,同时持续静止计数器加1;返回步骤s3。

进一步地,步骤s6与步骤s7中所述n由定位算法的精度确定。

更进一步地,定位算法采用wknn。

本发明的有益效果:本发明的一种室内定位中静止状态下防止定位抖动的聚类处理方法,通过对静止情况下的定位结果进行聚类;定位点中大多数定位点都会聚集在正确定位结果附近,组成一个类别,即稳定点类,同时只有少数点会剧烈的变化,这些剧烈跳动的点组成剧烈跳动点类;迭代一定次数后,直接返回缓存结果,以减轻定位的计算负担,提高效率;本申请提出的方法适用于任何一种定位算法解决静止定位情况下的分类问题,同时计算复杂度低,实现简单,效果明显。

附图说明

图1为本发明实施例提供的方案流程图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

本申请的方法应用在如下定位场景中:

1.用户使用智能终端作为定位工具,智能终端会收集用于定位的基站的信号信息,以及用于判断用户是否行走的运动传感器数据,然后将这些数据发送到服务器端;

2.服务器端使用定位算法计算出一个定位结果,服务器端在判断出用户处于静止状态时,会使用本文所提出的聚类方法对定位结果进行聚类处理。

如图1所示为本实施例提供的方案流程图,本申请的技术方案为:一种室内定位中静止状态下防止定位抖动的聚类处理方法,包括:

s1、初始化两个空类别,分别命名为ca和cb,同时初始化持续静止计数器counter;聚类的划分依据如下:定位点中大多数定位点都会聚集在正确定位结果附近,组成一个类别,即稳定点类;同时只有少数点会剧烈的变化,这些剧烈跳动的点组成剧烈跳动点类;

s2、清空类别ca和cb,并将持续静止计数器counter清0;

s3、判断用户是否处于运动状态,若是则返回步骤s2;否则执行步骤s4;判断客户端是运动还是静止是根据用户智能终端的运动数据判断;具体包括几个方向的加速度数据,客户端根据这几个加速度数据实现计步器。

s4、当counter值为0,执行步骤s5;当counter值为1,执行步骤s6;当counter值大于1且小于m,执行步骤s7;当counter值为m,执行步骤s8;当counter值大于m,输出步骤s8的定位结果;

s5、根据用户端反馈回来的处于静止状态首次得到的定位结果放入类别ca中;返回该定位结果作为本次的定位结果;并将持续静止计数器counter加1;

因为此时仅有一个点,不能作聚类判断,所以只能返回该点作为定位结果。此时的ca可能是稳定类,也可能是跳动剧烈类,现在没有一一对应的关系,需要在迭代到一定次数,能判断出分类后才能确定ca属于哪个类别。在本实施例中以将首次得到的定位结果放入类别ca中为例进行说明;当然也可以是将首次得到的定位结果放入类别cb中。

s6、将定位点结果与ca中的点比较,计算两点之间的距离;若两点之间的距离小于n,则将该点放入类别ca中,返回类别ca点的平均值作为定位结果;否则将该点放入类别cb中,并返回该点与类别ca中点的平均值作为定位结果,然后将持续静止计数器counter加1;

n由定位算法的精度确定,比如使用的是wknn算法(weightedk-nearestneighbor,wknn,传统加权k邻近),其定位精度一般在3米左右,则n应该取3。

s7、将本次的定位结果与类别ca和类别cb中所有点进行比较,若numca大于numcb,则将该点放入类别ca中,并返回ca中所有点的均值作为定位结果;否则将该点放入类别cb中,返回类别cb中所有点的均值作为定位结果;并将持续静止计数器counter加1;

其中,numca为本次的定位结果与ca中所有点比较距离小于n的点数,numcb为本次的定位结果与cb中所有点比较后距离小于n的点数;

s8、当counter值为m,这时达到了稳定状态,ca和cb,中有一个类别的点为正确定位点附近的聚类点,而另外一个类别中为跳动点的聚类,根据本申请聚类划分依据可知大多数点会在正确点附近,这时只要选出正确定位点附近的聚类类别,返回该类别中点均值即可。具体方式是:比较类别ca和cb中总点数的大小,设avgc为总点数较大的类别中点的均值,返回avgc作为定位结果,同时持续静止计数器加1;

若counter大于m,返回步骤s8中得到的avgc作为定位结果,同时持续静止计数器加1。

若步骤s5中将首次得到的定位结果放入类别cb中;则步骤s6为:

将定位点结果与cb中的点比较,计算两点之间的距离;若两点之间的距离小于n,则将该点放入类别cb中,返回类别cb点的平均值作为定位结果;否则将该点放入类别ca中,并返回该点与类别cb中点的平均值作为定位结果,然后将持续静止计数器counter加1。

步骤s7为:将本次的定位结果与类别ca和类别cb中所有点进行比较,若numcb大于numca,则将该点放入类别cb中,并返回cb中所有点的均值作为定位结果;否则将该点放入类别ca中,返回类别ca中所有点的均值作为定位结果;并将持续静止计数器counter加1;

其中,numca为该点与ca中所有点比较距离小于n的点数,numcb为该点与cb中所有点比较后距离小于n的点数。

m的选择可根据定位经验得到,具体取值依据是在静止一定的时间后,大多数定位点都属于稳定点类,只有少数定位点属于剧烈跳动点类,在迭代到一定次数后,能观察到明显的分类时,这时的迭代次数就为m值。实际中m的取值一般是大于10,相当于如果500毫秒请求一次,那么5秒时间就可以基本稳定。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1