基于虚拟检测窗口的车流量检测算法设计与实现
2015-03-07卢胜男陈光张凤磊
卢胜男 陈光 张凤磊
摘要:基于视频的车流量检测是智能交通的一个重要课题,为了满足应用中的实时性和准确性要求,本文提出采用虚拟窗口法实现车辆的检测和统计,使整个图像处理过程只针对有限的虚拟窗口区域,背景提取采用统计直方图法,利用像素多帧平均值来衡量背景灰度的可信度,背景更新则根据块匹配置信度实现实时的背景更新。实验结果表明,该方法可以有效应用于基于视频的实时车流量检测中。
关键词:车流量检测;背景提取;背景更新;虚拟窗口;置信度
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)34-0189-02
1 概述
车流量检测是智能交通系统(ITS)的一个重要课题,它不仅可以为交通管理部门提供重要的车辆疏导控制信息,也为交通状况预测提供帮助。基于视频图像的交通信息检测技术,由于成本低廉、安装维护方便和检测范围广等优点被越来越广泛地应用于ITS中。
车流量检测算法实质上就是将运动车辆从序列图像背景中分离出来,识别车辆目标并统计其个数。具有代表性的方法有背景差分法[1]、光流法[2]和帧间差分法[3][4]。光流法由于算法复杂度高不适合实时应用场合,帧间差分法一般很难获得车辆目标的完整轮廓,背景差分法由于简单方便,是最常使用的方法,该方法通过图像序列中的当前帧和背景参考模型比较来检测运动车辆,然后利用车辆的外观特征识别和统计车辆个数,但从复杂交通背景中分割出运动目标是件非常困难的事情,而且大多数特征检测算法复杂度较高,不适合实时应用的场合。
基于以上分析,本文将采用虚拟窗口法,仅在虚拟窗口中进行背景建模和更新,并根据虚拟窗口内局部数据信息变化,判断是否有车辆通过,并统计车辆数量。这种方法处理数据量小,而且算法简单,可以保证实时有效的车流量统计。
2 背景建模与更新
2.1 初始背景建模
初始背景估计是运动目标检测的关键,背景图像的可靠性将直接影响检测的有效性。本文采用统计直方图法对背景进行估计。传统的统计直方图法只适合车流量比较小的情况,车流量大时,统计直方图会呈现多峰状态,此时需要考虑其背景灰度值的可信度,选取可信度较高的灰度值作为背景灰度。本文将提出一种改进的基于统计直方图的背景提取方法。该方法采用像素多帧平均值来衡量背景灰度的可信度,以便确认多峰直方图中的哪个极大值对应的灰度是背景的灰度值,该算法具体步骤如下:
步骤 1 统计一段时间内,图像中各点像素值的灰度直方图;
步骤2 直方图平滑去噪并寻找灰度值频次出现最多的点,根据该点的位置,判断其左右两边一定范围内的能量是否大于总能量的80%,若是,则该像素值为背景灰度值,否则执行步骤3;
步骤3 找出直方图中的若干极大值,以及这些极大值中的最大值及其两边的谷值点,然后,再在谷值点两侧寻找一个相应的次极大值,以此类推,可以得到若干极大值[Pmax2,...,Pmaxn];
步骤4 统计该像素点的多帧平均值[Pave],将多个极大值与该平均值结果进行比较,相差较小的是背景的可能性较大,即被认为是背景的灰度值。
该算法利用背景灰度可信度滤除了差异变化较大的灰度值,一定程度上消除了背景误差像素,整个算法简单可靠,背景提取速度快,效果较理想。
2.2 背景更新
由于交通场景光照变化或一些不确定因素导致的背景的改变,上述算法获得的背景图像如果得不到适时更新的话,背景图像的误差将会越来越大。因此,需要适时地更新背景以保证背景图像的准确性和实时性。本文采用作者早期提出的基于块匹配置信度的背景更新算法[5]。该算法的基本思路是计算帧间对应块的SAD(Sum of Absolute Pixel Block Difference)值,若SAD值小于阈值说明该块相对稳定,并记录该块连续稳定的次数。当稳定次数达到一定的数量,即可按比例更新背景。其具体算法步骤如下:
步骤1 将图像分成M*N的小块,本文选取小块大小为3*4;
步骤2 计算各个块的SAD值,如式(1)所示,[Ft(m,n)]和[Ft-1(m,n)]分别是相邻两帧对应块的像素灰度值。若SAD小于阈值T,则该块置信度[Ct]加1,反之则该块置信度[Ct]清零。
该算法时间复杂度和空间复杂度较低,很好地满足了系统实时响应需求,对光线的变化反应灵敏,当光线由亮变暗或从暗变亮时该算法都能及时更新。
3 基于虚拟检测窗口的车流量统计
3.1 虚拟检测窗口设置
摄像机的角度和高度对虚拟检测窗口的设置都会产生一定的影响,并且一段视频中的车辆其尺度和角度的变化,都是检测窗口设计时需要考虑的因素。本文针对视频图像的首帧,选取合适大小的与车道线相垂直的矩形区域作为虚拟检测窗口。由于车辆之间的遮挡容易产生误检,虚拟检测窗口设置在图像靠近底部的位置,此处车辆之间的间隔较大,不会出现遮挡的情况。车辆正常行驶的路径为每条车道内部,因此本文在每条车道内部各设一个虚拟检测窗口,其高度大约为5~10个像素,宽度设置介于车道宽度和车身宽度之间,以便区分出行人或摩托车等宽度较小的运动目标,也能够检测出车辆因变道而同时占据两个虚拟窗口的情况。
3.2 车流量统计
所有的虚拟检测窗口都位于同一水平线上,并且覆盖了所有的车道,因此同一辆车只能在一个检测窗口内运动,即使出现变道情况,统计数量时也会根据其在虚拟检测窗口中所占大小来进行区分,以免误检。
本文通过背景差分得到的二值化图像中统计窗内像素点的加权平均值,再与前一帧的状态相比较即能得到该帧中是否有车辆需要统计。本文设置一个标志位flag,若检测窗口内的加权平均值大于或等于阈值,则flag=1,表示有车辆进入该区域。若加权平均值小于阈值,则flag=0,表示没有车辆进入该区域。其计数状态如表1所示。本文考虑到了道路上摩托车和行人情况,故将窗口中1/3置为“1”像素,进而求出其加权平均值作为阈值。具体算法流程如图2所示。
4 实验结果与分析
为了实现基于视频的车流量检测的算法,作者进行了实际路况的视频数据测试(格式为AVI,帧速率为25f/s,分辨率为640*480),使用Visual C++6.0和OpenCV进行仿真。并对不同时间段,不同天气下的路况视频进行了数据分析,最终通过对视频图像的处理达到对车辆识别和统计的目的,然后利用人工测试视频样本车流量与系统检测的车流量进行的对比, 以此验证该系统的准确性和有效性,具体结果如表2所示。
由表2结果可以看出,本文的检测方法平均准确率高达95%以上,基本能够满足车流量检测的准确性要求,系统运行速度快,可以实现车辆数量的实时统计。对比于晴朗的白天,晚上和雨天的检测准确率较低,主要原因是车辆夜间行驶时,车灯导致虚拟检测窗口内的光线变化,从而产生误检。而雨天时,雨水导致虚拟窗口局部信息产生变化,也容易造成误检。
5 结束语
传统的车辆检测方法是对整幅图像进行背景提取和更新,本文则只针对虚拟检测窗口内的像素进行处理,结合改进的基于块匹配置信度的背景提取方法,更加实时地检测一定时间内的车流量。这种采用虚拟窗口的计算方法,减少了对无用图像信息的处理量,提高了系统处理速度,因而该方法可以应用于车流量检测的实际场合中。
参考文献:
[1] 侯志强,韩崇昭.视频跟踪技术综述[J].自动化学报,2006,32(4):603-717.
[2] S Sivaraman and M M Trivedi.Looking at Vehicles on the Road:A Survey of Vision-Based Vehicle Detection,Tracking and Behavior Analysis. IEEE Trans.Intell. Transp.Syst.,2013,14(. 4): 1773–1792.
[3] N.Buch,S.A.Velastin and J.Orwell. “A review of computer vision techniques for the analysis of urban traffic,” IEEE Trans. Intell. Transp. Syst,2011,12(3): 920-939.
[4] Song Huansheng,Lu Shengnan,Ma Xiang, et al. Vehicle Behavior Analysis Using Target Motion Trajectories[J].IEEE Transactions on Vehicular Technology,2014,63(8):3580-3591.
[5] 卢胜男,冯建利,段沛沛.基于块匹配置信度的隧道交通背景提取算法[J]. 电视技术.2015,39(8):59-63.