基于基于OpenCV的智能视频监控设计
的智能视频监控设计
采用智能视频分析技术的智能监控系统能够最大限度地减少人为干预,提高监控效率,减轻人的工作负担,并
可对动态场景视频中的目标物体进行检测、分离、跟踪与有效识别。文中介绍了opencv中的运动模板检测方
法,并给出了使用该检测方法来对运动目标进行检测、跟踪与智能判断的实验结果。
O 引言
智能
通过计算机开源视觉库(
1 0penCV简介
OpenCV是“Open Source Computer Vision Library”的简写,是Intel开源计算机视觉库。它由一系列C函数和少量的C++类构
成,是可实现图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括300多个C函数的、跨平台的中、高层API,它不
依赖与其它的外部库。Op-enCV对非商业应用和商业应用都是免费的;另外,OpenCV为Intel的IPP也提供了透明接口。这意
味着,如果有为特定处理器优化的IPP库,那么,OpenCV将在运行时自动加载这些库,以使函数性能达到最好。OpenCV的
优点是开放源代码,具有基于Intel处理器指令集开发的优化代码,统一的结构和功能定义,强大的图像和矩阵运算能力,以及
方便灵活的用户接口,同时支持MS-Windows和Linux平台。
最新的OpenCV库已经包含有大量的函数和例子,可用来处理计算机视觉领域中常见的问题,其中主要涉及到以下几个方面的
内容:
(1) Motion Analysis and Objection Tracking-运动分析和目标跟踪;
(2)Image Analysis-图像分析;
(3) StructuralA nalysis-结构分析;
(4)ObjectR ecognition-目标识别;
(5)3D Reconstruction-3D重建。
2 算法流程
运动模块检测算法的流程图如图1所示。该流程首先是获得当前帧与上一帧的差,接着对差图像进行二值化,以去掉超时影
响,更新运动历史图像,然后计算运动历史图像的梯度方向,并将整个运动分割为独立的运动部分,再用一个结构序列标记每
一个运动分割,最后计算选择区域的全局运动方向,从而获得运动目标的质心位置与运动方向。
这个算法基于的条件是运动目标相邻两帧之间在画面上存在的交集,此算法不用外推和相关分析以及轨迹后处理就可以清晰地
显示出目标的轨迹、速度与方向。用该算法基于运动目标检测运动目标前景图像的具体过程可描述如下:
◇存储检测出来的目标前景图像,并使过去的帧灰度递减:
◇在当前帧打上时间戳叠加存储到历史图像后缀;
◇形成梯度渐变图像;
◇由分割得到的梯度渐变图像得到目标位置,并计算渐变梯度,以得到目标的速度和方向,并加上批号标记。
该算法简化了目标相关性的运算,可在初始状态下对于目标运动趋势不了解的情况下实施对目标的稳定跟踪,同时具有良好的
实时性能。
3 相关函数
通过函数cvUpdateMotionHistory可使用下列方式更新运动历史图像:
也就是说,MHI(motion history image)中运动所发生的象素点被设置为当前时间,而运动发生较久的象素点将被清除。
函数cvCalcMotionGradient用于计算MHI的差分Dx和Dy,然后计算梯度方向,其公式为:
orientation(x,y)=arcztan(Dy(x,y)/Dx(x,y))
其中要考虑Dx(x,y)和Dy(x,y)的符号。然后填充mask以表示哪些方向是正确的。
函数cvCalcGlobalOrientation用于在选择的区域内计算整个运动方向。并返回0°到360°之间的角度值。首先由函数创建运动直
方图,并寻找基本方向做为直方图最大值的坐标。然后通过函数计算与基本方向的相对偏移量,并将其做为所有方向向量的加
权和(运行越近,权重越大)。所得到的角度就是基本方向和偏移量的循环和。
函数cvSegmentMotion可寻找所有的运动分割,并在seg_mask用不同的单独数字(1,2,…)标识它们。它也可返回一个具有
CvConnected-
Comp结构的序列。其中每个结构对应一个运动部件。在这之后,每个运动部件的运动方向就可以被函数
cvCalcGlobalOrientation利用提取的特定部件的掩模(mask)计算出来。此外,每个运动部件的质心位置也可由返回的图像ROI
位置来确定,由此便可确定运动目标的位置。
4 实验结果
在实验中,可采取标准视频图像源来有效检测跟踪出图像中的运动目标,图2所示是其实验结果示意图。其中通过图2(a)能够
根据CvCon-neetedComp中所获取的运动分割形状大小,滤掉所不关心的运动目标;而对于图2(b),如果把限定阈值取大。则
视频中的骑自行车的人将不会被跟踪显示;
图2(c)中,假定竖直线右侧为警戒区域,当有目标进入该区域时。即运动目标的质心位置为某一区间值时,则对该目标进行标
记,从而达到智能判断的效果。图中直线方向表示运动物体的运动方向,在实际的运用场景中,可由此判断物体是否逆行以达
到智能监控和识别的效果。
5 结束语
本文介绍了openCV中运动模板的检测方法,该方法可以有效正确检测和跟踪视频图像中的运动目标,并能获得该目标的运动
方向与相应位置,从而实现智能视频监控和智能判断。但实际上,该方法仍然会存在运动背景差不精确、运动目标形状大小不
一等问题,因此,还需进一步研究或与其他方法相结合,以达到更好的效果。