0 引言
随着Internet和个人计算机的普及, Internet用户已达到了空前的数量, 而对网络的利用也已经逐渐渗透到了各个行业, 现在已出现了如视频会议、电子商务等新型业务, 这些业务的推出大大方便了人们的生活, 提高了社会效率。同样, 视频监控技术发展也经历了模拟监控、数字监控阶段, 现在正在向大规模网络监控技术方向发展。
网络监控系统具有能够克服地域的限制、传输信号不易受干扰、网络带宽可复用的巨大优势, 因而较之传统监控模式具有更广阔的发展空间。为此, 本文结合相关技术, 提出了一种基于嵌入式Web服务器的远程监控系统方案, 该方案整合了门禁、红外监测、烟雾探测等外围设备, 并具有监控智慧化、存储设备成本低、网络资源占用率小、方便扩展等特点。
1 系统硬件设计
本系统以S3C2410为控制核心, 并基于嵌入式Linux操作系统来开发设计。nandflash设备采用cramfs文件系统, 上电后挂载yaffs文件系统来保存临时数据文件, 并提供有SD卡接口以用于保存视频文件。
本系统中的视频采集设备采用中芯微的ZC301芯片中的USB Camera.该芯片目前在市场上已被广泛应用, 它能够支持Video4linux.
Video4linux作为Linux系统中可支持影像设备的一组API, 只要配合适当的视频采集设备和驱动,就可以实现影像采集。
网络接入系统一般有两种设计方式, 一是通过外部扩展网络芯片RTL8019AS来实现, 另一种是通过外部扩展的GPRS模块(设计中, GPRS核心模块可采用wavecomQ2403A) 来实现。前者适合应用在检测地点固定的情况下, 而后一种方式既能提供事件触发短信发送功能, 又可以提供GPRS网络接入功能, 从而使得视频监控系统在汽车、野外现场等环境中也能够得到应用。
此外, 本系统还扩展了红外、烟雾测控设备、门禁系统, 并配备了报警装置, 其系统硬件设计的整体框图如图1所示。
图1 系统硬件设计整体框图
2 软件设计
本系统软件由后台进程和前台用户接口两部分组成。为了防止竞态的出现, 在软件实现时,用户CGI接口可利用systemV的邮箱通信机制向后台进程提出请求。后台开设有线程接收请求并对各设备功能模块进行统一调度。图2所示是本系统的软件整体结构框架。下面分别对系统的各个模块进行介绍。
图2 系统软件整体框架图
2.1 红外探测模块及烟雾检测模块
目前多数家居监控方案主要采用网络摄像头作为监控终端设备, 用户可通过Web浏览器随时随地的监控家中状况, 这给用户带来了巨大的便捷。但是, 由于它连续不间断的监控, 缺点也是显而易见。首先是对存储设备容量有巨大的要求, 由于被迫记录了大量的非必要视频, 存储空间被严重浪费。面对这个问题, 智能化成为对数字视频监控系统的又一个主要要求。本文提出的方案是一种基于事件触发的机制, 系统可以实现智能控制并只保存发生异常时的视频文件。这种设计能有效节省系统存储开支、灵活控制监控设备, 为用户提供很大方便。在基于事件触发机制的方案设计中, 主要有针对软、硬件的两种设计方向。
其一是软件主导的触发方案, 这种方式可以参考motion开源软件项目的设计思路, 其原理是对采集到的jpeg图片进行比对, 当差异超过规定阈值则触发相应动作。motion是一个运行在Linux操作系统环境下的应用软件, 它最大的特点就是能够探测采集到画面有效部分的变化, 也就是说, 能够监测到运动。当画面有变化时, motion将以一定的频率采集jpeg文件, 并将其压缩为视频文件自动保存。
这种软件的实现机制依托实时的数据分析,对系统的处理和运算能力要求较高, 因此, 在实际使用中会有一些限制, 但是, 随着处理器运算能力的提高, 作为监控系统的智能化发展方向,将会有很好的发展前景。
其二是硬件主导的触发方案, 本设计使用的便是这种方式。本系统采用红外传感器来探测异常, 同时整合了烟雾传感器来监控火灾, 当监控范围内出现异常时便触发中断, 并由中断处理程序启动视频采集和火灾报警等功能。采集到的视频和资料将保存在外部存储设备上。而门禁系统中的报警开关, 则可在用户刷卡回到家中后, 自动关闭监控功能。
2.2 数字压缩单元
本系统采用MPEG-4视频编码器来对视频图像进行压缩编码, 并利用FFmpeg视频处理工具来实现。H.264算法具有很高的编码效率, 在相同的重建图像质量下, 能够比H.263节约50%左右的码率。H.264的码流结构网络适应性强, 同时增加了差错恢复能力, 能够很好地适应IP和无线网络。可以说, H.264是目前压缩率最高的视频压缩标准, 并已在数字监控系统中得到应用。
本系统的设计主要是针对家居监控应用, 家庭中的大部分都采用ADSL等设备接入网络。由于会受到上行带宽的限制, 故导致在进行网络视频监控时视频信号传输不流畅, 影响监控效果。
针对这种情况, 通过对MPEG系列压缩算法的核心进行分析, 发现其采用了I帧、P帧和B帧的模式, 其中I帧是关键帧, P帧是前向预测帧, B帧是后向预测帧。译码器收到一个I帧, 可无条件立刻解码; 而当译码器收到P帧或B帧, 则必须先译码前面的P帧或I帧, 然后才能进行译码。这样, P帧对于I帧的依赖就形成了很大的延时。之后, 借鉴相关技术来对MPEG算法进行优化, 便可以通过对GOP (Group Of Picture) 这一值进行设置来缩短I帧产生的间隔。这样, 在以后的扩展中, 就可以利用带宽实时检测技术动态的设置GOP, 从而最大限度地利用带宽进行视频传输。
2.3 嵌入式web服务器模块
嵌入式Web系统提供有一种经济实用的互联网嵌入式接入方案, 故可为管理、控制和监测多种设备提供一个很好的途径。由于嵌入式设备中的资源有限, 只能选择轻量级的Web Server (如:thttpd、boa等), 考虑到应用的广泛性, 本系统也选择了boa服务器。作为与用户交互的主要方式,Web page力求简洁, 并可提供很多的功能接口。
这些功能接口基本可以分为两种类型, 一种是触发动作功能, 主要利用button触发实现现场图片的采集等动作的操作。另一种是文件交互功能,这种功能的实现相对比较复杂, 它不只需要button触发, 还需要一些文本域作为用户配置的传递机制。动态Web交互功能主要通过form窗体来实现, 当用户点击功能接口, 浏览器将窗体内容通过http协议传输给服务器后, 服务器再根据form中的action字段来调用相应的CGI文件。在经过CGI的一系列URL解析动作后, 即可得到对应参数, 系统根据得到的参数调用相应的功能函数,最终实现用户对动态页面的操作功能。
本系统在文件交互功能Web页设计中采用了iframe嵌入CGI文件的方式, CGI代码同时担负读写文件和页面显示两个功能。这种实现方式有时会遇到iframe高度自适应问题, 系统如果禁止scrolling (下拉列表) 功能, 那么, iframe的高度是不能变化的, 需要预先设置。而实际情况是CGI将要显示的高度往往是不确定的, 系统无法预知所要显示的数据的长度或表格行数。为此,本系统使用javascript脚本来在客户端进行调节,并通过在CGI代码中加入如下代码来实现iframe高度的自动调节:
onload=" this.height=0 ;
var fdh = ( this.Document ?
this.Document.body.scrollHeight:this.content-
Document.body.offsetHeight ) ;
this.height=fdh"
在iframe子页面中实现对父页面刷新功能时,可使用如下的javascript代码来完成:
<script language =javascript >window.parent.location.href=\" /Video_Processor.html\" ;</script>
2.4 文件系统
根据需保存文件的类型, 本系统提供有两种文件系统, 其中不会被修改的文件使用cramfs文件系统进行保存, 而将临时数据保存在yaffs文件系统中。用于与用户交互的文件类型主要有三种, 分别为配置文件、实时数据文件以及临时文件。配置文件主要进行系统设置, 包括常温范围、短信发送对方手机号码等配置信息; 实时数据文件中包括实时采集到的烟雾信息和视频信息等; 临时文件则用于一些需要临时存放在系统中的文件。另外, 系统上电后需要检测并挂载外部大容量存储设备, 如SD卡或U盘等, 以用于存放历史数据文件, 实际操作时,用户可以通过网页来配置当前需要采用哪种外围存储设备以及存储容量等相关信息。
3 结束语
本文介绍的系统可为用户提供良好的用户接口。它结合事件驱动机制, 能够让用户在节约大量存储成本的同时, 在更大范围内更灵活的得到监控信息, 并具有很好的实用性和扩展性。