基于车头灯光斑特征稳定性与轨迹相似度的夜间交通流量检测*

2018-07-26 02:53林培群黄子敬陈丽甜
交通信息与安全 2018年3期
关键词:车灯光斑阈值

林培群 黄子敬 陈丽甜

(华南理工大学土木与交通学院 广州 510640)

0 引 言

视频交通数据采集是目前最有发展前景的交通流检测技术。然而由于光照条件不良, 夜间图像所能提取的车辆特征十分有限。此条件下车头灯是车辆上明显且稳定的特征, 因此已提出的夜间交通流量检测算法大都将车头灯作为检测车辆存在性的唯一依据。此类算法大体由三部分组成: 车头灯分割、车头灯配对、车辆识别与跟踪。

车头灯亮度远大于背景亮度, 所以基于灰度值进行二值化阈值分割实现车头灯的提取便是显而易见的思路。Zhou[1]提出设置固定阈值二值化的方法;Sina等[2]提出一种基于类间方差最大化的自适应阈值算法;吴海涛[3]提出使用双阈值首先分割高亮度像素, 而后对周围亮度衰减很快的像素进行区域生长。R. Guo等[4]则提出一种通过计算灰度直方图前景波峰和背景波峰之间的波谷得到阈值的自适应阈值计算方法。但由于车灯在图像中占比较小, 其波峰不明显, 准确计算阈值是比较困难的。为此孙晓艳[5]由车灯在累加直方图中呈双峰分布, 得出使用一种改进Otsu算法来确定最佳分割阈值的方法。

此外, Zhang等[6]提出使用光线衰减法则获取反射光强度图, 而后使用反射抑制图消除路面反射光。Lee等[7]提出可以消除车头灯路面反射的“Retinex”算法。R. Taktak等[8]基于模板匹配识别可能车头灯。此外Huang等[9]提出了一种基于亮度对比度的车灯提取方法。

随着机器学习应用的兴起, 新的车头灯识别思路便是使用机器学习算法训练分类器直接识别单个车头灯或是车头灯对。Zou等[10]的方案使用Adaboost算法基于Haar特征训练分类器识别单个车头灯。K. Robert[11]的方法则是首先生成可能的车头灯位置假设, 然后使用决策树验证假设并进行弱分类, 对未被弱分类器分类的高亮度区域, 首先使用PCA降维, 然后使用神经网络(ANN)或支持向量机(SVM)识别车灯对。此方法同时完成车灯的分割与配对工作。

提取车头灯像素之后, 需要将属于同一辆车的车头灯配对, 才可识别车辆。常用的配对方法基于车灯的几何形状、面积、位置信息, 如Chen等[12]提出一种车灯空间聚类方法, 基于车头灯空间位置关系实现配对。文献[11]则结合使用决策树、ANN和SVM完成车灯配对。

车辆跟踪实际上就是对检测到的车灯进行跟踪, 其关键是找到同一跟踪对象在当前帧和上1帧之位置。提出了根据相邻帧的时间间隔和车速的合理范围预测车灯在下1帧中可能出现的位置范围的方法。认为简单地通过位置预测来跟踪车灯只适用于车速慢且车流密度小的情况, 在车速快且车流密度大时易发生其他车灯出现在预测范围内的情况, 由此提出使用估计的灭点跟踪、配对车灯的双向推理算法。

从上文可见, 现有夜间交通流检测算法使用的都是先识别后跟踪的方案, 其着重点在于通过充分挖掘静态图像中的信息来识别车灯对。识别出车灯后, 基于先验知识去预测该车灯在下1帧可能出现的位置范围, 通过帧间匹配来实现车灯跟踪。

先识别后跟踪的方法好处在于可以在视频的每1帧中实时得到检测结果, 但车灯光斑所能利用的特征十分有限, 常用的图像识别特征如颜色、纹理等都无法利用, 静态识别的高难度往往使得此类算法复杂度较高, 从而影响实时性。交通流量检测的目的是实时获取驶过道路断面的车辆数, 只要对在视频中出现并驶过的所有车辆均成功识别计数即可, 其实不需要每1帧都精准识别并得到画面中的车辆数。

车灯配对方面, 现有方法多根据轮廓几何特征相似度与相对位置关系来实现, 但实际上不同车辆的车灯几何特征是很接近的, 静态地基于相对位置来配对也很可能在2辆车并行时出现误配。本研究使用可信度高的Camshift跟踪算法, 跟踪过程中结合分析轨迹点的速度、方向及其相对位置关系实现车灯配对。

1 夜间交通流量视频检测算法

所研究算法由初始标定、静态提取、动态过滤、车灯配对四部分组成。总流程见图1。

图1 算法总流程图Fig.1 Flow chart of the algorithm

1.1 初始标定

受限于图像较低的亮度, 夜间进行车道边线的标定比较困难, 现阶段尚未有夜间应用性强的研究成果, 所以需要手动在视频首帧图像中进行标定。如图8所示, 手动划出所检测路段边线, 并计算所划边线被检测区上边界在Y1高度处水平线所截长度|AB|=ΔX(Y1), 以及被检测区下边界在Y2高度处水平线所截长度|CD|=ΔX(Y2)。

则道路在画面中任意Y高度处的像素宽度|EF|=LWp(Y)为

LWp(Y)=ΔX(Y)=

(1)

所标道路的物理宽度由实地测量或根据已有数据得到, 定义为LWw。

则可得在图像Y处的物理尺寸为

(2)

它表示图像坐标系中单位像素所对应实际物理长度, 单位为m/px。此物理尺寸将在后文中用于完成距离、面积从图像坐标系值向世界坐标系值的转换。

1.2 静态提取

在画面上方设置长矩形感兴趣区域, 区域内基于简单而宽松的规则粗略将疑似车头灯光斑提取出来。

1.2.1 预处理

将原图像转换为灰度图, 然后通过二值化阈值分割粗略提取高亮度像素, 所提取的光斑宁滥勿缺, 阈值取较为宽松的240灰度值。二值化阈值分割处理结果见图2(a)。

此后对二值化结果图进行形态学开运算。在结构元素的选取上, 本算法使用3×3的方形结构元素。形态学开运算处理结果见图2(b)~(c)。

图2 光斑预处理过程示例Fig.2 Example of pretreatment process

1.2.2 基于几何特征的粗略筛选

对上一步骤所提取光斑进行轮廓检测, 而后计算轮廓的外包络矩形, 并获取光斑的几何特征, 然后基于几何特征进行初步的筛选。筛选条件如下。

1) 光斑轮廓外包络矩形之长宽比在阈值之内。

(3)

式中:BW和BH分别指光斑外包络的矩形宽度和高度。T1为长宽比上限阈值, 取值为3。

2) 光斑面积应在阈值范围之内

T2

(4)

式中:BA为光斑面积;T2与T3分别指光斑面积下限阈值与上限阈值, 取值分别为30 px2和300 px2。

筛选结果见图3(b), 被矩形包络的轮廓所属光斑表示已被提取为疑似车头灯光斑,对比图3(a)可见图中路面大面积反射光以及一些小面积的光斑都被筛除。

图3 车头灯光斑静态提取结果图Fig.3 Result of static headlight blobs extraction

1.3 基于光斑特征稳定性的动态过滤

1.3.1 动态过滤原理

交通流检测视频中, 车头灯光斑在车辆移动的过程中具有以下3个特征, 且与部分干扰光斑形成区分。

1) 从画面上方移动至画面下方。反例:静止光源(如路灯)不会在画面中移动。

2) 移动全过程始终维持高亮度。反例:根据光反射原理, 路面近光灯反射光斑的亮度会随着车辆向摄像头靠近而降低, 而路面标志标线反射光斑仅当车辆行驶至特定位置才会被摄入。

3) 移动全过程始终维持车头灯应有的尺寸和形态。反例:根据针孔成像模型(见图4), 路面近光灯反射光斑面积会随着车辆向摄像头靠近而变大。

图4 透视投影示意图Fig.4 Demonstration of perspective projection

实际观察表明, 对夜间车灯识别造成干扰的光斑绝大多数是反射光, 如路面近光灯反射、车身反射, 考虑到车头灯的移动过程中在亮度、形态、尺寸上均能稳定保持其特征, 而反射光斑在车辆移动的过程中容易因位置的变化而导致反射角度的变化, 进而引起上述特征的变化, 因此本文将上述特征的动态稳定性作为识别的重要依据, 提出先跟踪后识别的动态过滤方案。

1.3.2 动态过滤的实现

本应用场景中, 所需跟踪的静态提取所得疑似车头灯光斑在亮度上远高于周围像素, 在灰度图像中表现为像素值明显高于周围环境像素的区域。因此将灰度值作为离散数据集, 利用Camshift跟踪算法通过概率密度梯度爬升不断地逼近跟踪目标的原理可以有效地对光斑进行跟踪。此外由于Camshift基于单一灰度数据跟踪的特性, 即使车灯被部分遮挡也可被有效跟踪[13]。

定义Ci为第i个Camshift跟踪对象,Ci在当前帧中跟踪结果窗口的起点(左上角点)的x轴和y轴坐标分别为Cx,i和Cy,i,高和宽分别为CH,i、CW,i,面积为CA,i。此外定义跟踪区域ROI的行数为ROIr、列数为ROIc。

跟踪过程中, 当跟踪结果窗口不满足下列任一条件, 删除该跟踪对象所属跟踪器。

1) 面积在阈值范围内。

1

(5)

2) 长宽比小于设定阈值。

(6)

式中:T5为长宽比上限阈值, 取值为5。

3) 左边不得触及跟踪区左边缘。

Cx,i>0

(7)

4) 右边不得触及跟踪区右边缘。

Cx,i+CW,i

(8)

5) 底边不得触及跟踪区底边缘。

Cy,i+CH,i

(9)

为了更好地呈现动态过滤的实现过程,图5截取了部分处理过程画面。画面上方长条矩形区域为静态提取区,面积最大的矩形区域为动态过滤区,较小矩形为Camshift跟踪窗口,与跟踪窗口相连的线为最近30帧轨迹线(未跟踪达30帧不显示), 右上方为帧序号。

图5(a)中画面上方车辆近光灯在路面形成高亮度反射区域, 且光斑的形状、面积与车灯接近, 故在静态提取步骤中被提取, 但此后随着车辆向摄像头方向移动, 该光斑面积变大, 最终超过阈值而被放弃跟踪。图5(b)中路面标志受车灯照射而形成光亮度反射光斑, 随着车辆驶过该标志, 反射光斑消失而不再被跟踪。图5(c)中画面左侧货车车箱出现反射光斑, 随着车辆接近摄像头, 该光斑被包络为长条矩形, 最终长宽比超过阈值而被放弃跟踪。

图5 动态过滤过程示意图Fig.5 Demonstration of dynamic filtering process

1.4 基于轨迹相似度的车灯配对

1.4.1 基于Kalman滤波估计的跟踪轨迹平滑处理

为降低摄像头抖动对车灯跟踪轨迹平滑度的影响, 使用Kalman滤波对车灯跟踪窗口中心点进行平滑修正, 从而提高所提取轨迹点移动特征的准确性。

将Camshift算法的初始跟踪窗口中心位置作为Kalman滤波初始状态估计向量以完成其初始化, 而后从下1帧开始, 将Camshift算法的跟踪窗口中心点坐标作为观测量, 输入到Kalman滤波器中。算法内部完成状态预测、修正的计算过程, 输出状态估计点坐标。如此迭代下去, 便可实现对Camshift跟踪轨迹的平滑处理。图6为平滑效果图。

图6 Kalman滤波轨迹平滑效果图Fig.6 Effect of Kalman filter on smoothing the trajectory

1.4.2 车灯配对规则

得到修正后的车头灯跟踪轨迹点后,利用跟踪轨迹点移动特征以及轨迹点位置关系来将属于同一辆车的车头灯配对起来。

定义第k帧图像中存在n个跟踪对象,Ki(k)表示第k帧图像中第i个经Kalman滤波修正后的跟踪对象(i∈(0,n-1)), 该跟踪对象中心点之X、Y轴坐标分别为Ky,i(k)。

与2.3.2中所述车灯对应有关系相对应地, 被配对的跟踪对象需满足以下条件。

摄像头的视角下, 根据针孔成像原理, 在车辆移动过程中, 属于该车的车头灯对应该存在以下关系。

1) 2车灯的图像竖直距离约等于零。定义DYij(k){i,j∈(0,n-1)且i≠j}为第k帧图像第i个跟踪对象与第j个跟踪对象之Y轴向像素距离。则需满足

RL1:DYij(k)=|Ky,i(k)-Ky,j(k)|

(10)

式中:T6为Y轴向距离上限阈值, 取值为30 px。

2) 2车灯的实际水平距离在一定范围之内。定义DWij(k){i,j∈(0,n-1)且i≠j}为第k帧图像第i个跟踪对象与第j个跟踪对象之X轴向物理距离。则需满足

RL2:T7

(11)

式中:T7与T8分别为X轴向物理距离的下限和上限阈值, 根据国标GB1589-2016[14], 分别取0.7 m和2.6 m。

若已满足RL1, 可知这2个车灯近乎并排处于同一水平线上。则有

DWij(k)=|Kx,i(k)-Kx,j(k)|·α(Ky,i(k))

(12)

因RL1已满足, 即已有Ky,i(k)≈Ky,j(k), 所以物理尺寸可取i,j跟踪对象中任一个的Y轴坐标所对应物理尺寸。上式所使用的是i跟踪对象所处高度的物理尺寸。

3) 2车灯在画面中移动速度大小接近。定义Si(k),Spdi(k)分别为第i个跟踪对象在第k帧图像最近30帧的所移动的物理距离、平均速度,t为相邻帧时间间隔。则有

(13)

又定义DSpdij(k){i,j∈(0,n-1)且i≠j}为第k帧图像中第i个跟踪对象与第j个跟踪对象的前30帧平均速度之差值,km/h。则需满足

RL3:DSpdij(k)=|Spdi(k)-Spdj(k)|

(14)

式中:T9为速度差上限阈值, 取值为8 km/h。

4) 2车灯在画面中移动速度方向接近。定义βi(k)为第i个跟踪对象从其在第k-30帧图像中坐标指向其在第k帧图像中坐标的方向向量与Y轴正向的夹角。则有

(15)

又定义Dβij(k){i,j∈(0,n-1)且i≠j}为第k帧图像中第i个跟踪对象与第j个跟踪对象的角度之差值。则需满足

RL4:Dβij(k)=|βi(k)-βj(k)|

(16)

式中:T10为角度差上限阈值, 取值为15°。

1.4.3 车灯配对逻辑

上述关系是在车辆出现在画面的全过程始终全部满足的, 因此一旦某帧中判定某关系不满足, 即认为这2个车灯不属于同一辆车, 此后即使再次满足上述所有关系, 也不再对其配对。这样的配对逻辑可有效避免对并行车辆车灯误配对的情况。

车灯配对流程图见图7。在第k帧图像中, 若跟踪对象i,j满足上节所述的所有条件且此前未曾被配对, 则将两者配对;若跟踪对象i,j已被配对且仍旧满足上述所有条件, 则维持对两者的配对; 若跟踪对象i,j已被配对但不满足上节所述任一条件, 则解除对两者配对, 且两者此后无论是否再次满足所有条件也不再被配对。

图7 车灯配对流程图Fig.7 Flow chart of headlight pairing

车灯配对结果见图8,图中平行于车辆方向的线为跟踪轨迹线,矩形框为光斑悬浮窗口,该截图位于视频画面下部, 可见被跟踪至此处的光斑已全为车头灯光斑。若车灯跟踪框之间有连线, 则表示这对车灯已被配对, 判定属于同一辆车。

图8 车灯配对结果图Fig.8 Result of headlight pairing

1.5 车辆计数

车辆计数流程见图9。

图9 车辆计数流程图Fig.9 Flow chart of vehicle counting

遍历所有被跟踪车灯, 当被跟踪车灯的中心点触及或越过流量检测线高度, 考察该车灯是否已被标记, 若否则对该车灯进行标记, 且检测流量增一。为避免重复计数, 还需将与该车灯属于同一车灯对的车灯标记为已被计数。

计数过程见图10, 画面底部虚拟流量检测线由白色(左图)变为灰色(右图), 则车流量增一。

图10 车辆计数示意图Fig.10 Result of headlight counting

2 实验及结果分析

照明亮度、是否雨天、路面反光特性影响着干扰光斑的种类、数量和特征, 此外车辆行驶速度的可能会对车灯跟踪造成难度, 因此拍摄了各种条件下的夜间道路视频作为实验样本。选取了2个路段拍摄了共6个视频样本, 其中S1,S2,S3位于广州市六二三路, 为城市次干路;S4,S5,S6位于广州市内环路, 为城市快速路。

为了评价所提出算法的检测效果, 使用的评价指标包括漏检率和正检率, 各指标定义如下。

漏检率。指算法漏检车辆数与实际车辆数的比值。

正检率。指被正确检出的车辆数与检测车辆数的比值。

各视频样本的拍摄环境、时长、实际车辆数以及对应的实验结果数据见表1。

表1 实验结果数据Tab.1 Result data of experiments

笔者所提出算法所用到的车头灯静态特征只是简单的亮度、形态、面积特征, 若要比较每一帧的静态处理效果, 固然无法与较复杂的静态识别方法匹敌, 但交通流量检测的目的是获取驶过检测断面的车辆数, 先跟踪后识别方案只需在车辆移动至画面下方流量检测线位置时成功识别之并计数即可达到检测目标。

正检率可以反映算法排除非车灯光斑干扰的有效程度, 从实验结果数据可见除了S6外的其余实验的正检率都达到90%左右, 证明算法的动态过滤机制在大多数环境下可以保持较强的鲁棒性。

S6检测条件较为恶劣, 雨天且路面反光较强。从图11(f)中可见, 此时路面的光反射特性已接近镜面反射, 这增加了误检的概率。这种恶劣条件, 即使是复杂的静态识别算法也难以克服, 作者所查阅的相关研究文献都没有在类似条件下进行实验, 一个接近的实验来自Zou[10](见图12), 但该实验的路面反射光斑呈明显长条形, 使用本算法是可以轻易基于形态对比类干扰光斑进行过滤的。

图11 各视频样本检测过程截图Fig.11 Screenshots of experiments under different scenes

图12 Zou[10]方法在强路面反射条件下的检测效果图Fig.12 Result of Zou′s method under the condition of salient reflection from road surface

基于简单的静态特征进行识别有一个优点就是算法对图像质量的要求不高, 即使出现未正确对焦的情况, 光斑的亮度、形态、面积都不会有大的变化, 仍可成功进行跟踪与识别(见图13(c))。但对于某些纯静态识别的算法, 车灯光斑的独有特征只有在对焦准确、视频高清的条件下才会出现, 如基于亮度衰减的方法[6](见图13(a)), 未正确对焦使得车灯光斑的亮度衰减特性减弱甚至消失(见图13(b)), 识别机制将失效。

漏检情况方面, 最理想的数据来自实验S1和S3, 漏检率均低于10%, 此二实验所采用的视频均属于视频画面亮度不高、路面反光特性较弱的样本, 证明算法在该环境下不易出现车灯被漏跟踪的情况。

图13 未正确对焦情况的检测效果对比Fig.13 Comparison of results under inaccurate focused situation

但与此同时, 在同一地点拍摄的S2所进行的实验之漏检率却是最高, 达到23%。S2视频是唯一的高亮度视频样本, 观察发现问题主要出现在对白色车辆的漏检。如图14(a)所示, 摄像头的高曝光度导致白色车辆的亮度与车灯接近, 根据Camshift自适应调整跟踪窗口尺寸的机制, 跟踪窗口扩大到车身区域, 进而因面积超出阈值而被放弃跟踪。对比实验表明, 应将摄像头曝光度调至低水平以避免对白色车辆的漏检。

S4,S5,S6视频漏检率稍高, 为15%左右。这3个视频的拍摄地点之路面反光特性均较强, 当高亮度反射出现在车灯前方(见图14(a)~(b))或旁侧(见图14(c)~(d))近距离处时, 同样因Camshift的机制而导致跟踪窗口扩大包围该干扰光源, 最终因其长宽比或面积超出阈值而被筛除。

图14 漏检原因汇总Fig.14 Demonstration of reasons of missed detection

3 结束语

笔者提出一种结合了车头灯动态过滤识别与车头灯跟踪轨迹配对的夜间交通流量视频检测算法, 其主要研究工作是: 利用车头灯光斑亮度、形态、尺寸在车辆移动过程中的稳定性, 提出了一种先跟踪后识别的夜间车头灯动态过滤识别方法。此外基于车灯跟踪轨迹点移动特征相似度及轨迹点相对位置关系, 加上配对逻辑, 提出了一种非静态的车灯配对方法。

多场景下的实验结果表明,笔者所提出动态过滤方案在常见检测环境下对车头灯光斑的识别可达到较理想的精度, 识别机制对视频图像质量要求不高、即使在未正确对焦情况下仍可表现出良好的鲁棒性。此外, 实验发现将摄像头曝光度调至低水平可降低漏检率。

然而, 实验还得出算法在应对路面反射特性较强的环境时漏检率会偏高, 因此改善算法在该环境下的漏检问题, 将是今后的研究目标。

猜你喜欢
车灯光斑阈值
南非的车灯会说话
有趣的光斑
有趣的光斑
夏末物语
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于CS-TWR的动态阈值贪婪算法成像研究
基于自适应阈值和连通域的隧道裂缝提取
STP与无线调车灯显设备结合技术探讨
基于迟滞比较器的双阈值稳压供电控制电路
大光斑1064nmQ开关Nd:YAG激光治疗黄褐斑的临床研究