基于MATLAB的视频车辆检测系统
1、课题背景
改革开放以后,随着经济的高速发展,交通问题越来越开始影响着人们的生产和生活,由于汽车拥有量的急剧增加,城市交通问题日益严重,因此交通问题开始成为人们关心的社会热点。在我国,近年来,交通事故频繁发生,有效的交通监测和管理已迫在眉睫。
本文主要介绍了基于视频的车辆检测方法。对于问题一,首先分别应用像素 直方图分析法和分块直方图分析法对视频图像背景进行了提取,并发现两者提取 出的背景差别不大。然后我们应用基于统计分块的背景更新方法,针对本题背景 变化不大的特点,进行背景更新。然后我们介绍了前景提取的方法,针对帧差法 和背景差分法各自具有的优缺点,我们采取了综合考虑这两种方法的改进检测法。经过二值化得到较为清晰的前景轮廓。对于阴影干扰的消除,采用了基于HIS空 间的阴影检测算法来实现;然后,我们通过数学形态学去除了前景因为阴影干扰 而形成的孤立点、毛刺和小桥(连通两块区域的小点),而保证前景总的位置和形 状不变。最后通过在视频图像中设置多个虚拟线圈来完成交通参数检测。
二、模型建立
2.1、背景提取:
2.1.1 背景模型的构建及更新
背景模型构建及更新是背景差分法的关键步骤。采用背景差分法进行运动检测,首先要构建背景模型,再用当前图像和背景图像进行差分运算,并对差分图像进行区域分割,提取出运动区域。在交通场景中背景环境变化较大,如环境光线会随时间渐变,建筑物、树木或云层投射到地面的阴影也会随光线的变化而变化,临时停靠在路边的车辆等等,这些都会使背景发生渐变或突变。为了保证背景模型的健壮性及检测结果的准确性,这就要求对背景进行实时更新。但是, 更新过于频繁,则容易将一些本不应属于背景的运动物体更新到背景中,从而造
成检测结果的不准确;如果背景更新速度过慢,则会导致当背景发生变化后,原背景模型不能很快地适应,从而导致误拍率的提高。我们的目标在于构建一个准确的背景模型,该模型能够迅速地适应外界条件的变化,并及时做出响应,从而提高检测结果的准确度。
2.1.1.1基于统计的背景模型
统计建模方法是基于概率统计理论的。理论上讲,所谓静止的“背景”即在图像序列中灰度不发生变化或变化很小的像素。从统计学的角度看,背景中像素的灰度值可以看作是一个统计的结果,即图像序列中各个像素在统计上最可能出现的值。这种方法建立的背景模型在静止区域和真实的背景相似度比较高,而在包含运动区域时就与真实背景产生偏差,因为运动区域的灰度变化影响了均值结果,适用于背景大部分时间可见、运动目标数量少的情况。而且,为了保证能有较小的估计偏差,需要对很长的视频序列进行计算求其均值,背景的更新速度较慢。
方法一
像素直方图分析法是基于统计的背景提取方法。其主要特点为,在一般情况下,提取出的背景较时域平均方法好,同时其具有良好的抗噪声干扰性。其缺点为运算速度慢,运算量大,在即时有效提取背景方面仍有不足。
其实现过程为:
某一时间段内,视频中图像序列特定像素位置处出现频率最高的像素值是背景像素值,通过存储视频中每一像素位置在序列的时间轴方向上的直方图信息
(即在某一时间段内统计该像素位置处每一种可能的像素值所出现的次数),取该像素位置的直方图峰值所对应的像素值作为背景像素值。这样,对某一位置处的像素进行直方图统计就变成对该像素灰度落在各区问段的次数进行统计。
涉及的参数有:
设Nb为直方图灰度区间总数;Nd为进行直方图统计的总帧数;Ns为启动背景更新程序的帧间隔数目,即每隔Ns 帧,背景更新一次。
为了减少算法对内存的需求量,可以将直方图灰度参数划分成区间段,然而仍不能避免对每一个像素都进行直方图统计分析计算量的缺点;同时,区间段越多,图像可用的灰度级会反之减少,不利于在背景提取时得到具有连续整数灰度
值的图像。灰度值的不连续性过多,我们利用该算法提取的背景图像的失真率单从在视觉上来讲,就会大幅升高。反之,如果我们要从一定程度上提高算法的的执行速度,增大每个区间段内包含的灰度级数目,就要想办法减小灰度区间总数。但从另外一方面,灰度区间总数减小,背景提取的可用的灰度等级数目也会随之大幅减小,从而使得大块的斑块会相互粘连,背景变得更加失真和模糊。
参考文献,我们综合考虑以上两点,设置灰度区间和帧数为256(即最大的区间数)和200帧,得到如下视频图片背景:
区间直方图法获得的背景
方法二
分块直方图分析法与像素直方图分析法比较,做了如下改进。由于相邻像素之间具有相关性,从一个像素点至另一个相邻像素点其灰度值变化较小,故可将图片分割成大小相同的块状区域用于快速提取背景。具体操作如下:首先,将视频图像分割成同等大小的像素块,注意为使快内像素点具有非常接近的灰度值, 所取像素块不宜过大,然后我们对像素块而不是之前的每一个像素点进行直方图统计,从而显著地减小算法的计算时间。同时我们为了使得每个区间段内只包含一个连续灰度,将直方图灰度区间总数定为最大灰度级加1,这样同时保持了图像灰度在空间上的连续性。由于选择分块进行统计,可将操作次数减至原来像素
直方图分析法次数的1/ m2 ,从而很大程度上减小了算法的计算量,提高了直方
图分析方法的背景估计速度,其中m为每个分块的长度。然而,图像边界处的像素之一般情况下具有很大偏差,使得我们再利用分块直方图分析法进行统计时, 对非边界的灰度值相近的像素点能得到较好的统计图像,而对于灰度值相差加大的边界区域会在图像边界处产生锯齿,且若统计图像偏小而分块较大时,锯齿现象更为显著,因此选取适当的图片和分块大小也很重要。这里我们对原有图像分
为2X2的四块,所得背景如下:
2×2分块直方图获得背景
2.1.1.2基于统计分块处理的背景更新方法:
本文背景重构算法是基于统计的结果,没有确定性模型,因此不能通过模型参数的调整来实现背景的自适应更新。这种情况下常用的背景更新方法主要有两种:一种是定时更新方法,即确定在一定时间间隔内更新背景,这种更新方法能适应背景的缓慢变化。另一种是实时背景更新,即在更新背景时,若当前帧和背景图像差分后所得差分图像中,发生变化的像素数和全部像素数比大于某一阈值
(通常取80%),且在随后几帧中连续出现这种情况,则重新抽取图像序列更新背景,这种方法可以及时对场景中环境的变化做出反应。对于某些特殊情况,如差分图像的某一固定区域中的像素,在较长的时间内一直显示为变化状态,
本文的背景更新算法是在以上两种方法的基础上,采用全局更新和部分更新相结合的方法。在背景差分运算过程中加入一个帧大小的像素变化统计表,记录每个像素点的变化频率,再根据统计的结果及像素间的相邻关系对背景作分块处理, 对不同分块采用不同的频率进行更新,从而使得运动区域很清楚的凸现出来,并对局部的变化做出及时的反应,使我们更容易将目标集中在我们感兴趣的区域; 同时当全部像素变化大于设定的阈值时,进行全局背景更新。通过实验可知,中值灰度归类算法较均值灰度归类算法接近于实际背景,检测出的运动车辆噪声影响也较少。基于统计分块处理后的背景更新算法,在运动区域对目标的检测结果, 也要强于原算法的背景更新方法。在检测过程中,背景更新需要抽取多帧图像进行重构,存在一定的时延问题,但对于长时间的监控检测来说影响不大。对于一些移动速度非常慢或者停止时间超过一定时间阈值的运动目标将会在背景更新
时被作为背景的一部分,而这种情况并不会对车辆检测产生过多影响,本文暂时不对它作任何处理。