视频中运动目标的检测标记
视频中运动目标的检测标记
摘要:传统电视监控技术只能把远程的目标图像(原始数据)传送到监控中心,由监控人员对现场情况做出判断。智能化视频监控的目的是将视频原始数据转化为可供监控人员决策的“有用信息”;本文对视频运动目标检测领域的研究现状和视频运动目标检测的图像分割方法进行了比较,对交通视频中的汽车目标实例进行了研究实现。
关键词:交通信息;视频检测;目标识别;目标跟踪
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 : nframes
singleFrame = 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;
end
end
frameRate = get(trafficObj,'FrameRate');
implay(taggedCars,frameRate);%播放视频[1]
3.3实验效果
图3-1,交通视频
图3-2对视频中图像处理后得灰度图像、二值图像和去除最小目标后的图像
图3-3浅颜色汽车的检测标记
3.4部分函数功能解析
(1)Mmreader函数
mmreader从多媒体文件中的视频数据 使用Read方法读取到MATLAB的工作空间。该文件格式mmreader支持平台有所不同。obj = mmreader(filename),obj的构造名为 filename的读取视频数据文件。为基于MATLAB路径文件 的mmreader构造进行搜索。如果它不能以任何理由建设对象,mmreader产生一个错误。MatLab7.8.0.347或(R2009a)以上版本支持。 使用格式:Obj=mmreader(filename,'PropertyName',PropertyValue)。
(2)Imextendedmax函数
Imextendedmax,扩展极大值变;格式IBW = imextendedmax(I,H);这些函数把灰度图像作为输入参数,而把二值图像作为输出参数。在输出的二值图像中,局部极大值和局部极小值设为1,其他值设为0。
(3)Imopen
Imopen,形态学开运算;使用方法,IM2 = imopen(IM,SE) ;使用结构元素SE 对灰度图像或二进制图像 IM 进行形态学开运算。参数 SE 必须是一个单独的结构元素体,相对于一个对象数组。形态学开运算是先进行一次膨胀操作,再接着进行一次腐蚀操作,两次操作中使用同一个结构元素。
(4)Bwareaopen
Bwareaopen,删除小面积图形;格式BW2 = bwareaopen(BW,P,conn);作用删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域
(5)Bwlabel
Bwlabel,标注二进制图像中已连接的部分。格式:L = bwlabel(BW,n);返回一个和BW大小相同的L矩阵,包含了标记了BW中每个连通区域的类别标签,这些标签的值为1、2、num(连通区域的个数)。n的值为4或8,表示是按4连通寻找区域,还是8连通寻找,如果参数省略,则默认为8。
(6)Regionprops
Regionprops计算图像区域的属性信息;格式:STATS = regionprops(BW, properties), 本例中用于返回图像质心和面积。输入:BW——二值图像、properties——属性信息;输出:STATS ——包含图像指定区域属性信息的结构体。
4结束语
动态视频目标检测技术是智能化视频分析的基础,随着计算机视觉以及视频分析技术的进一步发展,视频目标检测面临着许多新的应用,以图像分割为基础的视频目标识别检测技术在智能交通、国家安全、军事安全和公共安全领域以及智能门禁、智能视频监控、公安布控、海关身份验证等方面有着广泛的应用。本文用MatLab的一些系统函数解析了一个的交通视频目标检测处理实例,常用的视频运动目标检测方法还有点检测法、图像分割法、帧间差分法、背景建模法、聚类分析法、运动矢量场法等,在实际应用中融合数种方法,可以更加准确、高效地处理复杂环境下的视频图像。
参考文献:
1张强,王正林. 精通MATLAB图像处理[M].电子工业出版社.2009-6-1
2兰利宝等.视频监控系统中运动目标识别方法研究[J].沈阳理工大学学报.2006
3李路,宿勇等.视频监控系统中的动目标检测新方法[J].海军工程大学学报.2004,16
4 赵文哲,秦世隐.视频运动目标检测方法的对比分析[J].科技导报.2009,27
5李春生,龚晓峰.视频序列中的运动目标检测与跟踪[J].现代电子技术.2009,23-210
6石时需,郑启伦等.基于自适应混合差分的快速视频目标检测法[J].计算机科学.2008,35
视频中运动目标的检测标记.doc