MATLAB基于视频的车辆检测方法

这篇具有很好参考价值的文章主要介绍了MATLAB基于视频的车辆检测方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要

改革开放以后,随着经济的高速发展,交通问题越来越开始影响着人们的生产和生活,由于汽车拥有量的急剧增加,城市交通问题日益严重,因此交通问题开始成为人们关心的社会热点。在我国,近年来,交通事故频繁发生,有效的交通监测和管理已迫在眉睫。

本文主要介绍了基于视频的车辆检测方法。对于问题一,首先分别应用像素 直方图分析法和分块直方图分析法对视频图像背景进行了提取,并发现两者提取 出的背景差别不大。然后我们应用基于统计分块的背景更新方法,针对本题背景 变化不大的特点,进行背景更新。然后我们介绍了前景提取的方法,针对帧差法 和背景差分法各自具有的优缺点,我们采取了综合考虑这两种方法的改进检测法。经过二值化得到较为清晰的前景轮廓。对于阴影干扰的消除,采用了基于HIS空 间的阴影检测算法来实现;然后,我们通过数学形态学去除了前景因为阴影干扰 而形成的孤立点、毛刺和小桥(连通两块区域的小点),而保证前景总的位置和形 状不变。最后通过在视频图像中设置多个虚拟线圈来完成交通参数检测。

关键词:直方图分析法 背景更新 HIS阴影检测 数学形态学 虚拟线圈检测

一问题重述

改革开放以后,随着经济的高速发展,交通问题越来越开始影响着人们的生产和生活,由于汽车拥有量的急剧增加,城市交通问题日益严重,因此交通问题开始成为人们关心的社会热点。在我国,近年来,交通事故发生率居全世界之首, 公路交通死亡人数直逼十五万人,有效的交通监测和管理已迫在眉睫。

传统的视频监控由人工进行视频监测发现安全隐患或异常状态,或者用于事后分析,这种应用具有其固有的缺点,难以实现实时的安全监控和检测管理。因此, 及时适时的智能交通系统开始逐渐被运用起来。智能交通系统指对交通系统的规划、设计、实施与运行管理过程都实行智能化,交通运输系统的运营管理与组织生产智能化其实质就是借助各种科技手段和高新技术,特别是信息技术、计算机处理技术、数据通讯传输技术、电子控制技术、运筹学、人工智能等将其综合应用,以实现交通故障处理的智能化,加强道路监管,保证人民的生产生活的正常运转, 有效地预防了许多交通事故的发生。在不需要人干预或者很少人干预的情况下,通过对摄像机拍录的视频序列进行分析以实现车辆的定位、识别和跟踪, 并在此基础上分析和判断车辆的行为,对车辆的行为给出语义描述,做到了既能完成日常管理,又能在发生异常情况时做出及时反应。

在这里,智能交通系统主要要用到视频分析,即要做到智能区分监控对象的外形、动作,主动收集数据和分析数据,根据预设条件执行报警、记录、分析等。对于视频分析而言,其关键技术是建立合理的数学模型。所以我们要对该视频进行处理,分析其所包含的信息。关键是要通过提取合理有用的信息,解决以下问题: 一:根据提供的视频,建立提取附录提供的视频图像的数学模型。

二:结合已提取的背景,建立计算车流量数学模型。

二问题分析

总的来说,首先,摄像头拍摄得到实时交通场景的视频;然后,将视频转化为逐帧图像进行分析。通过一定的检测方法,对图像进行实时跟踪检测,断某区域是否有车辆,从而提取出交通流量参数。

由于本题要求设备能够依据检测视频智能检测分析监控区域实时状况,并依据预设条件作出相应动作。故我们首先得到背景图像,作为与视频中图像比较的基准。在获得背景图像后,对图像进行前景提取。经过以上两步,接下来通过一系

列图像的运算,得到视频监控区域当前的状况,做出相应动作。再根据一定的图像处理方法和准则判断某区域是否有车辆。检测出车辆后,可在跟踪模块对车辆进行跟踪。由检测和跟踪的结果可以分析提取出交通流量参数。

所以,问题一,根据给定的视频建立提取视频图像的数学模型,从视频中提取出背景图像和前景图像,同时适时进行背景更新,以使结果更加准确。为了消除噪声等其他负面因素的影响,我们要对提取出来的图像进行后处理操作,从而减小与实际的误差,使后续的车流量统计更加精确 。问题二,需要建立车流量统计的数学模型。通过问题一的求解结果,利用已取得的背景和前景,我们用虚拟线圈方法,获得较为准确的车流量数据。在运用虚拟线圈方法时,虚拟线圈的数目会对车流量的统计结果起到重要影响,需综合考虑。

三基本假设

  1. 只针对该视频呈现信息,不考虑雨天、夜间等因素对视频分析的干扰。
  2. 将只有部分进入视频的车按整个计算。
  3. 不考虑车辆追尾和骤停等情况。
  4. 不考虑车辆经过或风出动时摄像头的轻微扰动。
  5. 除车辆以外道路上没有其它运动物体,即车辆是在场景中唯一运动的物体。
  6. 车辆在检测过程中,并无频繁换车道。
  7. 不考虑运动物体的临时停靠:由于高速公路停车危险很大,且现象较少,所以假设没有静止的车辆。

四符号说明

Nb 直方图灰度区间总数
Nd 进行直方图统计的总帧数
Ns 启动背景更新程序的帧间隔数目 Ns
Bn(x, y) 当前背景模型色
I n(x, y) 当前帧图像
DBn(x, y) 前景二值图像
DF n(x, y) 相邻两帧差分图像
DM n(x, y) 累加差分图像
Dn(x, y) 累加差分二值图像
M n(x, y) 综合法二值图像
V b, 当前帧的色度
S c 当前帧的饱和度
H c 当前帧的亮度
V b, 背景的色度
S b 背景的饱和度
H b 背景的亮度

五模型建立与求解

问题一模型建立

  1. 背景提取
    1. 背景模型的构建及更新

背景模型构建及更新是背景差分法的关键步骤。采用背景差分法进行运动检测,首先要构建背景模型,再用当前图像和背景图像进行差分运算,并对差分图像进行区域分割,提取出运动区域。在交通场景中背景环境变化较大,如环境光线会随时间渐变,建筑物、树木或云层投射到地面的阴影也会随光线的变化而变化,临时停靠在路边的车辆等等,这些都会使背景发生渐变或突变。为了保证背景模型的健壮性及检测结果的准确性,这就要求对背景进行实时更新。但是, 更新过于频繁,则容易将一些本不应属于背景的运动物体更新到背景中,从而造

成检测结果的不准确;如果背景更新速度过慢,则会导致当背景发生变化后,原背景模型不能很快地适应,从而导致误拍率的提高。我们的目标在于构建一个准确的背景模型,该模型能够迅速地适应外界条件的变化,并及时做出响应,从而提高检测结果的准确度。

基于统计的背景模型

统计建模方法是基于概率统计理论的。理论上讲,所谓静止的“背景”即在图像序列中灰度不发生变化或变化很小的像素。从统计学的角度看,背景中像素的灰度值可以看作是一个统计的结果,即图像序列中各个像素在统计上最可能出现的值。这种方法建立的背景模型在静止区域和真实的背景相似度比较高,而在包含运动区域时就与真实背景产生偏差,因为运动区域的灰度变化影响了均值结果,适用于背景大部分时间可见、运动目标数量少的情况。而且,为了保证能有较小的估计偏差,需要对很长的视频序列进行计算求其均值,背景的更新速度较慢。

方法一

像素直方图分析法是基于统计的背景提取方法。其主要特点为,在一般情况下,提取出的背景较时域平均方法好,同时其具有良好的抗噪声干扰性。其缺点为运算速度慢,运算量大,在即时有效提取背景方面仍有不足。

其实现过程为:

某一时间段内,视频中图像序列特定像素位置处出现频率最高的像素值是背景像素值,通过存储视频中每一像素位置在序列的时间轴方向上的直方图信息

(即在某一时间段内统计该像素位置处每一种可能的像素值所出现的次数),取该像素位置的直方图峰值所对应的像素值作为背景像素值。这样,对某一位置处的像素进行直方图统计就变成对该像素灰度落在各区问段的次数进行统计。

涉及的参数有:

Nb为直方图灰度区间总数;Nd为进行直方图统计的总帧数;Ns为启动背景更新程序的帧间隔数目,即每隔Ns 帧,背景更新一次。

为了减少算法对内存的需求量,可以将直方图灰度参数划分成区间段,然而仍不能避免对每一个像素都进行直方图统计分析计算量的缺点;同时,区间段越多,图像可用的灰度级会反之减少,不利于在背景提取时得到具有连续整数灰度

值的图像。灰度值的不连续性过多,我们利用该算法提取的背景图像的失真率单从在视觉上来讲,就会大幅升高。反之,如果我们要从一定程度上提高算法的的执行速度,增大每个区间段内包含的灰度级数目,就要想办法减小灰度区间总数。但从另外一方面,灰度区间总数减小,背景提取的可用的灰度等级数目也会随之大幅减小,从而使得大块的斑块会相互粘连,背景变得更加失真和模糊。

MATLAB基于视频的车辆检测方法

参考文献,我们综合考虑以上两点,设置灰度区间和帧数为256(即最大的区间数)和200帧,得到如下视频图片背景:

区间直方图法获得的背景

方法二

分块直方图分析法与像素直方图分析法比较,做了如下改进。由于相邻像素之间具有相关性,从一个像素点至另一个相邻像素点其灰度值变化较小,故可将图片分割成大小相同的块状区域用于快速提取背景。具体操作如下:首先,将视频图像分割成同等大小的像素块,注意为使快内像素点具有非常接近的灰度值, 所取像素块不宜过大,然后我们对像素块而不是之前的每一个像素点进行直方图统计,从而显著地减小算法的计算时间。同时我们为了使得每个区间段内只包含一个连续灰度,将直方图灰度区间总数定为最大灰度级加1,这样同时保持了图像灰度在空间上的连续性。由于选择分块进行统计,可将操作次数减至原来像素

直方图分析法次数的1/ m2 ,从而很大程度上减小了算法的计算量,提高了直方

图分析方法的背景估计速度,其中m为每个分块的长度。然而,图像边界处的像素之一般情况下具有很大偏差,使得我们再利用分块直方图分析法进行统计时, 对非边界的灰度值相近的像素点能得到较好的统计图像,而对于灰度值相差加大的边界区域会在图像边界处产生锯齿,且若统计图像偏小而分块较大时,锯齿现象更为显著,因此选取适当的图片和分块大小也很重要。这里我们对原有图像分为2X2的四块,所得背景如下:

MATLAB基于视频的车辆检测方法

2×2分块直方图获得背景

基于统计分块处理的背景更新方法:

本文背景重构算法是基于统计的结果,没有确定性模型,因此不能通过模型参数的调整来实现背景的自适应更新。这种情况下常用的背景更新方法主要有两种:一种是定时更新方法,即确定在一定时间间隔内更新背景,这种更新方法能适应背景的缓慢变化。另一种是实时背景更新,即在更新背景时,若当前帧和背景图像差分后所得差分图像中,发生变化的像素数和全部像素数比大于某一阈值

(通常取80%),且在随后几帧中连续出现这种情况,则重新抽取图像序列更新背景,这种方法可以及时对场景中环境的变化做出反应。对于某些特殊情况,如差分图像的某一固定区域中的像素,在较长的时间内一直显示为变化状态,

本文的背景更新算法是在以上两种方法的基础上,采用全局更新和部分更新相结合的方法。在背景差分运算过程中加入一个帧大小的像素变化统计表,记录每个像素点的变化频率,再根据统计的结果及像素间的相邻关系对背景作分块处理, 对不同分块采用不同的频率进行更新,从而使得运动区域很清楚的凸现出来,并对局部的变化做出及时的反应,使我们更容易将目标集中在我们感兴趣的区域; 同时当全部像素变化大于设定的阈值时,进行全局背景更新。通过实验可知,中值灰度归类算法较均值灰度归类算法接近于实际背景,检测出的运动车辆噪声影响也较少。基于统计分块处理后的背景更新算法,在运动区域对目标的检测结果, 也要强于原算法的背景更新方法。在检测过程中,背景更新需要抽取多帧图像进行重构,存在一定的时延问题,但对于长时间的监控检测来说影响不大。对于一些移动速度非常慢或者停止时间超过一定时间阈值的运动目标将会在背景更新

MATLAB基于视频的车辆检测方法
MATLAB基于视频的车辆检测方法

时被作为背景的一部分,而这种情况并不会对车辆检测产生过多影响,本文暂时不对它作任何处理。

区间直方图的背景更新

前景提取与二值化:

  1. 基于视频的车辆检测

帧间差分法

帧间差分法是基于运动图像序列中,相邻两帧或三帧图像间具有强相关性而 提出的检测方法。在摄像头固定的情况下,对连续图像序列中的相邻两帧或三帧 图像采用基于像素的时间差分,并且通过阈值化来去除静止的物体,提取图像中 的运动区域。这种检测方法只对运动物体敏感,对光照变化不敏感,不需考虑背 景缓变的影响,非常适合于动态变化的环境,而且运算简单,检测速度快,车辆 定位准确,适用于实时性要求较高的应用环境。其缺点:一是不能检测出静止或 运动速度过慢的物体,对于高速运动的物体又会使得分割区域远远大于真实目标, 其分割区域与目标运动速度相关;二是如果物体内部的灰度比较均匀,相邻帧差 可能在目标重叠部分形成较大空洞,严重时造成分割结果不连通,不利于进一步 的物体分析与识别。在实际应用中,帧间差分法往往是许多复杂检测算法的基础, 通过将它与其它算法结合来提高整体的检测效果。

背景差分法

背景差分法是目前运动分割中最常用的一种方法,它适用于摄像机静止的情况,或自然环境的缓慢变化,其最简单的实现是从视频序列中预先抽取不含前景运动物体的的一帧或几帧图像的平均作为背景,然后利用当前帧与背景图像的

差分来检测运动区域,进行背景消去。若所得到的像素数大于某一阈值,则判定被监视场景中有运动物体,从而得到运动目标。这种差分法对于复杂背景下的运动物体检测效果较好,一般能够提供最完整的特征数据,计算量小,实用价值大。缺点是在实际应用中,这种方法对于场景的变化,如光照和外来无关事件的干扰等特别敏感,需要采用一定的算法进行背景模型的动态更新。目前人们大都致力于研究如何实现背景图像的建模和自适应更新,使背景能够不断接近理想状态, 以减少场景变化对视频图像检测分割的影响。

与帧差法相比,背景差分法可以检测出短时间静止的车辆(长时间静止的车辆可以归为背景),也不受车速快慢的限制。应用背景差分法进行运动目标检测的研究中主要致力于开发不同的背景模型,以减少场景变化对运动目标分割的影响。这两种方法都是基于统计学背景模型法,这种方法估计出的背景图像在包含运动的区域与真实背景会产生偏差,而影响运动目标的提取。

本文采用了一种基于背景差分与帧间差分相结合的运动目标检测算法。由于背景差分法和帧间差分法的实现算法都比较简单,计算量小,易满足实时性的要求,并且背景差分法还可以比较完整的检测出运动目标,但缺点是对光照的环境条。件非常敏感,容易产生误操作;而帧间差分法对光照等环境不敏感,但帧间差分法却不能完全检测出运动目标。因此把这两种算法结合起来,实现优势互补。

综合背景差分与帧间差分法(改进检测法)

改进的车辆检测方法是将背景差分与帧间差分相结合来实现运动目标的检测。由于背景差分法和帧间差分法的实现算法都比较简单,计算量小,易满足.实时 性的要求,并且背景差分法还可以比较完整的检测出运动目标,但缺点是对光照 的环境条件非常敏感,容易产生误操作;而帧问差分法对光照等环境条

件不敏感,但帧间差分法却不能完全检测出运动目标。因此把这两种算法结合起来,实现优势互补,它可以改善因物体内部纹理较少而在帧间差分时造成空洞甚至分裂的现象。

具体步骤如下:

  1. 背景差分法提取运动目标

假设提取的当前背景模型色Bn(x, y) ,当前帧图像为 I n(x, y) ,则前景二值图像

式中阈值threshold应适当选择,从而可以较好地过滤残留的背景部分。它主要与摄像装置有关,可以通过实验来确定。上述简单的运动目标提取方法并不可靠, 原因是提取的背景并不等同于当前帧的背景,这样在当前帧减去背景帧后有可能出现非运动目标残留的情况。因此,在改进的算法中加入了差分信息,可以达到较高的提取准确度。

  1. 结合对称差分提取运动目标

对称差分是将当前帧与前后两帧的差分图像进行与操作,容易损失差分信息。如果将两幅帧差图像累加,然后再阈值化,就可以很好地抑制差分的噪声。

实验结果表明这种方法能够快速有效地提取复杂交通场景下的运动车辆。

MATLAB基于视频的车辆检测方法

改进检测法的二值化图像

阴影检测及消除方法

通过前面的背景建模和图像检测,在检测出的图像中多多少少存在阴影的干扰,当阴影面积较大时还会覆盖邻近的车辆,致使算法误将多个车辆检测为一个车辆,对后期识别造成困难,使系统的整体性能下降,所以必须消除阴影。

阴影的形成特点

阴影是因为场景中物体对光源的遮挡产生的,可分为本影和半影,本影是指入射光源被完全阻挡后在物体表面形成的较暗区域,半影是指入射光源被部分阻挡后在物体表面形成的半明半暗区域,并非所有的光影都产生半影,以平行光束入射到物体表面的阴影只能产生本影。本影又可分为自身阴影和投射阴

影,当物体背离光源照射方向时,在其表面形成自身阴影,当物体不透明时在其遮挡光线的场景区域中形成投射阴影。对于车辆的阴影分割,多以自然日光为入射光源,产生的是平行光束,因此不会形成半影区域。自身阴影区域位于车身区

域的一部分,并不影响车辆本身的外形,而与车身区域相连的投射阴影

影响车型参数的提取,所以一般的阴影分割算法都是指对投射阴影的分割。消除阴影是运动车辆检测中一个比较难的问题,这是由其自身的特点决定的:首先, 运动车辆的自身阴影也是运动的,并且它的大小、位置和灰度都是不可预测的, 很难对其建立统一的模型;其次,阴影与车辆连在一起并以相同的速度运动,这样用简单的运动检测方法很难将阴影和车辆区分开。下面介绍的阴影分割方法, 都是在一定的假设环境下或特定的模型空间中有效。

基于HIS 空间的阴影检测算法

基于上述问题,本文采用了一种在HIS空间中进行的阴影检测算法。HIS彩色系统模型是根据视觉原理定义了三个互不相关的颜色属性,色调(H)、亮(I)、饱和度(S),其中,H是表面呈现近似红、黄、绿、蓝等颜色的一种或几种的目视感知属性,用R,G,B三个分量中的最小值去减另外两个分量,得到该像

素所对应的光谱色,然后由这两个分量的比值来确定;S是颜色具有“白光”的程度,定义为R,G,B三个分量中最小的分量除以亮度值;I是物体表面相对明暗特性,定义为R、G、B三个分量的平均值。HIS空间中三分量H,I,S具有相对独立性,可分别对它们进行控制,能够准确定量地描述颜色特征,因而在图像处理和分析中,常常把RGB空间转换为HIS空间。之所以考虑在HIS空间进行,是因为HIS 空间不仅可以更接近人的色觉反映,而且能更精确地反映一些灰度信息和色彩信息,特别对于图像中极亮和极暗的物体也能很好地反映出相应的信息。

MATLAB基于视频的车辆检测方法

阴影消除后的二值化图像

5.4图像的后处理

在实际应用中,对图像进行二值化以后,分割后已经能大致显示出车辆的轮廓图,但由于光线的反射、车辆车窗灰度及车身灰度或路面太接近等原因,分割后的图像不可避免地存在横向及竖向的断层,区域边缘也不太平滑,目标内部总是或多或少、或大或小存在一些空洞,同时一些噪声也可能被当作运动

区域分割出来。对于比较集中的噪声可以通过判断运动区域的大小加以剔除,因为在交通场景中运动目标所占的区域总是比可能的噪声要大。但是对于孤立点噪声和运动区域的空洞,必须进行处理。图像处理的目的就是去除干扰、噪声和差异,使系统关心的特征更加明显,将图像变成适合计算机进行特征提取的形式。现有的滤波算法很多,常用的有以下几种:均值滤波、中值滤波、高斯滤波、带通(包括低通、高通、带通和带阻)滤波、数学形态学滤波等,其对不同的噪声有不同的滤除效果,如高斯滤波对高斯噪声的处理效果最好,中值滤波可有效的滤除脉冲型噪声,而且对图像的边缘有较好的保护,带通滤波对图像有平滑和锐化作用,形态学滤波对随机噪声有很好的滤除效果,而且可以分割或连接相邻区域。根据差分图像的噪声随机分布的特点,本文选用数学形态学滤波来滤除噪声。

1)数学形态学滤波除噪声

数学形态学是一种应用于图像处理和模式识别领域的新理论和新方法。它主要以积分几何、几何代数及拓扑论为理论基础,将对象模型化,对集合进行研究, 它认为集合结构等信息存在于对象之间的关系可通过结构元素联系,用具有一定

形态的结构元素去度量和提取图像中的对应形状,以达到图像分析和识别的目的。结构元素是对象集合的一个子集,比较简单而且一定是凸的紧致集合,它与图像 处理的模板有相似作用,但性能比模板更强,它对图像进行移位、交、并等集合 运算构成形态学的各种处理算法。

各种形态学算法都是以腐蚀和膨胀这两种最基本的运算为基础,这两种运算的不同组合构成开、闭等基本运算,这些基本运算再进一步组合便可实现复杂的处理功能。腐蚀的作用是消除物体边界点,如果两个物体间有细小的连接,通过腐蚀运算可以将两个物体分开。通过竖向膨胀运算,物体的边缘扩大,所以必须采用一次腐蚀运算,以使物体消除增加的边界点。视频检测中容易出现车辆粘连问题,通过腐蚀在一定程度上可以将有细小连接的车俩分开。

其基本运算表示如下:

设 A 为图像集合,B 为结构元素,S 为结构元素分布区域,Φ为空集。

膨胀和腐蚀

膨胀:膨胀算子为 ,A 被 B 膨胀记为 A B

开运算和闭运算

膨胀和腐蚀并不是互为逆运算,所以它们可以级连结合使用。如使用同一个结构元素先对图像进行腐蚀,然后膨胀其结果,这种运算称为开运算;如果先膨胀后腐蚀其结果,则称为闭运算。

开运算的算子用

MATLAB基于视频的车辆检测方法

表示,用B对A做开运算记做A

MATLAB基于视频的车辆检测方法

B,定义为

MATLAB基于视频的车辆检测方法

A B  ( AB)  B

闭算子的算子用 表示,用B对A做闭运算记做A B,定义为

AB  ( A B)B

开运算和闭运算也具有对偶性。开运算能够去除孤立点、毛刺和小桥(连通两块区域的小点),而总的位置和形状不变。闭运算能够填充小孔,弥合裂缝,也不改变图像的总体形状和位置。以上各种运算都具有位移不变性、单调增长性、等幂性等,而这些特性是它们在图像处理中得以应用的基础。另外各个不同元素还具有各种不完全一致的特性,如组合性、互换性等。各种数学形态学算法的应用可分解为形态学运算和结构元素选择两个基本问题,形态学运算的规则己由定义决定,于是形态学算法的性能就取决于结构元素的选择。结构元素实际是一个小窗口内的灰度“形态”,也就是当窗口大小一定时,只需要确定窗口内像素点的数值大小。结构元素的选择包括结构的形状和大小两方面,可以根据处理的图像的特征和要求选择,一般滤除噪声可选择圆形、方形或十字形的结构元素,其尺寸大小根据实际情况而定,取值多在3-9之间。通过数学形态学滤波,差分图像中的噪声被除去了,且原来车辆上的一些空洞也被填平了,形成了一个较完整的车辆轮廓。在这里,我们采取方形结构元素,用开运算,即先腐蚀后膨胀的方法, 去除背景图中有阴影相连接的前景。

在得到理想背景的条件下,将背景差分图像经过二值化、形态学处理、区域填充后,可以得出运动车辆目标。

MATLAB基于视频的车辆检测方法
MATLAB基于视频的车辆检测方法

形态学处理前单个车二值化图 形态学处理后单个车二值化图模型二建立

基于虚拟线圈的交通参数确定

利用虚拟线圈的方法检测车辆和统计交通流量参数,就是模仿实际埋设于路 面下的电磁感应线圈,在图像序列或者视频中,人工或者自动设定一系列的区域, 这些区域可以覆盖整个图像,也可以局限于图像的某个部分,就像在道路上埋检 测线圈一样,当其位置、大小确定以后,就可以由图像处理技术检测车辆。其作 用类似于电磁感应线圈,将二维图像信号转化成类似电磁感应线圈的一维时间信 号,然后监视该时间信号判断是否有车辆经过,并且完成车速测量。该方法的特 点是避开了在二维图像空间中进行复杂的车辆特征提取与跟踪。各个虚拟线圈的 输出信号主要来源于帧间差分,当帧间差分的结果小于判断阈值时,系统会自动 调用减背景图像处理方法来产生虚拟线圈信号。通过对交通流实际样本的自学习, 系统能够找到合适的放大倍数来调整线圈输出信号,从而抑制噪声,使得虚拟线 圈的输出信号更真实的反映车辆的实际通过情况。

每个虚拟线圈都拥有自己的数据缓冲池而不会造成多线圈间的数据访问混乱, 数据缓冲池中的数据是逐帧更新的。通过监视各个数据缓冲池中的信号,系统能 够检测到车辆的出现并开启跟踪进程。当同一个车道上前后两个线圈同时检测到 车辆的运动时,系统从两个线圈的数据缓冲池中找到相应索引位置的数据进行相 关匹配求得车辆的行驶速度。

最后,各车道的流量统计、各车辆的速度测量通过监视、跟踪虚拟线圈的输出信号求得。 目前,在使用虚拟线圈技术中,主要有两种方法,一类是将检测

区域分割成大量估值运动块,相当于设置多个虚拟线圈,这些虚拟线圈由N×N 大小的方块组成,然后结合基于方向的运动矢量检测对区域中的物体运动进行检测。另外较为常用的是把图像按照车道分为不同的检测区域,此区域即为虚拟线圈的检测范围。区域中设置检测线,每次在计算机上只检验区域对应的扫描行, 仅仅对区域中若干个检测线的象素进行分析。本文采用后一种方法,并对检测区域的选取和设置作了适当的改进。

检测区域的选取和设置

虚拟检测区域是人为设置的检测区域,并不改变图像中它所在位置的颜色值或灰度值,只是在设定的时候由程序记忆标定的位置,以便图像处理时只对检测区域内进行处理。虚拟线圈可以在视频图像中自由设置,并且位置和大小可以调整。系统只处理虚拟线圈内的图像,由此降低了运算时间。检测区域一般水平放置于图像的中下部,在一定程度上可以避免前车遮挡后车的问题。检测区域不宜过大也不宜过小,区域过大会造成处理区域的象素个数增加,对应的数据运算时间也会增加,最终导致无法实现实时处理的要求。区域过小也不行,区域内的象素太少,会影响通过车辆的检测。因为识别的过程是以像素为基础,象素过少它反映的信息量就不足以去识别判断运动目标,当非目标的物体通过时就有可能造成误判,最后给检测数据带来偏差。所以要选择适当的处理区域大小,不影响系统的实时性。通常,一个检测区域高度为普通车长,宽度小于车道的宽度,因为车辆经常出现骑线驾驶和频繁换道情况。只有这样,才能使前面介绍的车辆目标检测方法比较完整的检测出一辆车来。虚拟线少,检测速度快,但容易产生误判;虚拟线多,会降低检测速度,但增强了检测结果的准确性。虚拟线的高度设置为1 个象素。在虚拟线的设置中有一点值得注意,因为路标通常标在车道的正中央, 有可能出现检测器穿过路标的现象。一般路标都是比较醒目的,与路面的灰度反差较大,在这种情况下有可能出现误判,所以尽量不要使虚拟线和路标有交集。

  1. 检测区域设置方法

检测区域的设置虽各有不同,但工作原理基本相同,都是实时扫描监测区域内的像素,当出现连续的运动目标像素时,表示有车辆正在经过检测区域;当相应位置的像素恢复为非运动目标像素时,表示车辆已经驶过,车辆数计数加一。下面以设置虚拟线圈为例,参考文献【1】说明车流量的统计原理:记虚拟线圈中运动

目标(即车辆)特征像素点的数目为 M P

,虚拟线圈状态为Z ,取值为0和1:“0”

表示虚拟线圈没有车辆存在;“1”表示虚拟线圈中有车辆存在。可通过式来判断当前帧图像的虚拟线圈状态。

数据流提取

对相邻帧局部检测区域图像比较后检测区域内留下的车辆信息进行形态学处理后,还要进行量化,生成数据流。若用‘1’表示检测带内相应位置由车辆信息, 用‘0’表示检测带内相应位置无车辆信息,则检测区域内车辆信息就完全可用数据流表示。 在这里我们设置了宽度为164,高度为14 的像素点区域,为了减少数据的运算量以及所需的讯存期的数目,选取了4个像素宽,14个像素高的信息生成数据流的一个信息位。生成的算法如

式(6-2)所示,其中:I n 为数据流信息位, f (i, 4n j)为检测区域点的灰度值;

MATLAB基于视频的车辆检测方法

Bw 为检测区域宽度; GI 为数据流阈值,由统计的数据而定。

MATLAB基于视频的车辆检测方法

数据流修正

由于相邻帧局部检测区域图像比较可能会造成车辆的一部分信息丢失而产生断 带,因此需校正数据流,得到尽可能连续的“1”。首先进行填1操作,消除断带; 然后进行填0操作,去除不足以表示一辆车的信息位“1”。这一顺序不能颠倒.

  1. 填1:修补数据流中的断带。对于两个有断带信息位“1”,统计断带中的

“0”。若小于阈值,则进行填“1”操作;否则,保留原值。阈值为两辆并行车 辆的视频图生成数据流后的最小间距,该最小间距由镜头安装高度和角度等决定。

MATLAB基于视频的车辆检测方法

水平间距。

MATLAB基于视频的车辆检测方法

填0:统计连续“1”段,对不足以表示一辆车的信息位。“1”段进行填“0”操作,阈值为车辆最小宽度。

车辆计数

如果用当前帧的数据流减去上一帧的数据流只可能出现4种情况和3种结果

  1. 上一帧某一位置没有车,当前帧对应位置也没有车:0减0,结果为0;
  2. 上一帧某一位置没有车,当前帧对应位置有车:1减0,结果为l;
  3. 上一帧某一位置有车,当前帧对应位置没有车:0减1,结果为-1;
  4. 上一帧某一位置有车,当前帧对应位置也有车:1减1,结果为0。

结果为“1”表示有新车到来,结果为“-1”表示车辆已经离开,利用该结果可以方便的进行车辆的计数。我们利用MATLAB7.0编程模拟。

七模型的求解与检验

为了虚拟线圈的视频检测法的求解准确,我们在同一水平线处同时设置了四条虚拟线线圈,如图:

MATLAB基于视频的车辆检测方法

从左至右依次即为1,2,3,4,虚拟线圈

针对路口一段时间内以车流量为例进行了实验。我们将检测器的检测结果与人工数车结果进行比较。

用漏检率、虚警率、准确率作为指标来评价系统的性能,分别定义为: 漏检率=系统漏检车辆的数目/人工数车的总数量

虚警率=系统多数车辆的数目/人工数车的总数量准确率=1-漏检率-虚警率

统计结果如下:

虚拟线圈 人工数车 程序数车 其中 漏检率 虚警率 正确率
正确 漏数 多数
1 68 64 62 5 1 7.35% 1.47% 91.17%
2 66 70 56 3 7 4.54% 10.60% 84.85%
3 71 69 65 4 2 5.6% 2.81% 91.55%
4 69 66 64 4 1 5.79% 1.44% 92.75%

漏检率和虚警率越小,得到的准确率就越高,表明系统的性能越好,而系统的漏检和多数的车辆数目则是人为对当前的实际图像是否有车进行判断并和程序是否加一计数相比较得来的。

八实验结果分析

在光照条件较好的天气情况下,虚拟线圈检测具有较高的准确率,且能完全接近

地感线圈检测法的检测效果。但在光照较差的情况下,虚拟线圈检测的准确率较低,特别是虚警率比较高。主要原因有以下几个方面:

①在光照不好的情况下,图像的对比度下降,图像序列灰度化后,车辆目标特别是车玻璃和背景在灰度上很相近,造成车辆目标无法较好的提取出来。

②图像填充部分对去除噪声的要求比较高,因此如果前面去噪的效果不好,会造成噪声被误认为是车辆,造成虚警率提高;同时,部分经验值设定的不够合理也会影响到检测的精度。

③背景更新算法影响阴影检测算法,如果背景更新算法不理想,其阴影检测的结果就会有较大的偏差。

九模型的优缺点:

优点:改进了车辆检测方法,同时采用了分块处理的背景更新策略,提高了系

统的实时可靠性;对于阴影干扰的消除,采用了基于HIS空间的阴影检测算法来实现;最后通过在视频图像中设置多个虚拟线圈来完成交通参数检测。整体来讲, 简单,易于实现,运算量小,实用性高。

缺点:该模型无法对由于相邻车道的车辆遮挡、车流量较大导致前后车距离过近甚至相粘连、红绿灯或者交通阻塞造成的长时间停车等原因造成车辆检测出错等进行修正。

十 模型的改进与推广:

模型的改进

以上的模型是在一定的假设条件下对实际分析过程的一种抽象简化,但与实际情况并不完全相符,下一步可以尝试从以下几个方面来解决:

1)采用更好的图像采集设备,使得采集到的数据更加清晰,更适合处理,通过改善前端数据采集的性能来降低后端算法上的难度。2)可以将算法移植到硬件,这样就可以采用某些以前无法采用的大计算量的算法,比如可以在彩色图像上直接进行处理。3)可以研究更加适合车辆交通图像的二值化方法,以及选择更加合适的去噪滤波器,尽可能降低噪声对后续判定的影响;在某些经验值的设定上要通过更加大量的测试来确定,选择更好的数值以提高准率。4)本系统的阴影检测算法依赖于背景估计算法,可以尝试使用更好的阴影检测。一方面,可以加强多个

线圈之间的协同操作。如通过相邻车道线圈的协同处理,判断当前检测到的车辆是否为邻车道车辆的遮挡造成的误判;另一方面,对于像长时间停车的问题,可以在全天候车辆检测系统中设计一种环境评估算法,判断当前线圈检测值的变化是否是由气象、光照等条件变化引起的。确实是环境变化的话,可以加快背景更新速度,相反若是停车,则可以减缓更新速度甚至暂停背景更新。这种在整体框架下对检测算法进行改进的思路与方法,是解决上述问题的正确途径,也是今后研究的方向。

模型的推广:

本文建立了两个模型,一个是背景和前景提取模型,一个是实用简化的车流量统 计模型。前者借助一定的科学知识,有坚实的理论基础;后者基于前者的模型之 上利用简易的模型对实际问题进行抽象简化,最终形成一个简单实用的求解方法。利用视频检测器来检测交通信息作为智能交通系统中的一项重要技术,已受到越 来越多的重视。计算机视觉技术在智能交通系统中有着巨大的应用潜力,日益受 到重视,出现了越来越多的相关研究、论文、产品,涉及到交通标志检测、道路 识别,车辆检测与识别、车牌识别、行人检测、传感器融合等许多领域的技术。该模型可在今后生活中可以用于交通管理中的电子警察,以及餐饮服务行业的制 造监控自动化。

参考文献

【1】 刘宝民, 动态交通信息采集与数据融合技术的研究[D].硕士学位论文,

2008;

【2】 彭强,李华,基于块直方图分析的视频背景提取方法[J].西南交通大学学报,2006,41(1):48—53;

【3】 李湘平,杨兆选,基于虚拟线的视频交通检测新算法,电子测量与仪器学报第19卷第四期:page1,2005,8;

【4】 李晓飞,梅忠辉,一种基于直方图统计与多帧平均混合的背景提取算法, 南京邮电大学学报第28卷第6期:page1,2008,12;

附录

% “高速公路汽车阴影”视频的阴影去除的方法clc;

clear all; close all;

% 打开视频文件对话框

h1=figure('toolbar','none','name','Shadow Removal');

[FileName,PathName]=uigetfile( { '*.avi','avi (*.avi)';'*.*','All Files (*.*)'},'Open video sequence' ); if isequal([FileName,PathName],[0,0])

return; else

pic_path=fullfile(PathName,FileName); mov=aviread(pic_path);

end

n=100; % 读取视频帧数

s=1; % 起始为 1

e=n; % 结束为 n

[ih,iw,id]=size(mov_gray(1).image); % 取得视频帧的大小

% 计算 1 到第 n 帧的各个像素的均值

for i=s:e

u=mov_gray(i).image; h=u(:)';

t(i,:)=h(:);

end

tmp=median(t); % 对 t 数组各列取均值

mean=reshape(tmp,ih,iw,id); % 将n 帧均值图像恢复成 h*w*d 的图像矩阵,得到背景

figure,imshow(uint8(mean));title('背景图像'); fn=18;

ok=mean; tmp(1:3)=0;

di=20;

th=ones(1,1,3)*di; % 预设阀值

diff=double(ok)-double(mov_gray(fn).image); % 计算第 fn 帧图像与背景的差值

diff1=abs(diff); for ai=1:ih

for bi=1:iw

if abs(diff(ai,bi,1:3))>=th(1,1,:)

ok(ai,bi,1:3)=mov_gray(fn).image(ai,bi,1:3); else

ok(ai,bi,1:3)=0;

diff1(ai,bi,1:3)=0; end

end end

figure,imshow(uint8(ok));title('前景图像');

g=rgb2hsv(mean); % 将背景图像由 RGB 格式转为 HSV 格式

figure,imshow(g);title('背景图像的 hsv 格式'); impixelinfo;

figure,imtool(g);

g1=rgb2hsv(ok); % 将前景图像由 RGB 格式转为 HSV 格式

figure,imshow(g1);title('前景图像的 hsv 格式'); impixelinfo;

figure,imtool(g1);

% 阀值分割

for ci=1:ih

for di=1:iw

if (g1(ci,di,3)./g(ci,di,3)>=0.4)... %这个地方的阈值选取是手动的,根据经验得到!

&&(g1(ci,di,3)./g(ci,di,3)<=0.5)...

&&abs(g1(ci,di,2)-g(ci,di,2))<=0.05 && abs(g1(ci,di,1)-g(ci,di,1))<=0.1; h1(ci,di,1:3)=1;

else

h1(ci,di,1:3)=0; end

end end

h=hsv2rgb(h1);

figure,imshow(h);title('阴影去除结果');文章来源地址https://www.toymoban.com/news/detail-424315.html

到了这里,关于MATLAB基于视频的车辆检测方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于OpenCV的车辆检测与记数

    本文提出一种简单有效的基于opencv的车辆检测与计数方法。 首先通过高速公路上的摄像头 获取到一段车流量视频 , 先预处理 :利用灰度线性变换,为了只关注视频中车辆移动的特征,不关注不同车辆的不同颜色的干扰特征; 然后对灰度视频去除背景 ,进一步抑制车辆外的

    2024年02月03日
    浏览(37)
  • 基于MATLAB车辆防碰撞系统仿真

    近年来,汽车行业的飞速发展使得我国的汽车保有量快速增长,但由此引发的交通事故导致的人员伤亡数量仍居高不下。从保护人身安全和降低交通事故发生的可能性的角度出发,车辆防碰撞系统能够使驾驶员在没注意到与前方车辆有碰撞危险的情况下采取自动紧急制动措施

    2024年02月08日
    浏览(38)
  • 浅析TSINGSEE青犀视频AI智能分析网关车辆检测/车牌识别算法及应用场景

    在数字化时代,随着大众对出行要求的提升,汽车数量也成与日俱增,为城市与交通管理带来了许多困扰。旭帆科技为给交通管理和车辆安全提供高效的解决方案,特此研发了AI智能车辆检测与车牌识别算法。 旭帆科技TSINGSEE青犀视频AI车辆检测、车牌识别算法融合了ORC识别、

    2024年02月09日
    浏览(43)
  • 基于opencv深度学习,交通目标检测,行人车辆检测,人流统计,交通流量检测

    文章目录 0 前言+ 1. 目标检测概况+ 1.1 什么是目标检测?+ 1.2 发展阶段 2. 行人检测+ 2.1 行人检测简介+ 2.2 行人检测技术难点+ 2.3 行人检测实现效果+ 2.4 关键代码-训练过程 最后 设计项目案例演示地址: 链接 毕业设计代做一对一指导项目方向涵盖: 1.1 什么是目标检测? 目标检

    2024年02月04日
    浏览(58)
  • 基于yolov5的车辆行人道路检测

      本实验使用自动驾驶的公开数据集BDD100K。   数据格式:BDD100K 数据集包含10万段高清视频,每个视频约40秒720p30 fps,总时间超过1,100小时。视频序列还包括GPS位置、IMU数据和时间戳;视频带有由手机记录的GPS/IMU信息,以显示粗略的驾驶轨迹,这些视频分别是从美国不

    2024年02月08日
    浏览(37)
  • 基于 OpenCV 的车辆变道检测,计算机视觉+图像处理技术

    本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!大家一定听说过使用 OpenCV 的 haar 级联文件可以检测到面部、眼睛等,但是如果目标是汽车,公共汽车呢? 01. 数据集 我们将道路上汽车的视频文件用作数据

    2024年01月25日
    浏览(71)
  • 基于帧差法和形态学处理的行驶车辆跟踪算法matlab仿真

    目录 1.算法理论概述 2.部分核心程序 3.算法运行软件版本 4.算法运行效果图预览 5.算法完整程序工程         车辆跟踪是计算机视觉领域中的一个重要问题,它在交通监控、智能交通系统、自动驾驶等领域具有广泛的应用。本文介绍一种基于帧差法和形态学处理的车辆跟踪算

    2024年02月16日
    浏览(39)
  • 基于yolo v5与Deep Sort进行车辆以及速度检测与目标跟踪实战

    项目实验结果展示: 基于yolo v5与Deep Sort进行车辆以及速度检测与目标跟踪实战——项目可以私聊 该项目可以作为毕业设计,以及企业级的项目开发,主要包含了车辆的目标检测、目标跟踪以及车辆的速度计算,同样可以进行二次开发。 这里附上主要的检测代码 项目需求+

    2024年02月14日
    浏览(55)
  • 【DDoS攻击检测】基于改进的非洲秃鹫优化算法和一种新的DDoS攻击检测传递函数的特征选择方法(Matlab代码实现)

     💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 ​ 🎉3 参考文献 🌈4 Matlab代码实现 物联

    2024年02月13日
    浏览(42)
  • 车辆姿态表达:旋转矩阵、欧拉角、四元数的转换以及eigen、matlab、pathon方法实现

    旋转矩阵、欧拉角、四元数主要用于表示坐标系中的旋转关系,通过三者之间的转换可以减小一些算法的复杂度。 本文主要概述旋转矩阵、欧拉角、四元数的基本理论、三者之间的转换关系以及三者转换在eigen、matlab和pathon上的方法实现。 对于两个三维点 p1 、 p2 : p 1 ( x

    2023年04月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包