一种基于视频监控的车辆跟踪与分割方法
技术领域
本发明属于智能交通监控技术领域,尤其涉及一种基于视频监控的车辆跟踪与分割方法。
背景技术
随着全球经济和科学技术飞速发展,交通作为社会发展和人民生活水平提高的基本条件,得到了巨大的发展。现在家庭私人汽车逐步普及,公路条件得到很大的改善,交通量也在不断增长,但与此同时,交通道路拥堵、交通事故频发以及交通环境恶化等也成为了全球性的的问题,有效的交通管理是各大城市面临的难题,在这样的背景下,智能交通系统(Intelligent Transport System)应运而生。
车辆检测是智能交通中最基础、最重要的部分,它能准确及时的检测出车辆,是后面的车辆跟踪、车牌识别、车辆信息提取等处理的保证。传统的车辆检测的方法有红外检测、地感应线圈检测、超声波检测等。红外线检测的方法可提供大量的交通管理信息,但它抗噪能力不强,有时可能需要降低可靠性来提高灵敏度;地感应线圈检测的技术已比较成熟,性能稳定且计数非常精确,它可检测车流量、道路占有率等,但是这种方法要在公路线铺设线圈,影响路面寿命,并且易被重型车辆等损坏;超声波检测方法根据接收和返回的超声波的时间差来确定车辆通过情况,具有体积小,易于安装等优点,但是它受天气和温度影响较大。近年来随着计算机技术、图像处理、计算机视觉和人工智能的发展,基于视频的车辆检测技术,越来越受到青睐。视频检测技术优点有:可从视频图像序列中提取丰富的信息,采集到更多的交通参数,如车流量、车速、车辆牌照、车辆类型等,实现高效准确的交通监控功能。但是目前基于视频的车辆跟踪技术仍存在遮挡问题,这是因为在实际应用中,由于架设的摄像机光轴与道路平面之间的角度较小,拍摄到的车辆之间往往互相重叠,从而产生遮挡。因此,解决车辆遮挡而造成的粘连问题是视频车辆跟踪的关键。
发明内容
针对以上现有技术的不足,本发明提供了一种能够实时对视频中的车辆进行稳定的跟踪,并能够对粘连车辆进行分割,处理速度快,可满足对实时系统的要求的基于视频监控的车辆跟踪与分割方法。
本发明的技术方案如下:
一种基于视频监控的车辆跟踪与分割方法,其包括以下步骤:
步骤1、首先输入车辆监控视频;预先浏览车辆监控视频前n帧,n=20,确定出车辆行驶方向和车道宽度;
步骤2、其次进行背景建模,然后通过背景模型提取视频帧图像的前景图像,进行滤波处理并更新背景模型;
步骤3、结合前景图像及其外接矩形的面积联合判定前景图像是否属于车辆,若判定为车辆则利用前景图像外接凸包检测车辆是否属于粘连车辆;若车辆属于粘连车辆,利用凹点扫描线和凹点分割线进行车辆分割;
步骤4、将车辆加入跟踪队列并赋予其生命周期,利用车辆外接矩形质心和面积预测其在下帧的位置,并检测在下帧图像中是否存在此车辆,然后更新车辆信息并更新跟踪队列。
进一步的,步骤2进行背景建模的步骤包括:初始化第1帧视频图像建立背景模型;
对于视频第1帧中的每个像素点,随机抽取与其相邻的8个像素点作为此像素点的背景模型,如果t=0代表视频的第1帧,NG(x)为像素点x的空间邻居像素点,则点x的背景模型初始化为
M0(x)={v0(y|y∈NG(x))} (2)
(2)式中,y是从NG(x)中随机读取的,v0(y)需要随机选择多次直到能够满足M0(x)中背景像素点个数的要求。
进一步的,步骤2更新背景模型包括:从第2帧开始更新背景模型,更新背景模型如下:
1)对像素点进行统计,如果某个像素点连续20次被检测为前景,则将其更新为背景点;
2)当一个像素点被分类为背景点时,它有的概率去更新背景模型;
3)每一个背景点有的概率去更新自己的模型样本值,同时也有的概率去更新它的邻居点的模型样本值,同时当前景点计数达到临界值时将其变为背景,并有的概率去更新自己的模型样本值;在选择要替换的样本集中的样本值时候,随机选取一个样本值进行更新。
进一步的,步骤3对对检测到的运动目标进行车辆判定,判定方法为:如果运动目标的轮廓面积及其外接矩形的面积分别大于设定的阈值,则视为一辆车,否则不是车辆。
进一步的,对运动目标被判定为运动车辆进行粘连判定,具体判定方法如下:计算车辆的面积Areavehicle与车辆外接凸包的面积Areaconvex的比值RA,如果RA大于设定的阈值,则视为单辆车,加入到跟踪队列;否则视为粘连车辆,对其进行粘连车辆分割。
进一步的,所述步骤3凹点扫描线的具体查找过程如下:
1)对粘连车辆进行凸包,并用集合{Si}记录粘连车辆外接凸包的各个填充区域的面积,Si表示各个填充区域的面积;
2)选取面积最大的2个填充区域记为Sj和Sk;
3)分别记录Sj和Sk的边缘线的两个端点,并连接成两条直线l3和l4,l3和l4应近似平行于车辆行驶方向;
4)直线连接l3和l4的中点,此直线即为凹点扫描线l6。
进一步的,利用凹点扫描线进行凹点具体查找过程如下:
1)记录扫描线原始位置,遍历凹点扫描线上的像素点,若存在像素点处于Sj或Sk,则执行步骤2),否则执行步骤3);
2)将扫描线逐步向上平移,若扫描线上的像素点在向上平移的过程中都处于车辆区域内,将扫描线向下平移一个像素点,扫描线上不在车辆区域内的像素点即为凹点1,记为C1;继续向上平移扫描,扫描线上不在车辆区域内的像素点即为凹点2,记为C2;若没有找到凹点,则将扫描线从原始位置向下平移扫描,按相同操作查找凹点;
3)分别将扫描线上下平移扫描粘连车辆对应的凸包区域,将向上平移扫描时扫描线上对应的第一个不在车辆区域的像素点记为凹点1,即C1;将向下平移扫描时扫描线上对应的第一个不在车辆区域的像素点记为凹点2,即C2。
4)C1和C2的连接线即为粘连车辆分割线。
进一步的,所述步骤4采用预测式方法进行跟踪,确保车辆不会被重复计数。
本发明的优点及有益效果如下:
1)车辆跟踪计算量小,可修正跟踪错误车辆位置
本发明在步骤4中预测车辆在下一帧图像的位置是通过选取当前帧的车辆实际位置与当前帧的预测位置的中点,其计算量小。对于跟踪错误的车辆,本发明能够在下一帧中更新车辆的位置信息,降低跟踪预测错误误差,使得预测位置与车辆真实位置相差较小,以便于在后续的帧中修正该车的位置。
2)对粘连车辆分割准确
本发明首先通过步骤3中车辆面积和车辆外接凸包的面积的比值能够快速确定粘连车辆,然后通过车辆行驶方向和车辆的两个最大填充区域确定凹点扫描线,最后使用凹点扫描线查找两辆车之间的遮挡处进行车辆分割。此方法能够准确地对粘连车辆进行分割,且算法处理时间短,满足实时性,能够有效提高车辆计数准确率。
附图说明
图1是本发明提供优选实施例总体流程图;
图2为本发明的车辆运动方向预测失误示意图;
图3为本发明的粘连车辆分割示意图;
图4为本发明的车辆跟踪过程图。
具体实施方式
以下结合附图,对本发明作进一步说明:
如图1所示,本发明实施例提供一种基于视频监控的车辆跟踪与分割方法,如图1所示,该方法包括:
输入城市道路监控视频,预览视频前20帧,根据道路信息,确定车流方向和车道宽度。
首先,在步骤101中利用第1帧的视频图像初始化背景模型,初始化背景模型方法如下:对于视频第1帧中的每个像素点,随机抽取与其相邻的8个像素点作为此像素点的背景模型。如果t=0代表视频的第1帧,NG(x)为像素点x的空间邻居像素点,则点x的背景模型初始化为
M0(x)={v0(y|y∈NG(x))}(2)
(2)式中,y是从NG(x)中随机读取的。v0(y)需要随机选择多次直到能够满足M0(x)中背景像素点个数的要求。
然后,在步骤104中从第2帧开始更新背景模型,更新背景模型策略如下:
1)前景点永远不会被用来填充背景模型,对像素点进行统计,如果某个像素点连续20次被检测为前景,则将其更新为背景点;
2)在每一个新的视频帧中都去更新背景模型中的每一个像素点的样本值是没有必要的,当一个像素点被分类为背景点时,它有的概率去更新背景模型;
3)具体的更新方法:每一个背景点有的概率去更新自己的模型样本值,同时也有的概率去更新它的邻居点的模型样本值。更新邻居的样本值利用了像素值的空间传播特性,背景模型逐渐向外扩散,这也有利于鬼影区域的更快的识别。同时当前景点计数达到临界值时将其变为背景,并有的概率去更新自己的模型样本值。在选择要替换的样本集中的样本值时候,随机选取一个样本值进行更新,这样可以保证样本值的平滑的生命周期。由于是随机的更新,这样一个样本值在时刻t不被更新的概率是(N-1)/N,假设时间是连续的,那么在dt的时间过去后,样本值仍然保留的概率是
检测完前景点后,在步骤103中对从步骤102中提取到的前景图像进行形态学滤波处理,包括中值滤波、形态学闭操作。
对于处理后的前景图像,用L(C(x,y),width,height)表示其外接矩形信息。其中,C(x,y)、width、height分别对应矩形质心的位置、宽度及高度。
在步骤105对进行形态学滤波处理后的前景图像进行检测,并在步骤106中对检测到的运动目标进行车辆判定,判定方法为:如果运动目标的轮廓面积及其外接矩形的面积分别大于设定的阈值,则视为一辆车,否则丢弃。
在步骤108中,我们对运动车辆进行粘连判定。具体判定方法如下:计算车辆的面积Areavehicle与车辆外接凸包的面积Areaconvex的比值RA,如果RA大于设定的阈值,则视为单辆车,加入到跟踪队列;否则视为粘连车辆,对其进行粘连车辆分割。
步骤109车辆分割如图3所示,粘连车辆分割的关键在于要找到车辆的分割点,实质上是要检测车辆边界凹性程度最大的像素点,称之为凹点。通过连接凹点的直线对粘连车辆进行分割,凹点的查找需要凹点扫描线进行判定。凹点扫描线具体查找过程如下:
1)对粘连车辆进行凸包,并用集合{Si}记录粘连车辆外接凸包的各个填充区域的面积;
2)选取面积最大的2个填充区域记为Sj和Sk;
3)分别记录Sj和Sk的边缘线的两个端点,并连接成两条直线l3和l4,需要注意的是,l3和l4应近似平行于车辆行驶方向;
4)直线连接l3和l4的中点,此直线即为凹点扫描线l6。
利用凹点扫描线进行凹点查找过程如下:
1)记录扫描线原始位置,遍历凹点扫描线上的像素点,若存在像素点处于Sj或Sk,则执行步骤2),否则执行步骤3)。
2)将扫描线逐步向上平移,若扫描线上的像素点在向上平移的过程中都处于车辆区域内,将扫描线向下平移一个像素点,扫描线上不在车辆区域内的像素点即为凹点1,记为C1。继续向上平移扫描,扫描线上不在车辆区域内的像素点即为凹点2,记为C2。若没有找到凹点,则将扫描线从原始位置向下平移扫描,按相同操作查找凹点。
3)分别将扫描线上下平移扫描粘连车辆对应的凸包区域,将向上平移扫描时扫描线上对应的第一个不在车辆区域的像素点记为凹点1,即C1;将向下平移扫描时扫描线上对应的第一个不在车辆区域的像素点记为凹点2,即C2。
4)C1和C2的连接线即为粘连车辆分割线。
利用分割线对粘连车辆进行分割,若分割后的两个区域都满足单车条件,则分割;否则不分割。将分割后的车辆加入跟踪队列。
在步骤110对车辆进行跟踪时,为了获得同一运动物体在不同帧中的关系链,通过预测式方法进行跟踪,确保车辆不会被重复计数。如图4所示,具体过程描述如下:
1)读取当前视频图像序列加入跟踪队列的车辆,将其前景图像标记为Bi,在跟踪队列中保存该前景图像信息即Li,并为该前景图像赋予一个生存期TTL(单位:帧),设置为3。并把该前景图像外接矩形行驶右上方坐标(x,y)视为下一帧该前景图像外接矩形质心的预测位置。其中,i为车辆标记编号;
2)进入k+1帧时,存储在跟踪队列Bi的TTL减1,计算出质心Ci到其预测位置的距离向量,并将矩形Li按照该向量平移到预测位置;
3)提取当前帧前景图像,并计算各个前景图像外接矩形和其质心位置。计算平移后的Li与当前帧中前景图像外接矩形重合面积和质心距离,当重合面积与预测的Li面积之比大于T3且质心距离小于T4,判定为匹配,视为同一辆车,将跟踪队列中Bi信息更新为当前帧中与其匹配的前景图像信息。其中,T3、T4为经验值;
4)选定跟踪队列中Bi外接矩形Li的质心Ci与当前帧该Bi质心的预测位置两者之间的中点为下一帧Bi外接矩形质心的预测位置;
5)进入k+2帧时,转至步骤3),直至该车辆消失在选定的跟踪区域;
6)若在一帧中未跟踪到该车,且连续3帧都未跟踪到,TTL为0,说明该车已经驶离感兴趣区域,标志其生命周期的结束。当TTL变成0之前,又被跟踪到,则将该车的TTL重新赋值为3,继续跟踪;
7)在跟踪车辆的同时,会有新的车辆驶入感兴趣区域,需要对当前帧的前景图像进行判断,标记并加入跟踪队列中。
其中,取一个车辆当前帧矩形的质心和其预测的质心之间的中点为该车下一帧质心的预测位置,这种猜想式预测计算量少且有较强的鲁棒性,可以有效减少预测失误带来的误差。
通过图2对预测失误情况进行分析。其中白色实线框矩形代表车,黑色矩形代表当前帧中车的预测矩形框,虚线框矩形代表车匹配后下一帧预测的位置,P1,P2,P3分别是三个矩形的质心。相邻两帧之间时间很短,车辆发生的位移较小,所以相邻帧的矩形近似相同。车在实际中是往左边箭头的方向行驶的,但在处理出的图像中并没有在相应的位置找到可以匹配的矩形,而是与靠右边的矩形匹配上。由于在更新车的位置时选取的是中点,离实际的方向不会太远,造成的误差也相对较小。因此,在后续的视频帧序列中该车位置能够得以修正。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。