基于OpenCV的动态检测

时间:2024-02-24 点赞:48512 浏览:95474 作者原创标记本站原创

本文是一篇计算机论文范文,关于计算机方面在职毕业论文开题报告,关于基于OpenCV的动态检测相关本科论文范文。适合计算机及灰度及阈值方面的的大学硕士和本科毕业论文以及计算机相关开题报告范文和职称论文写作参考文献资料下载。

摘 要实现了一个基于OpenCV与机器视觉技术相结合的动态检测方法.在VisualStudio2010结合OpenCV2.4.3的开发环境下,进行了摄像机抓取指定的视频帧、对抓取的帧图像进行灰度化处理、异常时将灰度化后的前景与背景差分、采用Otsu法确定动态阈值对差分图像进行阈值分割得到二值图、腐蚀膨胀二值图后计算非零点像素数判断场景中是否有物体移动.通过实验证明上述方法不仅对监控区域的动态物体检测效果很好,而且克服红外探测器自身的诸多问题.既可以沿用原有的监控摄像机,也可根据需要采用针孔和防暴等特殊摄像机以更好地实现安防监控的目的.

关 键 词机器视觉;差分;Otsu法;阈值分割

中图分类号TP39文献标识码A文章编号1674-6708(2013)103-0210-03

0引言

目前,某些需要二十四小时严禁物体移动或者非法入侵的监控区域通常采用传统的主动红外对射探测器和监控摄像机来实现场景变化检测及录像功能.但上述组合存在很多难以解决的缺陷,探测器的安装高度影响探测精度,太低容易误报,太高则易漏报,而且极易遭到破坏而失去其功效等.反观图像本身的信息量非常大,远超过红外探测器所需要的,故采用机器视觉技术在现有的监控摄像机基础上就可以实现动态检测的功能.而且摄像机有很好的隐蔽性和监控范围大等特点可以较好地解决传统组合自身的缺陷.

机器视觉是利用计算机对视频(数字图像)进行有效的处理,识别满足相应条件的数字图像.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,它有一系列C函数和少量的C++类构成,轻量级而且高效地实现了图像处理和计算机视觉方面的很多算法.可以说基于OpenCV的机器视觉技术让摄像机有了认知能力,能够轻松准确地发现监控区域的动态变化.

1动态检测

对监控区域内物体的运动进行检测即为动态检测.本文在基于OpenCV2.4.3和VisualStudio2010环境下利用动态检测原理实现动态检测功能.其步骤为(以火燃烧过程为例):

1)从摄像机获取视频流并显示在对应控件上;

2)从视频流抓取背景帧A和设定的固定时间后的前景帧B,如图1所示;

对两帧做灰度化处理,即将RGB图转换为Gray图,如图2所示.

3)判断两帧灰度化后结果是否一致:一致说明监控区域无异常,返回到2);否则说明监控区域有异常,需继续进行判断;

4)用灰度化后的前景与背景帧做差分,如图3所示.并对差分结果进行阈值分割.差分是取前、背景中所对应的每一个像素点灰度值差的绝对值,阈值分割则将绝对值大于分割阈值的像素点置为1,即白点,反之即为0.可以看出,阈值的选取影响了最终判定异常区域的大小,而且随着监控区域光线的变化等因素影响,阈值应是介于0与255之间的一个自适应的动态变化值.

这里采用Otsu法,也称最大类间方差法,它的主要思想是按照灰度特性将图像划分为背景和目标两部分,划分依据为选取门限值,使得背景和目标之间的方差最大(背景和目标之间的类间方差越大,说明这两部分的差别越大,当部分目标被错划分为背景或部分背景错划分为目标都会导致这两部分差别变小.因此,使用类间方差最大的分割意味着错分概率最小).其主要的实现原理为如下:

(1)建立图像灰度直方图(共有L个灰度级,每个出现概率为p):

(2)计算背景和目标的出现概率,计算方法如下:

上式中假设t为所选定的阈值,A代表背景(灰度级为0-N),根据直方图中的元素可知,Pa为背景出现的概率,同理B为目标,Pb为目标出现的概率.

(3)计算A和B两个区域的类间方差如下:

第一个表达式分别计算A和B区域的平均灰度值

第二个表达式计算灰度图像全局的灰度平均值;

第三个表达式计算A、B两个区域的类间方差.

(4)以上几个步骤计算出了单个灰度值上的类间方差,因此最佳分割门限值应该是图像中能够使得A与B的类间灰度方差最大的灰度值.在程序中需要对每个出现的灰度值据此进行寻优,并把该值作为阈值传进阈值分割函数中.

阈值分割后将得到一幅有异常区域(白点)的二值图像,然后对它进行腐蚀和膨胀运算,如图4所示.腐蚀和膨胀算法类似,本例是用一个3*3的结构元素(见图5)扫描图像中的每一个像素,用该结构元素中的每一个像素与其覆盖的像素做“与”操作:腐蚀时如果都为1,则该像素为1,否则为0;膨胀时如果都为0,则该像素为0,否则为1.经过腐蚀和膨胀计算后,可以有效去除噪声点和差分过程中的误差点,以保监控的有效性和可靠性.

5)计算膨胀后的二值图像非零点,即白点的像素数量.判断其与设定的值的关系,小于等于则认为是正常状态,否则认为监控区域有动态物体,报警并将异常的前景帧显示在对应的控件上.


以上是动态检测的原理和设计思路,具体的软件流程如下图6所示.

2软件设计与实验

VS2010下建立对话框程序,将OpenCV2.4.3的头和库文件等引到程序中.简单介绍下程序的界面:摄像机视频流在监控视频中显示,异常前景帧显示在报警图像里;灵敏度为动态检测步骤5中提到的自定义异常情况非零像素点的数目,检测间隔时间即为前景与背景抓帧的时间间隔;点击开始监控按钮时,将灵敏度和时间间隔参数传进程序中并开始从摄像机进行监控,而打开视频是打开指定的i文件来进行监控,二者原理相同,见下图7.

3结论

实验结果表明仅有在身着白色并以跑的方式经过监控区域时有一次没有报警,其余情况均发现了监控区域的物体移动.漏报可能是速度过快或者与身着衣服和监控背景颜色类似有关.由此可见,该监控程序可以有效地对监控区域进行动态检测.

综上所述,基于OpenCV的机器视觉可对场景进行更为有效地动态检测,比红外探测器更有优势.相对红外探测配监控摄像机的组合,基于OpenCV的动态检测技术将传统的实时监测和视频记录完美结合,功能上实现“1+1>2”的效果.不仅克服红外探测器自身的诸多问题,更重要的是它可以延用原有的监控设备,并且可以根据需要采用针孔和防暴等特殊摄像机以更好地实现安防监控的目的.

相关论文

计算机安全漏洞的动态检测

本文关于计算机安全及计算机及计算机系统方面的免费优秀学术论文范文,计算机安全方面有关论文例文,与计算机安全漏洞的动态检测相关毕业论。

基于OpenCV的人脸检测与识别系统

本文是一篇吉林大学论文范文,吉林大学方面本科毕业论文范文,关于基于OpenCV的人脸检测与识别系统相关电大毕业论文范文。适合吉林大学及计算。

电气化铁路综合动态检测系统技术

本文是一篇轨道电路论文范文,关于轨道电路类毕业论文格式模板,关于电气化铁路综合动态检测系统技术相关毕业论文题目范文。适合轨道电路及接。

普速客车轮对缺陷动态检测方式的

本文是一篇客车论文范文,客车相关专科毕业论文开题报告,关于普速客车轮对缺陷动态检测方式的相关毕业论文开题报告范文。适合客车及计算机软。

公路桥梁局部检测技术的方法与动态

本文是一篇公路桥梁论文范文,关于公路桥梁方面在职毕业论文开题报告,关于公路桥梁局部检测技术的方法与动态相关电大毕业论文范文。适合公路。

汽车检测中汽车电子检测的应用

本文是一篇汽车检测论文范文,关于汽车检测方面毕业论文格式范文,关于汽车检测中汽车电子检测的应用相关毕业论文模板范文。适合汽车检测及计。

计算机硬盘故障检测维护

该文是计算机应用专业计算机论文范文,主要论述了关于计算机相关本科论文开题报告,与计算机硬盘故障检测维护相关论文范文资料,适合计算机。

知网文检测数据库晋教师

本文关于数据库及参考文献及优秀硕博方面的免费优秀学术论文范文,数据库方面论文范文参考文献,与知网文检测数据库晋教师相关毕业论文格式。