井下WSN目标跟踪局部异常检测算法
2020-06-19金华明郭倩倩史明泉赫佳星崔丽珍
金华明,郭倩倩,史明泉,赫佳星,崔丽珍
(内蒙古科技大学 信息工程学院,内蒙古 包头 014010)
煤矿井下环境恶劣,存在诸多安全隐患,对井下人员及设备进行实时监测、跟踪对煤矿安全管理、矿难营救等工作具有重大意义。考虑到矿井下的环境特点,无线传感器网络(Wireless Sensor Network,WSN)体积小、成本低、自组织等特点更适用于井下目标跟踪[1]。近年来虽然WSN目标跟踪问题得到了一定的研究成果,如文献[2]提出的一种基于最优探测的移动代理WSN目标跟踪算法来采集当前时刻最优探测结果的节点数据集合;文献[3]根据Fisher信息矩阵的思想提出的UKF-F节点分簇算法等,但是受到了煤矿井下的环境限制而不能达到预期的效果。文献[4]提出了一种能耗均衡跨层WSN路由传输协议(EBUCR),有效降低了网络能耗,延长了网络生存周期,但该算法仅适用于井下大规模的物理数据检测与传输,用于跟踪系统仍需进一步的分析与处理。文献[5]提出了煤矿工作面定位无线传感器网络(PWSN)模型,利用定位目标的运动模式进行位置预测,结合变距节点部署方法来进一步提高PWSN的寿命,但该算法仅仅停留在定位层面,对于动态目标跟踪尚未提出解决办法。以上算法均侧重于WSN节点的网络部署和选择策略,而跟踪过程中其精度主要由测量数据不确定性和目标运动模式的随机性两个方面的因素影响。对于目标运动模式的随机性带来的挑战参考文献[6]采用交互式多模型(interacting multiple model,IMM)滤波跟踪算法。降低量测数据对跟踪精度造成的影响则采用异常点检测算法。目前的检测算法逐渐趋向于智能化,所依靠的检测指标也越来越少,例如RANSAC分割算法[7],双边滤波法[8]以及随机森林算法[9]等,但是以上算法不适用井下巷道目标跟踪产生的观测值,因为井下的定位结果沿着狭长的巷道动态生成也就意味着每产生一个定位结果,就要进行异常检测才能保证精度。
本文根据矿井下的特殊情况制定了分布式分簇的节点选择策略以维持目标在WSN中的跟踪,并以此为基础,提出了局部异常因子算法(Local Outlier Factor,LOF)[10]对定位结果进行实时的检测,同时结合IMM算法,提高精度、降低网络能耗、延长网络生存周期。
1 分布式节点选择策略
1.1 井下节点部署
在无线传感器网络系统中进行目标跟踪除了要保证跟踪算法的精度,还要尽量减少无线传感器网络的网络能耗,尽可能延长网络的生存周期。本文采用分布式的方式对目标进行跟踪,由于煤矿井下巷道狭长,本文设计了链状均匀分布,井下节点布置如图1所示。沿巷道墙壁两侧等间距布放位置节点,节点间距离为l0,节点感知半径为Rs,通信半径为Rc,Rc>Rs>l0。
图1 井下节点布置图
1.2 节点选择策略
井下传感器节点排布方式固定,并且目标随着链状的网络运动,因此不宜采用过于复杂的节点选择策略,否则会影响跟踪的实时性,增加信息冗余度。本文提出了一种适用于井下的WSN分布式分簇算法。
自定义网络:①节点沿巷道两侧等距离布放,间隔为l0;②所有的节点规格统一,具有初始能量E0,且每个节点已知自己的序号i、位置坐标(xi,yi)和剩余能量。
分布式分簇目标跟踪算法是在WSN网络中随着目标的运动轨迹不断地产生动态簇,簇中成员包括一个蔟头节点CH和剩余的簇成员节点CN,簇成员节点负责将感知到的目标信息,即接收到的目标发射的RSSI发送给蔟头节点,蔟头负责将成员节点发送过来信息融合并完成对目标定位,再用跟踪算法估计出目标的真实位置。分布式分簇目标跟踪流程如图2所示。
图2 分布式分簇跟踪算法流程图
1)簇的建立:接受到目标发射RSSI的节点广播自己的ID、坐标、剩余能量,以及接收到的RSSI值。考虑到井下巷道节点布放的特点,在接收到RSSI最大的前四个节点中,将剩余能量最大的节点作为簇头并广播消息,剩下的三个节点加入成为簇成员。
2)簇内数据处理:蔟头节点根据成员节点传来的RSSI转化为距离,再利用最小二乘算法对目标进行最初的定位,得到定位结果也就是观测值后,运用跟踪算法对目标进行估计。
3)动态簇的维护:随着新一轮的采样周期,检测到目标的簇外节点通过向蔟头节点发送RSSI申请加入簇,如果该RSSI值大于簇内节点收到的RSSI,则认为目标移除当前簇,同时按照步骤1)的规则,建立新的跟踪簇,新的蔟头从原来的蔟头获取簇内信息和目标信息;反之,如果目标没有移除当前簇,则不更改簇内节点,按照剩余能量最大的原则更改蔟头以平衡各节点能量消耗。
1.3 能耗模型
WSN目标跟踪要考虑的重要因素之一就是整个网络的能量消耗,而传感器节点的能量主要是消耗在接收和发射信号阶段。在此建立节点的能量消耗模型,采用文献[11]中提到的模型,如图3所示。
图3 节点能耗模型指示图
其中,发送节点发送数据的能量消耗包括两部分信号发射电路和信号放大电路的消耗,根据图3分别对发送节点和接受节点的能量消耗建模。
ETX(k,d)=ETX-elec(k)+ETX-amp(k,d)=
ERX(k)=ERX-elec(k)=kEelec
(3)
式中,ETX(k,d)为发射节点发送kbit数据消耗的总能量;ETX-elec(k)为信号发射电路发送kbit数据消耗的能量;ETX-amp(k,d)为信号放大电路发送kbit数据消耗的能量;ERX(k)为接收节点接收kbit数据消耗的能量;Eelec为电路发送和接收1bit数据消耗的能量;k是传送的数据包长度;d是发送节点与接收节点之间的距离;εfs和εamp根据传输距离d与阈值d0选择加入计算的信号放大电路的系数,分别为自由空间扩散无线信道模型和多路径衰减无线信道模型的参数。
2 异常点检测
在井下WSN目标跟踪过程中,定位结果沿着狭长的巷道动态生成,每产生一个定位结果,就要进行异常检测才能保证精度,本文针对矿井下的特殊WSN目标跟踪情况,采用LOF算法对定位结果进行实时的检测,通过选择参数k来调整LOF算法,随着更新的定位数据进行实时检测,以及更新定位结果。
2.3.7 病虫害防治:抓好病虫害防治是培育优质苗木的关健措施,重点在防,及时在治,从苗圃地整地开始,使用辛硫磷之内农药撒入土壤中,对蝉类害虫若虫孵化初期喷洒48%乐斯本乳油3000倍液防治,甲类害虫初孵幼虫期喷洒1.8%爱福丁乳油2000倍液防治,蚧类害虫初孵若虫盛期喷洒95%蚧螨灵乳剂400倍液,对菌类防治要结合剪枝,在扦插苗栽植后用70%甲基托布津700倍液喷洒一遍,防治扦插苗剪口菌类感染;当新梢长到10cm左右时保留主干去除其它新梢后用退菌特600倍液喷洒一遍。
2.1 LOF算法
LOF算法的思想是通过比较某一个点周围的平均密度与该点的密度来确定该点相对周围点的异常程度。定义:
1)d(p,o):点p与点o的距离。
2)dk(p):点p的第k距离,就是除了点p外,距离点p第k远的点到p点的距离,k=5时,标号为5的点距离点p是第5近。
3)Nk(p):点p的第k距离邻域,指p的第k距离以内的点加上第k距离上的点的集合,领域内的点数|Nk(p)|≥k,k=5时,点p的第5邻域共包括6个点。
4)r-dk(p,o):点o到点p的第k可达距离,指点p第k距离与点p到点o的距离的最大值,即:
r-dk(p,o)=max{dk(p),d(p,o)}
(4)
点o1到点p的第5距离d5(p)大于o1到p的距离d(p,o1),所以r-d5(p,o1)=d5(p);点o2到点p的第5距离d5(p)小于o2到p的距离d(p,o2),所以r-d5(p,o2)=d(p,o2)。
5)lrdk(p):点p的局部可达密度,指点p的第k距离领域点到点p的第k可达距离的平均值的倒数。即:
6)LOFk(p):点p的离群因子,指点p的第k距离领域内的点的局部可达密度与点p的局部可达密度之比的平均值。即:
图4 LOF算法示意图
LOF异常数据检测算法应用于井下目标跟踪的优势就是可以随着目标在巷道运动中的轨迹,根据确定好的k值,仅以目标当前位置的k近邻区域为参考,实时地对当前定位结果做出异常检测。不仅有利于保证跟踪的实时性,也缩小了近邻范围有效减少了计算量,同时减少了链状点区域对当前定位结果异常检测造成的误差影响。
2.2 节点辅助LOF算法
虽然LOF算法应用于本文背景具有较大的优势和效果,但是仍存在两个缺陷,即如果有连续几个点紧密排列相继偏离巷道,那么就有可能把后续的正常值范围内的定位结果检测为异常;在k值确定的前提下,无法检测产生的第k的定位点以前的定位结果是否异常。因此针对以上不足提出了一种井下巷道位置节点辅助LOF算法,井下巷道位置节点辅助LOF算法如图5所示。
图5 井下巷道位置节点辅助LOF算法示意图
选取k值为7,按照一般的LOF算法,则当目标运动到第7个周期时才能刚好检测第7个定位点的异常,但是如果把样本点范围扩大,加入当前簇内的节点,并且在开始几个时刻适当的减小k的值,异常检测就可以从初始点开始;此外,由区域1内的节点可以看出此时的定位点在很有可能因为处于边缘被检测为异常,当加入簇内节点后,见区域2,有了簇内节点的约束作用,那么就大大减少了检测错误的概率。
剔除掉异常点之后要找到一个新的观测值对异常数据进行填补,提供一个实际环境的参照,所以要迅速且尽可能准确,本文采用当前跟踪簇内节点位置的算数平均值进行填补。
3 IMM算法
1)输入交互:将上一时刻所得结果结合状态转移矩阵进行信息交互得到滤波器输入值,以提高估计性能。
3)模型概率更新:结合滤波结果对k时刻的模型概率进行更新。
4)输出交互:对各个滤波器输出结果进行加权求和,得到最终的状态估计和协方差。
4 实验设计及仿真
4.1 实验设计
本文设计目标在“工”字形巷道内运动,井下巷道目标运动轨迹如图6所示。巷道宽度为4m。目标运动出发点为(0.46),初始速度为vx=1m/s、vy=0m/s,其加速度跳变过程见表1。
考虑到传感器节点的所发射的无线信号在井下复杂环境受到的影响,本文设置目标运动巷道两侧的传感器位置节点间隔为20m,既能保证节点有效的感知通信,又能避免节点密度过大不但浪费资源,还有可能造成信息冗余影响跟踪结果,除此之外,为保证网络的连通度,以防目标丢失,在每个拐角均铺放一个节点,因此布放的总传感器节点为26个,每个传感器节点已知自己的序号和位置坐标。跟踪过程中采用2.2节提出的分布式分簇算法维持跟踪,改进的LOF算法处理野值点,交互多模算法做目标状态估计。关于传感器的能量模型参数参考文献[12]设置为:跟踪开始前,每个位置节点具有相同的初始能量5J,发送和接受1bit数据消耗的能量为50nJ/bit,融合1bit数据消耗的能量为5nJ/bit,放大系数εfs和εamp分别为10pJ/bit、0.0013pJ/bit,控制包长度为200bit,数据包长度为2000bit。
图6 井下巷道目标运动轨迹图
表1 目标运动加速度跳变过程
4.2 仿真结果分析
根据以上实验分别得到了WSN集中式跟踪算法与本文分布式分簇算法完成整个相同跟踪过程后各节点剩余能量对比如图7所示;改进后的LOF算法与LOF 算法对定位结果的异常点检测对比(均取k=8)如图8所示;未采用检测算法与LOF算法和改进LOF算法对定位结果处理后的跟踪误差对比如图9所示。
图7 节点剩余能量对比图
图8 野值点检测结果图
图9 跟踪位置估计均方误差对比图
由图7可以直观看到布放的26个位置节点的剩余能量,在集中式算法中第14个节点为汇聚节点,汇聚节点出现巨大能量损耗,剩余能量远小于其他位置节点,随着节点的剩余能量不断减少使得整个网络陷入瘫痪,而本文所采用的分簇算法中每个位置节点均有可能被选为簇头节点,虽然节点的剩余能量较集中式算法少,但节点损耗的能量较平均,这在整个网络的生命周期内使每个节点利用最大化。图8给出了整个跟踪过程的井下位置节点、目标轨迹点、定位点以及野值点检测结果,结合图例可以看出距巷道很远的定位点几乎同时能被两种算法检测出来,但是目标出发点周围的两个野值点由于k值的限定LOF算法无法检测,一些相对远离巷道的野值点LOF算法也没有检测到,因此改进后的LOF算法检测野值点的效果更佳,并且由图9可以看到经节点辅助LOF算法处理后,跟踪效果相对初始LOF处理后和未经处理的跟踪误差要更小。
5 结 论
本文利用分布式分簇算法维持在井下特殊巷道环境下WSN的目标跟踪,并利用动态簇节点辅助LOF异常点检测算法提高定位精度,最后结合IMM滤波算法实现最终的目标状态估计,实现了对目标的稳健跟踪,有效节约、平衡了网络能耗,提高了跟踪精度。