基于BP人工神经网络的室内移动定位技术
2019-08-12刘绍刚李燕梅李艳平
刘绍刚 李燕梅 李艳平
摘 要: 基于无线传感器网络的室内定位技术因为室内复杂的环境,传感器通信存在着多径效应,无法使用信号强度衰减模型进行精确定位。文中提出基于ZigBee结合Fingerprinting以及遗传算法优化的BP神经网络的方法进行定位。实验结果证明该方法可以用于室内的精确定位,在定位范围为2 m×2 m的条件下,非训练点的定位平均误差为0.22 m。
关键词: 室内定位; BP神经网络; 遗传算法; ZigBee; Fingerprinting; 无线传感器网络
中图分类号: TN915.02?34; V271.4 文献标识码: A 文章编号: 1004?373X(2019)15?0025?04
Indoor mobile positioning technology based on BP artificial neural network
LIU Shaogang1, LI Yanmei1, LI Yanping2
(1. School of Artificial Intelligence & Information Engineering, West Yunnan University, Lincang 677000, China;
2. School of Mathematics and Information Science, Shaanxi Normal University, Xian 710119, China)
Abstract: With the development of wireless sensor network (WSN) technology, it has become important to obtain the location of sensor nodes in the network. Therefore, a large number of indoor positioning technologies based on WSN emerged. The signal strength decay model cannot be used for precise positioning due to the multipath effect of sensor communication in a complex indoor environment. A method based on ZigBee combined with Fingerprinting and BP neural network optimized by genetic algorithm is proposed in this paper. Experimental results show that this method can be used for indoor precise positioning, whose average location error of non?training points is 0.22 m under the condition in the positioning range of 2 m×2 m.
Keywords: indoor positioning; BackPropagation neural network; genetic algorithm; ZigBee; Fingerprinting; wireless sensor network
0 引 言
近年来,随着嵌入式技术和无线通信技术的不断发展,无线传感器模块具有更低的功耗,更快的处理速度,每一个无线传感器模块都可以独立地完成一些任务。例如,监测室内的温度,系统需要知道人在屋内的确切位置,并测得人所在位置的实际温度,随后再把人所在位置的实际温度调整到最舒適的温度,这样就可以避免多余的能源浪费。越智能的室内系统就越需要智能体的位置并做出合理的调整,所以室内定位技术[1]变得越来越重要。
在文献[2?3]中使用信号衰减模型通过接收信号强度指标(RSSI)计算出距离,再使用距离值计算出位置。这种方法简单易行,在ZigBee发送的数据包中可以直接提取出RSSI值。提取出需要定位节点到周围至少三个固定节点的RSSI值,计算出需要定位的节点到这三个固定节点的距离,就可以使用三边定位的方法计算出该节点的坐标。在计算距离时使用理想情况下的信号衰减模型,然而实际室内环境下由于存在各种干扰和多径效应,使用信号衰减模型不能准确地表示出RSSI和距离的对应关系。所以,用信号衰减模型计算距离存在很大的误差,再用此距离计算的位置也存在着不小的误差。文献[4?5]中使用Fingerprinting系统,将定位划分为两个阶段,在预处理阶段收集预处理点上的链路质量指标(LQI)值储存进数据库,用BP神经网络直接拟合LQI和坐标的关系。通过BP神经网络直接得到LQI和坐标的对应关系,这种方法的好处是没有使用信号衰减模型,减小了误差。但是在训练过程中,没有将BP神经网络的训练样本分成训练样本和检验样本,无法分析训练是否出现训练不足或者训练过度等问题,且只使用BP神经网络进行训练易陷入局部最优,而无法陷入全局最优。
根据文献[6]中的描述,RSSI值在室内的分布是基本不变的。RSSI的分布并不像磁场的分布那样均匀、规则,在室内环境中,RSSI的分布是不匀称的、畸形的。在本文提出的定位系统中,使用基于遗传算法优化参数的BP神经网络(以下简称GA?BP神经网络)的Fingerprinting方法进行定位。这种方法对于预先训练的点定位精度高,对于没有训练的点定位具有一定的泛化能力。
1 定位原理
1.1 RSSI
接收信号强度(RSS)是接收信号的能量的量化。显然,RSS值会随着设备之间距离的变化而变化。根据Friis自由空间传输公式[7?9]接收到的能量会随着发送与接收设备之间距离的减小而减小。
式中:[PRX]为接收器的接收能量;[PTX]为发送器的发送能量;[GTX]为发送器的增益;[GRX]为接收器的增益;[λ]为无线发射信号的波长;[d]为发送器到接收器之间的距离。
在嵌入式设备中,接收信号强度RSS被转化为接收信号强度RSSI指标值,如式(2)所示,定义为接收的能量和从参考距离发送来的接收能量的比值。根据式(1)、式(2)可以得出RSSI值和距离成反比。
式中[PRef]为参考接收能量。在基于RSSI的定位系统中,可以使用信号衰减模型把RSSI值转化为距离值然后定位。也可以使用Fingerprinting的方法,建立RSSI值和与之对应的位置的数据库来定位。因为在室内环境中使用信号衰减模型不能准确定位,所以选择Fingerprinting并通过增加预处理点的个数来提高精度。
1.2 Fingerprinting
RSSI值会随着距离的增加而减小,因为各种干扰的原因,这种变化并不规律。Fingerprinting分为两个阶段。Fingerprinting在预处理阶段把RSSI的这种不规律的变化,也就是附加干扰的变化储存进数据库。在定位阶段,使用数据库里的RSSI和当前的RSSI值进行比对并定位。数据库里的RSSI拥有根据环境改变而改变的特性,这种特性虽然减小了Fingerprinting方法的鲁棒性,但是增加了Fingerprinting在当前环境下的精确性。
2 方案设计
ZigBee可以工作在三种模式下:协调器、路由器和终端模式。协调器负责建立网络并控制着其他节点的入网,建立网络之后协调器的功能与路由器相同,都是负责数据的中转。与路由器不同的是终端只能和父节点进行通信,不能和其他节点直接进行通信。
在定位系统中,位置已知的节点为锚节点,位置未知的节点为移动节点,和电脑相连传送数据的节点为网关,如图1所示。因为使用星形拓扑结构组网具有结构简单的特点,并且满足本文提出的定位系统的要求。所以定位系统的拓扑结构使用星形结构。锚节点只和移动节点发生通信,所以锚节点使用终端。
图1 定位系统网络拓扑结构
使用如图1所示的星形网络,移动节点收集4个锚节点发送来的RSSI值然后传送到电脑,由电脑计算出移动节点的坐标。采集RSSI值的步骤如下:
Step1:每个锚节点以200 ms的间隔向移动节点发送设备ID号(1~4号);
Step2:移动节点接收4个锚节点发送来的ID号并从接收数据包中读出RSSI值,如果没收集齐就继续等待;
Step3:移动节点收集到4个锚节点发送来的ID号,将ID号和与之对应的RSSI值发送到网关;
Step4:网关将数据通过串口发送给电脑。
定位数据处理部分分为两个阶段:预处理阶段和定位阶段。
如图2所示,四个角落的大圆形代表锚节点,中间的每个小圆形代表一个预处理点。实验区域为2 m×2 m的正方形,每隔10 cm设一个预处理点。在预处理阶段中,将移动节点放置在预处理点上以采集RSSI数据,每个点采集200次,并求出RSSI的平均值,然后将平均值存入数据库。RSSI平均值和坐标一一对应,如表1所示。
在测得全部361个点的RSSI平均值之后,把RSSI平均值作为BP神经网络的输入,与RSSI平均值对应的坐标作为输出进行BP神经网络训练。
图2 实验区域
表1 RSSI值与坐标对应表
BP神经网络是一种监督学习型人工神经网络[10]。学习过程是由信号的正向传播和误差的反向修正组成的。典型的三层BP神经网络包括一个输入层、一个隐含层和一个输出层。Kosmogorov定理说明在有合适的结构和恰当的权值条件下,三层BP神经网络可以拟合任意的连续非线性曲线。但是由于RSSI值和坐标之间的对应关系不连续,所以需要使用四层BP神经网络,其中包含两个隐含层。在定位系统中一共需要测量4个RSSI值,所以BP网络的输入节点为4个。通过4個RSSI值要获得对应的坐标([x,y]),因此输出节点为2个。在设计隐含层的节点数时没有固定的规范,根据经验隐含层1节点数为10个,隐含层2节点数为6个。
只使用BP神经网络进行训练容易陷入局部最优而无法达到全局最优,将BP神经网络与遗传算法结合,可以解决以上问题。在BP网络的学习过程中,不再使用梯度向下算法,而是使用遗传算法进行学习。GA?BP网络训练流程如图3所示。GA编码方式使用实数编码,如果使用二进制位串的方式,染色体的长度将会过长不利于计算。将四层BP网络的权值[W1],[W2],[W3],阈值[B1],[B2],[B3]依次排列构成一个染色体,这六个参数代表一个BP神经网络,染色体中的每个值都有一个上限和一个下限,依次作为约束条件,其初始值可以通过随机数生成。
用BP人工神经网络进行训练,最重要的是人工神经网络的泛化能力,所以需要将样本分为两组,一组用作训练,另一组用作检验。理论上训练误差会一直减小,但是随着训练误差的减小泛化能力也会变弱,检验误差如图4所示。
图3 GA?BP网络训练流程图
图4 BP神经网络误差关系图
由图4可知,网络误差呈现先减小再增大的趋势,也就是出现了训练过度。可以看到存在一个最佳训练次数[t0],在达到最佳训练次数之前如果停止训练将出现训练不足,在达到最佳训练次数之后还进行训练,检验误差增大,将出现训练过度。所以BP神经网络训练的关键是寻找最佳训练次数。为了判断训练是否出现以上两种问题,定义误差函数为:
式中:[(x0i,y0i)]为第[i]个预处理点的BP网络输出坐标值;[(xdi,ydi)]为第[i]个预处理点的实际坐标值。把样本分为两组,[n]([n]=0,1,2,…,361)为样本号,将([n]%11==0)的样本组成训练组,([n]%11!=0)的样本组成检验组,训练组数据用来进行BP神经网络的训练,检验组数据用来确定训练是否应该停止。在使用遗传算法时,需要选择合适的适应度函数,根据适应度函数的值确定父代中优秀的个体。种群中的每个个体解碼成BP网络的权值和阈值,将训练组数据和检验组数据送入BP神经网络进行训练,根据式(3)得到训练组中每个点的误差和检验组中每个点的误差,然后对这两组误差取平均值[error]。适应度函数选为训练组平均误差的倒数,检验组平均误差用作判断是否达到全局最优,也就是判断是否达到最佳训练次数[t0]。
在设计完BP网络之后,进行GA参数的设定,种群大小设为50,选择函数为随机均匀函数,保证每一代中的最佳个体能直接进入下一代。变异函数为Gaussain,改进算法对重点区域的搜索能力。此外,GA的终止条件设为是否达到设定的遗传代数。
3 实验测试
GA?BP神经网络训练结果如表2所示。
表2 GA?BP神经网络训练结果表
从表2可以看出,1号BP神经网络与3号BP神经网络相比出现了训练不足,2号BP神经网络与3号BP神经网络相比出现了训练过度,因此选择3号BP神经网络进行室内定位。
在预处理阶段使用的实验区域上进行定位实验,将移动节点放在2 m×2 m的实验区域内,分别测得移动节点的实际位置、定位系统的观测值,得出定位误差如表3所示。
表3 移动节点定位误差表
4 结 论
本文在无线传感器网络的基础上,提出一种基于遗传算法优化参数的BP神经网络的室内定位系统。实验结果证明,这种方法可以用于室内的精确定位,在定位范围为2 m×2 m的条件下,非训练点的定位平均误差为0.22 m。
参考文献
[1] 汪苑,林锦国.几种常用室内定位技术的探讨[J].中国仪器仪表,2011(2):54?57.
WANG Yuan, LIN Jinguo. Discussion of several common indoor location techniques [J]. China instrumentation, 2011(2): 54?57.
[2] CHEN Y T, YANG C L, CHANG Y K, et al. A RSSI?based algorithm for indoor localization using ZigBee in wireless sensor network [C]// Proceedings of the 15th International Conference on Distributed Multimedia Systems. San Francisco: [[s.n.]], 2009: 70?75.
[3] HALDER S J, PARK J G, KIM W. Adaptive filtering for indoor localization using ZigBee RSSI and LQI measurement [J]. Adaptive filtering applications, 2011(6): 305?324.
[4] CHEN R C, LIN Y H. Using ZeeBee sensor network with artifical neural network for indoor location [C]// 2012 Eighth International Conference on Natural Computation (ICNC). Chongqing: IEEE, 2012: 290?294.
[5] YAO Q M, WANG F Y, GAO H, et al. Location estimation in ZigBee Network based on fingerprinting [C]// 2007 IEEE International Conference on Vehicular Electronics and Safety (ICVES). Beijing: IEEE, 2007: 1?6.
[6] HUANG C N, CHAN C T. ZigBee?based indoor location system by k?nearest neighbor algorithm with weighted RSSI [J]. Procedia computer science, 2011, 5: 58?65.
[7] HUANG X, BARRALET M, SHARMA D. Accuracy of location identification with antenna polarization on RSSI [C]// Proceedings of the International MultiConference of Engineers and Computer Scientists. Hongkong: [s.n.], 2009: 1?6.
[8] 杨东勇,顾东袁,傅晓婕.一种基于RSSI相似度的室内定位算法[J].传感技术学报,2009,22(2):264?268.
YANG Dongyong, GU Dongyuan, FU Xiaojie. An indoor location algorithm based on RSSI similarity [J]. Journal of sensor technology, 2009, 22(2): 264?268.
[9] 王琦.基于RSSI测距的室内定位技术[J].电子科技,2012,25(6):64?66.
WANG Qi. Indoor location technology based on RSSI distance measurement [J]. Journal of electronics, 2012, 25(6): 64?66.
[10] 李敏强,徐博艺,寇纪淞.遗传算法与神经网络的结合[J].系统工程理论与实践,1999(2):65?69.
LI Minqiang, XU Boyi, KOU Jisong. Combination of genetic algorithms and neural networks [J]. Systems engineering?theory & practice,1999(2): 65?69.