目录
一. 课程设计任务
二. 课程设计原理及设计方案 1
三. 课程设计的步骤和结果
四. 设计体会 4
五. 参考文献 5
一 课程设计任务
在视频监控领域,需要对监控画面进行存储。长时间的存储占用了大量
的硬盘空间。为了节省存储磁盘空间,对于监视场景内没有活动目标出现时的
视频画面一般不进行存储。只有在检测到画面中存在运动目标时才进行录像存
储。设计一个视频监控软件,完成对运动目标的检测及视频存储功能。
要求完成功能:
1、对连接在计算机上的视频获取设备进行控制;
2、显示动态视频画面;
3、对画面中内容进行运动目标检测;
4、对有变化的画面进行存储,并按照系统时间命名文件名;
5、设计软件界面。
二 课程设计原理及设计方案
- 运动目标检测的原理
背景差法:背景减法( Backg round Subtract ion), 或称背景差法, 是目前运动检测中的主流方法, 它是利用含有运动目标的当前图像与背景图像的差分来检测运动区域的一种技术.
背景差法基本思想是: 首先, 用事先存储或者实时得到背景图像序列为每个像素进行统计建模, 得到背景模型Bk, 将当前含有运动目标的图像帧fk 和背景模型Bk 相减, 即公式( 1), 其中Dk 为作差后的结果; 其次, 将计算结果在一定阈值T 限制下进行二值化, 如公式( 2), 判断出当前图像中出现的偏离背景模型值较大的那些象素, 则为出现的运动目标像素, 其中Rk 为含有目标的二值化图像. 由于运动物体和背景在灰度或色彩上存在差别, 相减、阈值操作后得到的结果直接给出了目标的位置、大小、形状等, 从而得到较完整的目标信息。
其中
是当前帧图像,
表示当前帧的背景,
表示运动部分(包括真正的运动、遮挡和显露),
是各种如系统和传感器固有噪声、目标周围背景引起的干扰噪声,
是由上述背景提取方法得到的背景。
连续帧间差分法:面向变化检测的差分法是最为常见的运动目标检测和分割方法之一。它是基于背景像素点的灰度值和位置都不变这一原则来检测前景运动目标的,通过对不同时刻的两幅图像做差分运算得到差分图像。在差分图像中,灰度不发生变化的那部分被减掉,这里包括大部分背景和一小部分目标。从差分图像中,很容易发现目标运动信息,再通过对差分图像的后续处理,确定目标在图像上的位置。帧差法利用了视频序列相邻帧之间的强相关性进行变化检测。此方法的最大特点是运算速度快,适用于实时性要求较高的应用环境,且对环境整体光照变化不敏感。连续帧之间利用两帧图像的灰度差分析视频图像序列的运动特性,通过比较目标在两个不同时刻的画面,识别由于物体运动而造成的区域差别。在实际计算过程中,差分是指将两帧相邻目标图像逐点相减,形成差分图,在差分图中如果差分值大于给定的闭值,则相应的像素取,“l”,否则取“0”,由此产生非零区,利用非零区就可以检测出运动
视频图像运动目标检测的基本任务是在给定的二维连续图像序列中发现目标并从视频场景中分割出运动目标,同时给出目标的特征信息。视频图像序列中的第k帧可以表示为:
其中:M(x,y,k)为运动目标,B(x,y,k)为背景部分,n(x,y,k)为噪声部分。
由于本文基本的差分法处理图像,基本原理主要是先通过灰度值变换,获得两幅图像,之后两幅图像作差,获得二值图像,然后将每个像素值作和,通过阈值比较,检测两幅图像的差异程度,其中差异程度可以根据图像的要求自己设定,这个在最后的GUI界面中都有体现。
视频的保存是通过专门的函数来实现的,首先通过imwrite()函数来实现图像的存储,之后再通过视频合成函数来实现视频的存储.
三 课程设计的步骤和结果。
摄像头为主要的视频图像获取工具,matlab中有专门的控制语句。
摄像头控制语句主要是以下:
obj=videoinput('winvideo'); 其中winvideo为摄像头信息,此函数返回obj对象,用于以后处理图像对象。
preview(obj);该函数用于预览摄像头的图像。
getsnapshot(obj);该函数用于从obj对象的视频中获取图片。
图像的差值检测是该实验的关键,是分辨图像是否存储的基础。
实现差值检测的控制语句主要如下:
rgb2gray(getsnapshot(obj));该函数实现将getsnapshot获得的图片进行灰度值处理,获得两张图片进行差值比较。
abs(rgbgray1-rgbgray2);该函数用于实现两帧图像的差值处理,其中rgbgray1、rgbgray2为两幅灰度值图像。
im2bw(rgb_cha, 0.2);该函数用实现将两幅灰度值的差值图像进行二值化,用于后面的检测处理。
imwrite(frame, '.bmp','bmp');该函数用于将最后的图像进行处理。
3.2流程图
四 设计的体会
利用matlab软件实现动态目标监测。首先利用MATLAB控制摄像头获得视频,然后通过rgb2gray函数将获得的RGB图像获得灰度值图像,然后通过abs(rgbgray1-rgbgray2)函数差值变换将灰度值图像变为二值图像,通过计算二值图像的像素值来判定两帧图像的差异程度,由差异程度是否超过阈值变换判断是否有动态目标出现,则将摄像头获得图像进行存储,否则放弃存储。
利用matlab软件的GUI界面设计,将整个过程及监测的精度集中在一个界面上。本课程设计的重点是实现动态目标的检测,本设计用的差值法检测.
运动目标的检测这一题在数据的实时采集与比较时遇到了困难,因为数据采集的同时进行数据的比较与对摄像头的控制不易实现。 这次课程设计就我个人而言,感觉有些困难,因为基础薄弱,这方面的知识接触的又较少,所以在实践的过程中遇到了很多困难。但我个人还是比较喜欢此类设计题目,这种学习方式比在课堂上机械授课能得到更多的知识和锻炼机会。我觉得此次试验重要的不仅仅是完成此次试验,还要学会一种学习的方法,很多知识必须自己实践才能牢牢掌握。这样的课程设计内容对于提高同学的动手能力、思考能力有很大的帮助。在刚开始进行试验室,由于对这种工具及语言不了解,对自己能否完成实验产生了怀疑,当随着慢慢的了解,发现其实并不像想象中的那么难,只要自己肯投入精力去学习,这并不是一件困难的作业。因此,所有的事都一样,也许表面上看上去很困难,但只要我们不怕困难,用心学习,就一定能完成.
经灰度化后图像如下图所示:
五 参考文献
- 罗国强 视频中运动目标检测算法研究及实现 广东工业大学 2007
- 郭 旭,张丽杰 运动目标检测视频监控软件的设计与实现 《计算机技术与发展》 2010
- 冈萨雷斯. 数字图像处理 MATLAB.电子工业出版社.2005年
- 余成波.数字图像处理及Matlab实现.重庆大学出版社.2003年