当前位置:文档之家› 视频中运动目标的检测标记

视频中运动目标的检测标记

视频中运动目标的检测标记摘要:传统电视监控技术只能把远程的目标图像(原始数据)传送到监控中心,由监控人员对现场情况做出判断。

智能化视频监控的目的是将视频原始数据转化为可供监控人员决策的“有用信息”;本文对视频运动目标检测领域的研究现状和视频运动目标检测的图像分割方法进行了比较,对交通视频中的汽车目标实例进行了研究实现。

关键词:交通信息;视频检测;目标识别;目标跟踪Abstract: Traditional TV monitoring technology can only put remote target image (original data) transmission to the monitoring center, give their judgment by monitoring person according to the site condition. The aim of intelligent video surveillance is to put a video raw data into available for monitoring personnel decisions of “useful information”; Video motion detection field research status and video exercise targets detection image segmentation method are compared by this paper, and the video of the vehicles for traffic target examples are studied and realized.Keywords:traffic information, Video detection. Target recognition, Target tracking 1前言传统电视监控技术只能达到“千里眼”的作用,把远程的目标图像(原始数据)传送到监控中心,由监控人员根据目视到的视频图像对现场情况做出判断。

智能化视频监控的目的是将视频原始数据转化为足够量的可供监控人员决策的“有用信息”,让监控人员及时全面地了解所发生的事件。

将“原始数据”转化为“有用信息”的技术中,目标检测与跟踪技术的目的是要解决“什么地方”和“什么时间”的问题。

目标识别主要解决“什么人”或“什么东西”的问题。

行为模式分析主要解决“在做什么”的问题。

运动目标检测是计算机视觉研究中进行信息提取键步骤之一是视频分析技术的基础在视频监控目标跟踪运动分析等实际应用系统中往往要求能够实时检测和分割出目标运动目标检测是视频序列运动分析与理解的基础是底层的处理过程是目标分类目标跟踪等处理步骤的基础运动目标检测的主要任务是将运动目标从视频序列中提取出来。

2数字图像运动目标检测常用方法数字图像运动目标检测常用以下3 种方法:(1)背景图像差分法:当前图像与固定背景图像之间的差分;(2)帧间差分法:当前连续幅图像之间的差分;(3)光学流法。

2.1背景图像差分背景减除(Background Subtraction)方法是目前运动检测中最常用的一种方法,它是利用当前图像与背景图像的差分来检测出运动目标的一种技术。

它一般能够提供相对来说比较全面的运动目标的特征数据,但对于动态场景的变化,如光线照射情况和外来无关事件的干扰等也特别敏感。

实际上,背景的建模是背景减除方法的技术关键。

最简单的背景模型是时间平均图像,即利用同一场景在一个时段的平均图像作为该场景的背景模型。

由于该模型是固定的,一旦建立之后,对于该场景图像所发生的任何变化都比较敏感,比如阳光照射方向,影子,树叶随风摇动等。

大部分的研究人员目前都致力于开发更加实用的背景模型,以期减少动态场景变化对于运动目标检测效果的影响[2]。

2.2帧时间差分时间差分(Temporal Difference 又称相邻帧差)方法充分利用了视频图像的特征,从连续得到的视频流中提取所需要的动态目标信息。

在一般情况下采集的视频图像,若仔细对比相邻两帧,可以发现其中大部分的背景像素均保持不变。

只有在有前景移动目标的部分相邻帧的像素差异比较大。

时间差分方法就是利用相邻帧图像的相减来提取出前景移动目标的信息的。

让我们来考虑安装固定摄像头所获取的视频。

我们介绍利用连续的图像序列中两个或三个相邻帧之间的时间差分,并且用阈值来提取出视频图像中的运动目标的方法。

我们采用三帧差分的方法,即当某一个像素在连续三帧视频图像上均有相当程度的变化(及大于设定的阈值时),我们便确定该像素属于运动目标。

时间差分运动检测方法对于动态环境具有较强的自适应性,但一般不能完全提取出所有相关的特征像素点,在运动实体内部容易产生空洞现象,只能够检测到目标的边缘。

而且,当运动目标停止运动时,一般时间差分方法便失效[3]。

2.3光学流法基于光流方法(Optical Flow)的运动检测采用了运动目标随时间变化的光流特性,如Meyer 等作者通过计算位移向量光流场来初始化基于轮廓的跟踪算法,从而有效地提取和跟踪运动目标。

该方法的优点是在所摄场所运动存在的前提下也能检测出独立的运动目标。

然而,大多数的光流计算方法相当复杂,且抗噪性能差,如果没有特别的硬件装置则不能被应用于全帧视频流的实时处理。

当然,在运动检测中还有一些其它的方法,如运动向量检测法,它适合于多维变化的环境,能消除背景中的振动像素,使某一方向的运动对象更加突出的显示出来。

但是,运动向量检测法也不能精确地分割出对象。

点检测法用于检测图像中感兴趣的点如角点等图像分割法能检测出图像中目标的轮廓但需要一些人为的因素以及人工判断无法实现完全的自动背景建模法在视频监控的研究中取得了较好的效果但只适用于摄像机静止状态的目标检测聚类分析法需要通过学习适用于特定目标的检测如行人等较难适应一般情况下的运动目标检测[4]。

以上介绍的主要是单路视频图像的目标跟踪问题。

在实际监控系统中,往往同一个人或目标出现在多个摄像机的视场里。

如何将与此目标相关的各个摄像头采集的视频图像关联起来,根据物体的运动情况,形成其运动轨迹,并自动发送PTZ 控制指令,使摄像机能够自动跟踪物体,尤其在物体超出该摄像机监控范围之后,自动通知物体所在区域的摄像机继续进行追踪。

这才能使目标真正获得了跟踪。

3检测视频中浅色汽车目标3.1处理步骤分析在智能交通中,我们通常需要对汽车的车牌号进行识别或者对某种颜色的汽车进行检测。

视频文件是由一帧一帧的图像按照一定顺序连接而成,对图像的处理方法同样适用于对视频文件的处理,我们只要逐帧选取图像,然后对每一帧图像进行处理,最后再将处理后的每帧图像按照原来的顺序连接成视频即可。

本次案例的目的是检测一个给定的交通视频文件流中浅颜色的目标汽车,处理效果要去除背景干扰,用特殊颜色标记检测的目标;本例中使用了图像处理工具箱中很多视频处理的函数,如读取文件mmreader函数,并且使用implay函数使视频可视化。

视频处理的基础仍是图像处理,在本例中根据汽车的颜色和形状来确定汽车的存在,这其中涉及很多数学形态学的操作,包括imextendedmax,imopen,bwareaopen等函数。

检测视频中汽车目标的基本步骤如下:(1)读取视频文件在这一步骤中,首先使用mmreader函数从多媒体文件中读取视频数据,mmreader函数可以读取的文件格式包括:AVI,MPG,MPEG,WMV,ASF和ASX,本例程序中读取的视频格式为AVI格式,使用implay函数播放视频,mmreader函数还可以返回关于多媒体文件的信息,为了获取关于多媒体文件更多的信息,可以使用get函数,它可以获得诸如视频持续时间、路径等更多的信息。

(2)读取一帧图像并检测图像中的汽车读取一帧图像并进行处理。

对于视频数据,包含很多帧图像,我们一般采取的处理方法是在视频数据中选取一幅有代表性的图像帧,在这幅图像中开发相应的算法,然后把这个算法应用到所有帧图像中。

我们选取一帧图像,这帧图像中包含深颜色的汽车和浅颜色的汽车。

除了汽车外,还有很多其他结构的目标,例如公路、草坪等。

在检测浅颜色汽车前,一般需要尽可能地简化图像,通常使用的方法是采取一系列的形态学操作来去除这些无关的目标。

由于这个视频文件的每帧图像都是真彩色图像,因此首先将真彩色图像转化为灰度图像。

在视频数据中,去除深色汽车一般使用imextendedmax函数,这个函数返回二值图像,其中亮度值大于某个阈值的区域会在结果中显示出来,而亮度值小于这个阈值的目标则变成背景。

为了去除深颜色的汽车,可以使用像素区域工具确定图像中深颜色汽车所在区域的像素值,在这个程序中,调用imextendedmax函数时使用50作为阈值。

虽然在处理后的图像中,大部分深颜色目标已经被去除,但仍然有少部分无关的目标存在,尤其是公路上的标志线。

使用imextendedmax函数不能去除公路上的标志线,因为公路标志线区域的像素值也超过给定的阈值。

为了出去这些目标,可以使用形态学的开操作函数imopen来进行开操作。

这个函数在使用形态学处理二值图像,在保留大目标的同时,可以去除小目标,在使用形态学操作时,要首先确定函数使用的结构元素大小和形状,由于公路上的标志线是很长很细的,因此可以使用圆形的结构元素对这些目标进行去除,其中圆形结构的半径等于标志线的宽度。

在这个程序中,标志线的宽度大约为2,因此结构元素的半径也为2。

经过处理后的图像中,包含的目标为浅颜色的目标,即图像中浅颜色的汽车。

使用bwlabel函数可以返回一个标签矩阵,通过这个标签矩阵可以进一步求得更多的参数。

例如可以使用regionprops函数获取目标的质心,并且使用质心来确定浅颜色汽车标签的位置。

(3)使用循环逐帧对图像进行检测由于交通视频是由一系列的图像连接而成,在处理时需要使用for循环语句逐帧对数据进行处理。

处理后的视频数据中使用标签对浅颜色汽车进行标注。

3.2MatLab代码实现trafficObj = VideoReader('traffic.avi');%从多媒体文件中读取数据get(trafficObj)%获取视频信息implay('traffic.avi');%播放视频darkCarValue = 50;%阈值darkCar = rgb2gray(read(trafficObj,71));%真彩色图像转化为灰度图像noDarkCar = imextendedmax(darkCar,darkCarValue);%去除图像中深色的汽车figure; subplot(131)imshow(darkCar)%显示灰度图像subplot(132); imshow(noDarkCar)%显示浅颜色的车sedisk = strel('disk',2);%圆形结构元素noSmallStructures = imopen(noDarkCar, sedisk);%开操作subplot(133); imshow(noSmallStructures)%去除小目标nframes = get(trafficObj, 'NumberOfFrames');%帧数I = read(trafficObj, 1);%第一帧图像taggedCars = zeros([size(I,1) size(I,2) 3 nframes], class(I));for k = 1 : nframessingleFrame = read(trafficObj, k);%读取图像I = rgb2gray(singleFrame);%转化为灰度图像noDarkCars = imextendedmax(I, darkCarValue);%去除深色的汽车noSmallStructures = imopen(noDarkCars, sedisk);%去除线性目标noSmallStructures = bwareaopen(noSmallStructures, 150);%去小目标L = bwlabel(noSmallStructures);%生成标签矩阵taggedCars(:,:,:,k) = singleFrame;if any(L(:))stats = regionprops(L, {'centroid','area'});%求取质心和面积areaArray = [stats.Area];%求取目标对象的面积[junk,idx] = max(areaArray);%求取最大面积c = stats(idx).Centroid;%最大面积对应的圆心c = floor(fliplr(c));width = 2;row = c(1)-width:c(1)+width;%标注目标col = c(2)-width:c(2)+width;taggedCars(row,col,1,k) = 255;%设置为红色taggedCars(row,col,2,k) = 0;taggedCars(row,col,3,k) = 0;endendframeRate = get(trafficObj,'FrameRate');implay(taggedCars,frameRate);%播放视频[1]3.3实验效果图3-1,交通视频图3-2对视频中图像处理后得灰度图像、二值图像和去除最小目标后的图像图3-3浅颜色汽车的检测标记3.4部分函数功能解析(1)Mmreader函数mmreader从多媒体文件中的视频数据使用Read方法读取到MATLAB的工作空间。

相关主题