基于无线传感网络的视频监控系统设计与实现(一)
扫描二维码
随时随地手机看文章
摘要:针对传统的视频监控系统存在监控盲区、工作效率低等问题,本文基于无线传感网络定位技术,设计了一个人群异常活动视频监控系统。本文首先依据无线信号接收强度指示(RSSI)方法,通过实验获取到接收信号强度指示和接收距离的函数关系,并通过曲线拟合技术获取被监视人员的运动轨迹,然后利用滤波技术过滤轨迹噪声数据。其次,提出了非安全域的设计思路,系统若发现被监控人员出现在非安全域,则自动触发报警并对现场进行录像。最后,设计并实现了一个原型系统,包括底层传感器节点硬件编程、中间层消息处理和上层数据处理等模块。实验结果表明,该系统能够对人员的活动位置进行较精确的定位,当出现异常活动时,自动触发报警。
0 引言
视频监控系统在各行业重点部门或重要场所进行实时监控的过程中发挥着重要的作用。
管理部门可通过其获取图像或声音等有效信息,并对突发性异常事件的过程进行实时监视和记录,以帮助现场取证和及时布置警力处理案件。
随着互联网的普及、计算机、图像处理、传输技术的飞速发展, 视频监控技术也有长足的发展。高智能、高效率、高安全性的视频监控系统已经成为国内外发展的必然趋势。
目前,针对视频监控系统的研究主要集中在数据传输和终端显示上。文献利用GPRS对公共照明视频监控系统捕获到的数据进行传输并在终端进行显示。文献设计了一种具有自组织跳转数据传输功能的无线监控系统。文献提出了一种基于ZigBee 无线通信技术的设备监控系统。然而现有视频监控系统的终端仅依靠工作人员频繁切换监控画面对现场进行监控,这不仅降低了监控系统的工作效率,而且使未被切换到的画面成为监控盲区,此外,现有监控系统很少具备自动报警功能,这也是视频监控系统需要重点研究的方向。
本文基于无线传感网络定位技术,设计一个人群异常活动视频监控系统。该系统能够对人员的活动位置进行较精确的定位,当出现异常活动时,自动触发报警功能,系统工作人员只需要在接到报警信息后处理现场,从而提高系统的工作效率。本文从系统关键技术与难点问题入手,首先针对接收信号强度指示和距离的理想状态关系模型在实际应用中存在的问题,通过设计实验,获取大量数据,并对其采用曲线拟合技术得到接收信号强度指示和距离的关系。然后针对传感器节点位置信息因受节点供电不稳定等因素影响而产生噪声数据的问题,设计了一种基于期望值和阈值的滤波技术过滤噪声数据。其次,提出了非安全域的设计思路,系统若发现被监控人员出现在非安全域,则自动触发报警。最后,设计并实现了一个原型系统,包括底层传感器节点硬件编程、中间层消息处理和上层数据处理等模块。
1 系统关键技术与难点问题
1.1 获取 RSSI 和距离值的对应关系
接收信号强度指示(RSSI,Received Signal STrength Indicator)通过信号在传播过程中的衰减来估计节点之间的距离[8]。由于信号在传播过程中信号强度会降低,根据接收机接收到的信号强度,可以估计发射机的距离。无线信道的数学模型如式(1)。
式(1)中,d 是发射机和接收机之间的距离, d0 是参考距离; np 是信道衰减指数;一般取值2-4; p0 是距离发射机d 0 处的信号强度;P(d)是距离发射机d 处的信号强度; p0 可以通过经验得出,或者从硬件规范定义得到。由此方程可以通过信号强度P(d)求出d 。
然而,信道因受到多径衰减(Multi-path Fading)和非视距阻挡(NON-of-Sight Blockage)的影响而具有时变性,在特定环境中,严重偏离上述模型,通过接收到的信号强度估计出的距离d 有很大的误差。
因此,理想状态下RSSI 值和距离的关系不适用本系统。本文必须找到RSSI 值和距离在实验环境下的函数关系,这是本文所作工作的一个重点也是难点。通过研究分析,本文设计了获取RSSI 和距离在实验环境下关系的实验,实验方案如图1 所示。
图1 RSSI 和距离关系获取实验方案
距离为d 时,三个testNode 节点分别向RevNode 发送40 个数据包,RecvNode 节点提取出接收到的120 个数据包中的RSSI 值并求其平均值,如此实验重复10 次,再对所有平均值求均值,如图2 所示。
图2 距离为1米时2号锚节点的RSSI值
由此易知,每个距离d 就对应着一个RSSI 均值,对所有数据汇总后,得到如下RSSI和距离之间的关系如图3 所示。
图3 距离和RSSI之间的关系
1.2 曲线拟合
本文利用曲线拟合中的指数拟合和多项式拟合的办法找函数关系。通过一系列实验并计较得到三次多项式拟合效果最好。拟合得到的函数表达式如式2 所示。
图4 所示为三次多项式与指数拟合得到的距离与RSSI 关系对比图,从图中可以明显看出,利用三次多项式拟合出来的曲线和实际情况更吻合。
图4 三次多项式与指数拟合得到的距离与RSSI 关系对比
1.3 校正处理
无线传感器节点因受环境因素较大,故在用接收到的RSSI 值进行计算前因先进行RSSI值校正处理。首先,设定RSSI 取值的最小和最大临界值,当实验测量到的RSSI 值远远小于最小临界值则令其等于最小临界值,或者RSSI 远远大于最大临界值时则令其等于最大临界值,如果RSSI 和临界值相差不大,则根据从实验过程中得到的经验对该RSSI 值进行适当校正,使该RSSI 值回到临界区域内部。
1.4 滤波
第一步:设定RSSI 的期望值,如式(3)式所示:
其中, R 0 是预期的RSSI 值,R 是实际得到的RSSI 值, R 1 是前一次得到的RSSI 值,R2是在此之前的第二次得到的RSSI 值,α、β、γ 分别是R, R1 , R2 在期望值中所占的权重,分别将其设置为0.6,0.25,0.15。
第二步:设定阈值,阈值是在大量实验基础上进行总结再设定的,该系统中设为0.5。
第三步:除噪,若期望值0 R 和当前值R 差的绝对值小于设定的阈值,就让令上一次的值作为当前值,R= 1 R ,同时2 R = 1 R;若期望值和当前值差的绝对值已经大于阈值,则令期望值作为当前值,R= R 0 ,同时, R2 = R 1 , R 1 = R 0 ;实验结果表明:通过以上滤波处理,不仅减小了节点不稳定带来的轨迹震荡,节点的轨迹变化曲线更加趋于平缓。
1.5 串口数据提取
在串口通信协议中一个串口通信数据帧的格式如图5所示:
图5 串口通信数据帧的格式
Sync 是一个数据帧的起始和结束标志符,用0x7E 来表示该标志符。紧跟在起始Sync后面的是Type标志符。CRC用来表示冗余校验码,其中,参与冗余校验的字段为TOS MsgHeader 和Payload,这两个字段存放的是网关收到的一个传感器节点发出的完整的路由包。
最后面的一个Sync 用来表示帧的结束。
在实验过程中,串口接收到的原始数据如图6 所示:
图6 串口原始数据
通过对上表中数据分析得知:表中第一条数据中0x7E 表示一个数据帧的起始,0x42 表示一个数据帧的Type,不要求接收方对发送方回复一个确认包。从第二行第五个数据开始时对上层应用有用的字段,在进行上层开发时,可以从该处提取出串口中的数据,其中0x0100,表示数据包的ID 号,紧跟其之后的是两个字节0x3A00 表示接收到的数据包的序列号,接下来的0x 0200 表示锚节点的ID 号为2,0x0500 表示Move 节点的ID 号为5,0x0800 表示从2 号锚节点获取到的5 号Move 节点的RSSI 值为8, 接下来的0x 0300 表示锚节点的ID号为3,0x0500 表示Move 节点的ID 号为5,0x0C00 表示从3 号锚节点获取到的5 号Move节点的RSSI 值为0x0C, 接下来的0x 0400 表示锚节点的ID 号为4,0x0500 表示Move 节点的ID 号为5,0xF800 表示从4 号锚节点获取到的5号Move节点的RSSI值为0Xf8,接下来的F207FE 为CRC 字段,最后一个7E 为数据帧的结束字段。通过以上分析,可以快速从串口通信数据中提取所需的字段,为上层开发奠定基础。
2 系统设计
2.1 系统架构
系统由底层(硬件层),中间层(串口消息解析层),上层(数据处理层)系统的构架如图7所示。
图7 系统架构
2.2 底层模块设计
底层模块通过Move 节点发送数据到Node1,Node2,Node3 节点,Node1,Node2,Node3节点分别从Move 节点中取出RSSI 值并将这些值连同自身的SOURECE_ADDRESS 值封装到数据字段并通过Forward 节点转发给Sink 无线网关节点。底层模块结构如图8 所示:
图8底层结构2.3 中间层模块设计
该层主要负责接收来自底层的串口消息,该层的重点就是对串口数据包的内容进行解析,获取数据包中节点的RSSI 值、锚节点ID 号等信息,并将其交给上层进行处理。
2.4 上层模块设计
本文将该基于无线传感网络的人群异常活动视频监控系统的上层模块分为以下六个子模块:
串口配置模块:该模块主要对串口的各项参数进行配置,在不同的网关连接上PC 机时配置不同的串口,使该系统的可扩展性增强。
实时监控模块:该模块主要负责将无线传感网络中移动节点的轨迹信息实时显示在监控画面当中;用户通过点击显示样例轨迹了解轨迹的概念;通过清除轨迹操作清除屏幕上的所有轨迹信息;此外,用户可以通过调整显示刷新周期,对轨迹数据的动态刷新周期进行设置;如果刷新周期设置过长,则通过手动刷新按钮刷新轨迹以实时观察移动节点的估计信息。
历史回放模块:该模块主要根据用户的设置回放移动节点的历史轨迹。用户根据自己的要求回放具体时间移动节点的轨迹信息,如回放一天、一天的一段时间;几天、几天里面的一段时间或者一个精确时间的被监控人员的轨迹信息。此外,该模块提供设置回放周期功能,用户根据自己的需求设置每次回放的移动节点位置信息的个数和回放周期,系统将反馈给用户查询的时间段内数据库中所有记录的条数,用户通过系统能清楚地知道需要回放的记录条数以及待回放的记录条数。
历史数据查询模块:该模块主要负责历史数据的查询功能,模块包括人员位置/轨迹一般查询、人员位置/轨迹高级查询、历史警报信息查询三大功能。其中,人员位置/轨迹高级查询,主要根据用户输入的时间段信息查询人员的轨迹信息,用户根据需求查询一天、一天的一段时间、几天、几天的一段时间或者是一个精确时刻的轨迹信息。此外,该部分还提供了一些其他功能,如用户在显示轨迹区域单击一个点,该单击点的在绘图区域的坐标、该坐标对应的实际区域中的坐标及查询人员在该实际坐标出现的次数都将被列出来显示。历史数据查询模块的另外一个重要功能就是历史警报信息的查询功能。该功能允许用户查看所有的警报信息,即被监测人员所出现的所有非安全区域的信息。此外,系统提供用户根据需要删除部分选定的警报信息的功能。
非安全域设置模块:该模块主要负责非安全域的设置。非安全域的正确设置对系统的自动报警功能及系统的可靠性起着极其重要的作用。所以只有拥有设置权限的用户才能进行非安全域的设置。如果被监控的人员出现在非安全区域,系统将触发警报。非安全域即定义一个非安全域的中心和非安全域的半径,所有处在该非安全域中的点将触发报警功能。该模块允许拥有权限的用户根据实际需要对非安全域进行修改,添加,删除和查询等操作。
人员信息指南模块:该模块主要实现了对历史数据的统计工作。用户根据需求查询指定区域内出现的时间,此外,该模块还提供查询指定时间内被监控人员出现区域的功能。在指定区域出现的时间查询窗体中,用户设置需查询的区域或者根据输入要查询的时间段,查询结果将显示所有查询到的记录条数,此外,该部分还提供了其他的一些功能,如用户可以获得被监控人员每个小时时段出现的次数以及每个小时时段在每天的24 小时中所占的比例,这样根据查询的结果用户很容易获取在指定区域被监控的人员出现的最频繁的时间。在指定时间内位置信息查询功能中,用户输入要查询的时间段,得到查询结果后,用户单击任意一条查询结果,就可获取该单击点对应时刻和对应地点被监控人员出现的次数。
报警并录制现场模块:报警并录制现场模块:该模块提供报警和对现场进行录像功能,系统在发现人员出现在非安全域时自动触发报警并对现场进行一段时间的录像操作。此外,系统还提供解除警报或结束现场录制的功能。