一种基于视频虚拟线圈的车流量检测方法与流程

文档序号:16518242发布日期:2019-01-05 09:47阅读:535来源:国知局
一种基于视频虚拟线圈的车流量检测方法与流程

本发明涉及图像处理技术领域,特别是涉及一种基于视频虚拟线圈的车流量检测方法。



背景技术:

随着人民生活水平的不断提高和社会工业化程度的提升,汽车越来越广泛地得到了普及。世界各国人均车辆拥有量急剧增加。截止2009年末,北京市每千人汽车保有量为228辆,接近国际大都市的中等水平,而且车辆数量的增长速度远大于道路的增长速度。车辆的普及方便了人们的生活和出行,却也给人们带来了许多的问题,例如城市拥挤,交通事故,能源危机,环境污染等等。统计数据表明,我国每年发生交通事故大约50多万起,每年由于交通事故而丧生的人数约10万人,占世界总交通死亡人数的16%,居世界首位。大约五分钟就有一人死于交通事故,每分钟就有一人因为事故致残。

幸运的是,在这一时期,随着计算机技术,电子技术,通信技术日趋成熟,智能化技术也得到很大的发展和一定程度的应用,面对日益增长的经济发展对交通运输的巨大压力,人们开始将智能化技术运用于交通领域,以求解决发展和交通,车辆与道路之间的矛盾和冲突。智能交通系统便应运而生。智能交通系统(its,intelligenttransportationsystem)的概念在上世纪90年代被提出,被认为是解决交通问题最有效的手段,也是解决运输瓶颈的关键措施。智能交通系统是指将先进的数据通讯、信息技术、电子传感技术,控制技术和计算机技术等有效结合起来,应用于整个交通运输管理体系,将人、车辆、道路当成一个和谐统一的整体进行研究,从而构建起的一个全方位、大范围发挥作用的,准确、实时、高效的综合运输和管理系统。

在交通参数检测系统中,车辆存在和出现的检测是最重要的环节。传统的车辆检测方式有地感环形线圈、微波雷达、超声波等。(1)地感环形线圈检测器地感线圈是目前世界上使用范围最广的一种检测设备。它是将环形线圈埋设在地下,当有车辆通过时,会引起线圈电磁感应的变化,从而检测出车辆。环形线圈不易受天气、光照、能见度等影响,能适应绝大多数情况,且性能稳定、成本较低、性价比高,是目前最主要的检测方式。然而环形线圈也有着很大的缺点。首先是安装不方便,需要挖开路面进行埋设,对道路有损伤,安装中会阻碍当前交通运输;其次线圈寿命短、易老化、灵敏度逐渐降低。并且地感线圈对于北方冬季时道路被冰雪覆盖情况下的检测效果并不理想。(2)微波雷达检测器微波雷达检测方式主要利用了多普勒频移的原理,它以一定的频率向外发送电磁波,当车辆通过时,被反射回来的反射波会有频率偏移,根据这个频偏可直接测定车辆的速度。此方式受天气影响较小,但安装难度大,且只能用于一条车道。另外,这种方式难以检测静止或者移动速度很慢的车辆。(3)超声波检测器超声检测的工作原理是由探头向检测区发出一束超声波,然后接受反射回来的波束,分析反射波束和发射波束的时间差。由于探头方向是一定的,在没有车辆时,反射波和发射波的时间差也是一定的。当有车辆通过时,时间差会变短。于是可以根据这个时间差来检测车辆的进入以及距离等信息。超声波检测器安装方便,不需破坏路面,但检测精度欠佳,易受车型和车辆高度的影响,和大气扰动,温度变化的干扰。

可见,上述几种检测方式都存在着种种问题,然而最大的问题是能提供的信息较少,不能满足现代交通管理的需求。



技术实现要素:

本发明实施例提供了一种基于视频虚拟线圈的车流量检测方法,可以解决现有技术中的问题。

本发明提供了一种基于视频虚拟线圈的车流量检测方法,该方法应用于白天检测车流量的场景中,所述方法包括以下步骤:

对采集的图像进行预处理;

设置计数检测线圈和速度检测线圈,两条检测线圈平行且计数检测线圈位于速度检测线圈上方,实时监测预处理后的图像中计数检测线圈内的图像二维信息,若发现有车进入,根据车辆在当前计数检测线圈的位置预测车辆即将经过速度检测线圈的位置,动态确定需要开窗的位置;

运用车辆计数算法统计通过两条检测线圈的车辆数量,车辆计数算法为:

初始化两个窗口队列upqueue和downqueue为空,作为开辟窗口的队列容器,初始化计数值count=0;

(1)对于当前计数检测线圈内的图像,遍历队列upqueue的每一个开辟的窗口元素,若其范围内没有连通区,则说明车辆已经离开,将此窗口删除;

(2)检查当前计数检测线圈内的图像,若存在连通区,且其宽度大于连通区尺寸阈值threshold,则判为车辆目标,记录下其横坐标范围作为新的窗口范围;若不存在车辆目标则进入(4);

(3)遍历upqueue的每一个窗口元素,若每个窗口与新的窗口范围无交集,则开辟此新窗口,将其加入队列upqueue中,并向速度检测线圈投影,投影后的窗口位置加入到downqueue中;若有交集,不开辟此新窗口;

(4)对于downqueue,若一段时间内没有检测到车辆,则判定为计数检测线圈误判,删除此元素所代表的窗口,不进行检测,若检测到车辆,则计数值count加1;

(5)更新为下一帧的计数检测线圈内的图像,返回(1);

最终得到的计数值count即为车流量。

本发明实施例还提供了一种基于视频虚拟线圈的车流量检测方法,该方法应用于夜晚检测车流量的场景中,所述方法包括以下步骤:

对采集的图像进行二值化处理;

对二值化图像中的车灯进行匹配处理,将所有匹配的车灯都放入到匹配队列中;

设置计数检测线圈和速度检测线圈,两条检测线圈平行且计数检测线圈位于速度检测线圈上方,对于匹配队列中的车灯,采用基于车灯配对的车辆检测算法在计数检测线圈所在的区域内进行车灯匹配,为配对的车灯动态开辟一个窗口进行检测,以确定车流量,基于车灯配对的车辆检测算法为:

建立窗口队列window_queue,其中元素代表了当前所开窗口,建立车灯队列lamp_queue,同时初始化计数值count=0;

(1)清空车灯队列lamp_queue;

(2)遍历窗口队列window_queue,若某个窗口元素范围内的当前计数检测线圈内图像内无连通区,则删除;否则进入下一步;

(3)对于当前计数检测线圈内图像,若其中有连通区的面积大于等于面积阈值threshold’,则将其加入车灯队列lamp_queue;若其中没有连通区的面积大于等于threshold,则进入(9);

(4)遍历车灯队列lamp_queue中的每一个车灯元素,若该队列中存在另外一个或多个元素与之匹配,则保留;否则,删除此元素;

(5)将lamp_queue中的车灯元素按照其在图像中从左到右的顺序进行排序;

(6)若lamp_queue中元素个数为奇数,则从前向后遍历该队列的每一个元素,若删除该元素后,队列仍为匹配的,则删除该元素,停止遍历;否则进入下一步;

(7)对于队列lamp_queue,从第二个元素向后遍历,若有第i个车灯元素与第一个元素匹配,则将此两个车灯进行配对,记录下这两个车灯的窗口位置,停止遍历;删除第一个元素和第i个元素,其后面元素依次前移,若队列lamp_queue不为空,则重复上述操作;

(8)对于(7)中得到的每一个新的车灯窗口位置,遍历队列window_queue的每一个窗口元素,若新的车灯窗口与window_queue中的每一个窗口元素均无交集,则开辟此新窗口,将其加入window_queue,并在此新窗口检测到车辆时计数值count加1;反之则不开辟新窗口;

(9)更新为下一帧计数检测线圈内图像,返回(1);

最终得到的计数值count即为车流量。

本发明实施例中的一种基于视频虚拟线圈的车流量检测方法,分别对白天和夜晚的应用场景提出了相应的检测方法,在白天的检测方法中,针对视频车辆跟踪计算量大和固定虚拟线圈不能适应车辆跨车道行驶等问题,提出了动态开窗的视频车流量检测方法,针对白天的检测方法在夜晚失效的情况,提出了夜晚环境下基于车灯配对的车辆检测方法,可在很大程度上提高车流量检测的准确性,同时降低计算量。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种基于视频虚拟线圈的车流量检测方法应用在白天时的流程图;

图2为小孔摄像机模型示意图;

图3为实际距离到图像距离的映射示意图;

图4为本发明实施例中一种基于视频虚拟线圈的车流量检测方法应用在夜晚时的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种基于视频虚拟线圈的车流量检测方法,该检测方法分为应用在白天和应用在夜晚中两种场景,应用在白天时的流程如图1所示,具体包括以下步骤:

步骤1,建立混合高斯背景模型;

步骤2,采用中值滤波算法对采集的图像进行去噪处理,中值滤波步骤如下:

(1)用一块模板,本文选用3*3大小,在图像的每个像素上依次移动;

(2)将模板所覆盖下的像素值从大到小进行排序;

(3)将排序后的中间值赋值给模板当前中心点对应的像素。

步骤3,对于二值化后的图像进行膨胀操作,将二值化过程中产生的断裂的连通区连接起来。对于z2中的集合a和b,a被b膨胀的操作定义为:

这个公式是以得到b的相对于它自身原点的映象并且由z对映象进行位移为基础的。a被b膨胀是所有位移z的集合,这样,和a至少有一个元素是重叠的。

步骤4,对于膨胀处理后的图像,对图像中的车辆目标进行填充,以及对图像中的噪声进行消除,提高图像预处理的效果。

该步骤中车辆目标填充的具体方法为:

首先提取出车辆目标,求出其外接矩形框,对每一目标的填充在此外接矩形框内进行。为了在填充的同时,尽量保留目标的形状和大小,定义上下左右四个方向上都有“1”像素的点为内部点。对矩形框内的每一个像素点,若其为内部点,则填充为1。即对于矩形框内的像素点r(x,y),若其上下左右存在某四个点使得

则称此像素点r(x,y)为内部点,将之填充为1。

对图像中的噪声进行消除的具体方法为:将外接矩形框宽度小于单个车道宽度1/4的目标填充为0。

该步骤中,为了降低计算量,填充和消除操作只对与指定区域相交的目标块进行,并且填充和消除的区域只局限于目标块在指定区域内的部分,对指定区域外的部分不执行操作。

步骤5,计算步骤4处理后的图像与步骤1建立的混合高斯背景模型之间的互相关系数,以表征真实背景和建模背景的差异,用来确定背景是否发生突变,如果发生背景突变,则重置混合高斯背景模型。对于两幅图像a和b,二者之间的互相关系数为:

其中,分别为图像a和b的均值。

本步骤中,选取当前建模背景中预先手动选定的建模区域与前景图像中的相应区域进行相关性比较,求取其互相关系数。当背景未突变的时候,相关系数r较大;出现突变时,r会显著变小。所以可根据r的变化判别背景是否突变,为了防止偶尔的噪声导致对背景突变的误判,可以设定一个阈值n,若连续n帧,r小于某一值r'才算背景突变。r'和n的取值比较灵活,可根据实际情况而定。本实施例取r'=0.5,n=100。由于手动选定的建模区域的尺寸通常远小于图像的大小,所以背景建模的运算量会大幅下降。在新区域内进行建模的运算量基本上与该区域尺寸占整幅图像尺寸的比例成正比,这极大地增强了系统的实时性。

步骤6,设置两条虚拟检测线圈,分别为计数检测线圈和速度检测线圈,两条检测线圈平行且计数检测线圈位于速度检测线圈上方,两条检测线圈各自占满整条道路的多个车道。实时监测步骤4处理后得到的图像中计数检测线圈内的图像二维信息,若发现有车进入,则根据车辆在当前计数检测线圈的位置预测车辆即将经过速度检测线圈的位置,动态确定需要开窗的位置。步骤5中预先手动选定的建模区域即为本步骤中计数检测线圈和速度检测线圈所在区域的上下大约一个车长的范围,步骤4中的指定区域即为计数检测线圈和速度检测线圈所在的区域。设置的计数检测线圈需要完整覆盖需要检测的每一个车道,并且尽量不要覆盖非路面区域,同时计数检测线圈的位置最好是位于图像的下部,但是不能太靠下。对于速度检测线圈的宽度没有太多要求,只要能接收到计数检测线圈的位置映射,同时速度检测线圈与计数检测线圈的距离不能太近,以提高速度检测的精度。

该步骤中,由于摄像机成像过程中投影透视的原理,原本平行的道路的两条边线在图像中远处交汇于一点,车辆在道路上按照车道行驶,行驶方向与车道边线近似平行,所以根据车辆在图像中道路某一断面处的位置,以及道路边线在远方的交汇点可以预测出其在另一断面的位置。根据此原理,在图像中横跨整个车道设置上下两条检测线圈,当检测到车辆在计数检测线圈的位置时,可以通过交汇点向速度检测线圈投影得到车辆将会在速度检测线圈出现的位置。为排除某些情况下计数检测线圈的误检情况,上下两条检测线圈都检测到有车时才进行车辆计数。

步骤7,运用车辆计数算法统计通过两条检测线圈的车辆数量,车辆计数算法的具体内容为:

初始化两个窗口队列upqueue和downqueue为空,作为开辟窗口window的队列容器,初始化计数值count=0;

(1)对于当前计数检测线圈内的图像,遍历队列upqueue的每一个开辟的窗口元素,若其范围内没有连通区,则说明车辆已经离开,将此窗口删除;

(2)检查当前计数检测线圈内的图像,若存在某个连通区,且其宽度大于连通区尺寸阈值threshold,则判为车辆目标,记录下其横坐标范围作为新的窗口范围;若不存在车辆目标则进入(4);

(3)遍历upqueue的每一个窗口元素,若每个窗口与新的窗口范围无交集,则开辟此新窗口,将其加入队列upqueue中,并向速度检测线圈投影,投影后的窗口位置加入到downqueue中;若有交集,不开辟此新窗口;

(4)对于downqueue,若一段时间内没有检测到车辆,则判定为计数检测线圈误判,删除此元素所代表的窗口,不进行检测,若检测到车辆,则计数值count加1;

(5)更新为下一帧的计数检测线圈内的图像,返回(1)。

设检测线圈刚好覆盖所有车道,宽度为line_width,车道数目为lane_number,则连通区尺寸阈值为:

最终得到的计数值count即为车流量。

步骤8,根据车辆分别进入计数检测线圈和速度检测线圈的帧数差,由帧率计算得到车辆从计数检测线圈行驶到速度检测线圈的时间,根据小孔摄像机模型和连续两段分道线的实际距离求得两条检测线圈之间的实际距离,最后根据前述得到的时间和两条检测线圈之间的实际距离计算得到车辆的速度。

在图像成像过程中,摄像机将三维景物点透视投影到图像平面上。其一般几何模型定义为:

xi=g(x)

其中,g()是关于三维景物点x=(x,y,z)到二维图像点xi=(xi,yi)的不可逆几何变换函数,其与透视模型、成像几何、坐标系直接相关。本实施例中使用的透镜无畸变的小孔摄像机模型如图2所示,图中z轴为摄像机光轴方向,xoy平面为图像平面,f为焦距,p点式三维空间中的点,其坐标为x=(x,y,z),点pi为p点在图像平面上的成像点。根据图中坐标,三维景物点(x,y,z)映射在二维图像面中对应的坐标为:

根据小孔摄像机模型和实际场景信息来标定图像中检测线圈之间的实际距离。在小孔摄像机模型中,三维空间的一条直线投影在图像平面上也为一条直线,实际场景中的道路分道线是一条直线,而且分道线是条虚线,有线长度,间隔长度等属性。可以利用道路分道线来配合小孔摄像机模型进行图像中实际距离的标定。车流量检测系统中的小孔摄像机模型可表示为图3。当摄像机在现场安装完成之后,摄像机视角α是已知的。图中,平面x'o'y'为图像平面,z轴为摄像机光轴方向,图像平面上四条线段ab:bc:cd:de=a:b:c:d。原点o与b,c,d的延长线与线fgh分别交于f,g,h点,且hg:gf=e:f,即图像中bc,cd两段代表的实际距离的之比。直线fgh为三维空间内的直线。

根据上述条件,可以求得直线fgh的斜率,也就是唯一确定了一个从三维直线fgh到摄像机平面的映射。由图中可求得直线oa,ob,oc,od,oe的直线方程如下:

其中:

设fgh方程为y=kz+h,则其与ob,oc,od直线的交点f,g,h的坐标为:

由hg:gf=e:f可列出下式:

可以消掉h得出:

此时,斜率k为已知。

假设对于图中某点p,有ap:pe=g,则直线op方程为y=βz,其中:

则ap代表的实际长度mq与已知实际长度fg之比为:

由此可求得点p到图像底部代表的实际距离。若能求得两点到图像底部的实际距离,则可求得两点间的实际距离。上下两条检测线圈到图像底部代表的实际长度之差即为检测线圈间的实际长度distance(m),记录车辆通过计数检测线圈和速度检测线圈的帧数差frame_cnt和帧率frame_rate(fps),可以求得其速度:

此外,在记录车辆通过上下检测线圈的帧数时,若车辆行驶方向与摄像机方向相同,则应记录车辆离开检测线圈时的帧数;若车辆行驶方向与摄像机方向相反,应记录车辆进入检测线圈时的帧数。以避免由于车辆的高度遮挡检测线圈造成的误差。

步骤9,根据计算得到的车速v以及车辆通过速度检测线圈引起的信号突变帧数f,帧率r计算车长:

根据车长将车辆进行分类,本实施例中将车辆分为两类,即7m及以上的大车和5m及以下的小车。

根据各车辆通过时间passtimei、观测时间间隔t和车辆数目n计算车道时间占有率:

应用在夜晚时的流程如图4所示,具体包括以下步骤:

步骤1,采用otsu算法确定二值化阈值,根据该二值化阈值对采集的图像进行二值化处理。otsu算法如下:

一幅灰度范围为0-255的m*n大小的灰度图像,其中灰度级为k的像素出现个数为n(k),出现概率为图像的平均灰度为

设以灰度级m为分割阈值把图像分成前景和背景(小于此值为背景,大于等于此值为前景)。则背景灰度均值为背景点数占图像比例为前景灰度均值为前景点数占图像比例为前景和背景方差为σ=ωb*(μb-μ)2+ωf*(μf-μ)2。若m的某个取值mopt使得σ的值最大,则mopt为最佳二值化阈值。

与应用在白天的检测方法相同,本步骤仅在指定范围内进行二值化处理,以减少计算量。

步骤2,对二值化图像中的车灯进行匹配处理,将所有匹配的车灯都放入到匹配队列中,对于此队列的每一个车灯元素,在此队列中均存在另外一个或多个车灯元素与之相互匹配。

对于两个车灯目标lamp1和lamp2,其面积分别为area1和area2。其质心横坐标分别为x1和x2,纵坐标分别为y1和y2。定义此两个车灯相互匹配,如果它们满足下面三个条件:

(1)且area2≤2*area1,或者且area1≤2*area2,此条件是根据同一辆车的两个车灯面积相差不会太大建立的。

(2)lamp1的质心纵坐标y1与lamp2有交集,且lamp2的质心纵坐标与lamp1有交集。此条件是根据同一辆车的两个车灯重心的高度差不会太大建立的。

(3)lamp1的质心横坐标x1和lamp2的质心横坐标x2的距离x2-x1大于等于半个车道宽度,小于等于一个车道宽度。此条件是根据同一辆车的两个车灯距离在一定范围内建立的。

步骤3,在道路上设置计数检测线圈和速度检测线圈,两条检测线圈和应用在白天的检测方法中的计数检测线圈要求相同,对于匹配队列中的车灯,采用基于车灯配对的车辆检测算法在计数检测线圈所在的区域内进行车灯匹配,为配对的车灯动态开辟一个窗口进行检测,以确定车流量。

由车灯图像可知,车灯连通区的面积在一定阈值以上,设面积阈值为threshold’。若连通区大于此阈值则为可能的车灯目标;小于此阈值判为噪声目标。

基于车灯配对的车辆检测算法首先建立一个窗口队列queue<window>的对象window_queue,其中元素代表了当前所开窗口,建立一个车灯队列queue<lamp>的对象lamp_queue,同时初始化计数值count=0。具体算法步骤如下:

1、清空车灯队列lamp_queue。

2、遍历窗口队列window_queue,若某个窗口元素范围内的当前计数检测线圈内图像内无连通区,则删除;有连通区则不执行操作。

3、对于当前计数检测线圈内图像,若其中有连通区的面积大于等于threshold’,则将其加入车灯队列lamp_queue,继续下述操作;若其中没有连通区的面积大于等于threshold’,则进入(9)。

4、遍历车灯队列lamp_queue中的每一个车灯元素,若该队列中存在另外一个或多个元素与之匹配,则保留;否则,删除此元素。

5、将lamp_queue中的车灯元素按照其在图像中从左到右的顺序进行排序。

6、若lamp_queue中元素个数为奇数,则从前向后遍历该队列的每一个元素,若删除该元素后,队列仍为匹配的,则删除该元素,停止遍历;若lamp_queue中元素个数为偶数,则不执行操作。

7、(1)对于队列lamp_queue,从第二个元素向后遍历,若有第i个车灯元素与第一个元素匹配,则将此两个车灯进行配对,记录下这两个车灯的窗口位置,停止遍历。(2)删除第一个元素和第i个元素,其后面元素依次前移。若队列lamp_queue不为空,则重复(1)。

8、对于7中得到的每一个新的车灯窗口位置,遍历队列window_queue的每一个窗口元素,若新的车灯窗口与window_queue中的每一个窗口元素均无交集,则开辟此新窗口,将其加入window_queue,并在此新窗口检测到车辆时计数值count加1;反之,则不开辟新窗口。

9、更新为下一帧计数检测线圈内图像,返回1。

其中4保证了队列lamp_queue是匹配的;6尽量保证lamp_queue中元素个数为偶数,因为正常情况下,车灯总是成对出现的;7保证了车灯按照从左到右的最近匹配原则进行配对。这是由于车辆的车灯总是在水平方向上排列,不会出现一辆车和另一辆车相互重叠的情况。

最终得到的计数值count即为车流量。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1