本发明属于无线局域网络与室内定位技术领域,尤其涉及一种基于wifi和softmax回归多分类识别器的多楼层室内定位方法。
背景技术:
时代的进步激发着人们对随时随地获取精确位置的渴求,到了物联网时代,这种渴求进一步加剧。因此,室内定位系统已渗透到现代生活的许多方面,例如室内导航、店内导购、物品跟踪等相关的活动之中。近年来,随着无线通信系统在室内环境中的大范围部署,室内无线定位技术引起了人们越来越多的研究兴趣,各式各样的无线室内定位技术层出不穷,如无线局域网wifi、蓝牙、传感器网络、超宽带(uwb)、射频识别标签(rfid)等,其定位精度在几米到十几米的范围内不等。除了定位精度外,设备的成本也成为考虑因素,目前基于ieee802.11n协议标准的wi-firss(接收信号强度)由于其廉价易得性被广泛应用在室内定位系统中,基于wi-firss的指纹定位技术因其具有无需额外基础设施、成本低且定位精度较高等优势成为当前室内定位技术研究的重点。
近年来,城市空间朝着立体化和复合化方向发展,人们的日常生活、工作、休闲越来越多地集中于高层楼宇中,也越来越关注楼层及其包含的位置信息服务。迄今为止,大部分的室内定位研究都是基于二维空间,即单层楼的研究。对于高层建筑中楼层的测定,一般采用人工指定,再进行二维空间定位,这使得定位应用的智能化程度大大降低。因此,智能高效的多楼层室内定位技术逐渐受到广泛的关注和研究。
当前,多楼层室内定位技术的研究方向主要有两种:其一,是基于wifi指纹数据库,通过wifi指纹数据库区分多楼层的定位方法,在离线阶段对带有楼层数的参考位置指纹样本数据训练多个二分类器(常用的训练方法有:人工神经网络,贝叶斯分类,k近邻),结合投票机制得出楼层判别模型,在在线阶段利用得出的楼层判别模型对待定位点进行判断。但随着ap(accesspoint)和楼层数的增加,该方法的计算复杂度也随之增加。其二,智能手机内置的气压计可以检测地面的高度,但并非所有的智能手机都有气压传感器,且人在楼梯场景下的运动方式十分复杂,在不同运动速度下气压测量值的变化规律是不同的,楼层判定准确性较低。
技术实现要素:
针对现有技术的不足,本发明提供一种基于softmax多分类识别器的多楼层室内定位方法,该定位方法在离线阶段进行网格划分,之后在每个网格中采集数据,以此建立完整的离线指纹数据库;然后利用softmax判别分析方法,建立多分类器楼层判别模型;在在线阶段,根据离线阶段的多分类器楼层判别模型判别出待定位目标最终所在的楼层;最后利用改进的knn算法定位出待定位目标的具体位置。
本发明是通过如下的技术方案来解决上述技术问题的:
一种基于softmax回归多分类识别器的多楼层室内定位方法,包括离线阶段和在线阶段:
1)离线阶段
步骤(1):采集离线rss指纹信息,建立离线rss指纹库;
步骤(2):初始化softmax回归多分类识别器参数,建立初始多分类识别器楼层判别模型,利用离线rss指纹库对softmax回归多分类识别器进行训练;
步骤(3):利用训练得到的模型参数构建softmax多楼层判别分类器模型;
2)在线阶段
步骤(4):获取待定位目标采集到的各ap的rss值,输入softmax多分类识别器楼层判别模型中,利用softmax多分类识别器楼层判别模型计算待定位目标属于每个楼层的概率,选取最大概率对应楼层作为待定位目标所在楼层的最终判定结果;
步骤(5):依据待定位目标采集到的各ap的rss值与所在楼层的rss指纹库中各采样点采集的rss值的距离,计算待定位目标所在具体位置。
进一步地,所述步骤(1)中离线阶段建立离线rss指纹库的具体操作步骤如下:
步骤(1.1):设多楼层室内区域内共有n个ap,对多楼层室内区域进行均匀化网格划分,每个楼层划分为m个网格,且每个楼层m个网格的平面投影坐标相同;
步骤(1.2):在每个网格内均匀选取s个采样点,采集每个采样点感知到的各ap的rss值,共t次,则每个网格共进行s×t次采样;
计算每个网格内每个采样点采集到的rss值的平均值、每个网格的rss值的平均值以及每个ap在每个楼层每个网格的rss值的平均值;
由于室内多径的影响(包括噪音、人员走动以及其他物体),导致采集的ap的rss值有较大的波动,此处采用均值,可以减少波动引起的误差;
步骤(1.3):由多个采样点的指纹序列构成rss指纹库,每个采样点的指纹序列表示为[fj,gji,rss1,rss2,...,rssr,...,rssn],fj表示第j个楼层,gji表示第j个楼层对应的第i个网格,i≤m,rssr表示采样点采集到的第r个ap的rss值,n表示采样点感知到的ap的个数,n<n,j、i、r均表示自变量。
进一步地,所述步骤(2)中softmax多楼层判别分类器模型为:
其中,θ=(θ1,θ2,…,θk)表示softmax多楼层判别分类器模型的参数,利用离线rss指纹库构建的训练样本进行计算获得,在训练过程中,初始值为随机值;y(i)表示楼层类别标签;k表示建筑物中实际楼层数目;j表示其中建筑物中层楼标号;x(i)表示在某一楼层的网格i处所采集的n个ap的rss值,p(y(i)=j|x(i);θ)表示x(i)属于在楼层j采集的预测概率值;
对概率分布进行归一化,使得输出元素为0-1之间的概率值,且所有概率之和为1。
进一步地,所述步骤(3)中softmax多楼层判别分类器模型的参数,是基于离线rss指纹库构建的训练样本,采用梯度下降法最小化交叉熵损失函数进行模型训练时,得到的最小交叉熵损失函数对应的参数;
所述交叉熵损失函数的计算公式为:
其中,m表示建筑物中所有楼层的网格总数量;k表示建筑物中实际楼层数目;j表示其中某一层楼;1{·}是示性函数,其取值规则为1{值为真的表达式}=1,1{值为假的表达式}=0;1{y(i)=j}表示样本的真实概率分布;p(y(i)=j|x(i);θ)表示x(i)属于在楼层j采集的预测概率值。
进一步地,采用梯度下降法最小化交叉熵损失函数的梯度计算表达式为:
其中,
多分类识别器楼层判别模型包含一个多分类器;采用softmax判别分析法对多分类器进行训练,选取交叉熵损失函数最小值对应的多分类器作为最佳多分类器;多分类器的输入为采样点接收到的所有ap的rss值,输出为目标属于每一楼层的概率值(即:预测概率分布);通过softmax判别分析法对多分类器进行训练并建立softmax多分类识别器楼层判别模型,替代了传统多个二分类器结合投票机制进行判断的方法,无需进行楼层配对、多个二分类器训练与最终投票,大大降低了存储和计算开销;
进一步地,所述步骤(5)中采用改进的k-近邻算法计算待定位目标所在具体位置;
步骤(5.1):设待定位目标采集到的各ap的rss值为
步骤(5.2):计算待定位目标的rss值到待定位目标所在楼层离线rss指纹库中所有采样点采集的rss值的距离,该距离计算公式为:
其中,rssir表示离线rss指纹库中采集点i采集的第r个ap的rss值,i、r为自变量,1≤i≤s,1≤r≤n;s为在每个网格内选取的采样点个数;n表示采样点i感知的ap的个数;di表示待定位目标与采样点i之间的rss值距离;
步骤(5.3):选取四个距离最近的采样点,并根据距离远近赋予四个采样点不同的权值λj,j依次取1,2,3,4,即四个距离最近的采样点,权值计算公式为
步骤(5.4):计算待定位目标的坐标(px,py)=λ1(x1,y1)+λ2(x2,y2)+λ3(x3,y3)+λ4(x4,y4),其中,(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)分别表示rss指纹库中四个距离最近的采样点的位置坐标。
有益效果:
本发明提供了一种基于softmax回归多分类识别器的多楼层室内定位方法,该定位方法在离线阶段对楼层进行网格划分,选取采样点获取各采样点感知的各ap的rss值,建立了离线rss指纹库;然后为检测区域内的多个楼层进行分类,为每个楼层分配对应的楼层标签;初始化softmax多分类识别器参数,在此基础上,采用梯度下降法法求取最小交叉熵损失函数值对应的模型参数,即为最优softmax多分类识别参数,利用最优softmax多分类识别参数构建对应的最佳多分类识别器楼层判别模型;在进行待定位目标定位时,将待定位目标采集的ap的rss值代入最佳多分类识别器楼层判别模型中,即可获取待定位目标所在楼层,最后计算出待定位目标所在坐标位置;
本发明采用softmax多分类识别器构建多分类器楼层判别模型,替代了传统多个二分类器结合投票机制进行判断的方法,无需进行任务拆分(楼层配对)、多个二分类器构建以及投票决策过程,大大节省了存储和计算开销,提高了楼层判别的可靠性和可扩展性;在楼层确定后,本发明采用mdknn进行最后待定位目标坐标的计算,提高了定位的精度,达到了本发明的目的。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一个实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种基于softmax回归多分类识别器的多楼层室内定位方法的框图;
图2是本发明中的softmax回归多分类识别器的示意图;
图3是本发明实施例最小交叉熵损失函数得到的分类结果;
图4是本发明楼层判别模型及无楼层判别情况下的定位精度对比。
具体实施方式
下面结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明所提供的基于softmax回归多分类识别器的多楼层室内定位方法,包括离线阶段和在线阶段,离线阶段包括以下几个步骤:
步骤(1)建立rss指纹库:对多楼层室内区域进行网格划分,采集每个网格内各ap的rss值,生成rss指纹库,具体操作步骤如下:
步骤(1.1)设多楼层室内区域内共有n个ap,对多楼层室内区域进行均匀化网格划分,每个楼层划分为m个网格,且每个楼层m个网格的平面投影坐标相同;
步骤(1.2)在每个网格内均匀选取6个采样点,采集每个采样点感知到的各ap的rss值,共5次,则每个网格共进行6×5次采样;
计算每个网格内每个采样点采集到的rss值的平均值、每个网格的rss值的平均值以及每个ap在每个楼层每个网格的rss值的平均值;
由于室内多径的影响(包括噪音、人员走动以及其他物体),导致采集的ap的rss值有较大的波动,此处采用均值,可以减少波动引起的误差;
步骤(1.3)由多个采样点的指纹序列构成rss指纹库,每个采样点的指纹序列表示为[fj,gji,rss1,rss2,...,rssr,...,rssn],fj表示第j个楼层,gji表示第j个楼层对应的第i个网格,i≤m,rssr表示采样点采集到的第r个ap的rss值,n表示采样点感知到的ap的个数,n<n,j、i、r均表示自变量。
步骤(2)最小化交叉熵损失函数:首先初始化softmax回归多分类识别器参数,建立初始多分类识别器楼层判别模型;然后为检测区域内的多个楼层进行分类,为每个楼层分配对应的楼层标签;其次输入带标签的训练数据集,对于给出的每一个样本,根据其实际类别标签可以构造训练样本类别的真实概率分布,使用多分类器楼层判别模型的判别函数可以输出样本属于每一类别的概率,即得到训练样本类别的预测概率分布,通过交叉熵损失函数表征多个训练样本真实类标签分布与模型预测的类标签分布之间的相似性;最后使用梯度下降法最小化交叉熵损失函数,得到损失函数最小化时对应的模型参数;
步骤(3)分类器楼层判别模型的建立:利用交叉熵损失函数最小值对应的模型参数构建最佳多分类识别器楼层判别模型;
在多楼层(楼层数大于等于3)的室内定位中,由于楼层数较多,增加了定位的复杂度和难度,本发明采用将多楼层判定转化为多类别分类问题,利用softmax多分类识别器构建楼层判别模型,以解决多楼层的问题,降低定位的复杂度。
softmax多分类识别器是将多楼层判定问题转化为多类别分类任务求解,即先为检测区域内的多个楼层进行分类,为每个楼层分配对应的楼层标签;然后,初始化softmax回归多分类识别器参数,利用梯度下降法最小化交叉熵损失函数,训练最优多分类器参数,得到最佳softmax多分类识别器;在在线定位时,利用基于softmax多分类识别器构建的楼层判别模型进行楼层预测,计算定位目标属于每个楼层的概率,选取最大概率值对应楼层作为最终的分类结果。
如图2所示,以3个楼层(f1、f2、f3表示3个楼层)为例,首先将楼层属性序列输入softmax多分类识别器楼层判别模型,模型输出目标分别位于3个楼层的概率值(p1、p2、p3),最大概率值p3对应的楼层f3即为目标所在楼层。
每个样本数据的楼层属性是指该样本数据中每个ap在该对应楼层中每个网格的rss值的平均值;
以3个楼层,每个楼层2个ap为例,3个楼层分别用f1、f2、f3表示,f1的两个ap用ap1-1、ap1-2表示,f2的两个ap用ap2-1、ap2-2表示,f3的两个ap用ap3-1、ap3-2表示,目标在每个楼层均可接收到该楼层及其它楼层ap的信号。以楼层f1为例,目标在楼层f1,可接收到来自ap1-1、ap1-2、ap2-1、ap2-2、ap3-1、ap3-2。楼层f1的楼层属性包括六个ap(ap1-1、ap1-2、ap2-1、ap2-2、ap3-1、ap3-2)在f1某一网格位置处接收到的rss值,以每个楼层3个网格为例,目标在网格1处接收到的来自六个ap(ap1-1、ap1-2、ap2-1、ap2-2、ap3-1、ap3-2)的rss值分别为70.28、68.67、70.39、72.72、74.11、71.50,则目标在f1的网格1处采集到的样本的楼层属性为[70.28,68.67,70.39,72.72,74.11,71.50],其它楼层(f2、f3)的楼层属性依次类推。实际的rss值均为负值,此处便于计算,省略了负号。
softmax多分类识别器楼层判别模型中类别判别函数的计算公式为:
其中,θ=(θ1,θ2,…,θk)表示softmax多楼层判别分类器模型的参数,利用离线rss指纹库构建的训练样本进行计算获得,在训练过程中,初始值为随机值;y(i)表示楼层类别标签;k表示建筑物中实际楼层数目;j表示其中建筑物中层楼标号;x(i)表示在某一楼层的网格i处所采集的n个ap的rss值,p(y(i)=j|x(i);θ)表示x(i)属于在楼层j采集的预测概率值;
在进行softmax多分类识别器楼层判别模型的训练时,先根据每组训练数据的真实楼层标签计算出真实概率分布,再将每组训练数据的楼层属性代入式(1)求取预测概率分布。
softmax多分类识别器是一种监督分类技术,能处理多类分类,本发明采用多类分类策略解决多楼层的问题,再采用梯度下降法进行模型训练。softmax多分类识别器的原理是将带有标签的样例集,通过判别函数将样例集的属性映射为预测概率分布,使得根据目标真实标签构造的概率分布与判别函数预测的概率分布尽可能相似,在对新样本进行分类时,利用同样的判别函数预测新样本的概率分布,再根据预测概率分布中概率最大值来确定新样本的类别。
判别函数中将样本归类为不同楼层(f1、f2、f3)的概率计算公式为:
其中,x表示x1、x2、x3中的一个样本点,y表示不同的楼层标签(f1、f2、f3),x1表示目标在楼层f1中不同网格位置处所采集的rss值集合,x2表示目标在楼层f2中不同网格位置处所采集的rss值集合,x3表示目标在楼层f3中不同网格位置处所采集的rss值集合。
此时,softmax多分类识别器楼层判别模型交叉熵损失函数的方程为:
其中,m表示建筑物中所有楼层的网格总数量;k表示建筑物中实际楼层数目;j表示其中某一层楼;1{·}是示性函数,其取值规则为1{值为真的表达式}=1,1{值为假的表达式}=0;1{y(i)=j}表示样本的真实概率分布;p(y(i)=j|x(i);θ)表示x(i)属于在楼层j采集的预测概率值。
显然,交叉熵损失函数表征了样本集的预测输出与真实标签之间的差距,预测输出越接近真实样本标签,损失函数j(θ)越小。欲使得根据目标真实标签构造的概率分布与判别函数预测的概率分布尽可能相似,即得欲最小化目标,即为式(3)。
将式(2)代入式(3),则式(3)重写为:
式(4)即为欲最小化目标,即样本真实标签与预测输出的交叉熵损失函数j(θ),可利用梯度下降法最小化式(4),即利用梯度下降法得到最小化交叉熵损失函数对应的参数θ。
由梯度下降法求解式(4)中的参数θ,就必须求出交叉熵损失函数式(4)的偏导函数,式(4)的偏导函数如式(5)所示:
结合式(2),式(5)可改写为:
其中,
利用梯度下降法经过多次迭代,最小化式(4),即可得到最佳参数集θ,进一步获得现实可用的softmax多分类识别器楼层判别模型。
以具有三层楼的建筑物为例,6个ap均匀分布在一楼和二楼的场景下,将最佳参数集θ构代入式(1),每一楼层采集25个测试样本,共25×3=75个测试样本作为测试集,根据式(1)分别计算出测试集合中每一个测试样本属于每一层楼的概率,选择最大概率值对应的楼层作为该测试样本最终楼层判定结果。图3和图4为最终对具有三个类别(三层楼)测试集合进行分类的结果,根据图3和图4的结果表明,利用梯度下降计算出的最小化交叉熵损失函数,可以选出最优的参数集合θ,再利用最佳参数集合构建对应的多分类识别器楼层判别模型,该对应的多分类识别器楼层判别模型用于判定待定位目标所在的楼层数,且判断结果精确。
在线阶段包括以下几个步骤:
步骤(4)判断待定位目标所在楼层:获取待定位目标采集到的各ap的rss值,将待定位目标采集到的各ap的rss值输入最佳多分类识别器楼层判别模型中,多分类识别器楼层判别模型计算定位目标属于每个楼层的概率,选取最大概率对应楼层作为待定位目标所在楼层的最终判定结果。
以3个楼层,每个楼层2个ap为例,3个楼层分别用f1、f2、f3表示,f1的两个ap用ap1-1、ap1-2表示,f2的两个ap用ap2-1、ap2-2表示,f3的两个ap用ap3-1、ap3-2表示,目标在每个楼层均可接收到该楼层及其它楼层ap的信号。在待定位目标处采集各ap的rss值,设在待定位目标处采集到了ap1-1、ap1-2、ap2-1、ap2-2、ap3-1、ap3-2的rss值,将待定位目标ap的标号ap1-1、ap1-2、ap2-1、ap2-2、ap3-1、ap3-2对应的楼层属性(rss值)[70.28,68.67,70.39,72.72,74.11,71.50]代入多分类识别器楼层判别模型中,则待定位目标采集的来自ap1-1、ap1-2、ap2-1、ap2-2、ap3-1、ap3-2的rss值[70.28,68.67,70.39,72.72,74.11,71.50]映射为(f1、f2、f3)多分类识别器的预测输出(预测概率分布),选取概率值最大的楼层判定结果,作为待定位目标的最终所在楼层,如图2所示,f3的概率值最大,为0.78,则待定位目标所在楼层为f3楼。
步骤(5)计算待定位目标所在具体位置。
步骤(5.1)设待定位目标采集到的各ap的rss值
步骤(5.2)计算待定位目标的rss值到待定位目标所在楼层离线rss指纹库中所有采样点采集的rss值的距离,该距离计算公式为:
其中,rssir表示离线rss指纹库中采集点i采集的第r个ap的rss值,i、r为自变量,1≤i≤s,1≤r≤n;s为在每个网格内选取的采样点个数;n表示采样点i感知的ap的个数;di表示待定位目标与采样点i之间的rss值距离,该距离是以待定位目标与采样点之间的各ap对应rss值的差的平方和来计算的;待定位目标采集的ap的个数与每个采样点感知的ap的个数是相等的;
步骤(5.3)选取四个距离最近的采样点,并根据距离远近赋予四个采样点不同的权值λj,j依次取1,2,3,4,即四个距离最近的采样点,权值计算公式为
步骤(5.4)计算待定位目标的坐标(px,py)=λ1(x1,y1)+λ2(x2,y2)+λ3(x3,y3)+λ4(x4,y4),其中,(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)分别表示rss指纹库中四个距离最近的采样点的位置坐标。
采用改进的k-近邻算法在确定楼层后,过滤掉了其他楼层距离较近的ap,只在同一楼层中进行ap的选择,最后进行定位。相对于传统的k-近邻算法只是找到最近的ap进行定位,并不区分楼层,因此,对于多楼层的情况,改进的k-近邻算法的定位精度更高。
选取30个待定位目标进行测试,一是采用本发明的楼层判别模型进行楼层判别,另一个是在没有楼层判别情况下进行的测试进行楼层判别,具体对比如图4所示,采用本发明的楼层判别模型进行定位的平均定位精度为1.38m,没有楼层判别情况下进行定位的平均定位精度为3.41m,可见定位精度有明显的提升,同时采用本发明的楼层判别模型进行定位,其定位精度相对差别不大,均在2米左右浮动,而没有楼层判别情况下进行定位,其定位精度波动很大,最好的定位精度达到1米以内,而最差的定位精度达到7米以外。
以上所述的具体实施方式,对本发明的技术领域、背景、目的、方案和有益效果做了进一步的详细说明,所应理解的是,本实施方式仅为本发明的优选方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,做出的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。