一种用人工智能平台实现的WiFi指纹定位系统研究
2019-11-13谢东良
谢东良
一、前 言
(一)背景与研究意义
近年来,随着移动互联网以及位置服务技术的发展,室内定位技术也在更新换代。具有位置感知功能的应用在各种场合广受欢迎,手机等智能设备的涉及范围也变得越来越广泛。例如,用户可以获取商家的某个商品的位置信息,在琳琅满目的商品中准确找到目标,甚至找到搞促销活动的店家得到优惠价格;在机场或火车站找不到洗手间,室内定位可以提供帮助;在博物馆里想找自己喜欢的版块,借助室内定位确定就能帮忙;在起火大厦里,消防员能室内定位求助者的位置;在会议室开会时,手机若能识别出所处的位置并自动开启静音,能为粗心的人提供很大帮助;逛商场时想货比三家,对商品犹豫不决时,手机若能给拍下照片的商品自动打上标签,能方便我们下次寻找,从而给商家吸引更多的回头客。这些功能看似不太起眼,却能极大地方便和改善我们的生活质量,让人们生活得更加便捷。但是,当前使用较多的定位技术,如GPS卫星定位以及GSM(全球移动通信系统)基站定位技术,还达不到进行室内定位所需求的定位精度,而且在信号大幅度衰减的地方,例如被众多高层建筑遮挡的区域及地下室,甚至没办法进行定位。
现在一些定位技术,如短距离无线通信定位技术已经开始在室内定位中广泛应用。在工业和医疗等对定位精度有严格要求的领域,基于超宽带和超声波的定位技术也被频繁使用,但这种定位精度高的方法存在很大的缺憾,信号衰减快,设备成本高。又如基于蓝牙的定位技术——NOKIA公司的蓝牙4.0协助定位系统,它的定位精度很高(约为1~2m),但其信号衰减距离只有10米左右,为了保证信号强度,蓝牙信号发送器的安装间隔要很短,因此成本是一个很大的问题。虽然这些定位技术的定位精度都比较高,但是繁琐复杂,同时设备成本也较高,导致这些技术并不适合大范围地实际应用。
随着网络通讯技术的不断革新,WiFi热点设施在各大公共场所中广泛覆盖,这使得通过WiFi信号实现室内外的无缝定位成为现实[1][2]。对于WiFi定位技术,通过纯软件可实现常用的基于RSS信号指纹的定位方法,这种方法相对于其他方法,如基于信号到达时间差等,成本较低。方法是在离线阶段(也就是准备阶段)把待测点接收的来自多个AP的RSS与其对应的MAC地址对应保存起来,并与该待测点的实际位置坐标进行匹配。定位时,将手机端实时扫描的位置指纹与离线阶段建立的指纹库中的指纹匹配,就可以获得手机的位置。
WiFi指纹法定位与其他室内定位技术相比较,具有实施方法简便、成本低、精度较高的优点,并且随着WiFi热点设施覆盖的增多,基于WiFi的室内定位研究将有着重大的现实意义。
(二)研究现状与发展趋势
目前,国内几乎所有通讯和移动设备都支持WiFi连接,含有WiFi热点的室内场合非常多,办公楼、火车站等很多大型公共场所都有WiFi信号覆盖,因此把wifi应用在室内定位技术中也顺势成为主流。目前主要有以下三种基于WiFi技术的室内定位方案。
1.接收信号强度定位法
接收信号强度定位法,也称RSS三边测量定位。这是目前应用最广泛的室内定位技术。该方法利用已知信号的衰弱模型和接收信号强度RSS,以已知参考点与待测点的距离为半径画圆,有多个参考点就可以画出多个圆,这些圆的重叠部分就是待测目标的大致位置。该方法的优点是只要采集足够的WiFi指纹数据库就可以实现,且成本低廉,但相对的定位精度也只有10~20m,局限性较大。
2.基于接收信号强度RSS的指纹定位法
该方法是离线阶段采集各个参考点的信号强度RSS并建立指纹数据库,将待测接收信号强度与数据库中各个参考点的信号强度特性进行对比,匹配度最高的参考点位置便是待测目标的位置。这种方法的优点是定位精度比较高,能精确到3~5m,但与第一种方法正好相反,如果要大规模应用,那么需要采集的数据也会非常庞大,成本十分高。
3.基于信号传播距离的测量法
这种方法和第一种方法有些类似,无线信号往返于两个节点之间,测量其飞行时间并推算节点间的距离,以参考点和待测点之间的距离值为半径画出圆,得到多个圆的重叠位置,即得到待测点的位置。该方法优点是定位精度可以低于1m,非常之精准,但同时要求也高,现有的设备大多无法支持这种精度,因而不太可能进行大范围应用。
上述三种基于WiFi的定位方案各有利弊,优缺点明显,而要想广泛应用于日常生活中,需要做到精度与成本兼顾。下文将会采用基于接收信号强度RSS的指纹定位法的改进方法进行研究,以达到兼顾二者的目的。
总的来说,如今室内定位技术正在高速发展,目前可预测的趋势如下:
第一,蓝牙BLE定位技术将会普及。蓝牙室内定位技术虽然不常出现在大众视野中,却也在不断发展。在零售业,基于iBeacon技术的信息推送服务引起了极大重视,今后BLE技术会在此基础上更好地服务用户。
第二,混合定位方法将成为主流。很多方案将传感器技术与WiFi技术融合到一起,丰富单一定位技术无法实现的功能,减小其局限性。Google、Broadcom等都给出了定位技术混合解决方案[3],未来也会出现更多混合方案来满足人们室内定位的诉求。
第三,更多地进行低功耗优化。通过专有的定位处理引擎减少对应用处理器的唤醒,以此降低功耗,同时利用定位技术混合方案在不损失精度的情况下选择最低功耗的定位技术等。
第四,更好地用于位置服务。其不需要准确位置便能通过附近的感知发现周围设备,同时产生推送,这可以作为定位技术一个非常好的补充,相关技术有BT/BLE、WiFi Direct、NFC等。
第五,室内地图会不断完善,数据库也会逐步积累,未来室内定位技术的性能将得到很大提高。
(三)WiFi室内定位技术研究现状
由于基于距离测量的方法精度太低,因此很多研究都在转向基于信号指纹统计模型的定位算法。目前这方面已有不少研究成果,如从最早的最近邻(NN)算法,到后面陆续提出的K最近邻KNN算法、WKNN、贝叶斯概率算法、神经网络算法、支持向量机算法等;而在定位系统方面也有不少可鉴成果,较典型的有 Radar、eorus、Nibble与 Weyes等室内定位系统[3]。
Radar系统是2000年微软公司研究的一个基于位置指纹定位的实验项目。该系统的定位过程分为两个阶段:离线和在线。离线阶段,Radar系统在待定位的区域内设置许多分布其中的点,采集各个点接收到的AP的RSS数据,这些点就是位置指纹的参考点,包含了位置坐标、RSS等信息。离线阶段完成了对指纹参考点的创建。在获取每个点上的接收信号RSS时,Radar系统采用多次测量取平均值或中值的方法,其中每个指纹节点的信号强度矢量均来自定位场景中的多个AP。在线定位阶段,Radar系统首先由移动终端节点获取RSS矢量并将其发送至定位服务器,然后服务器搜索指纹数据库,并根据离线阶段建立的指纹参考点Radio Map来完成对移动终端的定位。其中Radar系统内采用的匹配算法有NNSS(即最近邻法)与NNSS-AVC(即K近邻法)两种。而eorus定位系统使用概率模型来创建信号数据库,并以接收信号强度RSS为位置参考点的指纹数据。该系统在采集指纹参考点的RSS矢量数据时不直接取其均值,而是建立每个AP的RSS在指纹参考点上的概率分布,并以此分布值来建立Radio Map。在线定位时,该系统基于Radio Map位置集的分簇方法来减少计算量并提高系统的定位速度。实际上,因为一个固定AP覆盖的范围有限,因此不需要在整个定位区域内进行匹配搜索,而只需在定位时获取有效AP的列表,并在这个列表中AP的覆盖范围内进行搜索定位,不仅提高了定位速度,而且兼顾了实时性。数据显示该系统定位精度在2.13m内。Nibble定位系统并非采用RSS作为指纹数据,而是采用信噪比(SNR)作为信号空间矢量的样本,以接收信号的信噪比来建立指纹参考点的Radio Map,因为比起信号强度,信号的信噪比的位置特征更明显,能更好地描述位置。与eorus系统类似,Nibble系统也采用概率模型来建立信号空间,但不同的是该系统采用贝叶斯网络来创建信号空间的概率分布图与指纹参考点的Radio Map。该系统较适合对定位精度要求不高的位置服务使用,待测位置的点粒度一般被定义为较大的区域,在测试环境中的定位精度能达到97%。
综上所述,以WiFi信号的各种特征值作为指纹的技术已经得到了不少的研究,而WiFi指纹定位技术本质上是一种归类技术,即用定量的勘测数据对信号特征的分布进行模式拟合,得到一个特定的模型。在实际应用时将被定位点信号的指纹特征数据代入模型中计算其方位,因此可以用机器学习技术加以实现。随着机器学习工具的不断进步,WiFi指纹的定位模型实现和优化变得更为简单。本文重点探讨用机器学习算法和RSS指纹实现WiFi指纹定位的方法,并给出一种旨在降低设备相关性的改进方案。
二、关键技术研究
(一)位置指纹的含义及其组成
1.位置指纹法的基本概念
信号的多径传播对周围会表现出非常强的依赖性。对于任意位置,信道的多径结构在该位置上是唯一的,终端发射的无线电波经过反射和折射,产生与周围环境密切相关的特定模式的多径信号,这样的多径特征可以认为是该位置相应于该特征的“指纹”。可以说,“位置指纹”是一种由无线信号传播时经反射、折射、散射等现象后生成的,和传播环境有关的独特信号[4]。每个特有的位置特征都可以表示该位置的“指纹”。
2.位置指纹的组成
位置指纹可以分为很多种类型,凡是能有助于区分不同位置的、独一无二的位置特征都可以作为一个位置指纹。例如进行通信时信号往返的时间或延迟、从基站或热点设施传播来的信号的RSS、传播信号的多径结构等,都是“位置指纹”,这也是最常用的信号特征。
(1)多径传播
我们把具有较大载波频率信号的传播轨迹近似地看成射线。射线在地板、天花板和走道的墙壁上会进行反射,碰到凹凸不平的障碍物边缘会发生衍射,碰到石子、树叶等较小的障碍物会发生散射。同样的位置能接收到从固定发射源发出的信号经过多条不同传播路径传来的混合信号,因此一个位置上的多条不同射线都有不同的信号强度,信号到达时间也不尽相同。到达时间差由射线的传播距离决定,信号强度则由传播路况和传播距离共同决定。每条到达接收器的射线称为该信号的一个多径分量,我们说的多径结构便是指这一组射线的信号强度和到达时间差,也可称作功率时延分布。
图1是一个经典的功率时延分布图,包含了6个多径分量,功率和时延分别为β1、β2、β3、β4、β5、β6和τ1、τ2、τ3、τ4、τ5、τ6。
图1 功率时延分布图
对于带宽很大的信号,不同多径分量可以在接收器上进行处理。Ahonen和Eskelinen提出了用这种方法定位3G UMTS网络中的手机[5]。研究结果表明,在接近67%的情况下,这种方法测出的定位精度小于25m,在95%的情况下定位精度可以达到188m,如此高的定位性能满足了FCC对定位的E-911要求。
(2)接收信号强度RSS
RSS为Received Signal Strength,即接收信号强度。无线通信设备运行中必然产生信号,因此获取RSS信号并不难,接收器的位置决定了信号的RSS和接收功率的值。带宽对RSS造成的影响不大,因此RSS作为信号特征广受欢迎,被各种定位技术所使用。
假定一个固定信号发射源,在离它不同距离的位置上的平均RSS的衰减和距离的对数成正比,在最简单的情况下,RSS可以表示为:
式中α称为路径损耗指数,Pt是发送功率,K是一个常数,其值由周围环境和频率决定,d表示移动设备到固定信号发射源的距离。手机等移动设备和基站之间的距离可以用RSS大致估算,然而基于RSS测量距离的三边角方法却不太可行。这是由于周围环境具有不可控性、复杂性,RSS的浮动范围会很大,得出的定位结果误差较大。
但是,本文研究的WiFi指纹定位却可以利用RSS进行计算。因为一个移动设备能同时接收到来自多个发射源的信号,相对的多个固定的基站也能接收到同一移动设备的信号,因此我们可以将来自多个固定发射源或者多个接收器的RSS,组成一个能够作为“位置指纹”的RSS向量。目前许多WiFi网卡都能够测出来自多个AP点的RSS,并表示为一个0到100的数值。现在很多室内场景如商场、机场,手机通常会安置多个不同AP,因此使用来自多个AP的RSS作为位置指纹可行性非常高,后文将会以此为基础进行研究。
(二)位置指纹定位方法
WiFi指纹定位过程一般分两个阶段实现:离线采样阶段和在线定位阶段[6]。
离线采样阶段:在待定位区域进行合理的采样,采样点的分布要平均,将每个采样点的接收信号强度RSS、MAC地址等位置信息记录并保存下来,作为指纹信息存储到数据库中,这就建立了位置指纹数据库。数据库中的数据要尽可能准确,因为其准确性决定了定位的精确程度。
在线定位阶段:利用手机等设备在待测点测得AP的信号强度和MAC物理地址,然后通过相应的匹配算法,搜寻数据库中与测量点相匹配的数据,以此获取用户的当前位置。
此外,室内定位得到的位置坐标通常指当前定位环境中一个局部坐标系内的坐标,而不是经纬度。目前,基于位置指纹的定位算法主要分为确定型和概率型,前者的计算效率较高,后者的定位精度较高,但是计算量较大。
(三)位置指纹定位算法
1.最近邻法
最近邻法(NN)是最基本的指纹定位算法。NN算法在定位时,移动终端节点首先获取AP热点发射的信号强度,记为S=(S1,S2…,Sn),其中n为AP的个数,然后将此信号强度S与指纹数据库中的指纹数据Fi=(Fi1,Fi2…,Fin)进行匹配,从而获取移动终端
式中:Di为移动终端接收AP接入点发射的信号强度S与第i个指纹参考矢量Fi之间的距离;Sj为移动终端接收第j个AP热点发送的信号的强度;Fij为第i个指纹矢量Fi中来自第j个AP发送的信号的强度,l为指纹参考点的个数;q=l是代表曼哈顿距离,当q=2时代表欧几里得距离,在实际定位中可根据自己的需求与定位精度来选取q的取值。实验表明,NN算法的定位精度并不是随q值的增大而提升,一般情况下q=2时定位效果较佳,故本文中选取q=2。
2.K近邻法
K近邻算法(KNN)是在最近邻法上进行改进的,它们之间的区别在于KNN算法在匹配指纹数据库时,并不是选取与移动终端接收信号强度S=(S1,S2…,Sn) 最 近 的 那 个 指 纹 数 据Fi=(Fi1,Fi2…,Fin),而是获取与S距离最近的K(K≥2)个指纹数据矢量,再通过计算这K个指纹参考点的平均坐标(X,Y),并将其作为移动终端的位置信息,在计算矢量距离时通常采用欧几里得距离来计算,其定位公式如下所示,其中在式(4)中(Xi,Yi)是第i个指纹参考点的位置坐标。的位置信息。NN算法在匹配时采用下式中的方法,通过计算S与Fi之间的距离,获取与S距离最小的那个位置指纹Fi,并以Fi的位置坐标(Xi,Yi)作为移动终端的定位结果。表达式为:
3.K加权近邻法
K加权近邻法(WKNN)与K近邻法不同的是,其在选取K(K≥2)个指纹参考点后,并不是直接将这K个指纹参考点对应的位置坐标的均值作为移动终端的定位结果,而是将每个指纹参考点对应的位置坐标乘上一个加权系数,然后将这K个指纹参考点位置坐标的加权和作为移动终端的定位结果。WKNN定位公式如下式所示。
其中di为移动终端的RSS与第i个指纹数据之间的距离,其采用式(3)中计算方法,ε为一个很小的正常数,为防止式中除数等于0,本文取ε=0.0001是第i个指纹参考点对应的位置坐标;为WKNN算法的定位输出结果。
本章研究了WiFi指纹定位技术中的各种关键技术问题,下面的章节将采用RSS作为指纹进行仿真研究。
三、方案设计
(一)RSS数据获取方案
通常情况下都会以实际测量的数据进行定位算法或模型的性能分析和验证,来建立指纹数据库。但这种方法费时费力、数据不全面、灵活性不高,采用仿真的方法来获得RSS数据能妥善解决这些问题。本章主要介绍射线跟踪技术的基本原理[7],并以此为基础计算出用于定位仿真的RSS数据。利用这个方法并结合实地采样的少量数据,得到位置指纹库与测试数据,测试数据将用来对后文的定位算法进行验证与评估。
1.射线跟踪技术
信号在没有障碍物的自由空间中,会从发射源呈球面状发射出去,信号的强度RSS(也可认为是信号的功率P)和传播距离的平方呈反比
那么RSS衰减应与距离的对数呈正比。假设已知一个参考距离d0以及这个距离上的RSS为RSS(d0),那么便得出最常见的对数距离损耗模型:
在自由空间中n=2。图2的黑线是一组在走廊中测量的实际数据,其波动是由于信号在传播过程中遇到环境干扰引起的;红线则是用对数距离损耗模型计算的拟合结果。可以看出这个模型虽然可以反映总体趋势,但在实际的室内传播环境下由于存在多径传输,曲线并不会这么理想。
图2 信号强度与传播距离模型
2.多径传播技术
为了考虑多径传输问题,这里将WiFi信号的电磁波传播近似为射线进行分析。对于一个自由空间中的固定发射源,可以利用对数距离衰减模型计算各个位置的RSS。在复杂的环境下,信号可以遇墙发生反射,未反射的信号会与反射的信号叠加,为模拟实际中测量到的这种复杂信号情况,在射线跟踪技术中,通过计算出发射点与接收点之间的多条传播路径,对各个路径的信号进行分析,一般包括信号强度、相位在多次反射或绕射下的计算,然后叠加得到接收点上的信号。
现假设将一个发射源AP放置在一个空旷房间左侧的角落,一个接收器放在房间的中央,这样接收器收到这个AP的信号中包含了来自1条直射路径的信号与6条经墙壁反射的信号。理论上可以计算出任意一点的RSS值,即有6个AP时每个位置点可以分别计算出6个RSS。
(二)系统设计
1.界面设计
图3 定位显示界面设计
本系统界面采用简洁明了的风格(见图3)。主界面顶部左侧的按钮表示是否处在定位状态,若WiFi未打开则显示“定位关闭”。顶部右侧的按钮对应保存定位数据,将定位结果存储到数据库中。
2.软件方案设计
(1)离线阶段(勘测阶段)
用射线跟踪技术仿真模拟出AP信号在房间的运动轨迹,获取RSS值,通过KNN算法建立数据准确的位置指纹数据库。具体流程见图4。
图4 离线阶段
(2)在线阶段
软件运行时,应首先确认WiFi热点是否为开启状态,若已开启则开始进行定位。定位阶段利用手机在待定位点检测的AP信息,通过相应的模型算法,在指纹数据库中搜索与待测点相匹配的数据,并在地图上实时更新最新的位置。操作流程见图5。
图5 在线阶段
3.模型设计
本文采用k最近邻(KNN)算法[8]。所谓k最近邻,就是k个最近邻居的意思,每个样本都可以用它最接近的k个邻居来代表。在指纹定位中,对于任意在线RSS向量S,要分别计算它与指纹库中各个RSS向量{ }
S1,S2,…,SM的距离(欧氏距离),然后选取最近的k个位置指纹,便可获取所在位置,该方法相较于其他算法更简单、直观、有效。
KNN有分类算法和回归算法,不同的算法实现方式有所不同。对于KNN回归,标签是坐标x和坐标y,通过求与待预测点距离最近的K个点的平均值得到待预测点的值,这里的“距离最近”采用欧氏距离,也可以是其他距离,具体的效果依数据而定。图6中,x轴是一个特征,y是该特征得到的值,红色点是已知点,要预测第一个点的位置,则计算离它最近的三个点,即黄色线框里的三个红点的平均值,得出第一个绿色点,依次类推,就得到了绿色的线。由此可以看出,这样预测的值明显比直线要准。
图6 KNN回归算法
对于KNN分类,将定位区域划分为1m×1m的网格,每个网格看作一个类别,用网格标号代替,对k个网格标号计数投票,选择票数最多的网格作为定位结果。
KNN是较为简单的空间分类模型,除KNN外还有其他的分类模型,将在第四部分模型对比中分别具体描述。
本部分描述了WiFi指纹定位系统的实现方案,给出了简单的界面设计,并对系统的流程和采用的模型进行了阐述,下面将在本部分的基础上给出具体的实现。
四、系统实现
(一)数据产生
1.建立RSS仿真环境数据集
将参数(AP的位置、房间大小尺寸)设置好,使各位置点之间的间隔尽量小,每个位置的RSS用射线跟踪技术计算,计算一次射线跟踪后保存数据,之后的RSS数据都从这个“RSS仿真环境数据集”中获取。这里使用matlab工具设置参数,生成数据集。计算并保存位置指纹。
2.建立离线指纹库,将数据采集的过程模拟化
数据从上面的“RSS仿真环境数据集”中获取,比如每隔1m采集一次。
3.获取定位阶段的测试数据
模拟目标在已设置好参数的房间内的运动轨迹,获取每个轨迹点上的RSS值,用来作为定位算法的测试数据。这里简要描述各部分代码实现的功能:
main.m:主程序,在仿真环境中得到离线指纹库和在线阶段的测试数据,用于以后的定位测试。
get_rss.m:在空旷房间模拟射线跟踪。
generate_rss.m:生成RSS仿真环境数据集。
get_random_finger_data.m:模拟随机数据采集,生成位置指纹库。
get_finger_data.m:模拟均匀数据采集,生成位置指纹库。
get_terminal_data.m:模拟在线阶段,生成测试数据。
finger_data_location.mat:离线数据位置点x、y。
terminal_data_of_trace.mat:生成测试数据的运动轨迹,10000*2的数组,比如trace(10,:)代表的是第10个时刻目标的位置x和y。
terminal_rss_data.mat:生成测试数据中与运行轨迹对应的RSS,10000*6的数组,比如(trace10,:)代表的是第10个时刻时目标测得的各个RSS。
(二)指纹定位的实现
这里对前文所属的KNN模型进行具体的实现:
1.数据导入
#导入数据
2.knn回归算法实现
3.knn分类算法实现
4.进行数据预处理、交叉验证后,分析定位算法,选择最优k实现
图7 超参数k与score关系曲线
由图7可知,当超参数k的取值小于10时,score的值极速上升;当k值大于10时,随着超参数k的增加,score的值越趋于稳定。
图8 data number与accuracy曲线
由图8曲线可知,随着训练数据量的增大,定位准确度不断提高并逐步趋于稳定。
(三)各模型对比研究
本节尝试使用各种常见的机器学习分类器,比较它们在位置指纹法中的定位准确度,以此评估各种回归模型的性能。
1.数据导入
导入事先已仿真获取的RSS数据:
#导入数据
2.逻辑回归模型
逻辑回归(也称LR回归),虽然这个算法从名字上来看是回归算法,但本质上其实是一个分类算法。在机器学习算法的几十种分类器中,LR回归是其中最常用的一个。
LR回归使用sigmoid函数,是在线性回归模型的基础上,将线性模型wTx的结果压缩到[0,1]之间,并给它赋予概率的意义。但它的本质仍然是一个线性模型,实现起来相对比较简单。LR回归在广告计算和推荐系统中使用频率极高,是CTR预估模型的基本算法,同时也是深度学习的基本组成单元。下面是使用LR回归获取定位精度的部分代码:
使用逻辑回归算法的定位精度约为3.09m。
3.支持向量机
支持向量机(Support Vector Machine),又称SVM,是一种监督学习数学模型。假设n维空间内,任意一个点都可以当作由n个变量组成的数据项抽象而成,也就是点的各个维度坐标值为各个变量。假定有m类数据项,那么可以构建m-1个n维超平面将不同种类的数据项的点尽量分隔开,则这些超平面为支持向量面,这个分类数学模型为支持向量机分类模型。
(1)支持向量机-回归
下面是使用SVM回归获取定位精度的部分代码:
使用SVM回归算法获取的定位精度约为2.25m。
(2)支持向量机—分类
下面是使用SVM分类获取定位精度的部分代码:
使用SVM分类算法获取的定位精度约为2.51m。
4.随机森林
随机森林(random forest)指的是利用多棵树对样本进行训练并预测的一种分类器。在机器学习中,随机森林包含了多个决策树,由个别树输出的类别的众数决定它的输出。
(1)随机森林回归
下面是使用随机森林回归算法获取定位精度的部分代码:
使用随机森林回归算法获取的定位精度约为2.21m。
(2)随机森林分类
下面是使用随机森林分类算法获取定位精度的部分代码:
使用随机森林分类算法获取的定位精度约为2.57m。
5.线性回归
在假设数据满足线性关系的条件模型下,可以根据已有的训练数据来训练一个可以用以进行预测的模型,这就是线性回归。第三部分中已给出仿真获取数据的方法,因此我们尝试用线性回归来获取定位精度。
下面是使用线性回归获取定位精度的部分代码:
精度:3.83239 m
即使用线性回归算法获取的定位精度约为3.83m。
6.岭回归
岭回归是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法。
下面是使用岭回归获取定位精度的部分代码:
7.Lasso回归
lasso回归与岭回归相比较,既可以解决过拟合问题,也可以在参数缩减过程中完全减掉一些不必要的参数(即缩减为零),这种算法方便提取有用的特征。在建立广义线型模型的时候,lasso能处理连续的和离散的因变量,并且lasso对于数据的要求极低,与其他算法相比能够筛选变量和降低模型的复杂程度,在目前的机器学习算法中应用较广。
下面是使用Lasso回归获取定位精度的部分代码:
即使用Lasso回归算法获取的定位精度约为3.83m。
8.梯度提升决策树
梯度提升决策树(Gradient Boosting Decision Tree,GBDT)算法[9]得益于其算法的性能优势,以及该算法在各类数据挖掘以及机器学习比赛中的卓越表现,是近年来被提及比较多的一个算法。
下面是使用GBDT算法获取定位精度的部分代码:
精度:2.22100m
使用GBDT算法获取的定位精度约为2.22m。
9.神经网络多层感知器(Multi-layer Perceptron regressor)
在20世纪80年代,MLP在众多机器学习算法中非常流行,在如语音图像识别、机器翻译等各种领域中都有广泛的应用。但90年代后,由于支持向量机的强大竞争力,MLP算法开始走下坡路。最近几年由于深层学习的成功,MLP算法重新回到了研究者的视野当中。下面是用MLP算法获得定位精度的部分代码:
精度:2.45175m
使用MLP算法获取的定位精度约为2.45m。
(四)小结
上述获得的各回归模型获取的定位精度由高到低排行见表1。
从计算得出的大致定位精度来看,KNN、支持向量机、随机森林、梯度提升这四个模型在定位准确性上要优于其他的回归模型。
五、扩展研究和总结
(一)设备无关的RSS指纹
在WiFi指纹定位实际应用时,会有一个无法回避的问题,即各种设备对于RSS测量存在差异,同一个点测出的RSS指纹可能会因为设备自身的原因(设备射频器件对于无线电信号处理的差异)或不同操作系统的定义不同而存在绝对值大小的差异。为规避此问题,这里提出一种使用相对信号强度的比值RSS作为指纹的改进方案,即不用RSS绝对值作为指纹特征,而将RSS向量中各分量相对于第一个分量的比值来表征指纹,这样就很好地解决了设备差异导致的RSS绝对值误差带来的指纹偏离问题。
这里将RSS用作信号的空间数据,使用欧几里得距离来算出RSS的距离。由于指纹参考点的Radio Map(信号覆盖图)是基于信号接收强度的差值序列建立的,而没有直接使用接收到信息的强度,因此,事先利用比值模型来对接收信号强度RSS进行预处理,生成比值并把该RSS比值序列存储到Radio Map中,这就建立了我们所需要的Radio Map该信号空间具有与设备无关的特点。
表1 各回归模型获取的定位精度排行表
(二)研究总结与未来展望
本文的研究旨在针对目前室外定位技术的广泛应用。由于室内定位技术仍受限于成本和较低实用性而无法普及,因此,设计一个低成本与高实用性并存的室内定位系统就非常具有意义。当前室内WiFi热点设施覆盖面较广,使得基于WiFi指纹的室内定位成了较为经济的可行方案。
为了快速训练模型以及便于各个模型的对比,本系统并非用传统的实际测量方法获取数据,而是在研究WiFi信号特点的基础上选用RSS作为指纹数据,提出了一种生成仿真RSS指纹库的方法,解决了传统方法费时费力的缺点,同时提高了数据库的准确度。在实现部分给出了基于KNN算法进行模型研究的实现代码,详细阐述了KNN模型的训练和应用。最后通过对不同的模型用同一套数据实施训练,并对计算出的定位精度进行对比,评估了机器学习分类器的性能。此外,考虑到实际应用中的设备差异问题,提出了关于消除测量RSS的设备差异的改进算法——RSS比值法。
目前,室内定位在国内正在迅猛发展,未来各界对于低成本且实用的室内定位技术的研究也将日渐深入。本文采用仿真模拟的方法实现和验证了WiFi指纹定位理论和方案,以期为今后更加实用化的研究提供参考。