一、引言
近几年来随着银行营业网点对其安全性保障需求的增加,视频监控系统作为安保的一个重要组成部分在系统内部已被广泛使用。但现有的银行视频监控系统大多是用于图像的采集以便用于案发后的取证,而不能起到预防、预警的实时智能化图像处理的作用。随着计算机视觉、视频智能识别等技术的高速发展,将人体特征识别技术融入到视频监控系统中,使其实现智能视频图像处理监控变为可能。因此,借助于Opencv软件开发平台,本文设计了一个基于OpenCV的银行智能视频图象处理监控系统,本系统通过对计算机视觉与模式识别的综合运用有效的实现了银行营业场所人员异常行为的分析与报警,从而极大的提高了所监控区域内的安全性,为银行营业场所的安全运行提供了强有力的保障。
二、Opencv简介
开放源代码的计算机视觉类库OpenCv(IntelOpenSourceComputerVisionLibrary)由英特尔公司位于俄罗斯的研究实验室所开发[4],它是由一些C函数和C++类所组成的库,用来实现一些常用的图像处理及计算机视觉算法。OpenCv与英特尔公司所开发的另一图像处理库IPL(IntelImageProcessingLibrary)兼容,IPL用于实现对数字图像的一些低级处理,而OpenCv则主要用于对图像进行一些高级处理[5],比如说特征检测与跟踪、运动分析、目标分割与识别以及3D重建等。由于OpenCv的源代码是完全开放的,而且源代码的编写简洁而又高效,特别是其中大部分的函数都已经过汇编最优化,所以近年来在国外的图像处理相关领域中被广泛地使用,成为一种流行的图像处理软件。
与现有的计算机视觉库相比较OpenCv具有以下优点:OpenCv是一个包含了超过300个C函数的应用编程接口,它不依赖于外部库,既可以独立运行,也可在运行时使用其它外部库;OpenCv中所有的算法都是基于封装于IPL的具有很高灵活性的动态数据结构,而且其中有一半以上的函数在设计及汇编时被Intel公司针对其所生产的处理器优化所以使它具有了高效性;提供了一些与诸如EiC、Ch、MATLAB等其它语言或环境的接口,这些接口在其安装完之后位于安装目录opencv/interfaces下;OpenCv的源代码完全是开放,开发者可以对源代码进行修改,将自己设计的新类添加到库中,只要设计符合规范,自己的代码也可以被别人广泛使用。基于以上各点使得Opencv具有了极大的活力和开发潜力。
三、智能视频图象处理监控系统的建立
对于本智能视频图象处理监控系统而言,主要由硬件和软件两大部分构成,其中硬件部份由摄像机、视频采集卡和计算机组成。摄像机负责图像采集,并传输给视频采集卡,视频采集卡对图像进行模数转换.再将数字图像送到计算机,计算机通过相关算法,得到人体运动信息,并交由软件进行分析处理。软件部分主要由行为检测和运动跟踪算法构成,它们是整个系统的中心环节,它将摄像机传送来的视频图像经过预处理、处理、后处理、分析,并得到最终处理结果。因此,可以看出在本系统的构造中后续视频处理算法的实现与处理是系统设计的关键之处。对于这一部分我们主要是通过Opencv软件开发平台并结合人体检测、运动跟踪及行为判断的相关算法来加以实现的。整个系统的流程图如图1所示。
图1系统流程图
(一)人体运动检测
人体运动检测的关键是背景图像的描述模型即背景模型,它是背景减法分割前景目标的基础。背景模型有单模态和多模态两种[6],前者在每个背景点上的颜色分布比较集中,可以用单个概率分布模型来描述;后者的分布则比较分散,需要多个分布模型来共同描述。本系统中的人体检测主要是利用背景更新算法来获得所需的背景图,再用当前帧减去背景图,取得人体区域,然后对图像进行二值化并滤波处理,最后利用二值图像分割技术定位人体图像区域。这里背景更新算法主要用于对图像的提取和更新。通过调用Opencv相关函数,我们就可以对背景建模并进行检测。
为了验证对图像提取和更新效果我们分别在早上和下午对窗外道路的同一位置的图像进行了提取与更新,得到的结果如图2和图3所示,从得到的结果中我们可以看出图像效果较好,达到了预期目的。
图3下午测试效果
相关专题: