动态背景下多帧图像帧差MATLAB

来源:热点事件 时间:2016-08-15 10:29:02 阅读:

【www.zhuodaoren.com--热点事件】

动态背景下多帧图像帧差MATLAB(一)
帧差法、光流法、背景减除法

帧差法、光流法、背景减除法

运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像中提取出来。通常情况下,目标分类、跟踪和行为理解等后处理过程仅仅考虑图像中对应于运动目标的像素区域,因此运动目标的正确检测与分割对于后期处理非常重要然而,由于场景的动态变化,如天气、光照、阴影及杂乱背景干扰等的影响,使得运动目标的检测与分割变得相当困难。根据摄像头是否保持静止,运动检测分为静态背景和运运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像中提取出来。通常情况下,目标分类、跟踪和行为理解等后处理过程仅仅考虑图像中对应于运动目标的像素区域,因此运动目标的正确检测与分割对于后期处理非常重要然而,由于场景的动态变化,如天气、光照、阴影及杂乱背景干扰等的影响,使得运动目标的检测与分割变得相当困难。根据摄像头是否保持静止,运动检测分为静态背景和运动背景两类。大多数视频监控系统是摄像头固定的,因此静态背景下运动目标检测算法受到广泛关注,常用的方法有帧差法、光流法、背景减除法等。

(l)帧差法

帧差法是最为常用的运动目标检测和分割方法之一,基本原理就是在图像序列相邻两帧或三帧间采用基于像素的时间差分通过闭值化来提取出图像中的运动区域。首先,将相邻帧图像对应像素值相减得到差分图像,然后对差分图像二值化,在环境亮度变化不大的情况下,如果对应像素值变化小于事先确定的阂值时,可以认为此处为背景像素:如果图像区域的像素值变化很大,可以认为这是由于图像中运动物体引起的,将这些区域标记为前景像素,利用标记的像素区域可以确定运动目标在图像中的位置。由于相邻两帧间的时间间隔非常短,用前一帧图像作为当前帧的背景模型具有较好的实时性,其背景不积累,且更新速度快、算法简单、计算量小。算法的不足在于对环境噪声较为敏感,闽值的选择相当关键,选择过低不足以抑制图像中的噪声,过高则忽略了图像中有用的变化。对于比较大的、颜色一致的运动目标,有可能在目标内部产生空洞,无法完整地提取运动目标。

(2)光流法

光流法的主要任务就是计算光流场,即在适当的平滑性约束条件下,根据图像序列的时空梯度估算运动场,通过分析运动场的变化对运动目标和场景进行检测与分割。通常有基于全局光流场和特征点光流场两种方法。最经典的全局光流场计算方法是L-K(Lueas&Kanada)法和H-S(Hom&Schunck)法,得到全局光流场后通过比较运动目标与背景之间的运动差异对运动目标进行光流分割,缺点是计算量大。特征点光流法通过特征匹配求特征点处的流速,具有计算量小、快速灵活的特点,但稀疏的光流场很难精确地提取运动目标的形状。总的来说,光流法不需要预先知道场景的任何信息,就能够检测到运动对象,可处理背景运动的情况,但噪声、多光源、阴影和遮挡等因素会对光流场分布的计算结果造成严重影响;而且光流法计算复杂,很难实现实时处理。

(3)背景减除法

背景减除法是一种有效的运动对象检测算法,基本思想是利用背景的参数模型来近似背景图像的像素值,将当前帧与背景图像进行差分比较实现对运动区域的检测,其中区别较大的像素区域被认为是运动区域,而区别较小的像素区域被认为是背景区域。背景减除法必须要有背景图像,并且背景图像必须是随着光照或外部环境的变化而实时更新的,因此背景减除法的关键是背景建模及其更新。针对如何建立对于不同场景的动态变化均具有自适应性的背景模型,减少动态场景变化对运动分割的影响,研究人员已提出了许多背景建模算法,但总的来讲可以概括为非回归递推和回归递推两类。非回归背景建模算法是动态的利用从某一时刻开始到当前一段时间内存储的新近观测数据作为样本来进行背景建模。非回归背景建模方法有最简单的帧间差分、中值滤波方法、Toyama等利用缓存的样本像素来估计背景模型

的线性滤波器、Elg~al等提出的利用一段时间的历史数据来计算背景像素密度的非参数模型等。回归算法在背景估计中无需维持保存背景估计帧的缓冲区,它们是通过回归的方式基于输入的每一帧图像来更新某个时刻的背景模型。这类方法包括广泛应用的线性卡尔曼滤波法、Stauffe:与Grimson提出的混合高斯模型等

动态背景下多帧图像帧差MATLAB(二)
MATLAB读取播放视频截取每帧图像及邻帧检测

matlab读取/播放视频的函数

2013-10-08 17:43:12| 分类: MATLAB | 标签:视频 |举报|字号 订阅

1. 可以用mmreader和 read这两个函数读取视频帧【动态背景下多帧图像帧差MATLAB】

readerobj = mmreader('xylophone.mpg');

vidFrames = read(readerobj);

具体参数含义帮助文档里面有。示例:

fileName = 'ntia_wfall-qcif_original.avi'; % .avi必须是无损压缩的. obj = mmreader(fileName);

vidFrames = read(obj);% 读取所有的帧数据

numFrames = obj.numberOfFrames;% 帧的总数

for k = 1 : numFrames% 读取数据

mov(k).cdata = vidFrames(:,:,:,k);% mov(k)是一个结构体,mov(k).cdata实际上就是一个有RGB的帧

mov(k).colormap = [];

end

movie(mov);% 在matlab中播放视频

2. 从AVI视频中提取每一帧,使用 aviinfo,aviread

str='D:\Program Files\MATLAB71\work\1.avi';

info=aviinfo(str);

fum=info.NumFrames;

fori=1:fum

mov=aviread(str,i);

I=mov.cdata;

J=rgb2gray(I);

imwrite(J,strcat('F:\shiyan\work\',int2str(i),'.bmp'),'bmp'); end

3. Matlab下读取视频文件并进行基于邻帧差法的视频目标运动检测() videoObj = mmreader('highwayII_raw.avi');%读视频文件

nframes = get(videoObj, 'NumberOfFrames');%获取视频文件帧个数 for k = 1 : nframes

currentFrame = read(videoObj, k);%读取第i帧

subplot(1,2,1),imshow(currentFrame);

grayFrame = rgb2gray(currentFrame);%灰度化

if(k==1)

grayFrame_1 = grayFrame;

end

difgrayFrame= grayFrame - grayFrame_1;%邻帧差

grayFrame_1 = grayFrame;

subplot(1,2,2),imshow(difgrayFrame);

end

4. 播放视频可使用 movie(mov)(使用示例见1中),implay('*.avi')

动态背景下多帧图像帧差MATLAB(三)
基于opencV的动态背景下运动目标检测及跟踪(修改版)

基于openCV的动态背景下的运动目标检测

摘要:介绍在动态背景下对视频图像序列进行运动目标的检测,主要包括三个步骤,分别是运动估计,运动补偿和目标检测。在运动估计中采用的主要是基于特征点匹配算法。这种算法与传统的块匹配算法最大的好处在于它的数据量少,计算简单迅速而且图像的匹配可靠性更高。最后用计算机视觉类库openCV进行实现。

关键词:运动目标检测; openCV;特征点匹配

Moving Object Detection in the

Dynamic Background Based on openCV

【动态背景下多帧图像帧差MATLAB】

Abstract:Introducing a moving object detection algorithm of the dynamic background in the video image sequence,which includes three steps. They are motion estimation, motion compensation and object detection. At the motion estimation, we take an algorithm based on the feature points matching. The advantages of this algorithm is that it needs fewer data and indicates faster calculating speed compared to the block matching algorithm. What’s more, the matching of the video image sequence is more reliable. Then used openCV realized the algorithm.

Keywords: moving object detection; openCV; feature points matching

引言

生活中摄像头可以说随处可见,我们经常需要对视频中的运动目标进行相关操作,这就设涉及到了对运动目标的检测及跟踪。作为视觉领域的一部分,它不仅对我们的生活,在军事,医学等各种领域里都有着广泛的影响。

所谓运动目标的检测就是在一段序列图像中检测出变化区域,并将运动目标从背景图像中提取出来[2],它是基础,能否正确的检测与分割出运动目标对后续的工作有着巨大的影响。常见的运动目标检测方法有:背景差分法,帧差法,累积差分法,光流法。本文主要介绍的是一种在动态背景下对运动目标进行检测的算法。

检测算法介绍【动态背景下多帧图像帧差MATLAB】

检测算法有很多种,不同的算法有他们各自的利与弊。背景差分法:是事先将背景图像存储下来,再与观测图像进行差分运算,实现对运动区域的检测。这种方法能得到较为完整的运动目标信息,但背景图像必须随着外部条件比如光照等的变化而不断更新,所以背景模型的获取和更新比较麻烦。帧差法:直接比较相邻两帧图像对应像点的灰度值的不同,然后通过阈值来提取序列图像中的运动区域[2]。这种方法更新速度快,算法简单易实现,适应性强,不需要获取背景图像。但是背景与运动目标间需要有一定程度的灰度差,否则可能在目标内部产生空洞,不能完整的提取出运动目标。为了改进相邻两帧间的差分效果,人们提出了累积差分法。累积差分法是利用三帧图像计算两个差分图像,再令其对应像素相乘的算法。它通过分析整个图像序列的变化来检测小位移或缓慢运动的物体。光流法是在时间上连续的两幅图想中,用向量来表示移动前后的对应点,在适当平滑性约束的条件下,根据图像序列的时空梯度估计运动场,通过分析运动场的变化对运动目标和场景进行检测和分割。

上面的几种算法都是基于静态背景下的方法,下面主要介绍动态背景下运动目标的检测。 因为生活中我们在很多情况下背景图像都不是静态的,有时摄像机都是安装在一个运动

的平台上,或者它本身也会在一定范围内进行扫描运动这样一来就会出现图像背景的全局运动,这时就需要做对帧间图像的配准,再经过全局背景的运动补偿就可以通过差分检测检测出目标。

【动态背景下多帧图像帧差MATLAB】

这种通过全局运动估计进行运动目标检测的主要步骤如图1-1所示:

运动估计:运动矢量估计的算法有许多种,这里采用的是特征点匹配算法,也是目前使用较多的一种算法。它的方法是在图像中找到基准图像的每一特征点的唯一匹配点,通过两帧间点位置的变化求出其位移矢量,再将所有运动信息带入运动模型求出背景的全局运动参数。以基准图像的特征点为中心在打匹配图像中使用三步搜索算法进行快速搜索,三步搜索算法的具体三步为[4]:

(1) 以当前特征点为中心,以4(可以更改)为步幅,将各单位正方形上的顶

点(共9个点)与当前特征点进行匹配,求出最佳匹配的特征点中心位置。

(2) 以第一步求出的最佳特征点为中心,以2为步幅,将各单位正方形上的顶【动态背景下多帧图像帧差MATLAB】

点(共9个点)与当前特征点进行匹配,求出最佳匹配的特征点中心位置。

(3) 以第二步求出的最佳特征点为中心,以1为步幅,将各单位正方形上的顶

点(共9个点)与当前特征点进行匹配,求出最佳匹配的特征点中心位置。

它与当前特征点中心的位置偏移量即为估计的位移量。

在openCV中CvBlob结构是描述的团块位置,大小标识符,我们可以对它进行简单的改写来表示我们需要的特征点。

运动补偿:这一步的主要目的是尽量将由于摄像机的扫描而引起的背景“移动”消除。这里不需要估计所有像素点的运动矢量,在上面特征点匹配的基础上,采用仿射变换模型参数。设t时刻特征点的位置为(X,Y),t+1时刻的坐标为(X’,Y’),若以二维仿射变换描述其运动,则关系可表示为:

X’ d0 X Y’

由上式可知三个不共线的特征点就可以求得唯一解,显然这是不合理的,所以我们采用最小二乘法,用所有已知特征点来求解参数。这样可以减小误差。反向运动补偿后当前的帧图像和参考的帧图像重合这样就可以消除因摄像机扫描晃动而引起的背景移动。

目标检测:将背景图像的稳定序列进行帧差即可获得运动目标区域,完成目标检测。

结合openCV

openCV简介:OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法[1]。

openCV常用函数:

分配图像:IplImage* cvCreateImage(CvSize size, int depth, int channels);

depth为像素深度,channels为每个像素值的通道数

释放图像:void cvRealeaseImage(IplImage**);

读取图像:img=cvLoadImage(filename);//filename为文件的目录名

openCV基础结构:

CvPoint:定义整型坐标上的点

Typedef struct CvPoint{

} Int x; //x坐标 Int y; //y坐标

上文中的矩形表达式主要用的就是CvPoint这个函数。用CvPoint来定义点(X,Y)

CvSize:定义矩形框大小

Typedef struct CvSize{

Int width;

Int height;

}

还有其他基础结构如:CvRect,CvScalar,CvMat,CvArr,IplImage等就不一一介绍了。

首先cvCvtColor函数转换图片至灰度图:灰度化就是将一张三通道RGB颜色的图像变成单通道灰度图,为接下来的图像处理做准备。在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B

的值叫灰度值。下图为灰度图:

cvThreshold函数转换为自适应二值图:二值化是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果,二值化的处理强化了锐利的边缘,进一步去除图像中无用的信息,但在使用过程中要注意阈值的选取。可以说二值化是数字图像处理中非常重要的最基础的一步,可以发现我们在做很多项目过程中,第一步往往就是进行二值化处理。

接下来就是进行一系列形态学腐蚀膨胀处理,在阈值分割后,图像中可能还存在一些空洞噪声影响,形态学处理进行进一步去噪等。膨胀腐蚀主要是通过cvDilate和cvErode

这两个函数来实现效果,在用openCV结合上面的算法最后处理出的结果如下图:

结论

由此可以看出在openCV环境下用特征点匹配的算法可以对动态背景下的运动目标进行检测。

参考文献:

[1]百度百科

[2]《数字图像处理系统工程导论》 郭宝龙 孙伟 主编 西安电子科技大学出版社

[3]《数字图像处理(应用篇)》 谷口庆治 编 科学出版社共立出版

[4]《数字图像处理与图像通信(修订版)》 朱秀昌 刘峰 胡栋 编 北京邮电大学出版社

[5]《OpenCV教程(基础篇)》 刘瑞祯 于仕琪 编著 北京航空航天大学出版社

动态背景下多帧图像帧差MATLAB(四)
基于背景和帧间差分法的运动目标提取

  摘 要: 在自动人脸识别系统中,人体目标的检测是该系统识别人脸的前期关键步骤之一。为了能快速准确地检测出运动的人体目标,提出了背景差分法和帧间差分法相结合的运动目标提取检测方法。针对视频中的背景因镜头摆动或物体的移入/移出而有所变动,给出了几种提取背景的方法,比较各种方法后决定采用中值法快速地进行背景建模,随后采用自适应背景更新,结合两种差分法检测运动目标。通过实验验证了本文算法的有效性。

  关键词: 运动目标; 背景差分法; 帧间差分法; 背景建模
  中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2014)03-38-04
  0 引言
  对于人体生物特征的识别,可以说从古到今一直受到人类的关注。随着智能监控、人机交互技术的发展,具有视频分析处理能力并可对运动目标实现检测和跟踪的智能化视频监控系统己成为研究的热点和主流[1]。视频图像中运动目标检测相对于静态图像而言稍显复杂一些,运动目标检测是指在视频图像序列中判断是否有前景目标的运动,如果有前景目标,则对目标进行初始定位的检测。视频是由时间上连续的图像序列构成的,故对于视频中运动目标的检测是按照一定的周期从视频序列中提取出一张张静态图像帧来实现检测的,因此视频序列图像与静态图像中的目标检测方法存在相似的地方,而不同的地方就在于运动目标时间上的连惯性[2]。针对视频图像的特殊性,我们常用于运动目标检测的方法有以下几种[3]。
  1 运动目标检测的方法
  1.1 背景差分法
  背景差分法(Background Difference Method)是利用当前图像与预存的背景图像作差分,再利用阈值来检测运动区域的一种动态目标识别技术。背景差分法的原理如图1所示。
  [当前图像][—] [二值化][连通性分析][目标][背景图像][非目标][f][b][R][Y][N] [D]
  图1 背景差分法的识别过程
  首先通过式⑴求出当前图像f与背景图像b的差,即
  ⑴
  然后根据式⑵对差分结果图像D进行二值化,再对二值化之后的图像R进行连通性分析,即
  ⑵
  当某一连通区域的面积大于一定的阈值T时,则认为检测到目标,并认为这个连通的区域就是提取的目标[4]。
  背景差分算法简单,相对于其他方法而言易于实现,较适用于背景已知的情况,是最受欢迎的运动目标检测方法之一,也是当前运动目标检测技术中应用较为广泛的一类方法。
  1.2 帧间差分法
  帧间差分法(Frame Difference)是选取视频图像序列中相邻两帧或多帧图像信息作差分运算来获得运动目标轮廓的方法,利用不同帧图像对应位置像素点的差分运算结果进行目标检测。其主要工作流程如图2所示。
  [第k帧图像][—] [二值化][连通性分析][目标][fk][fk-1][第k-1帧图像][非目标][R][D][N][Y]
  图2 帧间差分法运动目标的识别
  fk和fk-1分别为时刻k和时刻k-1采集到的两幅图像,据此可以得到差分图像为公式⑶:
  ⑶
  其中,T为阈值,两图像间发生变化的位置的像素取值为1,两图像间没有发生变化的位置像素取值为0,这样就检测到目标。也可以利用连续三帧甚至多帧图像来提取运动目标,这时判断一个像素点是否属于运动物体的原则为公式⑷:
  ⑷
  在运动的检测过程中,该方法利用时间信息,通过比较图像中若干连续帧获得对应像素点的灰度差值,如果均大于一定的阈值T,则可以判断该位置存在运动的目标[4]。其优点是计算简单、检测速度快,对动态环境具有很好的适应性,它可以很好地适用于多个运动目标和摄像机移动的情况。但是该类方法提取的目标不完整,所以帧间差分法通常不单独应用在运动目标检测中,而往往与其他的检测算法结合使用。
  1.3 光流法
  光流法(Optical Flow)是利用相邻两帧中对应像素的灰度保持原理来评估二维图像的变化[5]。简单来说,光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。光流法是对运动序列图像进行分析的一个重要方法,光流不仅包含图像中目标的运动信息,而且包含了三维物理结构的丰富信息,因此可用来确定目标的运动情况以及反映图像其他信息。但是,多数光流场计算方法相当复杂,算法要对所有帧中的所有像素点来评估光流,所以计算量大,算法复杂耗时,且容易受到噪声影响。如果没有专门的硬件设备支持,很难实现视频实时检测,因此其应用性和实时性较差,不适合在实时的视频监控系统中使用。
  1.4 统计与分析的方法
  基于统计与分析的运动检测方法是近几年才发展起来的,主要有:基于经典的统计模式识别方法,包括决策函数法、K近邻分类法、支持向量机特征分析法、主因子分析法等;基于知识或者基于模型的自动目标检测方法,包括先验知识、SNAKE模型、单高斯模型、混合高斯模型等;基于多传感器信息融合的自动目标检测方法,包括嵌入约束法、证据组合法、人工神经网络法;基于专家系统的自动目标检测方法等。尽管目前各种算法存在各种各样的问题,但最终随着相关学科及计算机硬件运算速度的提高,该类方法将表现出卓越的性能[4]。
  2 运动目标的分割
  2.1 背景建模
  在实际应用中,背景往往是不固定的,它会随着光照、前景物体的移入/移出,以及摄像头摆动等产生动态变化。本文研究的背景差分法是将当前帧图像与一个不断更新的背景模型相减,在差分图像中提取运动目标。利用背景差分法实现目标检测主要包括如下四个环节:
  [背景建模][背景更新][目标检测][后期处理]
  其中,背景建模和背景更新是背景差分法中的主要问题。背景模型建立的好坏直接影响到目标检测结果。因此,人们提出了各种方法实现背景建模和背景更新。目前背景提取的算法很多,如均值法、中值法、单高斯分布模型、混合高斯分布模型、码书算法等。虽然方法很多,但是很难找到一种在各种情况下都表现最好的算法。   下面介绍以下几种常用算法的原理[6]。
  ⑴ 均值法的原理是将运动物体比作噪声,用累积平均的方法消除噪声,从而可以利用有运动物体的序列图像进行平均来得到背景图像。用公式表示为:。其中Background表示背景图像,N表示帧数,imagei(x,y)表示第i帧序列图像中的(x,y)像素点,通过改变x和y的值就可以获得整幅背景图像。
  ⑵ 中值法是一种基于排序理论的、能有效抑制噪声的非线性信号处理技术,其思想是把所有像素的灰度按从小到大的顺序排列,若像素为奇数个,则将中间值作为(x,y)处的灰度值,若像素为偶数个,则取两个中间值的平均值作为(x,y)处的灰度值。
  ⑶ 单高斯分布背景模型适用于单模态背景,它把每个像素点的颜色值分布用单个高斯分布表示,一般只能处理有微小变化与缓慢变化的简单场景。
  ⑷ 混合高斯模型是用多个单高斯函数来描述多模态的场景背景,当复杂背景变化很大,背景像素值的变化较快,比如背景像素值为多峰分布(如微小重复运动)时,这时可以根据单模态的思想方法,用多个单模态的集合来描述复杂场景中像素点值的变化,它是背景建模较为成功的方法之一。
  ⑸ CodeBook背景模型。CodeBook算法的基本思想是得到每个像素的时间序列模型。CodeBook算法为当前图像的每一个像素建立一个CodeBook(CB)结构,每个CodeBook结构又由多个CodeWord(CW)组成。这种模型能很好地处理时间起伏,缺点是需要消耗大量的内存。
  本文对均值法、中值法的性能优劣作个比较。总的来说,均值滤波法和中值滤波法都适合外部扰动比较小的特定场合,而且算法简单有效。在本文中主要研究的是处于教室一类较简单的内部环境,可以直接将彩色图像转换成灰度图像,然后通过灰度值的中值或者均值来进行背景建模,通过实验可以看出中值法提取的背景效果比均值法提取的效果要理想一些(见图3与图4)。
  
  图3 中值法提取背景
  
  图4 均值法提取背景
  2.2 背景更新
  由于光照、场景变化等各种因素的影响,背景不可能在建立之后就一成不变。要使背景模型在一段时间之内能够适应环境的变化,就必须对初始模型不断地进行更新。背景更新的实质是用当前帧中发生了变化的信息去修正使用过去帧建立的模型[7]。一种常用的自适应背景更新方法采用式⑸进行。
  ⑸
  其中,Bn(x,y)是当前时刻经过更新后得到的背景;Bn-1(x,y)是前一时刻建立的背景;In(x,y)是用于修正前一时刻背景的当前帧;a称为学习速率,其值可以通过实验确定,一般取0.9,是指用当前帧中每个位置上的像素值与原来背景中相应位置的像素值加权平均值替代原背景对应位置上的值。
  2.3 目标检测分割
  获得了背景图像后就可以使用背景减除的方法进行运动目标的检测。设当前帧图像为I(x,y),当前的背景为B(x,y),经过背景减除,并二值化后的结果见公式⑹。
  ⑹
  其中,T是判别阈值,可以通过实验得到。本论文中提取视频的第一帧图像作为背景图像,随后再根据镜头的摆动来更新背景,完成新的背景建模。
  帧间差分法是通过视频中连续两帧图像对应像素点的像素差值找出变化的运动区域的方法。设当前帧图像为Ik(x,y),上一帧的图像为Ik-1(x,y),经过两帧图像相减,并二值化后的结果见公式⑺。
  ⑺
  如果差值大于预先设定好的阈值,则认为该点是运动目标像素点,否则就是背景像素点。
  在本文中采用背景与帧间差分法相结合,将视频中背景差图像和相邻两帧差图像直接进行‘与操作’,再进行二值化处理得到运动目标[8]。其检测效果有所提高,特别是当背景发生变化时,得到的运动检测图像包含了许多目标信息,将运动目标从背景图像中分离出来,最终得到视频序列图像中运动目标存在与否的标记图像。
  算法描述:①从视频中选取出初始背景图像B(x,y),使其只包含固定的背景图像;②在视频图像序列中选取连续的两帧图像,当前帧图像Ik(x,y),前一帧图像Ik-1(x,y);③计算当前帧与背景帧的差值R(x,y),从图像中提取出完整的目标;④计算当前帧与前一帧的差得Rk(x,y),得到目标的变化量;⑤求背景差R(x,y)与帧间差Rk(x,y)的交集得到运动目标粗糙的运动区域图像;⑥当物体运动,镜头跟进,背景图像也相应改变,利用中值法求得变化后的背景模板Bk(x,y),重复②-⑤步得到变化的运动目标;⑦数学形态学运算使得运动区域封闭、连续、完整,并去掉背景中的噪声;⑧用红色矩形框将运动目标标记出来。
  3 实验仿真结果
  本文实验视频序列为一段室内授课视频,首先对须处理的视频进行帧提取,以每秒15帧的速率提取出所有图片;然后采用中值法对前20帧进行背景建模,将背景差分法和帧间差分法相结合得到运动目标,由于背景的变动以至背景要随时更新;最后,利用形态学膨胀原理以及开运算,提取运动目标轮廓,并且用矩形框框出来。
  接下来分别利用背景差分法和帧间差分法提取运动目标,如图5所示。
  
  图5 背景差分法与帧间差分法的效果图
  随着目标的移动,镜头也跟随移动,导致背景有所改变,采用中值法对背景实时更新。当完成新的背景建模后,结合背景与帧间差分法,将背景差图像和相邻两帧差图像直接进行‘与操作’,其效果如图6所示。
  
  图6 结合背景及帧间差分法提取运动目标
  最后进行二值化处理得到运动目标,利用数学形态学运算使得运动区域封闭、连续、完整,并去掉背景中的噪声,最终得到视频序列图像中运动目标存在与否的标记图像,如图7所示。
  4 结束语
  本文详细介绍了视频目标的基本检测方法和分割步骤。为了实现检测的快速性以及准确性,对图像采用背景差分和帧间差分法相结合而获得目标。采用这种方法既避免了背景差分法因背景变动导致的前景提取不准确,又避免了帧间差分法的前景目标不完整。为了使视频目标区域更完整、更准确,需要对背景提取方法做更进一步的研究,用更好的方法来提取实时的背景,这样,有利于更准确地提取运动目标。
  参考文献:
  [1] 邓楠.视频监控系统与人脸识别技术的结合应用[J].计算机光盘软件
  与应用,2012.19:156-157
  [2] 万缨,韩毅,卢汉清.运动目标检测算法的探讨[J].计算机仿真,
  2006.10:229-234
  [3] 徐晶,方明,杨华民.计算机视觉中的运动检测与跟踪[M].国防工业出
  版社,2012.
  [4] 冯仰敏.运动目标图像检测与跟踪问题研究[D].西安建筑科技大学,
  2007.
  [5] 吴立德.计算机视觉[M].复旦大学出版社,1993.
  [6] 背景建模算法 [EB/OL]. http://wenku.baidu.com/link?url=
  ZwdjPaJBjuu1IhI8rkkMdTFjMUur9KttAndN993tcH00S9VTJFHx
  Dx3KnUJ3DPgjhb0pZcguuwvEHJvKfmPTSANWOg0zHgAuZ6c0JKnAeyO
  [7] 高飞,蒋建国,安红新等.一种快速运动目标检测算法[J].合肥工业大
  学学报(自然科学版),2012.2:42-45
  [8] 王亮亮,王黎,高晓蓉等.基于视频图像的运动目标检测算法研究[J].
  微计算机信息,2010.16:155-157

动态背景下多帧图像帧差MATLAB(五)
基于图像主色彩的视频关键帧提取方法

  摘要:

  视频关键帧体现了视频序列的主要内容。关键帧提取技术是实现基于内容的视频检索的关键技术之一。针对现有关键帧提取算法存在的计算量大、阈值选择困难、视频类型受限等问题, 提出了一种基于图像主色彩的视频关键帧提取方法。该方法利用基于八叉树结构的色彩量化算法提取图像主色彩特征,通过计算颜色特征的相似度实现镜头边界检测,最后采用K均值算法对提取出的代表帧序列进行聚类,准确提取出指定数目的关键帧。实验结果表明,所提算法计算简单、空间耗费少,具有良好的通用性和适应性。
  关键词:关键帧提取;色彩量化;镜头边界检测;颜色特征聚类
  中图分类号:TP391.41
  文献标志码:A
  0引言
  近年来随着多媒体信息在娱乐、安全等领域的大量应用,传统的基于关键词描述的视频检索方案因其手工添加注释工作量大、人工文字标签描述主观性强、效率低下等诸多缺陷,已经不能适应海量视频检索的需求。如何有效地管理和检索视频信息成为一个关键问题。基于摘要技术[1-3]的视频检索为解决这个难题提供了一条可行途径,而关键帧的提取技术在视频检索研究中占据着核心地位。
  关键帧是一段视频中包含重要视频内容的一组离散的帧序列,关键帧提取就是依据镜头内容的复杂程度,从镜头中提取一个或多个关键帧,从而用少量的帧来代替镜头的内容,它是视频检索和摘要的基本步骤。
  目前常用的关键帧提取方法归纳起来主要有以下四类:1)基于镜头边界的关键帧提取技术[3]。一段视频流被分割成若干镜头后,最直接、最简单的关键帧提取方法就是将每个镜头的首帧、中间帧或者末帧作为镜头的关键帧,这种方法设计简单、运算量小,适合于内容简单或固定场景的切变镜头,但对于场景复杂、变换方式多样的镜头时,这样提取的镜头往往不能精确地代表镜头的信息。2)基于运动分析的关键帧提取技术[4]。运动分析一般基于光流运算的,如在文献[4]中Wolf通过光流分析来计算镜头中的运动量,在运动量取局部最小值处选取关键帧,它反映了视频数据的静止部分。Wolf这种基于运动分析的方法可以根据镜头的结构选择相应数目的关键帧,但这种方法计算量巨大,实时性差,而且求取的局部最小值也不一定准确。3)基于视觉内容的关键帧提取技术[5]。该方法通过每一帧的颜色、纹理等视觉信息的改变来提取关键帧,当这些信息有显著变化时,当前帧即可作为关键帧。Zhang等[5]使用多重视觉标准(如镜头边界、颜色变化以及运动特征)来提取关键帧。首先把镜头的第一帧作为关键帧,然后计算前一个关键帧与剩余帧之差,如果差值大于阈值,则再选取一个关键帧,这种方法可以根据视觉内容的变化程度来选择相应数量的关键帧,但所选取的帧不一定能反映镜头的内容,而且容易选取过多的关键帧。4)基于聚类分析的关键帧提取技术[6]。聚类算法综合考虑镜头内和镜头间的相关性,通过聚类那些在时间、内容上相关度很高的帧图像,将视频序列划分为不同的聚类,然后选取其中最不相关的离散帧作为镜头关键帧。Hanjalie等[6]提出基于非监督聚类有效性分析的分割聚类算法,把聚类中心作为关键帧,其最佳聚类策略是最小化类内距离和最大化类间距离。赵黎等[7]提出一种基于最近特征线聚类算法,利用某些特征点的连线近似代表某个类的所有特征样本轨迹,而这些特征点就是关键帧。聚类方法计算效率高,能有效获取视频镜头变化显著的视觉内容,但不能有效地保存原镜头内图像帧的时间顺序和动态信息。
  上述关键帧提取方法大都存在着计算量大、阈值选择困难,有些算法[3,8-9 ]对视频类型有严格限制等问题,针对这些不足,本文提出了一种基于图像主色彩的视频关键帧提取方法,具有良好的通用性和适应性。
  1基于图像主色彩的视频关键帧提取方法
  本文提出的基于图像主色彩的关键帧提取方法的流程如图1所示。对视频帧图像采用基于八叉树结构的色彩量化算法提取图像主色彩,然后通过主颜色特征的相似度计算实现镜头边界检测。为了降低时间复杂度,对于切变镜头,提取镜头序列中间帧作为代表帧;对于渐变镜头,提取与镜头起始帧帧差最大的帧作为该镜头的代表帧,从而得到与镜头数相等的代表帧序列。最后对代表帧序列进行K均值聚类,得到符合给定数目的视频关键帧序列。
  1.1基于八叉树结构的色彩量化
  尽管一幅彩色图像包含丰富的颜色,但在多数情况下,图像的主色彩就涵盖了图像中的大多数的像素颜色,相关研究[10-11]表明:使用主色能够大大降低特征空间的维数,提高检索速度,同时由于主色彩的特性,一般不会降低颜色匹配的效果从而保持了检索的准确性,因此本文考虑基于图像主色彩的视频关键帧提取方法。
  色彩量化是一个有损的过程。色彩量化能否取得理想的效果,关键在于能否解决输入图像的整体层次和局部细节之间的矛盾。根据人眼色彩生理理论可知:人眼对色彩的辨别能力有一定的限度,一定范围内的颜色的变化不会引起人的色知觉的差异。如图2所示,在RGB颜色空间中各分量的颜色渐变图,在低位颜色空间各分量颜色比较接近,三分量表示的像素点色彩差异度较小,因此,仅考虑高位的主色彩对颜色空间信息的计算结果影响不大。本文提出一种基于八叉树结构的色彩量化算法对图像进行色彩量化,有效实现彩色图像的有损压缩,提取图像主色彩特征。
  3结语
  本文结合八叉树结构对图像进行色彩量化从而提取图像主色彩,并提出基于颜色特征的相似性度量方法进行镜头边界检测;最后采用K均值聚类对代表帧序列进行压缩聚类并提取指定数目的关键帧。
  针对广告、动画等多种不同类型的视频片段进行了实验测试,实验结果表明,本文算法计算简单、空间耗费低,有效避免了冗余并可以控制关键帧的数量,具有良好的通用性和适应性。
  参考文献:
  [1]ELDIB M Y, ZAID B, ZAWBAA H M,et al. Soccer video summarization using enhanced logo detection[C]// Proceedings of the 16th IEEE International Conference on Image Processing. Piscataway, NJ: IEEE Press, 2009:4345-4348.   [2]LI P, GUO Y W, SUN H Q. Multikeyframe abstraction from videos[C]// Proceedings of the 2011 18th IEEE International Conference on Image Processing. Piscataway, NJ: IEEE Press, 2011,11(3):2473-2476.
  [3]RUI Y, HUANG T S, MEHROTRAS S. Exploring video structure beyond the shot[C]// Proceedings of the 1998 IEEE International Conference on Multimedia Computing and Systems. Washington, DC: IEEE Computer Society,1998:237-240.
  [4]WOLF W. Key frame selection by motion analysis [C]// Proceedings of the 1996 IEEE International Conference on Acoustics, Speech and Signal Processing. Washington, DC: IEEE Computer Society,1996:1228-1231.
  [5]ZHANG H, WU J, HONG D, et al. An integrated system for contentbased video retrieval and browsing[J]. Pattern Recognition, 1997,30(4): 643-658.
  [6]HANJALIE A, ZHANG H. An integrated scheme for automated video abstraction based on unsupervised clustervalidity analysis[J]. IEEE Transactions on Circuits and Systems for Video Technology, 1999, 9(8):1280-1289.
  [7]赵黎,祁卫,李子青,等.基于关键帧提取的最近特征线(NFL)聚类算法的镜头检索方法[J]. 计算机学报, 2000,23(12):1292-1296.
  [8]DIVAKARAN A, RADHAKRISHNAN R, PEKER K A. Motion activitybased extraction of keyframes from video shots[C]// Proceedings of the 2002 International Conference on Image Processing. Piscataway, NJ: IEEE Press, 2002:932-935.
  [9]EKIN A, TEKALP A M, MEHROTRA R. Automatic soccer video analysis and summarization[J]. IEEE Transactions on Image Processing,2003,12(7):796-807.
  [10]袁昕,朱淼良,王东辉.基于图像主色特征的CBIR[J].计算机辅助设计与图形学学报, 2002, 14(11):1061-1065.
  [11]WANG S R, CHIA L T, DEEPU R J. Image retrieval using dominant color descriptors[C]// Proceedings of the International Conference on Imaging Science, Systems and Technology. Las Vegas: CSREA Press,2003:107-110.
  [12]方勇,戚飞虎, 冉鑫. 基于窗帧差的镜头边界系数模型及其应用[J]. 电子学报, 2006, 34(5):810-816.

本文来源:http://www.zhuodaoren.com/shenghuo329542/

推荐访问:matlab去除图像背景 帧差法matlab代码
扩展阅读文章
热门阅读文章