一种定位方法、装置、电子设备及可读存储介质与流程

文档序号:15826773发布日期:2018-11-02 23:51阅读:126来源:国知局

本发明涉及无线定位技术领域,特别是涉及一种定位方法、装置、电子设备及可读存储介质。

背景技术

近几年,智能手机、平板电脑等智能设备的发展对lbs(locationbasedservice,基于位置的服务)、物联网应用等领域的发展起着至关重要的作用。皮尤研究中心在2013年调查显示:约有四分之三(74%)的智能手机用户频繁使用lbs。室内位置信息在人们日常生活中扮演越来越重要的作用,给人们的生活带来极大的便利性,提高了人们的生活质量。目前,gnss(globalnavigationsatellitesystem,全球卫星导航系统)在室外环境下被广泛应用,但是由于gnss的定位信号很容易被建筑物等遮挡,而且在室内容易受到非视距和多路径的干扰,室内定位技术无法实现相对于室外定位技术同等级别的定位精度、连续性和可靠性,因此单纯的使用gnss无法实现室内外无缝定位。

由于大部分商场、车站、学校等公共场合已经部署多个wi-fi(wireless-fidelity,无线保真)节点,因此采用wi-fi信号进行定位不需要额外的设备,而指纹定位算法可以基于wi-fi信号进行定位。指纹定位算法分为两个阶段:离线阶段和在线阶段。离线阶段是在定位区域内rp(referencepoint,参考点)处测量接收到各个ap(accesspoint,接入点)的信号特征(例如相位,信号强度等)作为位置指纹,用来构建指纹库,rp的位置坐标是已知的;在线阶段是用户终端依靠接收信号的特征和离线阶段构建的指纹库来估计终端的位置。

现有的adaboost指纹定位算法中,针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器进行线性组合,构成一个更强的最终分类器(强分类器)。由于指纹库的数据噪声较大,adaboost指纹定位算法定位精度较低。另外,如果adaboost指纹定位算法得到较好的强分类器,需要构建更多的分类器,因此,定位时间较长。



技术实现要素:

本发明实施例的目的在于提供一种定位方法、装置、电子设备及可读存储介质,以提高定位精度,缩短定位时间。具体技术方案如下:

本发明实施例提供了一种定位方法,所述方法包括:

根据预先建立的指纹数据库和损失函数,得到使所述损失函数的值为最小时的提升树初始值,根据所述损失函数的负梯度计算公式、所述指纹数据库和所述提升树初始值,得到所述指纹数据库中各信号强度向量对应的第一更新位置坐标,将所述指纹数据库中各信号强度向量对应的位置坐标更新为所述各信号强度向量对应的第一更新位置坐标,所述指纹数据库包括:信号强度向量和位置坐标的对应关系;

根据所述各信号强度向量和所述各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为所述提升树与所述决策树之和,所述提升树的初始值为0;

根据所述提升树和所述各信号强度向量,得到提升树更新值,根据所述损失函数的负梯度计算公式、所述各信号强度向量、所述各信号强度向量对应的位置坐标和所述提升树更新值,得到所述各信号强度向量对应的第二更新位置坐标,将所述指纹数据库中各信号强度向量对应的位置坐标更新为所述各信号强度向量对应的第二更新位置坐标;

返回所述根据所述各信号强度向量和所述各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为所述提升树与所述决策树之和的步骤,直至得到的决策树的个数达到预设阈值;

在进行定位时,将获取的实测信号强度向量输入所述提升树,得到所述实测信号强度向量对应的位置坐标。

可选的,所述指纹数据库的建立方法包括:

获取多个接收点的位置坐标;

对于所述多个接收点中的每个接收点,在该接收点处测量接收到的多个接入点发射的信号强度,将该接收点对应的多个信号强度作为一个信号强度向量;

建立信号强度向量和位置坐标的对应关系。

可选的,所述在该接收点处测量接收到的多个接入点发射的信号强度,包括:

对于多个接入点中的每个接入点,在接收点处测量四个方向接收到的该接入点发射的信号强度,将得到的四个信号强度中的最大值作为在接收点处接收该接入点发射的信号强度;

在预设时间段内的不同时刻多次获取在接收点处接收该接入点发射的信号强度,将得到的多个信号强度的平均值作为在接收点处接收该接入点发射的信号强度。

可选的,所述根据预先建立的指纹数据库和损失函数,得到使所述损失函数的值为最小时的提升树初始值,包括:

若指纹数据库包括:信号强度向量xj和位置坐标yj的对应关系;

y=[y1,y2,…,yn],γi,j为在第j个接收点接收第i个接入点发射信号的信号强度,yj为第j个接收点的位置坐标,n为定位区域内接收点的总数,l为定位区域内接入点的总数;xj为在第j个接收点接收l个接入点发射信号的信号强度向量,i的取值为1-l的整数,j的取值为1-n的整数;

根据得到a的值,将a的值作为提升树初始值f0(xj)的值,l(yj,a)为损失函数。

可选的,所述根据所述损失函数的负梯度计算公式、所述指纹数据库和所述提升树初始值,得到所述指纹数据库中各信号强度向量对应的第一更新位置坐标,包括:

根据所述损失函数的负梯度计算公式:以及将所述指纹数据库中的xj、yj和f0(xj),得到信号强度向量xj对应的第一更新位置坐标rj,l(yj,f(xj))为损失函数,f(xj)为提升树。

可选的,所述根据所述各信号强度向量和所述各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,包括:

将各信号强度向量构成的空间作为输入空间,按照步骤a和步骤b对所述输入空间进行划分,

步骤a:

确定使公式:

达到最小值的区域划分对(l,s),l为切分变量,s为切分点,l(yj,c1)和l(yj,c2)为损失函数;

步骤b:

根据所述区域划分对(l,s),将所述输入空间划分为互不相交的两个子区域r1(l,s)和r2(l,s),

xj∈rk(l,s),k=1,2,

nk为区域rk(l,s)中的信号强度向量的总数;

步骤c:

将通过步骤b得到的每个子区域作为下一轮输入空间,依次按照上述步骤a和步骤b分别对各输入空间进一步划分,直至对所述各信号强度向量构成的空间的划分深度达到预设深度阈值;

若将所述各信号强度向量构成的空间最终划分为k个子区域,分别为r1,r2,…,rk,生成决策树

其中,为指示函数,

可选的,所述根据所述损失函数的负梯度计算公式、所述各信号强度向量、所述各信号强度向量对应的位置坐标和所述提升树更新值,得到所述各信号强度向量对应的第二更新位置坐标,包括:

根据所述损失函数的负梯度计算公式:fm-1(xj)以及所述指纹数据库中的xj和yj,得到信号强度向量xj对应的第二更新位置坐标rmj,第m个决策树对应第二更新位置坐标rmj,m为大于1的整数,l(yj,f(xj))为损失函数,f(xj)为提升树。

本发明实施例提供了一种定位装置,所述装置包括:

位置坐标第一更新模块,用于根据预先建立的指纹数据库和损失函数,得到使所述损失函数的值为最小时的提升树初始值,根据所述损失函数的负梯度计算公式、所述指纹数据库和所述提升树初始值,得到所述指纹数据库中各信号强度向量对应的第一更新位置坐标,将所述指纹数据库中各信号强度向量对应的位置坐标更新为所述各信号强度向量对应的第一更新位置坐标,所述指纹数据库包括:信号强度向量和位置坐标的对应关系;

提升树生成模块,用于根据所述各信号强度向量和所述各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为所述提升树与所述决策树之和,所述提升树的初始值为0;

位置坐标第二更新模块,用于根据所述提升树和所述各信号强度向量,得到提升树更新值,根据所述损失函数的负梯度计算公式、所述各信号强度向量、所述各信号强度向量对应的位置坐标和所述提升树更新值,得到所述各信号强度向量对应的第二更新位置坐标,将所述指纹数据库中各信号强度向量对应的位置坐标更新为所述各信号强度向量对应的第二更新位置坐标;

循环模块,用于返回所述提升树生成模块,直至得到的决策树的个数达到预设阈值;

位置坐标定位模块,用于在进行定位时,将获取的实测信号强度向量输入所述提升树,得到所述实测信号强度向量对应的位置坐标。

可选的,本发明实施例的定位装置还包括:

位置坐标获取模块,用于获取多个接收点的位置坐标;

信号强度向量获取模块,用于对于所述多个接收点中的每个接收点,在该接收点处测量接收到的多个接入点发射的信号强度,将该接收点对应的多个信号强度作为一个信号强度向量;

指纹数据库建立模块,用于建立信号强度向量和位置坐标的对应关系。

可选的,所述信号强度向量获取模块具体用于,对于多个接入点中的每个接入点,在接收点处测量四个方向接收到的该接入点发射的信号强度,将得到的四个信号强度中的最大值作为在接收点处接收该接入点发射的信号强度;

在预设时间段内的不同时刻多次获取在接收点处接收该接入点发射的信号强度,将得到的多个信号强度的平均值作为在接收点处接收该接入点发射的信号强度。

可选的,所述位置坐标第一更新模块,包括:

提升树初始值确定子模块,用于若指纹数据库包括:信号强度向量xj和位置坐标yj的对应关系;

y=[y1,y2,…,yn],γi,j为在第j个接收点接收第i个接入点发射信号的信号强度,yj为第j个接收点的位置坐标,n为定位区域内接收点的总数,l为定位区域内接入点的总数;xj为在第j个接收点接收l个接入点发射信号的信号强度向量,i的取值为1-l的整数,j的取值为1-n的整数;

根据得到a的值,将a的值作为提升树初始值f0(xj)的值,l(yj,a)为损失函数。

可选的,所述位置坐标第一更新模块,还包括:

第一更新子模块,用于根据所述损失函数的负梯度计算公式:以及将所述指纹数据库中的xj、yj和f0(xj),得到信号强度向量xj对应的第一更新位置坐标rj,l(yj,f(xj))为损失函数,f(xj)为提升树。

可选的,所述提升树生成模块具体用于,将各信号强度向量构成的空间作为输入空间,按照步骤a和步骤b对所述输入空间进行划分,

步骤a:

确定使公式:

达到最小值的区域划分对(l,s),l为切分变量,s为切分点,l(yj,c1)和l(yj,c2)为损失函数;

步骤b:

根据所述区域划分对(l,s),将所述输入空间划分为互不相交的两个子区域r1(l,s)和r2(l,s),

xj∈rk(l,s),k=1,2,

nk为区域rk(l,s)中的信号强度向量的总数;

步骤c:

将通过步骤b得到的每个子区域作为下一轮输入空间,依次按照上述步骤a和步骤b分别对各输入空间进一步划分,直至对所述各信号强度向量构成的空间的划分深度达到预设深度阈值;

若将所述各信号强度向量构成的空间最终划分为k个子区域,分别为r1,r2,…,rk,生成决策树

其中,为指示函数,

可选的,所述位置坐标第二更新模块,包括:

第二更新子模块,用于根据所述损失函数的负梯度计算公式:fm-1(xj)以及所述指纹数据库中的xj和yj,得到信号强度向量xj对应的第二更新位置坐标rmj,第m个决策树对应第二更新位置坐标rmj,m为大于1的整数,l(yj,f(xj))为损失函数,f(xj)为提升树。

本发明实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口、所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现上述任一所述的定位方法的步骤。

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述任一所述的定位方法的步骤。

本发明实施例提供的定位方法、装置、电子设备及可读存储介质,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系;根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0;根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第二更新位置坐标;返回上述生成决策树和更新提升树的步骤,直至得到的决策树的个数达到预设阈值;在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。本发明可以提高定位精度,缩短定位时间。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本发明实施例的定位方法的一种流程图;

图2为本发明实施例与adaboost指纹定位算法的定位误差累计分布函数曲线图;

图3为本发明实施例的指纹数据库建立方法的流程图;

图4为本发明实施例的定位装置的一种结构图;

图5为本发明实施例的电子设备的结构图。

具体实施方式

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

为了解决adaboost指纹定位算法定位精度低和定位时间长的问题,本发明实施例提供了一种定位方法、装置、电子设备及可读存储介质,以提高定位精度,缩短定位时间。本发明实施例基于gbdt(gradientboostingdecisontree,梯度提升树)算法,gbdt算法属于分类器集成学习方法,这类方法通过将比随机分类性能略强的“弱学习算法”提升为“强学习算法”。具体的,从弱学习算法出发,通过迭代学习,得到一系列的弱分类器,然后将这些弱分类器组合成为一个强分类器,即将一个复杂的分类任务,分解成为多个简单的分类任务,降低了学习算法的复杂度。

下面首先对本发明实施例所提供的定位方法进行详细介绍。

参见图1,图1为本发明实施例的定位方法的一种流程图,包括以下步骤:

s101,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为各信号强度向量对应的第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系。

本发明实施例中,定位方法包括:在线阶段和离线阶段,在线阶段是通过实际测量进行定位的阶段,而离线阶段是根据已知位置坐标点测量的信号强度建立指纹数据库的过程,指纹数据库包括:信号强度向量和位置坐标的对应关系,下文将对指纹数据库的建立过程进行详细介绍,在此不再赘述。

其中,损失函数指预测错误的程度,具体的,根据指纹数据库中的信号强度向量预测位置坐标,将预测的位置坐标和信号强度向量对应的位置坐标进行比较,确定预测错误的程度,可见,损失函数的值越小,表明预测错误的程度越小;反之,预测错误的程度越大。损失函数包括:0-1损失函数、平方损失函数、绝对损失函数和对数损失函数等。

本发明的一种实现方式中,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,包括:

若指纹数据库包括:信号强度向量xj和位置坐标yj的对应关系;

y=[y1,y2,…,yn],γi,j为在第j个接收点接收第i个接入点发射信号的信号强度,yj为第j个接收点的位置坐标,n为定位区域内接收点的总数,l为定位区域内接入点的总数,xj为在第j个接收点接收l个接入点发射信号的信号强度向量,i的取值为1-l的整数,j的取值为1-n的整数;

根据得到a的值,将a的值作为提升树初始值f0(xj)的值,l(yj,a)为损失函数,本发明实施例中,损失函数可以为平方损失函数,此时,l(yj,a)=(yj-a)(yj-a)t

在得到提升树初始值f0(xj)之后,可以根据损失函数的负梯度计算公式:以及指纹数据库中的xj、yj和f0(xj),得到信号强度向量xj对应的第一更新位置坐标rj,l(yj,f(xj))为损失函数,l(yj,f(xj))=(yj-f(xj))(yj-f(xj))t,f(xj)为提升树,提升树的初始值为0。

将指纹数据库中各信号强度向量对应的位置坐标更新为各信号强度向量对应的第一更新位置坐标,这样,指纹数据库包括:信号强度向量xj和位置坐标rj的对应关系,

r=[r1,r2,…,rn]。

s102,根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0。

具体的,gbdt算法使用决策树作为基函数,通过决策树的线性组合与前向分布算法,得到提升树,能够很好的拟合线性和非线性模型。可见,提升树是多个决策树的线性组合。那么为了得到提升树,可以通过计算决策树得到。具体的,通过s101对各信号强度向量对应的位置坐标进行更新之后,根据更新后的指纹数据库,通过最小二乘回归树生成算法,得到决策树。该决策树即为第一个决策树,若提升树的初始值为0,将提升树更新为提升树与决策树之和,本步骤中得到的提升树即为第一个决策树。

s103,判断得到的决策树的个数是否达到预设阈值。

本发明实施例中,预设阈值可以根据实际情况进行设定,例如,预设阈值可以为通过多次试验使定位精度和定位时间达到最优时的值。通过试验发现,当预设阈值为5时,定位精度和定位时间达到最优。判断得到的决策树的个数达到预设阈值时,执行s106,流程结束;否则,执行s104。

s104,根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为各信号强度向量对应的第二更新位置坐标。

具体的,通过s102得到提升树之后,根据提升树和各信号强度向量,可以得到提升树更新值,提升树更新值即为将信号强度向量输入提升树之后得到的值。例如,如果提升树为f1(xj),提升树更新值即为f1(xj),xj为指纹数据库中的信号强度向量。当然,不同信号强度向量xj对应的提升树更新值f1(xj)不同。

根据损失函数的负梯度计算公式:fm-1(xj)以及指纹数据库中的xj和yj,得到信号强度向量xj对应的第二更新位置坐标rmj,第m个决策树对应第二更新位置坐标rmj,m为大于1的整数,l(yj,f(xj))为损失函数,f(xj)为提升树。

在对指纹数据库中各信号强度向量对应的位置坐标进行更新之后,返回s102,得到决策树,对提升树进行迭代,即将提升树更新为提升树与决策树之和。在得到的决策树的个数未达到预设阈值时,循环执行s104和s102,当然,每次循环中,s104中的提升树是不断更新的,因此,各信号强度向量对应的第二更新位置坐标也是不断更新的,从而使s102中得到的每个决策树也是不同的。通过上述循环,最终得到的提升树即为多个决策树之和。

s105,在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。

本发明实施例中,在定位阶段,将获取的实测信号强度向量输入提升树,即可得到实测信号强度向量对应的位置坐标。例如,若预先建立的指纹数据库是13个接收点在2分钟内分别接收6个接入点发射的信号强度,可以随机选择20个位置坐标点采集信号强度作为测试点,来评价本发明实施例的定位性能,其中,接入点和接收点都在定位区域内。参见图2,图2为本发明实施例与adaboost指纹定位算法的定位误差累计分布函数曲线图,由于累积分布函数表示所有小于等于a(自变量)的值出现概率的和,可以看出,在定位误差为2.05米时,本发明实施例的误差累计分布函数值为67%,也就是定位误差不大于2.05米时的概率为67%,并且在67%的概率下定位精度最高。在定位误差为2.05米时,adaboost指纹定位算法的误差累计分布函数值较小。可见,本发明实施例提高了定位精度。另外,通过测试发现,本发明实施例的定位算法的定位时长为35.8毫秒,adaboost指纹定位算法的定位时长为55.1毫秒,因此,本发明缩短了定位时长。

本发明实施例的定位方法,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系;根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0;根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第二更新位置坐标;返回上述生成决策树和更新提升树的步骤,直至得到的决策树的个数达到预设阈值;在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。本发明提高了定位精度,缩短了定位时间。

图1实施例s101中,指纹数据库是预先建立的,本发明实施例的指纹数据库建立方法的流程图可参见图3,包括以下步骤:

s301,获取多个接收点的位置坐标。

本发明实施例中,指纹数据库的建立过程即为定位方法的离线阶段,也就是建立信号强度向量和位置坐标的对应关系。指纹数据库的建立过程需要设置多个接入点和多个接收点,其中,对应关系中的位置坐标指的是多个接收点的位置坐标,并且多个接收点的位置坐标可以通过测量获取。

s302,对于多个接收点中的每个接收点,在该接收点处测量接收到的多个接入点发射的信号强度,将该接收点对应的多个信号强度作为一个信号强度向量。

具体的,对于多个接收点中的每个接收点,都可以接收每个接入点发射的信号强度,得到多个信号强度,多个信号强度可以构成一个信号强度向量。

本发明的一种实现方式中,在该接收点处测量接收到的多个接入点发射的信号强度,包括:

对于多个接入点中的每个接入点,在接收点处测量四个方向接收到的该接入点发射的信号强度,将得到的四个信号强度中的最大值作为在接收点处接收该接入点发射的信号强度。

具体的,由于接收点和接入点位置的不同,每个接收点在不同方向测量的接入点发射的信号强度的大小也是不同的。例如,对于任一接入点,接收点在东南西北四个方向接收到信号强度是不同的,此时,将四个接收方向接收到的信号强度的最大值作为该接收点接收该接入点发射的信号强度。

在预设时间段内的不同时刻多次获取在接收点处接收该接入点发射的信号强度,将得到的多个信号强度的平均值作为在接收点处接收该接入点发射的信号强度。

另外,由于信号强度随时间变化,为了使获取的信号强度更加准确,可以采集预设时间段内的多个信号强度,将多个信号强度的平均值作为接收点接收的信号强度。例如,对于任一接入点,在两分钟内每隔20s采集接收点接收该接入点发射的信号强度,将得到的多个信号强度的平均值作为在接收点处接收该接入点发射的信号强度。

s303,建立信号强度向量和位置坐标的对应关系。

本发明实施例中,对于每一个接收点,s301中可以得到该接收点的位置坐标,s302中可以得到该接收点接收的信号强度向量,因此,可以建立信号强度向量和位置坐标的对应关系。并且,对应关系的组数即为接收点的个数。

通过图2实施例建立指纹数据库之后,通过该指纹数据库可以对定位区域内任意位置的坐标进行定位。

本发明的一种实现方式中,图1实施例s102中,根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,包括以下步骤:

将各信号强度向量构成的空间作为输入空间,按照步骤a和步骤b对输入空间进行划分,

步骤a:

确定使公式:

达到最小值的区域划分对(l,s),l为切分变量,s为切分点,l(yj,c1)和l(yj,c2)为损失函数。

步骤b:

根据区域划分对(l,s),将输入空间划分为互不相交的两个子区域r1(l,s)和r2(l,s),

xj∈rk(l,s),k=1,2,

nk为区域rk(l,s)中的信号强度向量的总数。

步骤c:

将通过步骤b得到的每个子区域作为下一轮输入空间,依次按照上述步骤a和步骤b分别对各输入空间进一步划分,直至对各信号强度向量构成的空间的划分深度达到预设深度阈值。

若将各信号强度向量构成的空间最终划分为k个子区域,分别为r1,r2,…,rk,生成决策树

其中,为指示函数,

具体的,最小二乘回归树生成算法中,将各信号强度向量构成的空间作为输入空间,对输入空间划分为两个互不相交的子区域,并且此时损失函数值达到最小。之后,对得到的两个子区域分别按照上述方式进行划分,得到四个子区域,依此类推,最后将得到k个子区域,k=2t。其中,t为区域划分的深度,t为正整数,例如,t的值可以为8,当然t的值可以根据实际情况进行设置,在此不做限定。由于最小二乘回归树生成算法属于现有技术,在此不再详述。

相应于上述方法实施例,本发明实施例还提供了一种定位装置,参见图4,图4为本发明实施例的定位装置的一种结构图,包括:

位置坐标第一更新模块401,用于根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为各信号强度向量对应的第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系;

提升树生成模块402,用于根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0;

位置坐标第二更新模块403,用于根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为各信号强度向量对应的第二更新位置坐标;

循环模块404,用于返回提升树生成模块,直至得到的决策树的个数达到预设阈值;

位置坐标定位模块405,用于在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。

本发明实施例的定位装置,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系;根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0;根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第二更新位置坐标;返回上述生成决策树和更新提升树的步骤,直至得到的决策树的个数达到预设阈值;在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。通过试验发现,本发明提高了定位精度,缩短了定位时间。

需要说明的是,本发明实施例的装置是应用上述定位方法的装置,则上述定位方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

本发明的一种实现方式中,上述定位装置还包括:

位置坐标获取模块,用于获取多个接收点的位置坐标;

信号强度向量获取模块,用于对于多个接收点中的每个接收点,在该接收点处测量接收到的多个接入点发射的信号强度,将该接收点对应的多个信号强度作为一个信号强度向量;

指纹数据库建立模块,用于建立信号强度向量和位置坐标的对应关系。

本发明的一种实现方式中,信号强度向量获取模块具体用于,对于多个接入点中的每个接入点,在接收点处测量四个方向接收到的该接入点发射的信号强度,将得到的四个信号强度中的最大值作为在接收点处接收该接入点发射的信号强度;

在预设时间段内的不同时刻多次获取在接收点处接收该接入点发射的信号强度,将得到的多个信号强度的平均值作为在接收点处接收该接入点发射的信号强度。

本发明的一种实现方式中,位置坐标第一更新模块401,包括:

提升树初始值确定子模块,用于若指纹数据库包括:信号强度向量xj和位置坐标yj的对应关系;

y=[y1,y2,…,yn],γi,j为在第j个接收点接收第i个接入点发射信号的信号强度,yj为第j个接收点的位置坐标,n为定位区域内接收点的总数,l为定位区域内接入点的总数;xj为在第j个接收点接收l个接入点发射信号的信号强度向量,i的取值为1-l的整数,j的取值为1-n的整数;

根据得到a的值,将a的值作为提升树初始值f0(xj)的值,l(yj,a)为损失函数。

本发明的一种实现方式中,位置坐标第一更新模块401,还包括:

第一更新子模块,用于根据损失函数的负梯度计算公式:以及将指纹数据库中的xj、yj和f0(xj),得到信号强度向量xj对应的第一更新位置坐标rj,l(yj,f(xj))为损失函数,f(xj)为提升树。

本发明的一种实现方式中,提升树生成模块402具体用于,将各信号强度向量构成的空间作为输入空间,按照步骤a和步骤b对输入空间进行划分,

步骤a:

确定使公式:

达到最小值的区域划分对(l,s),l为切分变量,s为切分点,l(yj,c1)和l(yj,c2)为损失函数;

步骤b:

根据区域划分对(l,s),将输入空间划分为互不相交的两个子区域r1(l,s)和r2(l,s),

xj∈rk(l,s),k=1,2,

nk为区域rk(l,s)中的信号强度向量的总数;

步骤c:

将通过步骤b得到的每个子区域作为下一轮输入空间,依次按照上述步骤a和步骤b分别对各输入空间进一步划分,直至对各信号强度向量构成的空间的划分深度达到预设深度阈值;

若将各信号强度向量构成的空间最终划分为k个子区域,分别为r1,r2,…,rk,生成决策树

其中,为指示函数,

本发明的一种实现方式中,位置坐标第二更新模块403,包括:

第二更新子模块,用于根据损失函数的负梯度计算公式:fm-1(xj)以及指纹数据库中的xj和yj,得到信号强度向量xj对应的第二更新位置坐标rmj,第m个决策树对应第二更新位置坐标rmj,m为大于1的整数,l(yj,f(xj))为损失函数,f(xj)为提升树。

本发明实施例还提供了一种电子设备,参见图5,图5为本发明实施例的电子设备的结构图,包括:处理器501、通信接口502、存储器503和通信总线504,其中,处理器501、通信接口502、存储器503通过通信总线504完成相互间的通信;

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现上述任一定位方法的步骤。

需要说明的是,上述电子设备提到的通信总线504可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。该通信总线504可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口502用于上述电子设备与其他设备之间的通信。

存储器503可以包括ram(randomaccessmemory,随机存取存储器),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器501可以是通用处理器,包括:cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例的电子设备中,处理器通过执行存储器上所存放的程序,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系;根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0;根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第二更新位置坐标;返回上述生成决策树和更新提升树的步骤,直至得到的决策树的个数达到预设阈值;在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。通过试验发现,本发明提高了定位精度,缩短了定位时间。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现上述任一定位方法的步骤。

本发明实施例的计算机可读存储介质中存储的指令在计算机上运行时,根据预先建立的指纹数据库和损失函数,得到使损失函数的值为最小时的提升树初始值,根据损失函数的负梯度计算公式、指纹数据库和提升树初始值,得到指纹数据库中各信号强度向量对应的第一更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第一更新位置坐标,指纹数据库包括:信号强度向量和位置坐标的对应关系;根据各信号强度向量和各信号强度向量对应的位置坐标,通过最小二乘回归树生成算法,得到决策树,将提升树更新为提升树与决策树之和,提升树的初始值为0;根据提升树和各信号强度向量,得到提升树更新值,根据损失函数的负梯度计算公式、各信号强度向量、各信号强度向量对应的位置坐标和提升树更新值,得到各信号强度向量对应的第二更新位置坐标,将指纹数据库中各信号强度向量对应的位置坐标更新为第二更新位置坐标;返回上述生成决策树和更新提升树的步骤,直至得到的决策树的个数达到预设阈值;在进行定位时,将获取的实测信号强度向量输入提升树,得到实测信号强度向量对应的位置坐标。通过试验发现,本发明提高了定位精度,缩短了定位时间。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于定位装置、电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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