摘 要:本系统通过VB6.0的编程环境进行开发,应用了AVcapture控件对视频进行捕获,采集到图像后采用背景做差的办法得到差值图像,后续过程中对差值图像做适当的处理即可从背景中将运动的物体检测出来并做出报警和相关动作。
关键词:VB;视频;背景差法
1 引言
在工业生产和居民生活中监控系统一直是一种必不可少的安全技术,而基于视频的监控系统更是在近些年的发展中展现出了其独特的魅力,其应用也越来越广泛。所谓视频监控系统就是对视频图像进行采集、处理和分析,从而能够发现监控区域中的异常情况。如果一旦发生了异常情况,则整个监控系统就要产生一系列的动作:报警、录像等等。本系统就是在VB环境下开发的基于视频图像处理的报警监控系统。
2 视频的捕获
AVCapture控件是一个基于Microsoft的DirectShow技术开发的音视频讯号捕捉ActiveX控件,它可以帮助那些准备开发音/视频捕捉相关软件的程序员快速获取和处理音/视频数据。 AVCapture在DirectX8的支持下可以实现照相、抓图、字幕、视频翻转/镜像等操作。AVCapture控件操作简单,比起调用系统API函数更加简单方便而且在处理速度上也基本满足了视频处的要求,因此本项目采用AVCapture控件来进行视频捕获。
表1 AVcapture控件重要属性与方法
3 视频图像的处理
(1) 背景的提取
本项目的图像处理采用背景差法,所以背景的选取是一个重要环节。目前背景的选取主要有两种方法:1、人工的背景选取2、动态的背景更新选取。方法一中需要在人观察到没有前景物体时获得背景图像。这种背景提取方法需要的条件更高,增加了人力物力的需求,在更加一般的环境中往往很难找到没有前景物体的时刻,因此该方法在实际的应用中受到了一定的限制。但是该方法的一个重要的优点是算法简单,节省软件资源。方法二中的背景选取是根据前景物体的变化逐渐进行变化,具有自适应性,例如Surendra背景更新算法和高斯背景更新算法等等。该种方法的背景选取更贴近实际,但是缺点是算法复杂,耗费软件资源。综合考虑各方面的因素,本系统中采用人工的背景选取。
(2) 图像的处理
图像处理的目标就是要将当前帧图像中不同于背景图像的物体提取出来,一般的情况下经验表明前景的运动目标的灰度与背景的灰度值之间有很大的差异,而运动物体本身的灰度值不会有很大差异,因此当前帧图像的灰度值的获取将是图像处理环节的关键。但是在VB中picture控件中的point属性给出的是颜色值,颜色值是一个4字节的整数,最高的字节是0,而低3个字节,从最低字节向左到第三个字节,分别定义了红、绿、蓝3种颜色的值。红绿蓝3种成分都是用0—255之间的数表示。颜色值不能直接用于比较运算,因为这相当于对3原色的值分别进行了加权,蓝色值的权最高,红色值的权最低,这不能正确的反映颜色的深浅。因此将颜色值分离为R、G、B三个值,再由RGB三个值去计算出相应的灰度值。程序代码如下:color = Picture1.Point(x, y)
r = color 65536
g = (color Mod 65536) 256
b = color Mod 256
gray = r * 0.3 + g * 0.59 + b * 0.11
获取了图像像素的灰度值之后,可以将当前帧的每个像素与相应位置的原背景帧中的像素进行比较,实现函数如下:
其中x为对应位置两个像素灰度值的差,T为指定的阀值,这样做差之后就可以得到一个差值图像(二值图像)。
4 报警的处理
由于获取视频资源的环境中的各种因素的影响,在以上得到的差值图像结果中,除了要检测到的运动物体之外,还有很多其他微小的噪声,检测到的运动物体本身的边缘也都是参差不齐的,甚至是物体的内部都会有碎化的现象。这对于报警的处理十分不利,例如背景中的树枝摇动现象或者摄像头自身的振动都会使得当前帧比起背景帧发生一定的变化,而此时是不要求报警器报警的。针对这种缺陷,需要对获得前景和背景的差分图像作一些处理,比如用形态学的方法对差分图像进行处理,以此来减小噪声的影响。对于处理后的图像,如果连通域的面积大到一定的程度才会进行报警动作,否则视为扰动。
图1 监控系统实例
5 结论
本系统能够在有运动物体入侵的情况下可靠的提取出运动物体的模型,对于摄像头自身的振动、背景的扰动等带来的有可能导致虚假报警的影响有很好的抑制作用。基于确定背景和灰度值的运动目标检测方法,计算量小,容易实现;基于连通域面积的报警算法能够有效地滤除背景中的扰动,检测结果准确。系统背景的实时更新问题需要在后续的工作中进一步的完善。
参考文献:
[1] 杨俊红,张强,周兵.视频序列中的运动目标检测[J].微计算机信息,2007.
[2] 元莱滨等编著Visual Basic程序设计(第2版)(M).清华大学出版社,2008.