基于视频的车流量检测摘要:随着交通事业的迅速发展,智能交通系统(IntelligentTrafficSystem,ITS)作为新一代道路交通系统变得日趋重要。在智能交通系统的发展中,实时获取交通车流量的车辆检测技术扮演着一个极为重要的角色。本文利用实时刷新背景的方法提取车辆视频的背景,并通过视频的当前帧与背景帧之间的帧差来提取车辆轮廓,以检测车辆,并且利用质心跟踪的方法对检测到的车辆进行跟踪,同时根据一定的区域匹配准则对车辆进行统计。关键字:智能交通系统图像处理目标识别流量统计随着我国城市化进程加速,城市人口及机动车数量正在飞速增长,这导致了交通流量不断加大,各种交通堵塞事故频发。交通问题已经成为了政府部门工作的重要难题,同时也给城市的经济建设带来了阻碍和约束。为了解决这一问题,智能交通系统(ITS)便应运而生,从而实现交通运输服务和管理的智能化。交通数据监控系统是智能交通系统中的一个重要组成部分,它能够对道路交通状况进行数据参数采集检测,例如:车牌、车速、车流量、车型、排队时间长度等重要信息。所以,适当的信息检测技术就发挥着非常重的作用。因此,本文以智能交通系统为背景,以视频图像处理技术为手段,将车辆目标识别和统计算法与OpenCV相结合,研究并设计了基于视频的车流量检测系统。重点对车辆的目标识别与统计算法进行了研究,提出一种基于背景差分法的目标识别算法,使用的背景能进行实时更新。1车辆检测算法首先,对捕获的每一帧图像,与提取的背景相减,得到两者的灰度差图。先通过阈值二值化差图,这里用的是自适应阈值法。然后用Canny算子进行边缘检测,通过膨胀与腐蚀运算提取到连通区域。最后寻找车辆的轮廓检测到车辆区域。车辆检测算法流程如图1所示:图1检测算法流程图1.1实时背景更新算法为了能够更加准确的检测到运动目标,就要使背景图像随着当前帧图像的背景变化而变化,即实时背景更新[1]。图像背景是在图像序列中的灰度值基本不变化或者变化很小的像素。从统计学角度出发。背景中的像素的灰度值是图像序列中各个像素在统计上最可能出现的值。是一个统计的结果。假设为第N帧的背景估计图像,表达式为:(2)在采集得到新的一帧图像之后,得出的背景估计为:(3)式(2)和(3)可等价为:(4)按照这种更新方法,虽然得到的更新后的背景在静止区域跟真实背景的相似度很高。但在运动区域与背景会有偏差,如果在背景中存在有运动速率缓慢的物体,那么在更新后得到的背景会产生比较明显的偏差,这种方法较为适用于运动物体持续运动并且运动目标较少,背景在多数时间段内是保持不被遮挡的情况。在这种情况下要提高背景与真实背景的近似度,需要进行大量连续视频图像的均值运算,但是这样会消耗非常多的内存。在实际情况下,若得到比较少的连续视频图像,可以用中值函数来作为背景更新的函数,公式如下:(5)为了使运动目标不会被背景所统计,可以利用运动目标检测结果进行背景更新,即运动目标区不做背景更新处理,没有运动的目标区域使用连续多帧图像中值来更新背景。公式为:(6)其中为被检测的第帧中的运动目标,为对应光流值。这种算法比较简单,能够及时地更新没有运动目标的区域,如果出现运动目标出入背景,这部分中的背景会被及时更新,如果检测到光流值阀值,这样就可以减少运动目标被误判概率。但光流法的计算极容易受到其他因素的干扰,如噪声等因素。所以这种算法的精确度会受到一定程度的影响。本文使用的背景更新方法是基于统计学的背景更新法。在运动目标检测结果的基础上。对连续多帧图像中的运动目标区域进行背景图像替换。并对其进行求平均值,其公式为:(7)(8)其中为当前帧中背景部分及替代运动目标的前一阵背景图像的和。是经过背景更新后所生成的背景。其中M=20,这种算法优点是:运算简单,能够根据背景的变化进行实时调整背景。更加适合当前环境下的目标检测[2]。利用函数cvAbsDiff(pFrameMat,pBkMat,pFrMat)将当前帧的图像矩阵与背景帧的图像矩阵相减,得到差分图像。1.2图像阀值分割为了能够准确提取视频图像中的运动车辆。必须进一步对差分图像进行分割(即二值化)。然而在进行差分图像二值化时。最关键的一步就是阀值的确定。现在我们一般使用到的确定阀值的方法是全局阀值法;局部阀值法;动态自适应阀值法。在实际道路中,由于受到外界环境诸多因素影响。导致所采集的图像在灰度化时结果复杂化。要想准确的分割出运动区域,这里就需要用到自适应阀值法。本文使用的是一种基于OUTSU的改进算法。进行二值图像阀值的选取。对于图像的前景和背景的分割阈值T而言。、分别代表前景、背景像素点占整幅图像的比例。其平均灰度值分别为、。图像的总平均灰度记为,类间方差为g。若图像的像素大小为M*N。图像中像素的灰度值小于阈值T的像素个数为。为大于阀值的像素个数。根据OUTSU的算法得出:(9)(10)(11)因,有,带入式(2-6)可得:(12)这里在不增加算法复杂度的情况下,采用遍历的方法得到使类间方差最大的阈值T,即为所求[3]。1.3边缘检测所谓的边缘就是图像中灰度发生急剧变化的像素点的集合。对二维图像进行边缘提取。就是检测边缘在强度上的非连续性。或者说对这些图像强度的不连续点进行提取。图象边缘的确定与提取对于整个图象场景的识别与理解是非常重要的。同时也是图象分割所依赖的重要特征。在本文程序中使用的是Canny边缘检测[4]。1.4图像的腐蚀与膨胀腐蚀是指从图像边界处消除一些像素,使边界向内收缩的过程,其主要作用就是消去小且无意义的物体。常见的腐蚀算法主要使用半径1的结构元素。在实际操作中,一般会应用多次连续腐蚀,当连续层被消除后,特征对象将会缩小,直至保留中心点或消失。膨胀式腐蚀的对偶运算,可以理解为腐蚀背景,使背景合并到目标物体中或连通较近的目标物体。在系统中可以经过多次膨胀使整个车辆都成为目标区域。2跟踪算法的基本思想在图像阈值分割后,接下来进行车辆团块跟踪,在每一帧上都设定相应车道的检测区域,在目标车辆从进入检测区域到驶离检测区域的整个过程中,利用相邻两帧的区域匹配从而在图像序列中以链表的形式建立目标档案,在之后的帧序列中,不断地刷新目标档案,删除驶离检测区域的旧车辆,添加新进入检测区域的新车辆,从而实现了对检测区域范围内的车辆跟踪,而且每跟踪到一辆新车辆车流量就自动加1,进而完成车流量的统计。本文所设计的系统检测的运动目标是具有规则外形的车辆,所以本文利用运动目标的最小外接矩形的中心来近似形心。区域的最小外接矩形坐标被定义为两个坐标点和。其中代表外接矩形框的左上角的点。代表外接矩形框右下角的点。那么矩形框的形心的表达式为:,其中(13)(14)系统采用基于车辆质心的跟踪方法,具体设计的算法如下:(1)从第一帧开始寻找帧图像上每个车辆的轮廓,并用外接矩形框表示这些所找到的车辆,同时以链表的形式建立起完全目标档案。(2)在视频中设置感兴趣的区域。以便于车辆在通过这些特定区域时。能够识别车辆并统计车流量。(3)逐一查询完全目标档案中的车辆,并且计算出每一个外接矩形框的形心的位置。(4)判断形心的位置是否在所设定的感兴趣的特定区域内,并把小于一定宽度和面积的矩形框当作干扰图像,只把满足一定条件的矩形框存入跟踪数组中,本算法中预先设定的跟踪数组是的2维数组,分别代表四个车辆通道的车辆检测情况,主要存入数组的是通过特定区域的车辆的质心位置和检测到车辆的帧的序列号。(5)对于完全目标档案中的车辆。如果在本镇的检测区域中,没有出现与之相匹配的车辆。则认为车辆已经驶离了检测范围。(6)查找本帧是否还存在新进入的车辆;如果存在;则更新原有的完全目标档案。(7)通过对跟踪数组的查找;看是否有匹配的车辆;如果没有则表示出现的车辆是新的车辆。此时计数器加1。采用这种方法可以快速跟踪图像序列中的目标。在计数时。只有当目标区域中出现了连续帧都存在目标。我们才认定其是有效的目标区域。或者当目标区域中的目标在连续多帧都没出现。我们才认定为目标消失。这样就可以排除那些暂时性出现或消失的目标所引起的计数误差。3系统运行效果为了验证算法的稳定性和可信度,我们必须要得到实验的检验。因此我们在上述算法的基础上,利用可获得的资源,设计了一个车流量检测系统,利用该系统验证了上述提出的车辆识别和流量统计算法。实验结果,在一定程度上令人满意,白天车流量统计正确率可达96%以上,不过还有很多可以改进的地方。系统运行效果如图2所示:图2运行效果4结束语本系统借鉴了其他同类系统,对检测区域进行了改进,而且对实时更新背景作出了较好的改进,对运动目标进行跟踪检测。在系统的设计过程中,需要充分考虑天气环境和易用性等因素,以达到更好的运行效果。整个系统操作简单,具有很强的实用性。参考文献[1]宋俊芳.基于视频的车流量检测统计技术研究[D].长安:长安大学,2010.[2]贾菲菲.基于视频图像的车流量检测算法研究[D].浙江:浙江工业大学,2012.[3]张青苗,李鹏,赵勇等.一种基于OpenCV实现运动目标检测算法的研究[J].舰船电子工程,2010年第7期,60.[4]仇江涛.基于多线程并行求解的客流分析方法研发[D],青岛:中国海洋大学,2006.