刘瑞男 刘建国 付天舒

摘 要:在开发监控软件前,需要验证图像处理算法的正确行和可行性,但直接调用微机和摄像设备的底层硬件比较复杂。这里介绍一种通过Matlab软件设计USB接口的视频监控方案。经实验验证,这种方法简单易行,非常适合做监控与图像处理算法的前期验证工作。

关键词:Matlab;USB接口;视频监控;图形用户界面

1 视频监控技术

视频监控是保障社会生活与生产安全的重要方法,通常视频监控由监视设备、传输设备、存储单元、控制单元和显示设备设备组成。按技术发展分类,可分为:第一代模拟监控系统、第二代数字化硬盘监控系统和第三代网络远程监控系统。模拟监控系统结构复杂、设备繁多,特别是在需要远距离传输时,架设成本高。第二代数字化硬盘监控系统可以通过现有的电信通信网络传输数据,解决了远距离传输问题,但实时性差、延时长、多路实时监控困难。第三代网络远程监控系统利用图像处理技术、嵌入式技术和宽带网络把监控中心和监控终端目标融合为一个整体,实现了监控的远程化、实时化和集成化。

由于第三代网络远程监控系统的兴起,视频监控的开发方案也变得多样化、平台化。以前开发视频监控系统的开发难度较高,其是纯硬件开发或利用调用硬件能力强的少量上位机开发软件开发,如VC++等,硬件接口包括复合视频接口、二分量视频接口、色差分量视频接口、VGA接口和DVI接口。现在可以在PC平台上利用通用的USB接口进行视频通信,开发软件也有更多的选择,这样就降低了开发和调试工作的难度,更有利于家用和小型监控系统的开发。这里就介绍一种基于Matlab软件的USB接口视频监控设计方案。

2 USB接口的驱动

USB接口的全称是通用串行总线,是一种计算机通信的串口总线标准,具有的热拔插、体积小、标准统一、可串接的优点。Matlab软件可以对USB接口进行调用,是一款基于矩阵计算的数学软件,但其具有强大的、多样的开发工具箱,利用工具箱可以方便的进行科学研究和工程设计。其也可以设计GUI界面的应用程序,并可以编译成可执行文件,在通用的PC平台上使用。Matlab工具箱中提供了调用USB摄像头的命令,如表1所示:

在驱动USB摄像头之前必须了解它的相关参数,可以通过产品说明书查阅,也可以利用Matlab提供的imaqhwinfo()函数查询摄像头参数,包括图片的默认格式、设备名称、设备号码、图像目标的构建方式、所有可支持的图像格式和图像分辨率等等。一般情况下,后面就是视频图像的预览、采集和保存这三个过程。Videoinput(a1,a2,a3)用于建立一个新的视频对象,参数a1是适配器的名称,a2是设备号码,a3是需要采集的视频格式。利用preview(b1,b2)可以在PC机打开图像的预览窗口,参数b1是前面建立的视频对象,参数b2是预览窗口中对象的句柄。利用imwrite(c1,c2,c3)命令可以保存矩阵格式的视频图像在PC机中,参数c1是待保存的图像矩阵,参数c2是保存的文件名,c3是图像文件格式。

3 系统设计与实验调试

首先要组建硬件平台,然后在这个平台的基础上开发监控软件,在进行实验测试,进而完善程序。基础的硬件平台很容易组建,只需要一个免驱的USB摄像头和一台PC机。图1是系统结构图。首先要驱动USB摄像头,把采集的视频信息通过USB接口发送到PC机,PC机进行视频信号的预处理,再通过图像处理算法判断是否达到报警要求,达到报警要求时进行报警。

程序设计要考虑到环境的背景变化因素。当环境背景有微弱的明暗变化时,画面的所有像素亮度值之和就会改变很大,所以要有算法来去除背景环境的变化因素,去除背景环境的变化因素的方法是当前计算的RGB像素的变化值之和小于某一值时,忽略这个像素的RGB亮度变化值。在系统运行开始时取一帧图像作为标准帧图像,这一帧标准帧图像用于进行亮度阈值比较。在程序设计时遇到两个难点,分别是摄像头分辨率的选取程序和音频报警程序,这里分别给出关键的程序代码并解释。在摄像头分辨率选取程序中用的控件是下拉列表框控件,控件名是popupmenu3,首先用get命令得到popupmenu3控件的所有列表,再用get命令得到popupmenu3控件当前备选的字符的索引号val1,通过索引号val1把当前选的的字符赋给字符串变量m。在使用videoinput命令驱动输入的视频设备时使用字符串变量m做为视频设备的分辨率参数。在播放报警音频时,首先用wavread命令导入报警声音文件,然后用audioplayer命令生成生成音频数据,再用play命令按照刚才生成的音频数据的固有格式播放报警音频。

创建Matlab的GUI程序,加入所需控件,写入程序代码后,生成视频监控程序。软件界面如图2所示,其中分辨率下拉列表框可以选择摄像头支持的分辨率,整体阈值参数可以调整报警的灵敏度,整体阈值参数越小,灵敏度越高,单像素像素参数可以调整背景光的影响程度,单像素像素参数越大,越不容易受到背景光的影响。

在实验时发现系统刚启动时由于成像设备有一个亮度偏低的初始状态,不能把这一时期的某一帧图像作为标准帧。通过实验发现在40帧以后的图像比较稳定,所以可以选择40帧以后的一帧图像作为标准帧进行阈值比较。通过实验发现单像素参数大于20时,对背景光的抗干扰性比较好,但这一数值也不宜大于50,过大后会影响整体阈值参数的比较结果。

4 结束语

通过实验可以看出Matlab的软件工具箱可以非常方便地驱动usb接口摄像头,也可以驱动声卡发出设定的报警声音。利用其图形用户界面设计功能进行监控软件的开发简单易行。这种设计方案可以绕过摄像头和微机的底层硬件驱动工作,在真正开发监控系统之前,非常适合做监控与图像处理算法的前期验证工作。

参考文献

[1]李洪.城域视频监控系统事务中心平台软件设计[D].杭州:浙江大学,2014.

[2]周灿,余仲秋,张晖.畸变校正与帧差法相结合的运动目标检测[J].光学技术,2014(6).

[3]钟彬.视频监控系统及智能视频监控技术分析[J].电子技术与软件工程,2014(23).

[4]万宇平,罗晓琴,蒋金峰.微光探测装置自成暗室设计开发[J].光学仪器,2014(5).

[5]赵雨境,刘海英.智能家居视频监控系统[J].物联网技术,2015(1).