一种基于历史数据和增量的指纹库的更新方法及装置与流程

文档序号:16248827发布日期:2018-12-11 23:49阅读:223来源:国知局
一种基于历史数据和增量的指纹库的更新方法及装置与流程

本发明涉及室内行人定位技术领域,尤其涉及一种基于历史数据和增量的指纹库的更新方法及装置。

背景技术

基于wifi(wireless-fidelity无线保真)指纹的室内定位在室内环境下分为两部分:首先是离线阶段,收集室内不同地点的wifi接收信号强度(receivedsignalstrengthrss)并且构建指纹数据库;然后是在线位置查询阶段,行人通过手机给出其当前的rss值,基于预先建立的指纹数据库,计算出行人当前的室内位置。

然而,现有技术中基于wifi指纹的室内定位中,主要问题是wifi信号缺乏稳定性。许多环境因素,例如温度,湿度,光照强度,移动物体等,以及ap(accesspoint,无线访问节点)位置的变化,都会极大地影响rss值的稳定性,从而导致在线位置查询时定位的偏差。该问题的直观解决方案是频繁地更新指纹库,然而这会耗费大量时间和劳动力。目前,一些研究人员采用机器人代替人类来进行繁琐的指纹采集工作,但仍然耗费时间并且无法在短时间内进行指纹库的更新。另一种方法是采用额外的设备来实时检测wifi信号,以便频繁更新指纹库,然而额外添加的设备大幅度提高了定位成本,大大降低了系统的可用性。

如何在不添加额外设备和不耗费额外时间人力的前提下,找到实时更新wifi指纹库,显著提高指纹定位准确率的方法,一直是行业研究的前沿课题。

由此可见,现有技术中的指纹库的更新方法存在耗时耗力的技术问题。



技术实现要素:

本发明实施例提供了一种基于历史数据和增量的指纹库的更新方法及装置,用以解决或者至少部分解决现有技术中的指纹库的更新方法存在耗时耗力的技术问题。

第一方面,本发明提供了一种基于历史数据和增量的指纹库的更新方法,包括:

步骤s1:获取历史wifi指纹数据,将所述历史wifi指纹数据合成为第一wifi指纹序列,并提取所述第一wifi指纹序列中的时间特征、空间特征和rss特征;

步骤s2:基于预设聚类算法所述历史wifi指纹数据依次按照所述时间特征、所述空间特征、所述rss特征进行聚类,获得聚类结果,其中,所述历史wifi指纹数据为同一封闭区域内的指纹数据;

步骤s3:获取当前wifi指纹数据,对所述当前wifi指纹数据,基于所述聚类结果对所述历史wifi指纹数据进行匹配,获得第一候选类,其中,当所述第一候选类的覆盖范围在空间上存在重叠时,则利用主动探针在没有新数据的重叠区域中采集探针数据,并计算所述探针数据与第一候选类中位于重叠区域的数据的rss特征距离,再根据所述rss特征距离对所述第一候选类进行筛选,获得筛选后的第二候选类;

步骤s4:为所述探针数据、所述当前wifi指纹数据和所述历史wifi指纹数据设置置信度矩阵k=[k1,k2,…,kn],其中,所述探针数据数据的置信度kz=1,当前wifi指纹数据的置信度kb=0.8,历史wifi指纹数据置信度为kl,其中,kl=c/t,t为历史wifi指纹数据与当前wifi指纹数据的rss特征与位置特征的最小距离,c为预设恒定常数,且kl<kb;n为三种类型数据的总数目;

步骤s5:在无人环境下采集当前地图的第一完整指纹库,并为每个无线访问节点设置os-elm网络模型,对所述os-elm网络模型进行初次训练,获得初始网络模型;

步骤s6:基于所述第二候选类、所述置信度矩阵k,对所述初始网络模型进行增量更新,获得更新后的网络模型,并基于所述更新后的网络模型对所述第一完整指纹库进行更新,获得更新后的第二完整指纹库。

作为优选,步骤s1具体包括:

步骤s1.1:收集众包用户设备采集的wifi指纹数据,将其作为所述历史wifi指纹数据,其中所述历史wifi指纹数据包含rss定位结果与采集时间;

步骤s1.2:根据所述采集时间将所述历史wifi指纹数据合成为第一wifi指纹序列;

步骤s1.3:根据所述rss定位结果对所述第一wifi指纹序列进行划分,并挑选出符合预设条件的无线访问节点;

步骤s1.4:从所述第一wifi指纹序列中提取出所述rss特征、所述时间特征以及所述位置特征。

作为优选,步骤s2具体包括:

s2.1:根据所述时间特征进行一次聚类,获得一次聚类后的簇;

步骤s2.1.1:获得预设封闭区域的扫描半径eps和最小包含点数minpts;

步骤s2.1.2:任选一个未被访问的点作为当前点,找出与其距离在eps之内的所有附近点;

步骤s2.1.3:如果附近点的数量≥minpts,则当前点与其附近点形成一个簇,并且将所述当前点标记为已访问,然后执行步骤2.4;如果附近点的数量<minpts,则将所述当前点标记作为噪声点;

步骤s2.1.4:递归执行步骤s2.1.3,以与步骤s2.1.3相同的方法处理该簇内所有未被标记为已访问的点,从而对簇进行扩展;

步骤s2.1.5:循环执行步骤s2.1.2-s2.1.4,用同样的方法处理未被访问的点,直到所述预设封闭区域内所有点均被扫描过,则该次聚类完成;

s2.2:在所述一次聚类后的簇的基础上,根据所述空间特征,执行步骤s2.1.1-步骤s2.1.5,进行二次聚类,获得二次聚类后的簇;

s2.2:在所述二次聚类后的簇的基础上,根据所述rss特征,执行步骤s2.1.1-步骤s2.1.5,进行三次聚类,获得三次聚类后的簇,并将所述三次聚类后的簇作为所述聚类结果。

作为优选,步骤s3具体包括:

步骤s3.1:将所述当前wifi指纹数据合成为第二wifi指纹序列,并从所述第二wifi指纹序列中提取时间特征、空间特征和rss特征;

步骤s3.2:对每个当前的第二wifi指纹序列,从所述聚类结果中选取出时间与空间范围包含所述第二wifi指纹序列的类别,并使用rss特征建立kd树,基于所述kd树搜索与所述第二wifi指纹序列最近的n个历史数据;

步骤s3.3:提取出所述最近的n个历史数据中的类别,对每个历史数据中的类别进行匹配,当某个类别的历史数据达到第一预设值时,则当前的第二wifi指纹序列与历史数据的该类别完成匹配,同时该类别的匹配度加1;

步骤s3.4:循环执行步骤3.3,直到所述最近的n个历史数据中所有类别的匹配度均计算完成,然后挑选出匹配度超过阈值的类别,将其为所述第一候选类;

步骤s3.5:根据所述rss特征距离对所述第一候选类进行筛选,将所述rss特征距离大于第二预设值的候选类剔除,获得所述第二候选类。

作为优选,步骤s5具体包括:

步骤s5.1:在无人环境下采集当前地图的完整指纹库f0为所述第一完整指纹库,将其作为训练数据集;

步骤s5.2:为每个无线访问节点单独设置单隐层os-elm网络模型,初始化输入权值和隐层节点偏置参数,并在后续更新过程中保持所述初始化输入权值和所述隐层节点偏置参数不变;

步骤s5.3:以f0的二维坐标和归一化处理后的rss值作为所述os-elm网络模型的训练参数,对所述os-elm网络模型进行初次训练,计算得出隐层输出矩阵,并基于所述隐层输出矩阵获得所述初始网络模型。

作为优选,步骤s6具体包括:

步骤s6.1:获得预设数据阈值参数ε,判断所述当前wifi指纹数据的数据量n是否达到所述预设数据阈值参数ε,如果当n>=ε时,则执行步骤s6.2,当n<ε时,执行步骤s6.4;

步骤s6.2:对每个无线访问节点,以上一时间段的模型为基础,以二维坐标和上一时间段的归一化rss值为网络模型的输入,以当前时间段数据的归一化rss值作为输出,在所述置信度矩阵k的影响下更新隐层输出参数,得到更新后的网络模型,其中,所述当前时间段数据包含探针数据、当前wifi指纹数据和历史wifi指纹数据;

步骤s6.3:基于所述更新后的网络模型对所述第一完整指纹库进行更新,获得更新后的第二完整指纹库,执行完毕;

步骤s6.4:获得衰减参数w=t/n,其中,t为常数20,n为数据量;

步骤s6.5:在衰减的过程中,以二维坐标和上一时间段的归一化rss值为网络模型的输入,以f0和当前时间段数据的归一化rss值作为输出,在k和w的影响下更新隐层输出参数,得到更新后的网络模型;

步骤s6.7:基于所述更新后的网络模型对所述第一完整指纹库进行更新,获得更新后的第二完整指纹库,执行完毕。

基于同样的发明构思,本发明第二方面提供了一种基于历史数据和增量的指纹库的更新装置,包括:

特征提取模块,用于获取历史wifi指纹数据,将所述历史wifi指纹数据合成为第一wifi指纹序列,并提取所述第一wifi指纹序列中的时间特征、空间特征和rss特征;

聚类模块,用于基于预设聚类算法所述历史wifi指纹数据依次按照所述时间特征、所述空间特征、所述rss特征进行聚类,获得聚类结果,其中,所述历史wifi指纹数据为同一封闭区域内的指纹数据;

数据匹配模块,用于获取当前wifi指纹数据,对所述当前wifi指纹数据,基于所述聚类结果对所述历史wifi指纹数据进行匹配,获得第一候选类,其中,当所述第一候选类的覆盖范围在空间上存在重叠时,则利用主动探针在没有新数据的重叠区域中采集探针数据,并计算所述探针数据与第一候选类中位于重叠区域的数据的rss特征距离,再根据所述rss特征距离对所述第一候选类进行筛选,获得筛选后的第二候选类;

矩阵设置模块,用于为所述探针数据、所述当前wifi指纹数据和所述历史wifi指纹数据设置置信度矩阵k=[k1,k2,…,kn],其中,所述探针数据数据的置信度kz=1,当前wifi指纹数据的置信度kb=0.8,历史wifi指纹数据置信度为kl,其中,kl=c/t,t为历史wifi指纹数据与当前wifi指纹数据的rss特征与位置特征的最小距离,c为预设恒定常数,且kl<kb;n为三种类型数据的总数目;

初始网络模型获得模块,用于在无人环境下采集当前地图的第一完整指纹库,并为每个无线访问节点设置os-elm网络模型,对所述os-elm网络模型进行初次训练,获得初始网络模型;

指纹库更新模块,用于基于所述第二候选类、所述置信度矩阵k,对所述初始网络模型进行增量更新,获得更新后的网络模型,并基于所述更新后的网络模型对所述第一完整指纹库进行更新,获得更新后的第二完整指纹库。

作为优选,所述特征提取模块具体用于:

收集众包用户设备采集的wifi指纹数据,将其作为所述历史wifi指纹数据,其中所述历史wifi指纹数据包含rss定位结果与采集时间;

根据所述采集时间将所述历史wifi指纹数据合成为第一wifi指纹序列;

根据所述rss定位结果对所述第一wifi指纹序列进行划分,并挑选出符合预设条件的无线访问节点;

从所述第一wifi指纹序列中提取出所述rss特征、所述时间特征以及所述位置特征。

基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。

基于同样的发明构思,本发明第四方面提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该程序被执行时实现第一方面所述的方法。

本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明提供的方法中,可以基于第二候选类、置信度矩阵k,对初始网络模型进行增量更新,获得更新后的网络模型,并基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库。由于第二候选类是基于聚类结果对历史wifi指纹数据进行匹配,获得第一候选类后,对第一候选类进行筛选后得出的,即第二候选类是与历史wifi指纹数据相关的类,且置信度矩阵k是根据探针数据、所述当前wifi指纹数据和所述历史wifi指纹数据设置的,则可以实现基于历史数据和增量对初始网络模型进行更新,并使用增量学习的方法,构建指纹库模型,在新数据到来后,及时增量更新初始网络模型得到更新后的网络模型,可以采用更新后的网络模型速得到新的指纹库(即第二完整指纹库),不需要额外的设备来采集数据,实现了简单高效地更新指纹库的技术效果,也可以保证实时的更新,并进一步实现更加精确的定位。解决了现有技术中的指纹库的更新方法存在耗时耗力的技术问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中基于历史数据和增量的指纹库的更新方法的流程图;

图2为图1中所示方法中提取指纹序列特征的流程图;

图3为图1中所示方法中历史wifi指纹数据聚类的流程图;

图4为图1中所示方法中历史wifi指纹数据匹配的流程图;

图5为本发明实施例中进行增量更新的流程图;

图6为本发明实施例中增量更新神经网络架构示意图;

图7为本发明实施例中一种基于历史数据和增量的指纹库的更新装置的结构图;

图8为本发明实施例中一种计算机可读存储介质的结构图;

图9为本发明实施例中一种计算机设备的结构图。

具体实施方式

本发明实施例提供了一种基于历史数据和增量的指纹库的更新方法及装置,用以改善有技术中指纹库的更新方法存在耗时耗力的技术问题。

本申请实施例中的技术方案,总体思路如下:

首先获取历史wifi指纹数据,将历史wifi指纹数据合成为第一wifi指纹序列,并提取第一wifi指纹序列中的时间特征、空间特征和rss特征,然后基于预设聚类算法历史wifi指纹数据依次按照时间特征、空间特征、rss特征进行聚类,获得聚类结果,其中,历史wifi指纹数据为同一封闭区域内的指纹数据;接着获取当前wifi指纹数据,对当前wifi指纹数据,基于聚类结果对历史wifi指纹数据进行匹配,获得第一候选类,其中,当第一候选类的覆盖范围在空间上存在重叠时,则利用主动探针在没有新数据的重叠区域中采集探针数据,并计算探针数据与第一候选类中位于重叠区域的数据的rss特征距离,再根据rss特征距离对第一候选类进行筛选,获得筛选后的第二候选类;接下来为探针数据、当前wifi指纹数据和历史wifi指纹数据设置置信度矩阵k=[k1,k2,…,kn],其中,探针数据数据的置信度kz=1,当前wifi指纹数据的置信度kb=0.8,历史wifi指纹数据置信度为kl,其中,kl=c/t,t为历史wifi指纹数据与当前wifi指纹数据的rss特征与位置特征的最小距离,c为预设恒定常数,且kl<kb。n为三种类型数据的总数目;再在无人环境下采集当前地图的第一完整指纹库,并为每个无线访问节点设置os-elm网络模型,对os-elm网络模型进行初次训练,获得初始网络模型;最后基于第二候选类、置信度矩阵k,对初始网络模型进行增量更新,获得更新后的网络模型,并基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库。

通过上述方法,可以实现基于历史数据和增量对初始网络模型进行更新,并使用增量学习的方法,构建指纹库模型,在新数据到来后,及时增量更新初始网络模型得到更新后的网络模型,并采用更新后的网络模型速得到新的指纹库(即第二完整指纹库),不需要额外的设备来采集数据,实现了简单高效地更新指纹库的技术效果,也可以保证实时的更新,并进一步实现更加精确的定位。解决了现有技术中的指纹库的更新方法存在耗时耗力的技术问题。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

本实施例提供了一种基于历史数据和增量的指纹库的更新方法,请参见图1,该方法包括:

步骤s1:获取历史wifi指纹数据,将历史wifi指纹数据合成为第一wifi指纹序列,并提取第一wifi指纹序列中的时间特征、空间特征和rss特征。

具体来说,可以通过主动或者被动的方式获取历史wifi指纹数据。

其中,请参见图2,为提取指纹序列特征的流程图,主要包括步骤s1具体包括历史wifi指纹数据的获取、将历史wifi指纹数据连接为指纹序列、指纹序列的划分以及指纹序列特征提取,其具体包括如下步骤:

步骤s1.1:收集众包用户设备采集的wifi指纹数据,将其作为历史wifi指纹数据,其中历史wifi指纹数据包含rss定位结果与采集时间;

步骤s1.2:根据采集时间将历史wifi指纹数据合成为第一wifi指纹序列;

步骤s1.3:根据rss定位结果对第一wifi指纹序列进行划分,并挑选出符合预设条件的无线访问节点;

步骤s1.4:从第一wifi指纹序列中提取出rss特征、时间特征以及位置特征。

具体来说,wifi指纹数据的数据格式定义为:[x,y,ap_mac,ap_value,time],其中[x,y]为位置坐标,[ap_mac,ap_value]为rss信息,time为采集时间,对于同一个用户一段时间内持续,可以根据时间先后连接为wifi指纹序列,然后提取出时间特征、空间特征和rss特征。rss特征即为receivedsignalstrength,接收信号强度,预设条件可以是位置变化量足够小、持续时间足够长的新序列,此外,还可以剔除掉在区域内最大rss不够高的ap(accesspoint无线访问节点),从而提高定位的精度。

举例来说,特征提取可以通过下述方式来实现,提取rss特征为长度为3m的fs向量。fis表示fs中的第i个元素,m表示aps的数目,ravgi、rstdi和rmaxi分别表示第i个元素rssi的均值,标准差和最大值。一般情况下,由于ap数目众多,这个向量有几百维。如果直接使用这个向量作为后续步骤的输入,则会有很大的计算开销。因此,可以采用主成分分析(pca)来降低这个向量的维度。

其次,提取时间特征为:fc=(sin(tc),cos(tc)),tc=当天凌晨开始算的小时数/24。申请人通过大量的实践发现:人的空间分布变化在时间上的周期性导致人对指纹的影响在时间上同样有周期性。因此,提取能反应这种周期性的时间特征,时间特征相近的数据采集于相近的时间段。

最后,提取位置特征为:floc=(x,y),x,y是一个指纹序列中所有点的平均位置。申请人通过大量的实践发现:在某个封闭区域内同一人群空间分布下,位置接近的局部区域的rss特征是接近的,而位置相对较远的局部区域的rss特征的相似性则较低。同时,处于不同人群分布下的不同局部区域的有时是相似的。为了减小这种误判的可能,引入了空间特征。将该封闭区域划分为网格,计算各类数据落在各个网格中的数目,如果某个网格中有足够多的某类数据,那么该类覆盖该网格。

步骤s2:基于预设聚类算法历史wifi指纹数据依次按照时间特征、空间特征、rss特征进行聚类,获得聚类结果,其中,历史wifi指纹数据为同一封闭区域内的指纹数据。

具体来说,预设聚类算法为dbscan(density-basedspatialclusteringofapplicationswithnoise)基于密度的噪声应用空间聚类,它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。在具体的实施过程中分别按照时间特征、空间特征、rss特征的顺序进行三次聚类,从而提高聚类的准确性,为后续模型的更新提供基础。

作为一种可选实施方式,请参见图3,为历史wifi指纹数据聚类流程图,步骤s2具体包括:

s2.1:根据时间特征进行一次聚类,获得一次聚类后的簇;

步骤s2.1.1:获得预设封闭区域的扫描半径eps和最小包含点数minpts;

步骤s2.1.2:任选一个未被访问的点作为当前点,找出与其距离在eps之内的所有附近点;

步骤s2.1.3:如果附近点的数量≥minpts,则当前点与其附近点形成一个簇,并且将当前点标记为已访问,然后执行步骤2.4;如果附近点的数量<minpts,则将当前点标记作为噪声点;

步骤s2.1.4:递归执行步骤s2.1.3,以与步骤s2.1.3相同的方法处理该簇内所有未被标记为已访问的点,从而对簇进行扩展;

步骤s2.1.5:循环执行步骤s2.1.2-s2.1.4,用同样的方法处理未被访问的点,直到预设封闭区域内所有点均被扫描过,则该次聚类完成;

s2.2:在一次聚类后的簇的基础上,根据空间特征,执行步骤s2.1.1-步骤s2.1.5,进行二次聚类,获得二次聚类后的簇;

s2.2:在二次聚类后的簇的基础上,根据rss特征,执行步骤s2.1.1-步骤s2.1.5,进行三次聚类,获得三次聚类后的簇,并将三次聚类后的簇作为聚类结果。

具体来说,聚类的目的是将具有某种特征的指纹点进行分类,形成簇,从而对历史wifi指纹数据进行分类,上述的访问点即为历史wifi指纹数据中的指纹点。

步骤s3:获取当前wifi指纹数据,对当前wifi指纹数据,基于聚类结果对历史wifi指纹数据进行匹配,获得第一候选类,其中,当第一候选类的覆盖范围在空间上存在重叠时,则利用主动探针在没有新数据的重叠区域中采集探针数据,并计算探针数据与第一候选类中位于重叠区域的数据的rss特征距离,再根据rss特征距离对第一候选类进行筛选,获得筛选后的第二候选类。

具体地,请参见图4,为历史wifi指纹数据匹配流程图,步骤s3具体包括:

步骤s3.1:将当前wifi指纹数据合成为第二wifi指纹序列,并从第二wifi指纹序列中提取时间特征、空间特征和rss特征;

步骤s3.2:对每个当前的第二wifi指纹序列,从聚类结果中选取出时间与空间范围包含第二wifi指纹序列的类别,并使用rss特征建立kd树,基于kd树搜索与第二wifi指纹序列最近的n个历史数据;

步骤s3.3:提取出最近的n个历史数据中的类别,对每个历史数据中的类别进行匹配,当某个类别的历史数据达到第一预设值时,则当前的第二wifi指纹序列与历史数据的该类别完成匹配,同时该类别的匹配度加1;

步骤s3.4:循环执行步骤3.3,直到最近的n个历史数据中所有类别的匹配度均计算完成,然后挑选出匹配度超过阈值的类别,将其为第一候选类;

步骤s3.5:根据rss特征距离对第一候选类进行筛选,将rss特征距离大于第二预设值的候选类剔除,获得第二候选类。

具体来说,kd树为k-dimensional树的简称,是一种分割k维数据空间的数据结构,主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。第一预设值可以根据空间和指纹序列的大小进行设置,例如设置为8、10、20等等。阈值也可以根据实际情况进行设置,例如设置为5、8等等。第二预设值可以根据ap的个数进行设置,例如为其中,m为ap数目。筛选过后剩下的第二候选类即为与当前wifi指纹数据匹配的历史wifi指纹数据,将会与当前wifi指纹数据一起在后续步骤中使用,用来更新第一完整指纹库。

步骤s4:为探针数据、当前wifi指纹数据和历史wifi指纹数据设置置信度矩阵k=[k1,k2,…,kn],其中,探针数据数据的置信度kz=1,当前wifi指纹数据的置信度kb=0.8,历史wifi指纹数据置信度为kl,其中,kl=c/t,t为历史wifi指纹数据与当前wifi指纹数据的rss特征与位置特征的最小距离,c为预设恒定常数,且kl<kb。n为三种类型数据的总数目。

步骤s5:在无人环境下采集当前地图的第一完整指纹库,并为每个无线访问节点设置os-elm网络模型,对os-elm网络模型进行初次训练,获得初始网络模型。

具体来说,os-elm网络模型为基于在线序贯极限学习机(os-elm)模型,其主要包括初始阶段和训练部分。

作为优选,请参见图5,为进行增量更新的流程图,步骤s5具体包括:

步骤s5.1:在无人环境下采集当前地图的完整指纹库f0为第一完整指纹库,将其作为训练数据集;

步骤s5.2:为每个无线访问节点单独设置单隐层os-elm网络模型,初始化输入权值和隐层节点偏置参数,并在后续更新过程中保持初始化输入权值和隐层节点偏置参数不变;

步骤s5.3:以f0的二维坐标和归一化处理后的rss值作为os-elm网络模型的训练参数,对os-elm网络模型进行初次训练,计算得出隐层输出矩阵,并基于隐层输出矩阵获得初始网络模型。

具体来说,在无人环境下采集当前地图的完整指纹库f0,将其作为训练数据集,其中x为输入向量,t为输出向量;为每个ap(有m个)单独设置单隐层os-elm网络模型,设置l个隐层节点,初始化输入权值矩阵α和隐层节点偏置参数矩阵b,并在后续更新过程中保持相关参数不变,隐层节点的激励函数为g(x),则第i个隐层节点的输出可以如下求得:g(αi,bi,x)=g(αi×x+bi)。有n个输入时,隐层输出矩阵h为:

以f0的二维坐标和归一化的rss值作为网络模型的输入x和输出t,计算得出隐层输出矩阵β,其中β=(hth)-1htt,

步骤s6:基于第二候选类、置信度矩阵k,对初始网络模型进行增量更新,获得更新后的网络模型,并基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库。

作为优选,步骤s6具体包括:

步骤s6.1:获得预设数据阈值参数ε,判断当前wifi指纹数据的数据量n是否达到预设数据阈值参数ε,如果当n>=ε时,则执行步骤s6.2,当n<ε时,执行步骤s6.4;

步骤s6.2:对每个无线访问节点,以上一时间段的模型为基础,以二维坐标和上一时间段的归一化rss值为网络模型的输入,以当前时间段数据的归一化rss值作为输出,在置信度矩阵k的影响下更新隐层输出参数,得到更新后的网络模型,其中,当前时间段数据包含探针数据、当前wifi指纹数据和历史wifi指纹数据;

步骤s6.3:基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库,执行完毕;

步骤s6.4:获得衰减参数w=t/n,其中,t为常数20,n为数据量;

步骤s6.5:在衰减的过程中,以二维坐标和上一时间段的归一化rss值为网络模型的输入,以f0和当前时间段数据的归一化rss值作为输出,在k和w的影响下更新隐层输出参数,得到更新后的网络模型。

步骤s6.7:基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库,执行完毕。

具体来说,请见图6,由步骤s5,对每个ap,以上一时间段的模型为基础,以二维坐标和上一时间段的归一化rss值为网络模型的输入xk+1,以当前时间段数据(包含探针数据、当前wifi指纹数据和历史wifi指纹数据)的归一化rss值作为输出tk+1,在步骤4得到的kk+1的影响下更新隐层输出参数β(k+1),得到更新后的模型:

其中,使用更新后的网络模型得到当前环境下的第二完整指纹库。对于下个时间段的指纹数据,则可以通过与步骤s6相同的方法来得到。从而使得每个时间段都能得到完整指纹库,并通过更新后的指纹库来进行定位,得到定位结果,从而提高定位的精度。

从上述技术方案可以看出,本发明具有以下优点或者有益技术效果:

1、传统的采用wifi位置指纹进行室内定位的方法,由于wifi信号容易受环境影响缺乏稳定性,所以定位误差较大。本发明采用基于wifi指纹数据和增量学习的指纹库的更新方法,利用采集到的当前wifi指纹数据,对指纹库进行实时更新,进而减少定位误差,提高定位精度。

2、传统的指纹库更新方法需要大量的人力和时间,也做不到实时的更新。本发明通过众包获取数据,减少了人力消耗,并使用增量学习的方法,构建指纹库模型,在新数据到来后,及时增量更新模型,用新的模型快速得到新的指纹库,能够实现更加精确的定位精度。

3、通过众包获取数据的方法不能保证数据数量,在数据量不够时,更新指纹库容易出现偏差。本发明充分利用了历史数据,通过历史数据匹配算法,匹配相似场景的历史数据,增加当前场景数据量,为更新准确的指纹库提供保障。

4、本发明提出的办法简单易实现,不需要任何的额外定位设备,而且有很强的健壮性和可靠性,适用于各种室内环境。

基于同一发明构思,本申请还提供了与实施例一种与一种基于历史数据和增量的指纹库的更新方法对应的装置,详见实施例二。

实施例二

本实施例提供一种基于历史数据和增量的指纹库的更新装置,请参见图7,该装置包括:

特征提取模块701,用于获取历史wifi指纹数据,将历史wifi指纹数据合成为第一wifi指纹序列,并提取第一wifi指纹序列中的时间特征、空间特征和rss特征;

聚类模块702,用于基于预设聚类算法历史wifi指纹数据依次按照时间特征、空间特征、rss特征进行聚类,获得聚类结果,其中,历史wifi指纹数据为同一封闭区域内的指纹数据;

数据匹配模块703,用于获取当前wifi指纹数据,对当前wifi指纹数据,基于聚类结果对历史wifi指纹数据进行匹配,获得第一候选类,其中,当第一候选类的覆盖范围在空间上存在重叠时,则利用主动探针在没有新数据的重叠区域中采集探针数据,并计算探针数据与第一候选类中位于重叠区域的数据的rss特征距离,再根据rss特征距离对第一候选类进行筛选,获得筛选后的第二候选类;

矩阵设置模块704,用于为探针数据、当前wifi指纹数据和历史wifi指纹数据设置置信度矩阵k=[k1,k2,…,kn],其中,探针数据数据的置信度kz=1,当前wifi指纹数据的置信度kb=0.8,历史wifi指纹数据置信度为kl,其中,kl=c/t,t为历史wifi指纹数据与当前wifi指纹数据的rss特征与位置特征的最小距离,c为预设恒定常数,且kl<kb。n为三种类型数据的总数目;

初始网络模型获得模块705,用于在无人环境下采集当前地图的第一完整指纹库,并为每个无线访问节点设置os-elm网络模型,对os-elm网络模型进行初次训练,获得初始网络模型;

指纹库更新模块706,用于基于第二候选类、置信度矩阵k,对初始网络模型进行增量更新,获得更新后的网络模型,并基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库。

作为可选,在本实施例提供的装置中,特征提取模块701具体用于:

收集众包用户设备采集的wifi指纹数据,将其作为历史wifi指纹数据,其中历史wifi指纹数据包含rss定位结果与采集时间;

根据采集时间将历史wifi指纹数据合成为第一wifi指纹序列;

根据rss定位结果对第一wifi指纹序列进行划分,并挑选出符合预设条件的无线访问节点;

从第一wifi指纹序列中提取出rss特征、时间特征以及位置特征。

作为可选,在本实施例提供的装置中,聚类模块702具体用于:

根据时间特征进行一次聚类,获得一次聚类后的簇,具体包括:步骤s2.1.1:获得预设封闭区域的扫描半径eps和最小包含点数minpts;步骤s2.1.2:任选一个未被访问的点作为当前点,找出与其距离在eps之内的所有附近点;步骤s2.1.3:如果附近点的数量≥minpts,则当前点与其附近点形成一个簇,并且将当前点标记为已访问,然后执行步骤2.4;如果附近点的数量<minpts,则将当前点标记作为噪声点;步骤s2.1.4:递归执行步骤s2.1.3,以与步骤s2.1.3相同的方法处理该簇内所有未被标记为已访问的点,从而对簇进行扩展;步骤s2.1.5:循环执行步骤s2.1.2-s2.1.4,用同样的方法处理未被访问的点,直到预设封闭区域内所有点均被扫描过,则该次聚类完成;

在一次聚类后的簇的基础上,根据空间特征,执行步骤s2.1.1-步骤s2.1.5,进行二次聚类,获得二次聚类后的簇;

在二次聚类后的簇的基础上,根据rss特征,执行步骤s2.1.1-步骤s2.1.5,进行三次聚类,获得三次聚类后的簇,并将三次聚类后的簇作为聚类结果。

作为可选,在本实施例提供的装置中,数据匹配模块703具体用于实现下述步骤:

步骤s3.1:将当前wifi指纹数据合成为第二wifi指纹序列,并从第二wifi指纹序列中提取时间特征、空间特征和rss特征;

步骤s3.2:对每个当前的第二wifi指纹序列,从聚类结果中选取出时间与空间范围包含第二wifi指纹序列的类别,并使用rss特征建立kd树,基于kd树搜索与第二wifi指纹序列最近的n个历史数据;

步骤s3.3:提取出最近的n个历史数据中的类别,对每个历史数据中的类别进行匹配,当某个类别的历史数据达到第一预设值时,则当前的第二wifi指纹序列与历史数据的该类别完成匹配,同时该类别的匹配度加1;

步骤s3.4:循环执行步骤3.3,直到最近的n个历史数据中所有类别的匹配度均计算完成,然后挑选出匹配度超过阈值的类别,将其为第一候选类;

步骤s3.5:根据rss特征距离对第一候选类进行筛选,将rss特征距离大于第二预设值的候选类剔除,获得第二候选类。

作为可选,在本实施例提供的装置中,初始网络模型获得模块705具体用于实现下述步骤:

步骤s5.1:在无人环境下采集当前地图的完整指纹库f0为第一完整指纹库,将其作为训练数据集;

步骤s5.2:为每个无线访问节点单独设置单隐层os-elm网络模型,初始化输入权值和隐层节点偏置参数,并在后续更新过程中保持初始化输入权值和隐层节点偏置参数不变;

步骤s5.3:以f0的二维坐标和归一化处理后的rss值作为os-elm网络模型的训练参数,对os-elm网络模型进行初次训练,计算得出隐层输出矩阵,并基于隐层输出矩阵获得初始网络模型。

作为可选,在本实施例提供的装置中,指纹库更新模块706具体用于实现下述步骤:

步骤s6.1:获得预设数据阈值参数ε,判断当前wifi指纹数据的数据量n是否达到预设数据阈值参数ε,如果当n>=ε时,则执行步骤s6.2,当n<ε时,执行步骤s6.4;

步骤s6.2:对每个无线访问节点,以上一时间段的模型为基础,以二维坐标和上一时间段的归一化rss值为网络模型的输入,以当前时间段数据的归一化rss值作为输出,在置信度矩阵k的影响下更新隐层输出参数,得到更新后的网络模型,其中,当前时间段数据包含探针数据、当前wifi指纹数据和历史wifi指纹数据;

步骤s6.3:基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库,执行完毕;

步骤s6.4:获得衰减参数w=t/n,其中,t为常数20,n为数据量;

步骤s6.5:在衰减的过程中,以二维坐标和上一时间段的归一化rss值为网络模型的输入,以f0和当前时间段数据的归一化rss值作为输出,在k和w的影响下更新隐层输出参数,得到更新后的网络模型。

步骤s6.7:基于更新后的网络模型对第一完整指纹库进行更新,获得更新后的第二完整指纹库,执行完毕。

由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于历史数据和增量的指纹库的更新方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。

实施例三

基于同一发明构思,本申请还提供了一种计算机可读存储介质800,请参见图8,其上存储有计算机程序811,该程序被执行时实现实施例一中的方法。

由于本发明实施例三所介绍的计算机可读存储介质,为实施本发明实施例一中基于历史数据和增量的指纹库的更新方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。

实施例四

基于同一发明构思,本申请还提供了一种计算机设备,请参见图9,包括存储901、处理器902及存储在存储器上并可在处理器上运行的计算机程序903,处理器902执行上述程序时实现实施例一中的方法。

由于本发明实施例四所介绍的计算机设备,为实施本发明实施例一中基于历史数据和增量的指纹库的更新方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机设备都属于本发明所欲保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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