- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于OpenCV的智能视频监控设计
摘要:采用智能视频分析技术的智能监控系统能够最大限度地减少人为干预,提高监控效率,减轻人的工作负担,并可对动态场景视频中的目标物体进行检测、分离、跟踪与有效识别。文中介绍了opencv中的运动模板检测方法,并给出了使用该检测方法来对运动目标进行检测、跟踪与智能判断的实验结果。
关键词:opencv;视频监控;目标检测;智能识别
O 引言
智能视频监控以数字化、网络化视频监控为基础,但又有别于一般的网络化视频监控,它是一种更高端的视频监控应用。智能视频监控系统能够识别不同的物体。发现监控画面中的异常情况,并能以最快和最佳的方式发出警报和提供有用信息,从而能够更加有效地协助安全人员处理危机,并最大限度地降低误报和漏报现象。智能视频监控中的运动目标检测与跟踪技术则是实现这一环节的关键技术。目前比较常用的运动目标检测方法是帧间差分法、背景差分法和光流法。而几种较受关注的目标跟踪算法则有粒子滤波、基于边缘轮廓的跟踪和基于模板的目标建模等方法。
通过计算机开源视觉库(openCV)中的运动模板检测能对视频图像中运动目标有效地进行检测与跟踪,本文首先介绍了openCV算法,然后在该算法的基础上,给出了实现智能视频监控中对运动目标进行跟踪,并根据运动目标的质心位置作出相应智能判断的具体方法。
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所示。该流程首先是获得当前帧与上一帧的差,接着对差图像进行二值化,以去掉超时影响,更新运动历史图像,然后计算运动历史图像的梯度方向,并将整个运动分割为独立的运动部分,再用一个结构序列标记每一个运动分割,最后计算选择区域的全局运动方向,从而获得运动目标的质心位置与运动方向。
这个算法基于的条件是运动目标相邻两帧之间在画面上存在的交集,此算法不用外推和相关分析以及轨迹后处理就可以清晰地显示出目标的轨迹、速度与方向。用该算法基于运动目标检测运动目标前景图像的具体过程可描述如下:
◇存储检测出来的目标前景图像,并使过去的帧灰度递减:
◇在当前帧打上时间戳叠加存储到历史图像后缀;
◇形成梯度渐变图像;
◇由分割得到的梯度渐变图像得到目标位置,并计算渐变梯度,以得到目标的速度和方向,并加上批号标记。
该算法简化了目标相关性的运算,可在初始状态下对于目标运动趋势不了解的情况下实施对目标的稳定跟踪,同时具有良好的实时性能。
作者:岑 银 西南交通大学 来源:国外电子元器件
上一篇:适用于RF的稳定闭环自动功率控制
下一篇:一种GaN宽禁带功率放大器的设计