法律状态公告日
法律状态信息
法律状态
2020-07-28
授权
授权
2017-07-07
实质审查的生效 IPC(主分类):H04W4/02 申请日:20170120
实质审查的生效
2017-06-13
公开
公开
技术领域
本发明涉及通信、信号与信息处理和基于位置的服务技术领域,具体涉及一种基于决策树的快速KNN室内WiFi定位方法。
背景技术
随着移动互联移动网的快速发展,基于位置的服务拥有具有快速增长的市场,其中室内定位在近些年发展迅速。定位的应用普遍是使用全球定位系统,但由于室内环境无法依赖GPS卫星传送来的信号,以及室内环境通常比较复杂,使得室内定位系统的定位精度受到较大影响,这阻碍了室内定位系统的应用。当前各种室内定位技术研究取得突破性进展,其中WiFi技术是应用于室内定位研究领域最多的技术之一,它具有信号覆盖率高、终端用户数量大和传输距离远等特点。
大多数基于WiFi的定位系统都是利用接收信号强度(RSSI)进行位置标记。基于RSSI的方法主要分成两类:三角形定位和位置指纹识别算法。三角形定位是利用信号距离-损耗模型计算待测目标到多个已知参考点之间的距离信息估计最终目标位置,而位置指纹识别则通过比较待定位点的RSSI与参考点的信号特征指纹信息推导出目标位置。三角形定位因为室内环境复杂从而使得定位结果不稳定。
基于RSSI的位置指纹定位方法,一般包括离线和在线两个阶段。离线阶段,首先将空间划分为网格状的区域分布,通过移动设备在各个参考点采集指纹信息建立指纹库。在线阶段则把终端在未知位置收集到的RSSI向量与指纹库中的参考点RSSI向量匹配,通过匹配算法进行最终的位置估计。典型的模式匹配算法是KNN算法,该算法中采用的是欧氏距离用来度量目标向量与样本向量的匹配程度。
然而,由于计算相似度时需要计算待测点RSSI向量与整个指纹库的欧氏距离,在指纹数据库比较庞大时,会需要花费较长的时间。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于决策树的快速KNN室内WiFi定位方法,该方法利用无线网络技术和室内指纹定位技术,通过服务器中的定位算法对数据进行匹配,实现室内局部区域的快速识别和精确定位。
本发明的目的可以通过采取如下技术方案达到:
一种基于决策树的快速KNN室内WiFi定位方法,所述方法包括下列步骤:
将定位区域划分为多个子区域,在每一个子区域设置多个定位坐标点;
终端采集每个坐标点RSSI指纹信息和坐标信息,通过无线网络传输至服务器,构建指纹数据库Ψ;
服务器通过集成的决策树算法对目标所处区域类别进行判别;
采用KNN算法对以目标所处类别进行匹配,计算精确位置。
进一步地,所述的将定位区域划分为多个子区域,在每一个子区域设置多个定位坐标点具体包括:
按照等间隔划分方式将定位区域进行划分多个子区域,为每一个子区域设置类别标签;
在每一个子区域上随机布局多个定位坐标点,记录每个点坐标信息。
进一步地,所述的终端采集每个坐标点RSSI指纹信息和坐标信息,经过JSON封装为网络数据包后通过无线网络传输至服务器。
进一步地,所述的服务器通过集成的决策树算法对目标所处区域类别进行判别具体包括:
对指纹数据库Ψ和标签信息,采用决策树训练原则生成决策树,生成多个叶子结点;
输入目标样本进入决策树根结点,依次与内部分支进行规则匹配,直到目标样本进入叶子结点;
叶子结点类别由内部包含样本数最多的类别决定,目标样本所属区域类别为叶子结点类别。
进一步地,所述的采用KNN算法对目标所处类别进行匹配,计算精确位置具体包括:
计算待测点的RSSI向量与所处类别对应指纹库中每条向量的余弦相似度,按进行升序排列,取前K个参考点构成邻居样本集,邻居样本集对应的二维坐标构成邻居样本坐标集;
将邻居样本集的余弦相似度作为权重,采用基于加权的方法得出待测点位置坐标(x,y)。
进一步地,所述的指纹数据库Ψ表示为:
其中RSSIm,n(m=1,2...M,n=1,2,...N)表示第m个参考点接收到第n个AP的RSSI平均值,指纹数据库Ψ的每一个行向量表示一个参考点接收到N个AP的RSSI。
进一步地,所述的决策树训练原则具体包括:
将RSSI向量每一维分量看做一个分类属性,因此属性集表示为:
R(D)={R1,...,Ri,...,RN}
其中,Ri表示RSSI向量第i维分量,针对RSSI第i维属性Ri,对这些取值按从小到大排序,得到升序序列{Ri1,...,Rij,...Rin},设定[Rij,Rij+1)中间点
构造属性最佳划分点判定规则,即属性Ri最佳划分点应满足:
根据上述判定规则,最优划分点对应信息增益即为属性本身的信息增益,在构造决策树时,当前结点属性应满足:
R=arg max G(D,Ri)
从根结点出发,依照上述规则选出最优划分属性与最优划分点,将样本集按照划分点进行二分为两个子集,接着在这两个子集上进行进一步划分,直到所有叶子结点都包含相同类别样本,完成决策树构建。
进一步地,所述的计算待测点的RSSI向量与所处类别对应指纹库中每条向量的余弦相似度具体如下:
目标样本r={r1,...rN},所处类别数据集每一个样本记为{(rk1,...,rki,...,rkm},目标样本与数据集每个样本余弦相似度定义为:
进一步地,所述的采用基于加权的方法得出待测点位置坐标(x,y)如下:
选取相似度最大的K个样本,为每个坐标向量定义权重:
待测点目标定位结果如下:
其中,xki表示第k类样本的第i个坐标向量横坐标,yki表示第k类样本的第i个坐标向量纵坐标。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明提出的基于决策树的快速KNN室内WiFi定位方法有效减少因室内环境比较复杂而造成的多径效应和其他信号等干扰的影响。
(2)本发明提出的基于决策树的快速KNN室内WiFi定位方法充分利用了WiFi信号覆盖率高、基础设备部署比较完善和传输距离远的优势。
(3)本发明提出的基于决策树的快速KNN室内WiFi定位方法结合决策树算法,有效解决室内感兴趣区域定位的需求问题,与常用的K近邻法,支持向量机等算法不同的是该算法有效地将区域识别和区域内精确定位结合。
(4)本发明采用基于决策树的快速KNN室内WiFi定位方法与基于其他算法的WiFi定位方法相比,由于算法中用到了决策树的分类判别算法,识别率达到90%;在定位运行时间上,由于精确定位时所需要匹配的指纹数量缩小到了已识别的区域内,所以本方法的定位效率相比于基于全局指纹匹配算法的定位方法要高;在定位精度上,相比于比较成熟的KNN算法,本发明定位精度更高,定位误差可以保持在1~2m。
附图说明
图1是实验场地区域划分示意图,其中节点就是选取的参考点位置;
图2是本发明针对室内区域定位需求而提出的基于决策树的快速KNN室内WiFi定位算法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本实施例针对室内范围较大且需要对其中多个局部区域进行定位的需求设计了一种基于决策树的快速KNN的定位方法。利用决策树判断目标属于哪一类区域,结合加权K近邻算法计算目标的精确位置。
本示例公开了一种基于决策树的快速KNN室内WiFi室内定位方法,流程步骤图参照附图2所示,由附图2可知,该快速精确的室内定位方法具体包括以下步骤:
S1、将定位区域划分为多个子区域,在每一个子区域设置多个定位坐标点;
具体应用中,该步骤S1具体为:
S101、按照等间隔划分方式将定位区域进行划分多个子区域,为每一个子区域设置类别标签。
S102、在每一个子区域上随机布局多个定位坐标点,记录每个点坐标信息。
S2、终端采集每个坐标点RSSI指纹信息和坐标信息,通过无线网络传输至服务器,构建指纹数据库Ψ;
具体应用中,该步骤S2具体为:
终端扫描每一个坐标点的RSSI信息和坐标信息,通过JSON封装为网络数据包,发送到服务器。
指纹数据库Ψ表示为:
其中RSSIm,n(m=1,2...M,n=1,2,...N)表示第m个参考点接收到第n个AP的RSSI平均值,Ψ的每一个行向量表示一个参考点接收到N个AP的RSSI。
在定位时,终端扫描WiFi信号,获得定位目标的一组RSSI指纹,将其输入给定位算法处理。
S3、服务器通过集成的决策树算法对目标所处区域类别进行判别;
具体应用中,该步骤S3具体为:
S301、对指纹数据库Ψ和标签信息,采用决策树训练原则生成决策树,生成多个叶子结点。
具体应用中,所述步骤S301具体包括:
S3011、将RSSI向量每一维分量看做一个分类属性,因此属性集可以表示为:
R(D)={R1,...,Ri,...,RN}
其中,Ri表示RSSI向量第i维分量。针对RSSI第i维属性Ri,对这些取值按从小到大排序,得到升序序列{Ri1,...,Rij,...Rin},设定[Rij,Rij+1)中间点
S3012、构造属性最佳划分点判定规则,即属性Ri最佳划分点应满足:
S3013、根据上述判定规则,最优划分点对应信息增益就是属性本身的信息增益。在构造决策树时,当前结点属性应满足:
R=arg max G(D,Ri)
从根结点出发,依照上述规则选出最优划分属性与最优划分点,将样本集按照划分点进行二分为两个子集,接着在这两个子集上进行进一步划分,直到所有叶子结点都包含相同类别样本,完成决策树构建。
S302、输入目标样本进入决策树根结点,依次与内部分支进行规则匹配,直到目标样本进入叶子结点。
S303、叶子结点类别由内部包含样本数最多的类别决定,目标样本所属区域类别为叶子结点类别。
S4、采用KNN算法对目标所处类别进行匹配,计算精确位置;
具体应用中,所述步骤S4具体包括:
S401、计算待测点的RSSI向量与所处类别对应指纹库中每条向量的余弦相似度,按进行升序排列,取前K个参考点构成邻居样本集,邻居样本集对应的二维坐标构成邻居样本坐标集。
目标样本r={r1,...rN},所处类别数据集每一个样本记为{(rk1,...,rki,...,rkm},目标样本与数据集每个样本余弦相似度定义为:
S402、将邻居样本集的余弦相似度作为权重,采用基于加权的方法得出待测点位置坐标。
选取相似度最大的K个样本,为每个坐标向量定义权重:
待测点目标定位结果如下:
其中,xki表示第k类样本的第i个坐标向量横坐标,yki表示第k类样本的第i个坐标向量纵坐标。
最后,通过后继的信息传递,将定位结果返回至终端显示。
实施例二
本实例将一种基于决策树的快速KNN室内WiFi定位方法应用与实验场地区域,实验场地区域布置如图1所示,在10m*20m的区域,一共设置5个WiFi热点,用Android设备采集RSSI指纹。
如图2给出了定位方法进行定位的流程图,说明整个定位过程步骤,为了具体介绍整个定位实施通过以下实现进行描述:
S1、将定位区域划分为多个子区域,在每一个子区域设置多个定位坐标点。
按照1m*1m的二维正方形网格分布划分出200个参照点,相邻两参照点在两个坐标轴方向上的距离为1m。以该区域为一个二维坐标系,原点设定在区域最右下角的交点上。
按照2m*2m的方式将定位区域划分为50个定位子区域,相邻两子区域在两个坐标轴方向上的距离为2m。为每个子区域添加标签信息1,2,3...,50。
S2、终端采集每个坐标点RSSI指纹信息和坐标信息,通过无线网络传输至服务器,构建指纹数据库。
采用Android设备在150个参考点上依次采集RSSI指纹和坐标信息,每一个参考点采集10次指纹信息,取平均值。
将每一参考点采集信息封装为JSON网络数据包,通过无线网络方式发送到服务器,由服务器添加到Mysql数据库中。
服务器基于决策树原则训练决策树,确定最优决策树深度和叶子结点个数。本实例中根据指纹数据库训练最优决策树深度和叶子结点个数为6和29。
上述步骤S1和S2在离线阶段完成,以下步骤为在线阶段完成。
S3、终端设备采集待定位点的RSSI指纹,将该指纹输入决策树中,依次进行内部结点属性规则判断,直到进入叶子结点。本实例中待定位点根据决策树判断定位到了区域18。
S4、采用KNN算法对以目标所处类别进行匹配,计算精确位置。取区域18所有指纹作为待测指纹,目标样本r={r1,...rN},所处类别数据集每一个样本记为{(rk1,...,rki,...,rkm},用如下公式计算目标样本与数据集每个样本余弦相似度:
升序排列,筛选出前K个参考点。本实例中K取值6。采用基于加权的方法得出待测点位置坐标。选取相似度最大的6个样本,为每个坐标向量定义权重:
待测点目标定位结果如下:
其中,xki表示第k类样本的第i个坐标向量横坐标,yki表示第k类样本的第i个坐标向量纵坐标。
最后,通过后继的信息传递,将坐标结果返回给定位终端显示。
至此实现了整个定位过程。
综上所述,本实施例采用基于决策树的快速KNN室内WiFi定位算法执行流程的方式全面地描述实施例中定位的过程。该算法与基于其他算法的WiFi定位方法相比,具有以下几个优点:区域识别率可达90%以上;在定位运行时间上,由于精确定位时所需要匹配的指纹数量缩小到了已识别的区域内,所以本方法的定位效率相比于基于全局指纹匹配算法的定位方法要高;在定位精度上,相比于比较成熟的KNN算法,定位精度更高,定位误差可以保持在1到2m。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
机译: 基于GUSTAFSON-KESSEKL方法的KNN / FCM混合方法在沃尔恩室内定位中的应用
机译: 基于Gath-Geva方法的KNN / PFCM混合方法在沃尔恩室内定位中的应用
机译: 基于GUSTAFSON-KESSEKL方法的KNN / PFCM混合方法在沃尔恩室内定位中的应用