基于道路交通视频的车流量检测
2021-04-02姚斐宋芳
姚斐,宋芳
(201620 上海市 上海工程技术大学)
0 引言
20 世纪60 年代初,美国最早开始研究用图像处理技术来检测车流量,通过摄像头采集道路视频,初步设计出了路口车流量检测系统[1],20 世纪90 年代,美国的明尼苏达大学联合当地交通部通过实地测试,证明了利用视频检测车流量具有可行性,并有一定的实用价值[2],此后,各个国家纷纷开始研究这种检测技术,使视频图像检测技术有了飞速提升。法国设计出了一种CitLog[3]检测系统,该检测技术利用视频图像的静态背景提取车辆,法国政府利用该检测技术追踪犯罪车辆并取得了成效。日本Takabas[4]等人在20 世纪80 年代初,对美国的检测技术进行改进,在视频图像中设置出敏感区域用来采集数据,当车辆通过该区域时,图像的亮度会变化,还能通过设置多个采样点来得到车距和车速。Azarbayejani[5]等,20 世纪末提出了图像处理的高斯背景建模,给检测图像中的像素点加权赋值,用来分离检测视频的前景和背景。
我国在图像的检测技术领域落后于西方国家,但由于国家投入了大量的科研经费,推进了车流量检测技术的发展。戴晶华[6]等采用了图像帧平均法来提取道路的车道,利用高斯模型提取图像中的背景,从而分离出运动的车辆,但该方法存在一定的局限性,不能适应恶劣天气;王小鹏[7]等先对图像进行孔洞填充,采用差分法寻找阴影区域,通过灰度的差异识别车辆,但当检测的路段车辆密集时,容易出现漏检,造成计数误差;彭仁明[8]等采用改进的检测方法,只截取视频图像中的一部分进行识别,对检测带进行预估和校正,提升了检测速度,但当摄像头在大风环境下时容易抖动,会让识别结果不准确;张韬[9]对图像处理采用了跳帧法和像素块法,应用在车辆较少的路段时,会大大提升检测效率,但当车速过快时,会因跳帧造成车辆重复计数;郭玲玲[10]等通过减背景的方法对运动的车辆进行识别,当运动目标进入检测段,通过二值图的差值来判断车辆状态,但当前后车辆的间距很小时,容易将其识别成一辆车。本文先通过对图像进行二值化和滤波处理来剔除无关信息,然后采用背景差分法提取运动的车辆,最后采用改进的虚拟线圈法得到路口车流量。
1 车流量检测
道路交通灯的转换周期是固定的,红灯、绿灯和黄灯时间也是固定的,这会影响人们的出行时间,为了解决这些问题,智能交通灯也开始快速发展。在智能交通灯系统设计中,车流量检测是其中的关键一环。常见的车流量检测有地磁线圈、视频车流量检测[11],通过对检测到的车流量数据进行分析,应用相应的智能控制算法实时控制交通灯,这样的智能系统可以更加人性化,缩短人们的出行时间。城市道路上每个方向都有视频监控器,它们一直在采集道路情况,因此直接选用监控设备拍下的视频来进行车流量检测,不需要添加额外的车流量检测设备就可以得到相对比较准确的车流量数据。
本文主要介绍视频车辆的检测识别和计数方法。图1 显示了对应的车流量识别具体过程。
图1 车流量识别流程图Fig.1 Flow chart of vehicle flow identification
1.1 视频图像预处理
我们得到的视频图像往往会有一些干扰信息,这些干扰信息会给图像处理带来很多负面影响,因此需要预处理,以去除对视频图像中无关信息的检测,提升处理效率。
(1)图像灰度化
在这种变换过程中,需要将输入的彩色图像输出为灰度图像,常见的处理方法是均值法和加权平均法[12]。因为彩色图像数据较大,会影响处理过程,使用灰度化后的图像既能保证特征不会丢失,还能提升处理速度。
均值法是把输入图像像素分量总和的平均值作为处理后的灰度值。灰度值Y 转换公式为
加权平均法是把每个像素的3 个分量的权重不同处理,其灰度值Y 转换公式为
(2)图像降噪处理
常见的图像降噪处理方法有均值滤波、中值滤波和高斯滤波[13],它们的原理是,对图像的邻域像素适当处理,邻域可看作目标像素附近的像素组成的区域。8 邻域图如图2 所示。
图2 图像8 邻域图Fig.2 Image eight neighborhood
均值滤波:将待处理像素I 的邻域像素作为S,然后选取其对应的全部像素均值为I'。可运用这种方法有效去除原图中的“椒盐”噪声,不过在此过程中,也会导致边缘信息丢失的问题。
中值滤波:对像素I 的邻域S 相关的像素排序处理,并选择S 的像素中值为输出Y。这种方法在消除图像中孤立噪声方面的效果很显著。若像素的灰度值排序为x1≤x2≤x3…≤xn,灰度值处理方法如式(4)和式(5)。
高斯滤波:主要是基于卷积方法进行处理,输出像素值为卷积处理结果之和。选用不同高斯模板对图像的各像素点进行扫描,然后将在扫描区域中的像素点的加权平均灰度值去替代。
1.2 图像形态学处理
在进行图像形态转换过程中,需要进行膨胀和腐蚀操作。膨胀是将图像与核卷积,然后再求局部的最大值[14]。膨胀的主要作用之一为消除“空洞”问题,在进行检测确定出相应车辆区域图像存在空洞的情况下,会导致漏检问题,因而应该将空洞处理掉。
腐蚀是膨胀的反操作,在进行腐蚀操作时,需要确定出核区域像素的最小值。腐蚀通常可以将斑点腐蚀掉,并且能够确保图像内的较大区域依然存在。腐蚀可有效处理相关粘连问题。
在相关车距很近情况下,容易被误判为一辆车,通常我们会将膨胀腐蚀两者结合,这样可以提高对象提取的准确率,减少误差。
2 车流量检测
2.1 车流量检测方法
现代交通系统中,基于视频图像来智能调节红绿灯的比例非常小,随着人工智能技术的快速发展,智能交通系统的发展前景非常广阔。车流量检测的技术种类繁多,每种检测原理也不相同,都有各自的侧重点、适用性和局限性。具体优缺点比较参见表1。
2.2 目标检测
目标检测主要是根据目标物理特性进行提取,这种方法可划分为运动对象、静态对象检测两类,前一种方法主要是针对视频中运动的目标进行分析检测,后一种方法则是提取出静止的目标来分析。运动目标检测相关的流程如图3 所示。
图3 运动目标检测框图Fig.3 Moving object detection block diagram
在对视频中车辆检测时可选择不同方法,如灰度等级法、背景差分法、帧差法和光流法等。灰度等级方法在检测过程中主要是依据背景和车辆的统计灰度阈值进行判断分析,而确定出是否产生了运动车辆,这种方法在判断时,受环境和光线变化干扰明显,因而并不是很适用;背景差分法在检测时,依据目前输入帧和背景模型差进行分析而确定出运动目标,在检测过程中需要不断更新多变的场景,不过,所得结果容易受到光照和噪声相关因素的干扰,会对其应用产生一定不利影响;帧差法在检测中应用相邻帧对应像素差分方法,所得结果主要和连续帧的时间间隔存在相关性,在提取过程中并不能获得全部的特征像素点;光流法在检测时主要是依据运动目标和时间变化相关的光流特性进行提取,所得结果精度相对高,不过其缺点表现为运算量大,且容易受到噪音干扰。
本文选择背景差分法进行车辆检测,这种检测方法是目前视频检测算法中最快速有效的方法。在检测过程中,需要确定出一帧没有目标的背景图像,然后确定出其和背景图像的差值,若差值较大,则该像素为运动像素。背景差分法基本算法如式(6)和式(7)。
式中:Ik(x,y)——第k 帧图像(x,y)像素处的灰度值;B(kx,y)——第K 帧图像(x,y)像素的灰度值;T——条件阈值;Mk(x,y)——当前时刻目标前景掩模。
在对图像进行预处理后,设置相应的待检测区域,在此区域中可提取而获得充分的车辆信息,从而有效控制检测的准确性,在避免漏检方面的效果也很显著。
2.3 车辆计数
(1)虚拟线圈设置
当确定检测对象为车辆的情况下,可选择虚拟线圈法对目标的运动轨迹进行分析,并据此实现车流量统计的目的。虚拟线圈就是在视频图像上选择检测区域设置虚拟检测线,它的作用和在地底埋放的感应线圈来检测车流量相同。当有运动物体经过参考线时,检测线上就会识别出有物体经过,若运动物体的长度、宽度大于检测线的某个阈值时,系统就会判定有车辆经过。车辆的质心坐标在一段设定的时间t∈[0,T]内,若在该时间段内质心坐标先小于检测线的坐标,然后质心坐标超出了检测线坐标,则认为在t∈[0,T]时间段内有车辆经过,此时计数就加1。
虚拟线圈主要分为2 类,虚拟的检测线和虚拟的检测线圈,如图4 所示。
图4 虚拟线圈示意图Fig.4 Virtual coil diagram
2.4 车流量检测算法设计
基于以上对车流量检测预处理及车流量检测方法的研究,首先利用摄像头监控视频文件来获取选定路口的车流量,对选定路口的视频图像进行预处理,再采用背景差分法提取该选定路口的车道背景及运动目标,最后得出需要识别统计的车流量,具体设计步骤如下:
第1 步:获取视频帧序列。对监控录像的视频进行解析,形成视频帧序列;
第2 步:图像预处理。将获得的图像灰度化,然后对灰度图像进行降噪处理,将降噪后的图像进行形态学处理;
第3 步:车辆检测。判断是否有车辆进入此区域,然后获得当前帧图像,通过差分法确定出背景图像和当前帧差值,然后得到目标区域灰度差值是否高于设定的阈值P,如果高于阈值,则可判断出当前帧有车辆进入此区域,相反情况下则判断没有;
第4 步:车流量计数。取前一帧后一帧车辆的质心坐标,如果当前质心坐标在检测区域范围内,下一帧车辆的质心坐标已经超出检测区域,这车辆计数就增加1;
第5 步:当读取N 帧图像后,对背景图像进行更新,然后循环执行第1 步~第4 步。
3 车流量检测实验
(1)读取监控视频,如图5 所示。
图5 读取视频文件Fig.5 Read video file
(2)利用OpenCV 软件对视频文件进行二值化处理,如图6 所示。
图6 图像的二值化处理Fig.6 Binary image processing
(3)如图7 所示,对二值图像进行降噪处理后,能有效去除干扰因素。
(4)对视频文件处理后,得到的交通流如图8 所示。
用OpenCV 软件对获取的道路监控视频进行处理,利用改进的虚拟线圈法。图8 为最后获得的车流量数据,图中的车辆上的数据为识别到车,右上角的数字37 代表当前由南向北通行所识别的车流量,得到的数据和人工获取的数据基本相同,可以作为下一步控制输入的数据。
图8 处理后得到交通流数据Fig.8 Get traffic flow data after processing
4 结论
本文主要结合道路交通的监控视频,利用图像处理软件得到路口的车流量,阐述了图像处理环节,包括对图像的灰度化、降噪、形态学操作等,通过背景差分法提取背景,识别视频中运动的车辆。对传统车流量检测增加了虚拟线圈的机制,当车辆进入第1 根虚拟线圈时,判断该运动物体是否为车辆。当检测为车辆时,通过运动物体的质心来检测是否通过第2 根虚拟线圈,且据此确定出是否需要计算车流量。使用改进虚拟线圈法具有更高的准确率,更加适合作为智能交通信号系统控制的输入数据。