APP下载

基于视频的夜间车辆检测与跟踪

2020-05-22郭言信朱明旱张明月张栩华周楠皓

计算机技术与发展 2020年5期
关键词:车灯阈值车辆

郭言信,朱明旱,张明月,张栩华,周楠皓

(湖南文理学院 计算机与电气工程学院,湖南 常德 415000)

0 引 言

随着时代的发展,数字图像处理技术逐渐被应用到车辆的检测和跟踪算法中,在道路交通管理中发挥了越来越重要的作用,目前已经有很多国内外的学者在这方面做了大量并且深入的研究[1-2],各种各样基于视频的车辆检测技术的算法开始出现。然而,很多算法都是在正常的日间光照下进行的[3],也有一些算法是在恶劣的特殊天气情况下展开的,针对夜间条件的研究却比较少,而且效果也不是很理想。

大部分原因是在图像处理的过程中经常会容易受到周围的环境和条件的影响,夜间的灯光来源十分复杂,除了车辆的灯光,道路上的反射光也十分多。此外,道路沿线的其他事物、路灯等环境因素的干扰极大地阻碍了夜间车辆的检测和识别,白天的许多视频检测算法无法在夜间实现。在基于视频的车辆检测中,因为受光照的影响,日夜场景不同的情况下检测算法也是不同的。

但无论是对于白天还是夜间情况下的车辆检测,算法一般主要分成两部分:车辆的检测和车辆的跟踪[4-5]。车辆检测是为了检测视频图像中是否存在车辆,对于检测到的车辆保存其位置和形态学信息。由于车辆信息在不断的变化,检测过程通常遍历了整个帧图像,导致完成这一部分的事件复杂度较高。车辆的跟踪是在第一次检测到车辆后,建立车辆的初始化信息,并且对接下来的每一帧跟踪车辆的信息。因为跟踪能够通过车辆的最大行驶速度来预测车辆的移动范围,让搜索范围和事件复杂度都变小。所以通过加入跟踪算法可以提高车辆检测的实时性[6]。

刘莉提出一种在夜间光照不充足的情况下通过连通区域检测车辆的方法[7],阈值化,通过腐蚀去除一些孤立的点,后通过车灯的形状大小等特征找出车灯并对其配对,最后通过比较相邻两帧之间的连通区域变化进行追踪,从而计算出车流量。但是这种方法计算信息量较大,关于夜间交通堵塞,路灯反射光影响等问题没有完全得以解决。

为了更好地解决上面的问题,文中提出一种建立矩形框来标记车辆的夜间车流量检测和跟踪的方法。首先,对图像进行阈值化,提取可能为车灯的亮点,建立连通区域,再利用两车灯连线的斜率接近于0,两车灯之间的水平位置,两车灯的面积应该是相近或几乎相等及两者之间的距离应该小于设定的阈值进行判断,对车灯进行匹配。之后再适当放大匹配车灯的连线的长度,得到车头宽度。进而根据车头长宽比关系,确定其长度,从而得到车头区域,通过矩形框保存好车辆信息之后,通过基于邻域的方法进行车流量的统计跟踪。

1 算法描述

车灯作为在夜晚最明显的特征并不受周围环境的影响[8]。城市交通中存在着各种类型的车辆,不同类型的车辆的车灯数目也不相同,有时还会有一些车灯坏掉的故障车辆,所以要想通过车灯去得到准确的车辆数目必须进行车辆的配对和跟踪。前者是为了判断属于同一辆车的车灯,配对后就可以通过车灯来代表车辆数目,后者是为了解决车辆计数和获取运动轨迹的问题。

目前夜间车辆检测和跟踪算法主要分为3类:基于车前灯检测算法[9-10]、基于车尾灯检测算法[11]和基于机器学习检测算法[12]。通过系统实时性和准确性的多重考虑,文中算法是在车灯检测的基础上通过建立矩形框来标志车辆的夜间车辆检测法,通过规则集来定义多种情况下矩形框保存车辆信息[13]。

目前车灯检测的方法主要是依靠一些外界的因素来对车灯进行检测[14-15],这种方法比较依赖周围的环境,很容易造成车辆检测的稳定性较低,从多方面考虑文中算法能够较有效地检测到车辆。

获取夜间交通监控的画面之后,对图像进行预处理,首先是进行灰度变换,再通过阈值化提取车灯,再依据车灯的形态学特征和车灯之间设定的距离的阈值将表现为同一辆车的车灯连通区域配对,保存最开始的车辆信息,然后建立了矩形框和车灯的在不同帧下的匹配原则,并给出车灯对的基于邻域的跟踪算法的流程[16],完成车辆的检测和跟踪。

1.1 车前灯对的检测

1.1.1 视频图像预处理

首先预处理待检测视频图像,主要是灰度处理和阈值化处理[17]。通过设置阈值来分割前景目标和背景,因为在夜间环境下车灯中间位置的亮度很高,在图像的中亮度接近255,还有一些光线反射的亮度也很高,从而产生干扰,而图像中剩下的部分亮度都很低,所以可以通过设置一个阈值T,当图像中某个点的亮度大于T时,就令这个点的亮度为255,否则令这个亮度点为0。

阈值化后的图像包括车灯,夜间反射光和一些微小噪声,先通过形态学分析去除一些不规则的噪声,然后通过腐蚀和设置车灯连通区域的最小值来去除一些小噪声的干扰(如图1(b))。此预处理效果良好,便于后续研究的进行。

图1 视频图像预处理

阈值化公式如下:

1.1.2 车前灯的检测和匹配

一般车辆只有两个车灯,但是一些特殊车辆有不符合一般情况的车灯数量,对车辆提取造成了很大的影响。为了提取所有的车辆,将车辆的车灯配对是必要的步骤,同时也必须把判断为同一车辆的车灯分为一组。一般来说,车辆的头灯以同样的速度向相同的方向移动,并且车灯的面积、纵横比等参数相差不大。因此要将车辆进行匹配可以通过各个车灯之间的空间信息来进行[18-19]。

车灯检测和匹配的目的是为了将需要的车灯从图像中提取出来,并判断哪些车灯属于同一辆车,在经过前文的预处理之后图像中只有车灯,除了主灯以外的装饰灯和一些车的反射光,而普通车辆的车灯在形态学上是有规则的,都接近圆形或者椭圆形,它们的长宽比和面积都在一定的阈值之内。通过这些研究,可以剔除一部分干扰,再根据两车灯的水平位置,车灯的面积应该是相近或几乎相等及两者之间的距离应该小于设定的阈值进行判断,就可以将属于同一辆车的车灯匹配起来,由于一辆车可能开了多个车灯,所以为了避免错检,也会将这些灯进行配对并建立车辆信息,并且通过后文建立的规则来判断多个车灯如何计算车辆。文中提出的阈值大小都是根据具体情况来确定的。

要确定此连通区域为车灯并对其进行配对,必须同时满足下列条件。匹配完成后,需要进一步判断剩下的没有匹配成功的单个连通区域是因为车辆本身只打开了一个车灯还是由于周围的环境干扰所导致的。

想要提取出实际的车灯区域,可以通过下面几个条件来判断。

(1)两个车灯的水平位置在图像中相差不大,即连线的斜率接近0,设车灯中心为(x1,y1)、(x2,y2),则中心连线的斜率为:

(2)同一辆车的两个车灯形状类似,而且两车灯的面积之比在阈值之内。

(3)两个车灯之间的中心距离的阈值用车道线的宽度来定义,即车灯的中心距离d小于阈值M,则:

车灯匹配成功之后,适当放大车灯对连线的长度,得到车头宽度。进而根据车头长宽比关系,确定其长度,从而得到车头区域。后续建立车辆信息的规则集就是在矩形框的基础上进行的(见图2)。

1.1.3 保存车辆信息

通过规则集来判断单个或多个车灯的情况如何确定车辆的位置以及如何保存当前的车辆信息。车辆信息存储的是矩形框中的车灯对或单个车灯的位置信息以及对应的连通区域的形状和面积信息。规则集如下:

(1)矩形框没有重叠,可以直接保存这个矩形框的车辆信息;

(2)矩形框有重叠,并且重叠区域与矩形框的比值大于阈值Z,则判断为是车灯对和车灯对路面的反射光或者是车辆的大前灯对和小前灯对,然后保存面积最大的矩形框的车辆信息;

图2 车辆配对

(3)矩形框存在重叠,且重叠面积与矩形框之比小于阈值Z,就认为是车辆发生遮挡,保存两个矩形框的车辆信息;

(4)矩形框周围有落单的连区域,则认为它是路面的反射光或者是其他误差因素,直接保存这个矩形框中连通区域的车辆信息;

(5)对于分组只包含了单个连通区域的矩形框,为了避免漏掉只开了单个车灯的车辆信息,则保存全部矩形框中的连通区域的信息。

1.2 车辆跟踪

在车辆检测中匹配与比较的是每一帧图像中的车灯,但在视频中如果只对于单帧图像进行处理无法计算出车辆,所以必须进行车辆的帧间匹配,在每一帧中检测到目标车辆的位置信息。因为视频中相邻两帧之间的时间十分短,不管车辆有任何突发的位置移动,车辆的位置变化都会在一定的范围内,并且车灯面积同样也变化不大。因此,可以根据车辆在行驶过程中的最高速度预测出车辆在下一帧的位置范围,并把车辆能够移动的最大距离设置为阈值K。根据车灯当前帧的信息,搜索并匹配下一帧中车灯的位置并判断两帧中是否检测到的是同一辆车[20]。

关于车灯在帧间的匹配原则如下:

(1)首先计算两车灯的中心坐标,确定为矩形框中两车灯连线的中心位置,若是车灯为单个存在的矩形框中的车灯中心坐标就为这个车灯的中心。设车灯对的两车灯坐标分别为(x1,y1)、(x2,y2),则中心坐标(x,y)为:

(2)计算矩形框内的车灯的平均面积,若是车灯为单个存在的矩形框中的车灯平均面积就为这个车灯的平均面积。并且在前后帧之间矩形框内的车灯面积相差在阈值内。

(3)匹配时确定矩形框内的车灯数目没有变化。

依据上述所列出的车灯匹配原则,以下是文中车灯对跟踪算法的具体实现方法:

(1)将矩形框中的车灯对的当前中心坐标和平均面积计算和保留下来,用向量Pi=(x,y)表示中心坐标,area为平均面积,i为帧数,保存在初始目标池中。

(2)预测pi在下一帧中车辆的位置,先建立一个以pi为原点坐标,半径为K的圆形窗口,在此范围内提取匹配目标。若没有找到匹配车辆,则转到(4)。反之,则进入下一步。

(3)为了判断搜索提取到的是不是同一辆车,用帧间车灯的相似度来进行比较。将下一帧中的各个车灯对与当前帧的车灯对进行对比,如果提取的目标车灯对与当前帧车灯对的面积之比满足下式,即:

则跟踪成功,车辆计数加1,更新车辆中心坐标和平均面积等信息;如果车灯对Pi+1在目标池中找不到匹配的车灯对,则认为Pi+1是新进入的车灯对,将信息保存在目标池中,并进行下一帧的搜索。其中,areai+1,areai分别表示下一帧与当前帧的面积,阈值Amin和Amax分别设置为0.8和1.2。

(4)如果目标池中的pi在搜索窗口中没有搜索到匹配的车灯,则首先判断为失帧,重新跳转到(2),假如像这样循环15次都没有搜索到匹配车灯,则判断pi消失,从目标池中将pi删除。

(5)保存跟踪到的车灯对中心的位置信息,可以追踪到其运动轨迹。

通过算法对目标的检测和连续跟踪,可以得到当前目标运动的速度和位置,预测下一帧中目标可能出现的位置,与此同时进行两帧之间车灯的车辆信息匹配,通过预测的跟踪方法不仅缩小了搜索范围,也加快了速度,并且由于预测减少了不可能存在车辆的位置,可以提高跟踪精度,使跟踪更加准确。

车辆进入视频后有三种状态:出现、消失、更新,对待不同的状态有不同的对检测目标的处理方式。

出现:当前检测到目标对象,将目标与目标池中的目标匹配,如果目标池中未找到与此目标匹配的对象,则将此目标作为新目标添加到目标池中。

消失:目标池中的车辆没有在连续的15帧中检测和搜索到匹配的车灯,则认为目标消失并从将它目标池中删除。

更新:在当前帧中检测到目标池中的车辆,则将当前帧此车辆中心坐标和平均面积等信息替代初始目标池中车辆的信息。

2 实验结果及分析

实验采用文中方法对不同场景中的视频进行了车辆检测与跟踪,其中的实际车辆数量是人工统计的。文中算法的检测和追踪效率如表1所示。视频数据主要包括视频的时长、道路环境以及人工计数的实际车辆数量。

表1 夜间车辆跟踪结果统计

实验结果表明,使用文中方法进行车辆检测的检测率都在95%以上,错检率较低,并且在一般的情况下具有一定的稳定性,能满足夜间车辆检测的基本要求。

3 结束语

针对夜间环境下光照不充足以及光线反射干扰导致运动目标提取困难等问题,提出了一种通过在车灯配对阶段建立矩形框来建立车辆信息的夜间车流量检测方法,实验结果证明该方法能有效地解决一车多灯的问题,在夜间环境下能达到一定的准确率。

为了提高夜间车辆检测的稳定性和实时性,在完成了车辆检测后采用了基于邻域跟踪的方法。使用此方法可以降低需要检测的区域,使运算速度大大提高。想要提取较为稳定的跟踪对象可以通过预测车辆在下一帧位置的方法来实现,以便于提高跟踪方法的稳定性,减少丢失跟踪目标的情况,此方法也可以增强车辆检测的准确性和抗干扰性。通过实验结果验证了加入跟踪的方法能确保车辆检测的实时性、稳定性以及准确性。检测率在95%以上。然而在一些交通堵塞与天气恶劣的环境下并不是通过简单的配对与跟踪就能计算的,如何在此类环境下进行车辆检测并提高准确率将是未来的研究工作。

猜你喜欢

车灯阈值车辆
德国车辆来波兰加油
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
改进小波阈值对热泵电机振动信号的去噪研究
南非的车灯会说话
车辆
冬天路滑 远离车辆
车灯技术演绎行车生活
选对你的“灯”