一种提高WiFi指纹定位精度与效率的方法

文档序号:10723157阅读:729来源:国知局
一种提高WiFi指纹定位精度与效率的方法
【专利摘要】本发明涉及一种提高WiFi指纹定位精度与效率的方法,在离线训练阶段,构建用于在线定位的指纹数据库,并对指纹数据库中采用K?means聚类算法进行分类,其中,指纹数据库中的采样点的信号强度值经过数据平滑处理;在线定位阶段,采用K近邻算法寻得与实测指纹距离最近的K个指纹,K个指纹的均值对应采样点的位置即为待测点的估计位置。本发明能够提高定位精度和定位效率。
【专利说明】
一种提高w i F i指纹定位精度与效率的方法
技术领域
[000?]本发明涉及基于WiFi的室内定位技术领域,特别是涉及一种提高WiFi指纹定位精 度与效率的方法。
【背景技术】
[0002] 室内定位系统是目前信息技术领域的热点之一,随着物联网和无线通信技术的迅 速发展,基于位置的服务在医疗卫生、公共安全、工业生产等领域展现了广阔的应用前景。
[0003] 全球定位系统(Global Positioning System,GPS)是现阶段被广泛使用的定位技 术,它普遍应用于各种位置服务中。但是GPS定位系统无法在室内进行定位,因为这种定位 方法需要三颗以上的卫星来提供定位信息,一般情况下只适用于空旷无遮蔽的室外环境, 在较为封闭的室内环境下GPS定位系统无法通过卫星来获取定位所需的信息。由此可见, GPS定位系统只适用于室外定位,而无法满足多样化的室内环境中的定位需求。此时,基于 无线局域网的WiFi定位技术急速升温,其中应用最广泛的就是WiFi指纹定位技术,WiFi指 纹定位技术是无线定位技术中具有较高精度和可实施性的技术,它不需要额外的硬件设 施,价格低廉,因此具有非常强的实用性。
[0004] WiFi指纹定位源于数据库定位技术,它需要预先创建指纹数据库,指纹数据库里 存放的是离线的信号强度和位置坐标。由于信号的多径传播对环境具有依赖性,在不同位 置其信道的多径特征也均不相同,呈现出非常强的特殊性。位置指纹定位技术有效地利用 多径效应,将多径特征与位置信息相结合,由于信道的多径影响在同一个位置点具有唯一 性,可将多径结构作为数据库中指纹。待测点在同样环境中获取接入点发送的无线信号,将 接收到的无线信号强度与数据库中指纹进行匹配,找出最相似的结果进行定位。
[0005] WiFi指纹定位技术具体在定位实施时分两个阶段:离线训练阶段和在线定位阶 段。
[0006] 离线训练阶段:首先在定位环境中部署无线AP、确定采样点位置,使得每个采样点 都能接收到无线AP发射的信号。在每个采样点放置信号接收装置(移动设备),记录接收自 每个AP的信号强度(RSSI值),将这些信号强度值以及坐标信息存入指纹数据库中,这样就 唯一标识了这个采样点。对所有采样点采样结束后,构建完整的信号强度信息与对应位置 关系的指纹数据库,即指纹地图。
[0007]在线定位阶段:在待测点实时测量获取各AP的信号强度信息,并将其与位置指纹 数据库中的信息进行匹配,将实测数据与预存数据进行匹配分析,从而估计待测终端的位 置。
[0008] 但是,传统的WiFi指纹定位算法的定位精度不高、定位效率较低。

【发明内容】

[0009] 本发明所要解决的技术问题是提供一种提高WiFi指纹定位精度与效率的方法,能 够提高定位精度和定位效率。
[0010] 本发明解决其技术问题所采用的技术方案是:提供一种提高WiFi指纹定位精度与 效率的方法,在离线训练阶段,构建用于在线定位的指纹数据库,并对指纹数据库中采用K-means聚类算法进行分类,其中,指纹数据库中的采样点的信号强度值经过数据平滑处理; 在线定位阶段,采用K近邻算法寻得与实测指纹距离最近的K个指纹,K个指纹的均值对应采 样点的位置即为待测点的估计位置。
[0011] 所述构建用于在线定位的指纹数据库具体包括以下步骤:
[0012] 选定室内某环境作为定位区域,在这个定位区域中,部署η个无线接入点并选取L 个采样点,记录每个采样点的位置坐标;
[0013] 在每个采样点,利用具有WiFi信号检测功能的移动终端进行信号强度检测,多次 采集每个无线接入点的RSSI值,然后对采集到的数据进行平滑,得到这个采样点均值平滑 后的指纹;遍历L个采样点,得到L个指纹,存入指纹数据库。
[0014] 所述对指纹数据库中采用K-means聚类算法进行分类具体包括以下步骤:
[0015]将指纹数据库进行K-means聚类,以欧氏距离作为相似度的评价准则,距离较小的 指纹聚集在一个子类,距离较大的指纹彼此远离;
[0016] 多次执行上一步骤,直到聚类结束,指纹数据库变成具有K个子类的指纹样本空 间。
[0017] 所述K-means聚类算法具体为:
[0018]输入L个指纹和聚类个数K,其中,KSL;从L个指纹中任意选择K个指纹作为初始的 聚类中心;
[0019] 对于剩下的指纹,计算每个指纹到每个聚类中心的距离,找到最小距离后,将指纹 分到对应的聚类中,得到新的聚类结果,完成指纹分配;
[0020] 计算新的聚类中心,并与上一次的聚类中心进行比较,如果两者相同则聚类结束, 否则更新聚类中心并返回上一步骤执行聚类。
[0021]在线定位阶段具体包括以下步骤:
[0022]将实测指纹与训练之后的指纹数据库进行匹配,计算实测指纹与每个聚类中心的 距离,并找出最小距离所对应的聚类;
[0023]计算实测指纹与最小距离所对应的聚类中的每个指纹的距离;
[0024]根据得到的距离值按照从小到大的顺序排列,保留最小的K个距离,并将这K个距 离对应的指纹选为参考指纹,其对应的采样点坐标作为参考坐标;
[0025]计算这K个参考坐标的均值作为实测指纹的估计位置。
[0026]有益效果
[0027] 由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效 果:本发明在离线阶段采用均值平滑法来减小指纹序列的波动性,并采用K-means聚类算法 对WiFi指纹进行分类处理,在在线定位阶段,提出了基于K-means聚类的K近邻算法从而提 高了定位效率。
【附图说明】
[0028] 图1是本发明中指纹数据库训练流程图;
[0029] 图2是本发明中K-means聚类流程图;
[0030] 图3是本发明中基于K-means聚类的K近邻算法流程图。
【具体实施方式】
[0031] 下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明 而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人 员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定 的范围。
[0032] 本发明的实施方式涉及一种提高WiFi指纹定位精度与效率的方法,在离线训练阶 段,构建用于在线定位的指纹数据库,并对指纹数据库中采用K-means聚类算法进行分类, 其中,指纹数据库中的采样点的信号强度值经过数据平滑处理;在线定位阶段,采用K近邻 算法寻得与实测指纹距离最近的K个指纹,K个指纹的均值对应采样点的位置即为待测点的 估计位置。
[0033] 离线训练阶段
[0034]在离线训练阶段,首先在定位环境中部署无线接入点(AP)、确定采样点位置,使得 每个采样点都能接收到无线AP发射的信号。之后在每个采样点放置信号接收装置(移动设 备),记录接收自每个AP的信号强度(RSSI值),最后将这些信号强度值以及坐标信息存入指 纹数据库中,这样就唯一标识了这个采样点,所有采样点的数据都存入数据库,形成指纹数 据库,用于在线定位。
[0035]理想情况下,接收到的信号强度RSSI值会随着传播距离的增加作规律性递减,但 是在实际应用中,无线信号在传播过程中受到环境因素的影响,如室内信号的多径、反射、 墙壁及门的吸收等,致使信号产生不一致的衰减关系,从而使得在任一采样点采集到的每 个无线AP的RSSI值不唯一,存在较大波动性,这对离线训练阶段指纹数据库的精度影响很 大,因此需要采取一些有效可行的措施来最大程度地降低RSSI值的波动,以减小指纹数据 库的数据误差,提高在线定位时的定位精度。
[0036]对于任一采样点,在记录每个无线AP的RSSI值时会发现,任何一个无线AP的RSSI 值都不是唯一的,在不同的时间段接收到的RSSI值都有所差异,甚至有时差异很大。因此, 不能仅仅以某一次的RSSI测量值为标准,作为某一采样点的指纹数据存入数据库,这样造 成的定位误差会很大,此时应该采用多次测量的方法,在任一采样点处,多次采集每个无线 AP的RSSI值,然后对采集到的数据进行平滑,从而降低RSSI值的波动,以提高定位精度。信 号平滑的方法有很多,例如均值法、中值法、众数法等。本实施方式采用均值平滑法进行数 据平滑处理。
[0037]均值平滑法预先设定一个标准差阈值Xd,在任一采样点处,对其采集到的每个无 线AP的多个RSSI值计算其标准差SD,标准差SD越大,证明RSSI值的波动越明显,即受环境的 干扰越大,若将此时的数据取均值作为该采样点处某个无线AP的RSSI值存入指纹数据库, 误差会很大。均值平滑法首先将数据分成两部分,如式(1)和(2)所示,其中,Si表示小于所 有数据均值S av的那部分数据的均值,52表示大于所有数据均值Sav的那部分数据的均值;其 次,用a来衡量SjPS 2在接收到的信号强度RSSI中所占的比重,如式⑷所示,在SD>XD时,SA 较大比重,即信号较强部分的数据在采集的数据中占较大比重,反之则占较小比重;最后, 利用式(3)可以计算出任一采样点处某个无线AP的RSSI值存入指纹数据库。该值由SdPS 2按 照不同比重来计算,在信号较强占较大比重,在信号较弱处S2占较大比重,因此该方法 可以有效地减小RSSI值的波动,提高离线训练阶段指纹数据库的数据精度。
[0040] 经过均值平滑法处理后的RSSI值为:
[0041] RSSI = (l_a)*Si+a*S2 (3)
[0042] 其中:
[0044] K-means聚类也可称为K-均值聚类。K-means聚类方法是一种使用广泛、适用于多 种数据类型的聚类算法,算法简单,实现快速。k-means聚类是典型的基于距离的聚类算法, 以距离作为相似性的度量,其算法基本思想是根据现有的样本之间的相似度将其划分为K 个子类,将相似度较大的样品聚集在一起,相似度较小的样品彼此远离。K-means聚类算法 可以高效分类,使得整个WiFi指纹数据库划分为不同的小类,从而减小在线定位阶段位置 指纹搜索范围,提高定位效率。
[0045] WiFi指纹算法的第一阶段是在离线状态下建立WiFi指纹数据库。在WiFi环境下, 假设某个特定的室内区域中,可以检测到η个WiFi信号强度即RSSI值,在这个定位区域内选 定L个采样点,采样点的位置信息已知,采用二维空间坐标(x,y)表示。在每个采样点可以采 集到这η个RSSI值(rssi 1,rssi2,"Tssi11),将该数组作为这个采样点的指纹,每一个指纹与 其采样点的位置一一对应,成一一映射的关系。那么这个指纹数据库可以表示为式(5)所 不。
[0047]其中,LR包含位置信息和RSSI序列,那么指纹信息就可以分开表示为位置集合L和 指纹集合R,如式(6)和式(7)所示。

[0050] 在离线训练阶段训练指纹数据库的WiFi指纹时,首先需要对指纹数据进行预处 理,即上述提出的采用均值平滑法平滑指纹集合R,得到瓦;之后采用K-means聚类算法对指 纹集合1进行分类处理。训练指纹数据库的流程如图1所示。
[0051] 具体训练步骤为以下四个步骤:
[0052] Stepl.选定室内某环境作为定位区域,在这个定位区域中,部署η个无线AP并选取 L个采样点,记录每个采样点的位置坐标。
[0053] Step2.在每个采样点,利用具有WiFi信号检测功能的移动终端进行信号强度检 测,多次采集每个无线AP的RSSI值,然后对采集到的数据进行平滑,得到这个采样点均值平 滑后的指纹|/:v.s /丨 1 <L;遍历L个采样点,得到L个指纹,存入指纹数据库。
[0054] Step3.将指纹数据库进行K-means聚类,以欧氏距离作为相似度的评价准则,距离 较小的指纹聚集在一个子类,距离较大的指纹彼此远离。
[0055] Step4.多次执行Step3,直到聚类结束,指纹数据库变成具有K个子类的指纹样本 空间。其中在Step3中所提到的K-means聚类方法,其执行过程分为以下五步:
[0056] 1.输入L个指纹万=丨心< = 和聚类个数K,(KSL);从L个指纹中 任意选择K个指纹作为初始的聚类中心C= (Cl,C2,…Ck)。
[0057] 2.对于剩下的(L-K)个指纹,计算每个指纹到每个聚类中心的距离Dis tan ce = {dij I i = l,2,···,(L-K); j = l,2,···,K},其中dij表示第i个指纹到第j个聚类中心的距离,找 到min(Dis tan ce),将第i个指纹分到第j个聚类中,得到新的聚类结果。
[0058] 3.重复第2个步骤,将剩下的指纹分配完成,形成K个聚类GhGs,···,G」,··<!(,每个 类&都包含其聚类中心和属于该类的指纹成员,指纹总个数为nj。
[0059] 4.
计算新的聚类中心,其中rssii表示Gj类中的第i个 RSSI值。计算每个类的类中心,得到新的聚类中心…,(^。
[0060] 5.若C$ = C,即相邻两次的聚类中心相同,即分类趋于稳定,聚类结束,当前的Gi, G2,…,GvGk代表了最终形成的聚类。否则令C = C'即更新类中心,返回第2步骤继续执行 聚类过程。K-means聚类算法的流程如图2所示。
[0061] 在线定位阶段
[0062] K-近邻算法(KNNSS)是最近邻算法(NNSS)的改进算法。最近邻算法易于实现,算法 简单,将在线阶段测得的实测指纹与指纹数据库匹配,寻得距离最近的指纹,该指纹对应采 样点的位置即为待测点的估计位置。最近邻算法选择的参考指纹较为单一,定位结果不稳 定,易产生较大误差。
[0063] 针对参考指纹单一的问题,本实施方式采用K近邻算法(K-Nearest Neighbor in Signal Space,KNNSS)。在KNNSS算法中,不是选取单一指纹对应的采样点作为待测点的估 计位置,而是选择与实测指纹距离最近的K个指纹,计算出这K个采样点的均值,该均值即为 待测点的估计位置。然而KNNSS虽然在NNSS的基础上减小了定位误差,但它每次在线定位时 需要将实测指纹与指纹数据库中所有指纹进行比较求距离差,这个定位过程耗时太长,系 统运算量太大,定位效率太低。因此,本实施方式为了在提高定位精度的同时,还要提高定 位效率,设计了一种基于K-means聚类的K近邻算法。其定位过程如图3所示,具体为以下五 个步骤:
[0064] 5〖6口1.将实测指纹1=(>88;[1,^812,"_,^8;[11)与训练之后的指纹数据库进行匹 配,计算r与每个聚类中心的距离,记为D:^,^,···,〕!!]。
[0065] Step2.找到D中的最小值min(D)对应的类,记为Gmin。
[0066] Step3 ·计算实测指纹r= (rssii,rssi2,···,rssin)与Gmin中的每个指纹的距离
,记为d = [?,…,气],其中.vf)表示该类中第i个指纹,ng表 示该类中指纹的个数。
[0067] Step4.将<,4,…毛,按照从小到大的顺序排列,剔除其中明显较大的距离值,保 留剩下的K个距离,并将这K个距离对应的指纹选为参考指纹,其对应的采样点坐标作为参 考坐标。
[0068] Step5.计算这K个参考坐标的均值作为实测指纹的估计位置,计算方法如式(8)所 不。
[0070]不难发现,本发明在离线阶段采用均值平滑法来减小指纹序列的波动性,并采用 K-means聚类算法对WiFi指纹进行分类处理,在在线定位阶段,提出了基于K-means聚类的K 近邻算法从而提高了定位效率。
【主权项】
1. 一种提高WiFi指纹定位精度与效率的方法,其特征在于,在离线训练阶段,构建用于 在线定位的指纹数据库,并对指纹数据库中采用K-means聚类算法进行分类,其中,指纹数 据库中的采样点的信号强度值经过数据平滑处理;在线定位阶段,采用K近邻算法寻得与实 测指纹距离最近的K个指纹,K个指纹的均值对应采样点的位置即为待测点的估计位置。2. 根据权利要求1所述的提高WiFi指纹定位精度与效率的方法,其特征在于,所述构建 用于在线定位的指纹数据库具体包括以下步骤: 选定室内某环境作为定位区域,在这个定位区域中,部署η个无线接入点并选取L个采 样点,记录每个采样点的位置坐标; 在每个采样点,利用具有WiFi信号检测功能的移动终端进行信号强度检测,多次采集 每个无线接入点的RSSI值,然后对采集到的数据进行平滑,得到这个采样点均值平滑后的 指纹;遍历L个采样点,得到L个指纹,存入指纹数据库。3. 根据权利要求1所述的提高WiFi指纹定位精度与效率的方法,其特征在于,所述对指 纹数据库中采用K-means聚类算法进行分类具体包括以下步骤: 将指纹数据库进行K-means聚类,以欧氏距离作为相似度的评价准则,距离较小的指纹 聚集在一个子类,距离较大的指纹彼此远离; 多次执行上一步骤,直到聚类结束,指纹数据库变成具有K个子类的指纹样本空间。4. 根据权利要求1所述的提高W i F i指纹定位精度与效率的方法,其特征在于,所述K -means聚类算法具体为: 输入L个指纹和聚类个数K,其中,KSL;从L个指纹中任意选择K个指纹作为初始的聚类 中心; 对于剩下的指纹,计算每个指纹到每个聚类中心的距离,找到最小距离后,将指纹分到 对应的聚类中,得到新的聚类结果,完成指纹分配; 计算新的聚类中心,并与上一次的聚类中心进行比较,如果两者相同则聚类结束,否则 更新聚类中心并返回上一步骤执行聚类。5. 根据权利要求1所述的提高WiFi指纹定位精度与效率的方法,其特征在于,在线定位 阶段具体包括以下步骤: 将实测指纹与训练之后的指纹数据库进行匹配,计算实测指纹与每个聚类中心的距 离,并找出最小距离所对应的聚类; 计算实测指纹与最小距离所对应的聚类中的每个指纹的距离; 根据得到的距离值按照从小到大的顺序排列,保留最小的K个距离,并将这K个距离对 应的指纹选为参考指纹,其对应的采样点坐标作为参考坐标; 计算这K个参考坐标的均值作为实测指纹的估计位置。
【文档编号】H04W4/04GK106093852SQ201610364491
【公开日】2016年11月9日
【申请日】2016年5月27日
【发明人】张慧, 官洪运
【申请人】东华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1