监控系统设计思路(基于4G网络的监控系统设计)
摘 要: 提出了一种通用的基于4G网络视频监控系统的设计与实现方法,介绍了系统的软、硬件构成,重点研究了视频采集、视频解码、图像实时显示、存储和播放等关键视频技术,同时给出了Windows平台下基于OpenCV的播放器设计和基于MFC的软件界面设计的具体实现方法。与传统的监控系统相比,采用4G网络传输确保了视频的清晰度和流畅性,移动物体检测报警功能可防止监控人员错过重要信息,具有广阔的应用前景。
0 引言
自2013年12月4日中国移动获得中国国内第一个4G牌照以来,我国绝大部分城市的居民已经可以享受到LTE技术带来的便利。随着4G网络的普及和流量资费的不断降低,无线视频监控能够在特殊押运、资源监控、安防监控等众多领域为人们提供更好、更优质的服务[1-3]。本文所研究的内容正是利用目前最新的4G通信网络,实现远程视频监控和移动物体报警功能。与其他的无线监控系统相比,4G网络的高速数据传输能力确保了视频的清晰度和流畅性,移动物体检测报警功能可以防止监控人员因疲劳、暂离岗位等原因错过重要信息。除摄像头之外,用户也可根据需要外挂不同的传感设备,通过二次开发来满足自身需求。
1 系统总体设计
本系统基于现有的移动4G网络,实现对远程监控点的实时视频监控,主要由支持4G的监控终端和监控中心软件两部分组成。系统的整体结构框图如图1所示。监控终端通过摄像头采集现场图像,一方面在图像序列中检测是否有移动物体,另一方面将图像数据进行压缩处理后发送到监控中心。监控中心的上位机承担服务器和播放器的双重功能,软件接收到监控终端传来的视频流数据后,进行解码、显示、存储和播放等,同时根据接收到的报警信息触发报警功能。
信息采集端由低功耗、易安装的嵌入式系统完成,主要包括嵌入式处理器、电源模块、摄像头、存储设备、复位模块等。在硬件平台上搭载Linux嵌入式操作系统,既降低了软件的开发难度,也可以方便地扩展其他功能。
监控中心软件在Windows平台下设计完成,主要包括H.264视频流接收、解码、缓存、播放器的设计以及报警等功能。借助域名服务器、FFmpeg、OpenCV等开发工具自主设计视频播放软件,使得整个系统更加完善。具体的功能要求和应用场景使得应用软件能在最小的资源要求下为用户提供良好的监控画面,简洁的用户管理系统提升了系统的安全性和保密性[4-5]。
2 嵌入式监控设备设计
2.1 硬件平台设计
监控终端采用三星公司的S5PV210作为主处理器,该芯片运行主频可高达1 GHz,内部集成了PowerVR SGX540高性能图像引擎,能流畅地运行Android、Linux和WinCE等操作系统。4G模块为中兴公司生产的ME3760,该模块是一款基于MiniPCI Express接口的多模无线上网模块,支持TD-LTE/LTE-FDD/TD-SCDMA网络,可提供移动环境下的高速数据接入服务,4G环境下最大下行速率可达100 Mb/s。百万高清松翰SN9C291 OV9712网络监控专用摄像头组成了系统的视频采集模块。OV9712 CameraChip图像传感器体积小、工作电压低等特点,可以输出整帧、子采样、取窗口等方式的各种分辨率8 bit影像数据。USB2.0的摄像头控制器采用SN9C291,该芯片具有超强的图像信号处理能力,可以确保图像的质量和读取速度。此外,高性能的Motion-JPEG/H.264压缩技术可以满足不同带宽的需求、低电压工作状态并支持图像缩放非常适合嵌入式应用[6-7]。
2.2 嵌入式软件设计
嵌入式系统的软件设计主要包括驱动的移植和应用程序的设计两部分。驱动移植是根据Linux内核版本的不同更新或者替换原驱动中的功能函数。应用程序通过调用驱动程序实现对硬件设备的控制,这样的分层机制体现了软件、硬件分离的思想,大大提升了嵌入式应用的开发速度[8]。
本系统在开发Linux系统基础上,移植了ME3760通信模块和USB摄像头的驱动程序,完善了PPPOE拨号功能,并完成了相应的程序设计。驱动程序分层示意图如图2所示。
驱动移植是为应用程序服务的,应用程序通过接口访问、控制硬件设备来实现特定的功能,进而将各种功能函数有序地组合来完成系统功能的设计。视频监控系统嵌入式端的程序设计流程图如图3所示。
各部分具体功能如下:
(1)系统初始化将摄像头、网络模块等切换到工作状态,申请需要的内存空间,通过PPP拨号接入移动网络,并建立TCP连接;
(2)从摄像头读取原始图像,父进程将图像原始数据压缩编码后送给网络缓冲区,子进程通过背景差法分析监控画面中是否闯入了移动物体,并根据检测结果决定是否设置报警信息;
(3)网络传输将压缩后的视频数据分包后发送到移动网络,子进程将通过网络传输服务将报警信息发送给监控端。
以USB摄像头驱动的移植为例,首先将摄像头的产品ID添加到Linux UVC(USB Video Class)驱动的device_ID列表中,当设备接入开发板时系统通过USB读取设备信息。根据信息内容调用UVC驱动常见设备节点/dev/video,当查询到设备节点后就可以利用V4L2(Video 4 for Linux 2)驱动架构对摄像头进行操作了,V4L2操作函数如表1所示,在V4L2驱动中可以看到针对USB免驱摄像头可实现的基本操作。
3 监控软件设计
3.1 播放器功能实现
监控端软件的设计实现了在PC端从网络上接收视频数据并播放、存储等功能,在此基础上根据实际需要添加了用户管理和报警提示的功能,改善了系统的实际应用效果。
3.1.1 基于FFmpeg的视频流解码
Windows下视频流解码的方法有很多,开源的FFmpeg程序是较为常用的一种。FFmpeg是一个开源免费跨平台的视频和音频流方案,采用LGPL或GPL许可证,提供录制、转换以及流化音视频的完整解决方案,使用方便、可靠性高,在Windows平台下有广泛的应用。
FFmpeg包含了libavcodec库、libavformat库和ffmpeg转换程序等。FFmpeg编译成功后获得FFMPEG库,包含了编程需要的头文件,lib运行库和许多的DLL批处理命令。通过配置计算机的环境变量,就可以在Windows下使用FFmpeg库。
FFmpeg视频流解码流程可分为以下几个步骤:
(1)定义变量,申请内存空间为解码器运行做好准备工作;
(2)初始化解码器,注册编码器、复用器等;
(3)打开视频流文件,取出包含在文件中的流信息;
(4)找到视频流起始位置,并记录该流的编码信息;
(5)寻找匹配的视频流的解码器,系统只用到了 H.264的解码函数;
(6)进行解码并根据需要转换解码后的图片格式。
3.1.2 基于OpenCV的播放器设计
OpenCV是Inter公司的开源计算机视觉库,它是轻量级而且高效,它由一系列的C函数和少量的C 类构成,实现了图像处理和计算机视觉方面的很多通用算法[9-10]。OpenCV开发包提供了读取各种类型的图像文件、视频内容以及摄像机输入的功能。在屏幕上显示一张图像可以通过编写以下程序实现。
#include"highgui.h"
int main(int argc,char**argv)
{cvNamedWindow("Example",CV_WINDOW_AUTOSIZE);
CvCapture*capture=cvCreateFileCapture(argv[1]);
IplImage*frame;
while(1){
frame=cvQueryFrame(capture);
if(!frame)break;
cvShowImage("Example",frame);
char c=cvWaitKey(33);
if(c==27)break;}
cvReleaseCapture(&capture);
cvDestroyWindow("Example");}
3.2 软件界面设计
微软基础类库(Microsoft Foundation Classes,MFC)是一个微软公司提供的类库,以C 类的形式封装了Windows API,包含一个应用程序框架,以减少应用程序开发人员的工作量。本文用户登录界面采用基于对话框的设计模式,每个交互界面都是一个窗口,它们都继承自MFC的基础对话框类Cdialog并且都与一个相关的资源类绑定。该程序的主要功能是根据用户输入的用户名和密码信息,判定用户是否具有该系统的使用权限,系统的用户登录界面如图4所示。
视频监控界面的设计以播放器为主体内容,添加了系统LOGO和报警指示。报警指示以图片插件为基础,当收到报警信息后,黄、红两张图片顺序切换展现出指示灯闪烁的效果,并且通过PC音频设备播放警报声引起监控人员的注意。监控人员收到报警信息后可以通过停止按键终止此次报警,再进行相应的处理。监控系统的实际运行效果如图5所示。
4 结论
结合当前的监控技术和无线通信技术,实现了一套基于4G无线技术的视频监控系统的设计。通过装载了Linux系统的嵌入式终端和Windows桌面控制软件完成了视频监控、移动物体报警等功能,系统涵盖了无线监控系统的最新技术的实现,应用于实验研究或者教学中可以起到很好的启发作用,有很好的推广价值。在以后的研究过程中将进一步完善系统功能,提高系统的可扩展性。
参考文献
[1] 范泳文,官洪运,蒋静学,等.基于3G网络的智能交通视频监控系统[J].电视技术,2012,36(5):103-109.
[2] 董向华,杨勇.基于网络的视频监控系统的设计与实现[J].通信技术,2013,46(2):64-66.
[3] 江潮,苏祥芳,刘立海,等.基于网络的数字视频监控系统[J].武汉大学学报(自然科学版),2000,46(5):608-612.
[4] 毛剑飞,张杰,蒋莉,等.基于改进的H.264的视频监控系统[J].计算机系统应用,2014,23(4):84-90.
[5] 朱厉洪,周诠.基于编码的视频嵌入视频方法的研究[J].电子技术应用,2013,39(10):65-68.
[6] 李辉.基于RTP的H.264视频传输系统的设计与实现[D].吉林:吉林大学,2013.
[7] 蒋维,孟利民.3G网络H.264视频监控系统的设计和实现[J].杭州电子科技大学学报,2011,31(5):71-74.
[8] 王旭,张自嘉,王慧敏.基于ARM11的塔吊监控系统设计[J].电子技术应用,2013,39(10):29-32.
[9] 彭涛,赵丽萍.OpenCV在视频监控系统中的应用[J].通信与广播电视,2012(4):30-35.
[10] 岑银.基于OpenCV的智能视频监控设计[J].电子元器件应用,2010,12(7):47-48.
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com