基于嵌入式Web Server的煤矿视频监控系统研究
2014-09-18袁小平张明涛郑向刚
袁小平,鲍 捷,张明涛,郑向刚
(中国矿业大学信息与电气工程学院,江苏徐州 221008)
近来年,煤矿事故频发,国家越来越重视煤矿安全并加大了监管力度。因此,需要及时了解煤矿井下的情况,例如工作面、传送带、通风机和人员等相关的信息,只有进一步加强井下监控,才能保证在对短的时间内对煤矿井下突发的状况做出相应的补救措施,从而减少人员的伤亡和财产的损失。
本文提出一种基于嵌入式Web服务器的井下人员视频监控系统,相比传统的视频监控系统,本系统具有井下人员跟踪功能,并且结构简单,成本低,易于维护。系统采用服务器-浏览器模式,使系统的灵活性大大加强,只要用户PC机上有浏览器就能进行井下视频监控。
1 系统方案整体设计
本系统可分为视频采集、网络通信、Web服务器和客户端四大部分[1]。
视频采集部分主要由摄像头采集数据,由模拟信号转换为数字信号并进行数据压缩。
网络通信部分负责通过RTP/RTCP/RTSP协议将视频数据传送给客户端。
Web服务器部分负责与客户端之间建立连接,接受客户端的请求并最终将处理的结果反馈回客户端。
客户端部分提供登录服务器权限设置,以合法的身份验证成功后才能登陆。
系统结构如图1所示。
图1 系统结构总体框架
2 视频监控系统设计及实现
2.1 视频采集
Video4Linux是Linux专门针对视频设备提供的应用程序接口,是Linux对视频设备的内核级驱动[2]。它为Linux下的视频设备提供API接口,使用分层的方法提供了一套清晰的模型和一致的接口,使得应用程序可以使用一系列统一的API函数操作不同的视频设备,为视频系统的开发和维护提供方便。Linux中视频设备主要依赖Video4Linux的支持,在编译内核时选择Multimedia Devices下的 Video4Linux选项,就可以进行基于 Video4Linux的程序编写。
2.2 基于H.264的视频压缩
本文采用ITU-T/ISO公布的H.264视频压缩标准。采用H.264视频编码标准后,图像质量有很大程度的提高,这主要是H.264采用了Intra帧内预测编码技术。
H.264编码器采用的依然是变换和预测的混合编码法。输入的帧或场Fn以宏块为单位被编码器处理。首先在当前帧图像中取出带编码的宏块Fn,生成预测块P。其中,帧内模式下,P是由μF'n经帧间预测得到;帧间模式下,P由多个帧图像进行运动补偿得到。残差块Dn=Fn-P,Dn经过整数变换、量化后得到系数X。再对X进行重排序和熵编码,就完成一次宏块的编码过程。图2为H.264编码器结构。
图2 H.264编码器结构
2.3 流媒体网络传输
流媒体传输协议[3]主要包括实时传输协议(RTP)、实时传输控制协议(RTCP)、实时流协议(RTSP)。
RTP是用于Internet上针对多媒体数据流的一种传输协议,可以在一对一或者一对多的传输情况下工作,目的在于实现流同步和负载实时性的多媒体数据信息。当开始进行会话时会建立两个端口分别分配给RTP和RTCP。RTP并不能为顺序发送的数据包提供可靠的传送机制,也不能提供流量控制和阻塞控制,这些都需要RTCP协议提供。
RTCP传输控制协议作为RTP协议的一部分主要用于周期性的传送RTCP包,以便监视RTP传输的质量。在建立会话期间,RTCP会在整个会话期内周期性的发送控制报文完成网络的监听和交换会话用户信息等功能。
RTSP[4]是实时流协议,目的是控制多媒体数据流传输,具有VCR控制的所有功能,能够远程控制网络流媒体服务器。
2.4 嵌入式Web服务器
本文采用的是B/S(浏览器/服务器)架构,用户通过浏览器向服务器发送请求,Web服务器响应客户端的请求,建立连接后客户端可以通过浏览器进行实时监控。
嵌入式Web服务器是以TCP/IP协议栈为基础实现Web客户端和服务器之间的HTTP通信协议[5]。工作原理如图3所示。
嵌入式Web服务器主要完成以下工作:
1)完成初始化工作。包括创建socket套接字,设置环境变量,开始监听并等待客户端浏览器的连接请求。
2)建立连接。当Web服务器接收到来自客户端的请求时,会保存相关的请求信息。
图3 Web服务器工作原理
3)解析请求。在接到客户端的请求时,Web服务器会对其进行解析,比如表单信息、URL目标等,并作出相应的处理。
4)响应请求。对于不同的请求做出不同的处理。如果请求是静态Web,则读取相应文件后返回给Web客户端;如果是CGI页面,则运行CGI程序读取本地数据,最后返回给Web服务器。
2.5 改进的CamShift井下人员跟踪算法
2.5.1 CamShift算法
CamShift算法是MeanShift算法的扩展,是一种基于颜色特征匹配的跟踪算法。它解决了MeanShift算法由于不能自动更新目标模型致使核函数的窗口始终保持不变的问题。当目标大小发生变化时,尤其是非刚体目标,会导致目标跟踪丢失。
CamShift算法由反向投影、MeanShift算法和CamShift算法3部分构成[6]。具体实现过程如下:
1)初始化窗口的位置和大小。假设窗口区域的零阶矩为M00,水平方向和垂直方向的一阶矩为M10,M01
则质心(Xc,Yc)坐标为
2)计算反向投影。由于RGB模型受亮度的影响比较明显,故把RGB模型转化为HSV模型,并提取其中的Cr,Cb分量。根据得到的颜色直方图进行色彩概率统计。其中,P(x,y)代表在概率分布图像中像素点P(x,y)位置处的颜色概率分布值。
3)更新质心位置。通过MeanShift算法获得下一时刻图像的搜索窗口的位置和大小。其中,窗口的宽度S和长度L为
通过以上三步,不断迭代,直到质心的变化小于预先给定的阈值时,最终完成搜索过程。
2.5.2 改进的CamShift算法
但是当目标运动过快,会使得上一帧和当前帧中心位置相差很大,导致使用上一帧初始化窗口时,增加搜索运动目标的次数,甚至丢失跟踪目标。故通过Kalman滤波器计算前几帧的质心位置,预测出运动目标当前质心位置,并作为搜索目标的初始位置。这样不仅可以减少当前帧搜索目标的次数,而且即使目标具有较大速度时,也能准确进行跟踪。算法如下:
1)对初始帧图像i0中的搜索窗位置和大小进行初始化,使得窗口的大小稍大于运动目标;提取目标区域中目标的颜色直方图,计算颜色概率分布图像,并得到目标的质心坐标(xi,yi)。
5)更新模型。获取下一帧的运动目标图像,从第2)步重新开始,直到整个跟踪目标过程结束。
3 系统测试
在系统上电后,客户端用户在浏览器中输入相应的IP地址,进入Web服务器的权限验证界面,如图4所示。输入验证信息后,即可显示图5所示的煤矿井下监控画面。实验证明,每帧图像十几千字节左右,压缩比高;监控画面清晰流畅,能够很好地跟踪井下人员,具有很好的实时性。
图4 用户登录界面(截图)
图5 视频监控界面(截图)
4 总结
本文的嵌入式网络视频监控系统构建了Web视频服务器和监控前端,实现了分布式的管理方式并对井下人员进行跟踪。系统还具有远程访问、可扩展、灵活性强、成本低以及便于管理等特点,非常适合煤矿井下视频监控。但系统还需要在一些方面进一步完善,比如图像质量优化处理、无线传输、人员定位等,使得系统监控效果得到更大的提升。
:
[1]汤文兵.基于流媒体技术的煤矿视频监控系统的研究[J].工矿自动化,2006(6):59-62.
[2]张哲玉.基于ARM-Linux的视频监控系统设计与实现[D].北京:北京交通大学,2009.
[3]李世银,刘富强,刘洪彦.流媒体技术在电视监控系统中的应用[J].电视技术,2002,26(11):86-88.
[4]RFC2326,Real Time Streaming Protocol(RTSP)[S].1998.
[5]杨琨.基于嵌入式Web技术的电力线载波通信网络远程监控系统开发研究[D].上海:上海交通大学,2006.
[6]梁娟.基于CamShift和Kalman滤波的自动跟踪算法[J].微型机与应用,2011(30):28-31.