基于车辆方波脉冲时序图的交通流参数实时检测算法
2020-09-04黄钰琳郑绛宇王雪松
高 珍,黄钰琳,郑绛宇,王雪松
(1.同济大学软件学院,上海201804;2.印第安纳大学与普渡大学印第安纳波利斯联合分校,印第安纳波利斯46202;3.同济大学道路与交通工程教育部重点实验室,上海201804)
城市化进程中往往受到道路交通状况恶化、堵塞严重和事故率居高不下等问题的困扰。通过智能交通系统(intelligent transportation system,ITS)可实时检测道路交通状况并提取有效信息,根据交通状况的变化迅速规划和管理交通流,从而减轻交通负荷、保证交通安全、提高交通效率[1-3]。
实时检测交通流参数(如车流量、速度、占有率等)和车辆分类是智能交通系统的重要研究内容之一,为交通状况态势预测和评估、提高交通系统管理效率、增强交通安全性提供重要基础信息[4-5]。其中,相对于基于硬件传感器的传统检测方法,基于视频的交通流参数检测方法因设备安装方便、覆盖面积大、可获取更丰富的信息等优点,在智能交通系统中有了越来越广泛的研究和应用[6-7]。
1 研究基础
基于视频的交通流参数检测方法主要有基于车辆跟踪(vehicle-tracking-based)和虚拟框线(virtuallane-based)[8]的方法。车辆跟踪中常用方法有帧间差法[9]和背景减法[10]。帧间差法能自适应动态环境,对场景光照不敏感,但对于内部灰度值相近的运动物体易形成空洞,算法效果严重依赖于所选取的帧间时间间隔和分割阈值。背景减法应用较为广泛,对于复杂背景下的检测效果最好,但需动态更新以适应光线、天气等外界条件的影响,检测效果依赖于背景建模的方法,削弱了算法的通用性和增加运算复杂度。这2种方法都需要处理整个或很大一部分的帧图像,处理速度较难满足实时性检测的要求。而基于虚拟检测线(virtual detection line,VDL)技术通过帧信息压缩可以显著提高检测实时性。Setchell[11]研究了经典的视频时空累积技术,该方法准确性较低,此后开始有了更多基于VDL改进的检测方法。这些方法按时间顺序累加每帧图像的VDL上的像素亮度值,计算交通参数,生成时空图像(TSI)[12-13]。但基于时空图的检测方法大多基于单一交通环境,较少讨论真实环境下天气和光线对检测方法的影响。Zhang等[14]基于VDL提出了一种自适应样本一致性背景模型检测车辆的方法,未考虑天气及光照因素;Mithun等[15]使用边缘检测及两步K近邻分类方法识别车辆及类型,仅测试了晴天和阴天,未考虑雨水反光及晚上车辆灯光等因素的影响,且这2种方式检测出的交通流参数较少。REN等[8]采用了上游、下游2条VDL结合KNN分类器检测车辆,讨论了晴天、雨天、雪天的交通流参数检测,未讨论光照条件的影响。
本文基于计算机视觉和图像处理技术,提出采用车辆方波脉冲时序图来检测交通流参数,这是一种基于交通监控视频、采用VDL方法构建时空图进行交通流参数检测的改进方法,能削弱多种天气和光线环境对检测结果的影响,在天气恶劣、光线复杂等情况下,也能快速而准确地进行车辆分类和交通流参数检测,经济效益高且满足实时性,实验结果准确率达到97.32%。
2 数据与方法
路侧交通监控视频数据由上海市交通管理部门摄像机现场采集,视频帧率为24Hz,平均车速在30~50km·h-1,涵盖了交通通畅、排队通行、红灯停车等各类场景。交通环境的光照覆盖了白天和夜晚,天气情况考虑了晴、阴、雨、雪,对摄像机镜头内的全车道进行检测。
算法如图1所示。首先在路侧交通监控视频流中,选取虚拟采样线进行像素采样,将视频连续帧中获取的一维像素阵列沿时间轴堆叠成时空图。然后根据不同天气、光线条件对时空图像进行二值化,统计垂直投影像素累积图。接着进行图像去噪和复原,追踪车辆对象,生成车辆方波脉冲时序图。最后检测车流量、车头时距、车道时间占有率、车辆速度等交通流特征参数并进行车辆分类。
图1 算法流程Fig.1 Flowchart of detection algorithm
2.1 构建时空图
为了避免车辆堆叠,相机要尽量选择垂直的俯视视角,用于缓解前车和后车过近时造成的视觉遮挡和减少阴影的干扰[16]。考虑到实际道路交通监控的摄像机视野并不一定能覆盖垂直于地面的视角,所以为尽量减少目标车辆的变形,视频帧中虚拟检测线的设置建议尽量在视角最贴近地面的位置且正交于目标车辆运动方向。
构建时空图时,将监控视频看作三维图像序列,三个维度分别为x、y、t,三维序列上t轴方向切分,仅保留x或y其中一个维度,得到的截面即为时空切片[16]。以视频连续帧上ls所截取的一维像素序列作为一个时空切片图像。当视频流中目标车辆正交于ls穿过时,帧数随时间呈线性变化,沿着时间轴连续采样的时空切片堆叠出有意义的车辆形状,最终合并成一段时间内通过检测线像素的时空图I(t,l)。其中横轴t∈[0,m]表示与视频帧对应的切片时间,纵轴l作为空间轴表示虚拟检测线ls上各点采样像素,记时空图I(t,l)各像素点对应的灰度值为G(t,l)。
二维时空图由视频文件压缩而成,融合时间和空间2个维度观测运动车辆在静态道路背景中的运动状态,可反映车辆的大小、宽度以及在虚拟检测线上的保持时间,能够有效降低计算负荷,提高参数检测的实时性。
2.2 前景提取
为了在时空图中有效提取车辆前景,需要对时空图进行二值化。白天晴天由于阳光照射在车道上留下与道路背景颜色相近的车辆阴影,此时前景(车辆)与背景(道路、车影等)亮度差异显著,采用最大类间方差法(OTSU算法)计算阈值,可以将图像灰度值分成类间方差最大的2组,形成仅含前景信息的二值图像Ibinary(t,l),如式(1),其中车辆对象像素点的灰度设置为白色,记作1;道路背景设置为黑色,记作0。
其中α为自适应的图像二值化阈值,基于大津法(OTSU算法)计算,效果如图2所示,上方是由一个120s晴天视频构建的时空图,下方是基于OTSU算法的图像二值化结果,黑色代表路面背景,白色代表识别出来的车辆前景,可以看出二值化能有效消除太阳光照形成的车影噪声,车辆被正确识别。
白天阴天或雨雪天路面偏暗,深色车辆易被误判为道路,可用Sobel算子垂直边缘检测先进行预处理,再将边缘图叠加到原始时空图上加强车辆亮度,再采用OTSU算法,来提升二值化提取前景效果。
图2 白天光照条件的时空图与二值图像Fig.2 Spatial-temporal profile andbinary image un⁃derdaytime lighting condition
在夜晚,不同天气对车辆检测影响较小,但因照明不好,加上车灯光晕,前景(车辆)和背景(道路、光晕等)亮度差异不大,直接二值化时空图易将暗色车身误认为道路背景,同时汽车前灯产生的成片光晕也易被误判为车辆对象,因此需要采用Sobel算子垂直边缘检测算法来最大化消去水平的光晕,再进行OTSU二值化,类似图2,某夜晚交通密集通行时60s的时空图如图3,可见车灯光晕基本被清除。
图3 夜晚光照条件的时空图与二值图像Fig.3 Spatial-temporal profile andbinary image un⁃dernight lighting condition
2.3 车辆对象识别
二值图像Ibinary(t,l)有利于识别车辆和减少计算量,但因道路杂物、光线天气环境等产生的噪点干扰会降低车辆前景的识别率,同时车辆局部灰度值与道路路面过近会使得前景图像边缘出现空洞,导致车辆对象多检。因此交通流参数检测前需对二值图像进行去噪和空洞填补,最终通过垂直投影像素累积图提取出车辆方波脉冲时序。
2.3.1 生成垂直投影像素累积图
沿时间轴遍历大小为m×n的二值图像Ibinary(t,l),逐列统计白点在二值图像横轴t上的垂直像素投影累积值p i,将由列向量合并而成的像素矩阵P[m]=[p1,p2,p3…,p i,…p m]记作垂直投影像素累积图,如图4所示,横坐标为时间,纵坐标为p i,其物理意义为时间戳t所对应的时空切片中所截取的车辆宽度,可以看出通行车辆会在像素累积图上形成显著脉冲。
图4 垂直投影像素累积图Fig.4 Vertical projection pixel histogram
2.3.2 去除背景噪声
图像去噪要求对图像进行降噪处理同时尽量保留图像细节特征。在垂直投影的一维像素累积值中的波谷值代表车辆对象之间的间隔,由于图像中白点噪声的干扰使得谷值不为零,需要对噪声进行消除,形成波谷以分割车辆对象。
分析垂直投影像素累积值(如图4纵坐标)的累积分布函数(cumulative distribution function,CDF),如图5所示,低值区域的白点像素投影累积值大多产生于视频帧中车道线、地面标志线、电车架空线、视频水印和路面杂物等道路噪声。将图5中出现明显拐点对应的像素投影累积值设定道路噪声阈值θ1,如式(2)所示,将像素投影累积值小于噪声阈值θ1的所在列进行归零,标记为道路背景对象。
图5 像素投影累积分布函数Fig.5 Pixel cumulative distribution function
2.3.3 车辆对象提取
从左到右逐列遍历垂直投影像素累积图,标记第1个像素投影累积值不为零的列为第1个车辆对象的起始点,继续读取到投影累积值为零的列标记为结束点,根据2个标记点分割出第1个车辆对象V1,同理分割出其他车辆对象V k,此时车辆对象之间被间隙道路对象R k分隔,不存在粘连现象。最后计算每个车辆对象的像素投影累积值的横轴帧数跨度、道路间隙对象的横轴帧数跨度以及各车辆对象的投影累积最大值,分别记作物理意义上的车辆长度L、间隙道路对象的长度L以及车辆像素最大宽度Wmaxk,如图6所示,上方为像素累积图,下方为车辆方波脉冲时序。
图6 车辆的方波脉冲时序图Fig.6 Sequence diagram of vehicle square wave pulse
由于道路较大杂物和夜晚路灯、车灯光晕等干扰,通过阈值θ1去除噪声后,仍残存少量面积较大的噪声斑可能被误判为车辆对象,因此需剔除车辆像素最大宽度Wmaxk小于θ2的车辆对象,θ2的选择一般选择为正常车辆宽度1/4对应的像素投影累积值,式(3)中p i表示第k个车辆对象所在列的各个像素累计值。
2.3.4 车辆对象复原
由于有时车身局部颜色与道路颜色相近,在二值化时车辆的局部可能被识别为道路背景,造成一个车辆对象被误分为多个车辆,因此需要对车辆间车头时距(time headway,THW)进行判断,对过近的2个车辆对象通过空洞填补进行合并。
现有研究表明车头时距小于1s为近距离跟车,小于0.6s则处于危险状态,鉴于危险事件是小概率事件,因此THW(与L2i成线性正比)小于0.6s大概率是车辆误分造成的,因此将小于阈值θ3的间隙道路对象复原为车辆,假设监控视频帧率为F帧·s-1,则阈值θ3建议取值为αF(α<0.6)帧。如图6所示,第4个车辆对象由2个过近的车辆对象合并而成。式(4)中p i表示第k个车辆对象所在列的各个像素累计值。
2.4 交通流参数检测
2.4.1 车型分类
根据车辆像素最大宽度Wmaxk(图6所示)进行车辆分类。小型车低且窄,在视频中车辆像素最大宽度都在车道线以内;而大型车高且宽,Wmaxk往往会全部覆盖车道,所以设定单车道宽度的95%作为阈值Hp,用于分为大型车和小型车,如式(5)。
2.4.2 车流量统计
车辆对象复原得到交叉排列的车辆前景对象V i和间隙道路对象R i,现将各车辆对象的长度L1i映射为脉冲宽度tWi,可用于反映车辆通过采样线的时长,同时以各车辆对象的列平均像素投影累积值作为脉冲幅度U m i,生成图6的车辆对象的方波脉冲时序图P(t)。P(t)中方波代表车辆对象,从左到右遍历统计车辆前景对象V i,以此计算车流量Q,即在单位时间T0内,通过道路某一截面的交通车辆数n。式中n(P0)代表在方波脉冲时序图中单位时间T0内的脉冲数。
2.4.3 车头时距检测
车头时距指同一车道上同一方向连续行驶前后相邻2辆车的车头通过某一处的时间间隔,可根据图P(t)中的脉冲间隔Ii和前一车辆对象车宽对应的脉冲宽度C i-1(即车宽)计算。
其中THW为车头时距。
2.4.4 时间占有率检测
时间占有率R t指一定观测时间T0内全部车辆通过某一断面所需时间累积值与观测时间T0的比值。
2.4.5 平均速度检测
车辆平均速度V t指单位时间T0内通过道路某一截面的交通车辆平均速度。式中大型车实际长度记作VLeni,小型车实际长度VLeni,取近似均值;脉冲宽度tWi和tW j映射为车辆通过采样线的时长。
3 实验结果分析
研究数据的交通环境覆盖了5种不同光线和天气特征,分别为:白天晴朗、白天多云、白天下雨、夜晚晴朗、夜晚下雪,对视频数据进行参数检测。
3.1 算法分析结果
视频流中实际车辆878辆,如表1,各交通流特征参数的检测均基于车辆个数检测精度进行,用车辆数统计的准确率近似评估实验效果,计算得5种光线和天气条件下实验准确率平均值97.32%。其中“漏报”主要因车速过快且车身颜色和道路过于接近引起,“多检”一般是由于车辆距离过近,再加上车灯光晕或雨水反光将车辆串联在一起,造成误检。
表1 车辆数统计准确率Tab.1 Algorithmic statistical accuracy based onnumber of vehicles
本算法基于二值时空图进行实时性的交通参数检测,包括车辆分类以及统计车流量(Q)、车头时距(THW)、车道时间占有率(R t)、车辆平均速度(V t),结果汇总如表2所示。
表2 交通流参数检测结果Tab.2 Results of traffic flow parameters
计算过程中单位时间T0取值20s,单车道20s视频的平均实时运算用时为2 014.628ms,包括构建时空图、前景提取、生成车辆方波脉冲时序图以及检测交通流参数等步骤。计算资源软硬件平台包括:CPU2.9 GHz Intel Corei5,8 GB 2133 MHz LPDDR3以及Python3.7。
3.2 分析结果对比
本文方法与现有方法进行综合对比如表3。本文方法通过合理设置路段监控摄像头角度虚拟检测线位置避免多车重叠,仅用一条VDL采样即可计算车辆速度,比文献[8]、[15]的多条采样带设计更为简单;现有文献[8]、[14]、[15]一般仅考虑理想天气及光线,通过背景减法或边缘检测车辆,本文则针对4种天气条件及2种光照环境,动态选择不同的二值化方法完成车辆检测,并在车辆垂直投影像素累积图上系统去噪形成车辆方波脉冲时序,用来高效提取4类交通流特征参数,实时性强,检测准确率达到97.32%,能基本满足路段交通监控的实际需求。
表3 本文方法与现有方法对比Tab.3 Comparison of the proposed method and the existing methods
4 结论
基于计算机视觉和图像处理技术,提出了一种基于时空图的视频交通流参数检测的改进方法,可实时检测出车流量、车头时距、时间占有率、车辆速度并进行车辆分类,为智能交通系统提供有力支撑。研究借助于时空图的二值化垂直投影像素累积图,设计了系统性的去噪及对象识别算法,较好地克服了晴天、雨天、雪天等不同的天气条件以及白天阳光与夜晚车灯的光照干扰,平均实验结果准确率达到97.32 %。
本文方法基于静态监视摄像机设计,需要选取恰当相机视角以保证时空图质量,能克服大多数天气、光照条件以及道路杂物等干扰,但一些因素如相机视角的不合理设置、车辆过长停车等待和复杂阴影干扰等造成的误判仍会影响实验中交通流参数的检测精度误差,今后可尝试利用虚拟检测线的自适应分段技术进一步提升算法检测的质量。