基于神经网络和无线局域网基础架构的2.5d定位方法

文档序号:6463356阅读:169来源:国知局

专利名称::基于神经网络和无线局域网基础架构的2.5d定位方法
技术领域
:本发明属于无线局域网环境下用于定位客户端的方法。技术背景室内无线环境的复杂性对定位提出了新的挑战。由于室内空间相对较小,GPS等室外定位系统较大的误差,使其在室内环境下不再适用。而采用到达时间(TOA),到达时间差(TDOA),到达角度(AOA)等技术的定位系统需要对现有硬件进行较大改造,因而无法推广。目前室内定位流行的方法是通过测量信号强度来定位,这种方法可以分为两大类,一类是基于客户端的,即客户端测量AP的信号强度来定位自己的位置;一类是基于无线基础架构的,即AP测量客户端的发出的信号强度来定位客户端。基于无线基础架构的定位方法不需要在客户端安装任何软件和硬件,可以有效的监视和定位无线设备,因此在特定环境下比基于客户端的定位方法具有优势。反向传播神经网络是一种受监督的学习模型,它由2层或多层神经元构成,其中第i层的神经元连接到i+l层。这些连接都具有一定的权重,用来表示前一层的神经元对下一层的祌经元的影响。每一个神经元对前一层的输入进行一个非线性运算,然后输出到下一层。图1是一个神经元的构造其中^是输入,"是输出,w是权重,6是偏差,,是转移函数,"是转移函数的净输入。典型的转移函数包括线性函数,log函数等。在此基础上就可以构造所需要的神经网络。例如,对一个有R个输入,S个神经元的单层网络,其构造图2所示。图3是一个三层神经网络的示例,其中ZW是输入层矩阵,LW是其它层的权重矩阵。以往采用神经网络定位的方法都是基于客户端,需要在客户端安装特殊的软/硬件,因此本发明采用基于无线基础架构的设计。该架构的主要难点是客户端设备存在差异性,因此它们的信号强度测量值存在差异。己有的方案采用RADAR法[3,4],但是由于无线室内传播的复杂性,该方法并不理想。另外基于现有网络基础设施构造定位系统,并不能保证对一个客户端可以获得3个以上的测量值,因此基于三角定位的方法也不再适用。其他的一些方法[5]要向网络中添加专用设备,因而也很难应用在实际当中。本发明涉及无线定位系统,特别涉及一种无线局域网(WLAN)环境下,利用无线AP/Monitor测量信号强度,以及祌经网络(NeuralNetwork)技术,定位客户端的系统。
发明内容本发明提出一个在无线局域网内,基于基础架构和神经网络的定位系统。在建筑物内部,它不仅可以定位用户的平面坐标,还可以定位用户所在的楼层,因此可以称为一个2.5D的定位系统。本发明的特征在于所述方法是在由无线局域网的定位服务器,无线接入点AP(AccessPoint)和客户手中的笔记本电脑之间组成的无线定位系统中依次按以下步骤实现的:步骤(1),初始化定位服务器,用于进行定位相关计算,并以网页形式呈现给客户,该服务器设有数据采集模块,数据库,定位请求模块,定位计算模块,以及定位呈现模块,其中数据采集模块,定时从各个无线接入点AP上获取其测量的客户端的信号强度信息,并以下述格式写入数据库日期,测量时间,无线接入点AP的标识SSID,客户端MAC,信号强度,定位请求模块,提供无线客户端通过各无线接入点AP请求定位服务的页面,供管理员生成当前客户的列表,定位计算模块,利用神经网络计算客户所在的楼层编号及平面坐标(x,力,其中所述神经网络,包括用于定位客户端所在楼层的神经网络和用于定位客户端所在的平面坐标O,力,其中用于定位楼层编号的神经网络,输入是客户端的信t号强度,有2n个,n是用于实时测量客户端信号强度的无线接入点AP的个数,输出为归一化的楼层编号,该神经网络至少有一个2.'1f"WtS7-fi"(M)=-----~國■—國…_1/OdZ'JY/2)=-中间层,其转移函数为l+e_2",输出层的转移函数为1+",用于定位平面坐标",力的神经网络,输出为归一化的平面坐标,其余部分与用于定位楼层编号的神经网络相同,两个神经网络的输入都采用向量格式,依次用1和0来区别信号强度为0的是测量值还是默认为0,在所述定位计算模块上设有Matlab神经阿络NeuralNetwork的工具箱,定位呈现模块,按定位结果在电子地图上标注客户,动态生成JPEG图片,并生成网页向客户呈现,步骤(2),所述定位服务器按以下步骤测量客户所在的楼层编号及平面坐标步骤(2.1),按照设定的距离间隔,测量时间间隔该定位服务器从各无线接入点AP获取设定的一段时间内客户的信号强度信息步骤(2.1.1),各无线接入点AP用电子地图读取客户在该点的位置信息,包括楼层编号和平面坐标",力,送入所述定位服务器;步骤(2.1.2)各无线接入点AP获取客户在该点时笔记本电脑发出的信号的强度采用简单网络管理协议S雨P査询管理信息库MIB得到,距离间隔,测量的时间间隔,测量的时间段都是设定的步骤(2.1.3)用户改变笔记本电脑中无线网卡的工作功率,重复上述步骤;步骤(2.2),使用步骤(2.1)得到的数据训练神经网络,其步骤如下步骤(2.2.1),把每次采集的信号强度信息编成一条长度为2n的信号强度向量,其中对于楼层编号,归一化为^//,区间为(0,1),F为楼层总数,f为当前楼层号,对于平面坐标O,力,归一化为"/M,y/M),区间为(0,i),M=max(坐标长度,坐标宽度),得到信号强度对于楼层编号,以及信号强度对于平面坐标的两组映射,步骤(2.2.2),使用MatlabNeuralNetwork工具箱训练神经网络,再从训练后得到的神经网络中提取""/『,为输入层的权重矩阵;中间层的权重矩阵""丄『,输入层的偏差矩阵""力{1},以及输出层的偏差矩阵"e"m;步骤(3),客户访问网站,依次按以下步骤获得自己所在位置步骤(3.1)客户访问页面,获取自己的IP地址;步骤(3.2),根据IP地址从数据库中查询对应的MAC地址;步骤(3.3),从数据库中查询无线接入点AP测量该MAC地址的已接收信号的强度指标RSSI(ReceivedSignalStrengthIndicator);步骤(3.4),把步骤(3.3)得到的测量值组成向量X,分别送入楼层定位神经网络和平面坐标定位神经网络,分别得到楼层编号以及平面坐标",力,其中f=謂"af(F*logsig(tansig(X*flrIW+flrbl)*flrLW+flrb2))(x,y)=M*logsig(tansig(X*cdtlW+cdtb1)*cdtLW+c她2)所述yWW,y"『,yM)l,yW>2,a/^f,a^Z『,c&W,c^&2,皆为网络参数,为已知值,m"""()为取整函数。在清华大学FIT大楼进行的实验中,该定位系统定位楼层编号错误率为2.2%。平面坐标定位误差受多方面条件的影响。主要包括采样点间隔,AP部署位置等。在清华大学FIT大楼内,平均采样间隔为6.6m的情况下,平均定位误差在4.44m,90%分位点在8.lm,如图6所示。减小采样间隔可以使平均定位误差可进一步减少。图i,单个神经元结构图,"=/Op+W。图2,单层网络结构图,a=/(Wp+b)。图3,三层网络结构图,a二,(LW"/2(LW2V'(IW"p+b')+b2)+b3):图4,硬件体系结构图。图5,软件体系结构图。图6,本发明的程序流程图。图7,误差实验累积概率分布图。图8,功率实验累积概率分布图。具体实施方式使用该定位方法需要三个阶段,依次分别为采样阶段,训练阶段和运行阶段。在采样阶段,测量人员可以采用任意一款笔记本电脑,每隔一定距离,获取一段时间内AP测量笔记本电脑的信号强度。这些数据供神经网络训练使用。步骤如下1,在每一点首先记录该点的位置信息,包括楼层编号和平面坐标(x,y)。本方法的坐标(x,y)采用地图坐标,也可以根据需要转换为其他坐标。一种获得地图坐标的方法如下首先获取一份电子地图,使用图像处理工具打开,然后用鼠标指向当前的测试地点,读取鼠标点当前的像素坐标。2,获取该点AP测量笔记本电脑的信号强度。本方法采用简单网络管理协议S醒P工具查询管理信息库MIB,采样点距离间隔35米,每隔5秒钟测量一次,测量12次。以上参数可以根据实际进行调整。测量间隔的大小,时间间隔的长短和频度高低都会对定位精度造成影响。一般来说,间隔越小越小,时间越长越好,频度越高越好。3,改变笔记本无线网卡的工作功率,重复上述步骤。训练阶段,使用采样阶段得到的数据训练神经网络,步骤如下1,把每次采集的数据编制成一条向量,假入有n个AP,那么向量的长度为2n。向量分为两部分,前n个值是n个AP测量客户端的信号强度值,默认为0,后n个值用于区别信号强度为0的值是测量值,还是默认值,分别用1和0表示。例如使用S隨P工具从某无线交换机上可获取关于当前笔记本信号强度的如下MIB值。<table>tableseeoriginaldocumentpage0</column></row><table>假设有4个AP,则向量前一部分为(2,0,17,0),后一部分为(1,1,1,0)最终向量为(2,0,17,0,1,1,1,0)。对于楼层编号,将其归一化到(0,1)区间。方法如下,楼层总数为F,当前楼层号为f,则归一化为f/F。对于平面坐标,将其归一化到(0,1)区间。方法如下,采用地图坐标时,可以获取电子地图的长和宽,假设分别为length和width,假设M^max(/e"g/Z2,M^/0,其中max(/e"g成M^M)表示取length和width其中的最大值,则坐标归一化为(WMj/M)。在该步骤,最终得到的结果是(信号强度向量,楼层编号)和(信号强度向量,平面坐标)两组映射。2,整个系统包括两个神经网络,一个用来定位用户所在的楼层,另一个用来定位用户的平面坐标。用于定位楼层的神经网络有2n个输入,l个输出。输入为前述向量格式,输出为归一化的楼层编号。由于较大的网络需要较长的训练时间和较大的内存空间,神经网络的中间层根据机器配置和实际需要可以为1层或多层,本方法中间层的层数为1,神经元数目为2n个。21to肌'g(w)=-^—1/o柳》(w)=-中间层的转移函数采用l+e—2"。输出层函数为l+e—"用于定位平面坐标的神经网络有2n个输入,2个输出。输入为前述向量格式,输出为归一化的用户的平面坐标(x,y),同样,对于中间层的配置本方法层数为1,中间层的神经元丄数目为2n个。中间层的转移函数可以采用<formula>formulaseeoriginaldocumentpage0</formula>。输出层函数为3,训练工具采用MatlabNeuralNetwork工具箱。使用Matlab训练神经网络的步骤如下使用newff创建神经网络—使用dividevec划分训练集,测试集和验证集"M吏用train训练神经网络,其中newff,dividevec,train函数的意义可以参看Matlab随机文档[7]4,假设net为训练出来的神经网络。为了在Matlab之外使用该结果,需要从net中提取net.IW,net.LW,net.b{l},net.b(2)参数。其中net.IW为输入层的权重矩阵,net.LW为中间层的权重矩阵,net.bUl是输入层的偏差矩阵,net.b(2)为输出层的偏差矩阵。可以使用dlmwrite命令将两个网络的参数导出。运行阶段,该系统实现为一个网站,用户只要访问该网站就可以看到自己的位置。本方法中的网站采用jsp技术。客户端访问jsp页面时,首先利用JavaAPI获取客户端的IP地址。根据IP地址从数据库中査询其对应的MAC地址从数据库中査询AP测量该MAC地址的RSSI将该测量值组织成前述向量格式,假设为X。5,将上述向量送入楼层定位神经网络进行矩阵运算,假设网络的参数分别为flrIW,flrLW,flrbl,flrb2,round()为取整函数,则楼层编号为f=*logsig(tansig(X*flrIW+flrbl)*flrLW+flrb2))将该向量送入平面坐标定位神经网络进行矩阵运算,假设网络的参数分别为cdtIW,cdtLW,cdtbl,cdtb2,则坐标为(x,y)=M*logsig(tansig(X*cdtIW+cdtbl)*cdtLW+cdtb2)权利要求1、基于神经网络和无线局域网基础架构的2.5D定位方法,其特征在于,所述方法是在由无线局域网的定位服务器,无线接入点AP和客户手中的笔记本电脑之间组成的无线定位系统中依次按以下步骤实现的步骤(1),初始化定位服务器,用于进行定位相关计算,并以网页形式呈现给客户,该服务器设有数据采集模块,数据库,定位请求模块,定位计算模块,以及定位呈现模块,其中数据采集模块,定时从各个无线接入点AP上获取其测量的客户端的信号强度信息,并以下述格式写入数据库日期,测量时间,无线接入点AP的标识SSID,客户端MAC,信号强度,定位请求模块,提供无线客户端通过各无线接入点AP请求定位服务的页面,供管理员生成当前客户的列表,定位计算模块,利用神经网络计算客户所在的楼层编号及平面坐标(x,y),其中所述神经网络,包括用于定位客户端所在楼层的神经网络和用于定位客户端所在的平面坐标(x,y),其中用于定位楼层编号的神经网络,输入是客户端的信号强度,有2n个,n是用于实时测量客户端信号强度的无线接入点AP的个数,输出为归一化的楼层编号,该神经网络至少有一个中间层,其转移函数为<math-cwu><![CDATA[<math><mrow><mi>tan</mi><mi>sig</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>2</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mn>2</mn><mi>n</mi></mrow></msup></mrow></mfrac><mo>-</mo><mn>1</mn><mo>,</mo></mrow></math>]]></math-cwu><!--imgid="icf0001"file="S2008101044073C00011.gif"wi="39"he="8"top="185"left="68"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/-->输出层的转移函数为<math-cwu><![CDATA[<math><mrow><mi>log</mi><mi>sig</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mrow><mn>1</mn><mo>+</mo><msup><mi>e</mi><mrow><mo>-</mo><mi>n</mi></mrow></msup></mrow></mfrac><mo>,</mo></mrow></math>]]></math-cwu><!--imgid="icf0002"file="S2008101044073C00012.gif"wi="42"he="8"top="185"left="150"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/-->用于定位平面坐标(x,y)的神经网络,输出为归一化的平面坐标,其余部分与用于定位楼层编号的神经网络相同,两个神经网络的输入都采用向量格式,依次用1和0来区别信号强度为0的是测量值还是默认为0,在所述定位计算模块上设有Matlab神经网络NeuralNetwork的工具箱,定位呈现模块,按定位结果在电子地图上标注客户,动态生成JPEG图片,并生成网页向客户呈现,步骤(2),所述定位服务器按以下步骤测量客户所在的楼层编号及平面坐标步骤(2.1),按照设定的距离间隔,测量时间间隔该定位服务器从各无线接入点AP获取设定的一段时间内客户的信号强度信息步骤(2.1.1),各无线接入点AP用电子地图读取客户在该点的位置信息,包括楼层编号和平面坐标(x,y),送入所述定位服务器;步骤(2.1.2)各无线接入点AP获取客户在该点时笔记本电脑发出的信号的强度采用简单网络管理协议SNMP查询管理信息库MIB得到,距离间隔,测量的时间间隔,测量的时间段都是设定的步骤(2.1.3)用户改变笔记本电脑中无线网卡的工作功率,重复上述步骤;步骤(2.2),使用步骤(2.1)得到的数据训练神经网络,其步骤如下步骤(2.2.1),把每次采集的信号强度信息编成一条长度为2n的信号强度向量,其中对于楼层编号,归一化为f/F,区间为(0,1),F为楼层总数,f为当前楼层号,对于平面坐标(x,y),归一化为(x/M,y/M),区间为(0,1),M=max(坐标长度,坐标宽度),得到信号强度对于楼层编号,以及信号强度对于平面坐标的两组映射,步骤(2.2.2),使用MatlabNeuralNetwork工具箱训练神经网络,再从训练后得到的神经网络中提取net.IW,为输入层的权重矩阵;中间层的权重矩阵net.LW,输入层的偏差矩阵net.b{1},以及输出层的偏差矩阵net.b{2};步骤(3),客户访问网站,依次按以下步骤获得自己所在位置步骤(3.1)客户访问页面,获取自己的IP地址;步骤(3.2),根据IP地址从数据库中查询对应的MAC地址;步骤(3.3),从数据库中查询无线接入点AP测量该MAC地址的已接收信号的强度指标RSSI(ReceivedSignalStrengthIndicator);步骤(3.4),把步骤(3.3)得到的测量值组成向量X,分别送入楼层定位神经网络和平面坐标定位神经网络,分别得到楼层编号以及平面坐标(x,y),其中f=round(F*logsig(tansig(X*flrIW+flrb1)*flrLW+flrb2))(x,y)=M*logsig(tansig(X*cdtIW+cdtb1)*cdtLW+cdtb2)所述flrIW,flrLW,flrb1,flrb2,cdtIW,cdtLW,cdtb1,cdtb2,皆为网络参数,为已知值,round()为取整函数。全文摘要基于神经网络和无线局域网基础架构的2.5D定位方法,属于无线局域网客户定位,其特征在于,在无线局域网的定位服务器上设定数据采集模块,数据库,定位请求模块,定位计算模块,以及定位呈现模块,通过各无线接入点AP,在设定的距离间隔,测量时间间隔下获取一段时间内的客户手中笔记本电脑发射的信号强度信息,采用MatlabNeuralNetwork工具箱实时获取客户所在的楼层编号和平面坐标,通过页面向客户的笔记本电脑显示,信号强度信息包括,日期,测量时间,无线接入点AP的标识,客户端MAC以及信号强度。在平均采样距离间隔为6.6m下,平均定位误差为4.44m,在采样点平均间隔为3.7m下,定位误差为2.98m,比Radar法效果为佳。文档编号G06N3/00GK101267374SQ20081010440公开日2008年9月17日申请日期2008年4月18日优先权日2008年4月18日发明者丁晓乐,吴建平,李贺武,李风华申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1