本发明涉及一种道路车辆检测方法、交通参数检测方法及装置。
背景技术:
随着社会经济的发展,道路上车流量日益增加,交叉路口的压力越来越大,传统的交通信号灯是用定时器来操作的,然而这种定时控制算法不能随着交通流的变化而变化,因此很可能出现绿灯方向无车辆通过,而红灯方向却有大量车辆等待的现象,这就大大降低了道路的通行能力。基于视频分析的交通信号灯智能控制,就是在交叉路口安装摄像头,让计算机智能分析摄像头获取的图像序列,对被监控场景中的内容进行理解,从而获得监控场景的交通参数,例如:检测道路车辆、车流量,交叉路口车辆排队拥挤度等,将这些交通参数传送到交通信号灯智能控制系统,来帮助实现交通信号灯的动态控制,减少交叉路口的车辆延误。获得交通参数的值是交通信号灯智能控制算法的重要依据。
对于交通参数包括检测道路车辆、车流量,交叉路口车辆排队拥挤度的检测,已经有许多常见方法,根据使用的传感器种类,可以分为基于环型线圈的检测方法,基于超声波检测方法,以及基于红外检测的方法。以上常见的交通参数检测方法的检测装置有的安装麻烦,或者只能检测部分交通参数,比如超声波检测只能获得车流量,但无法获得交叉路口车辆排队拥挤度数据。尤其对于车辆排队拥挤度检测来说,以上常见的交通参数检测方法往往只能检测出断面上的拥挤度,对于路段层面上的车辆排队拥挤度无法检测。
基于视频分析的车流量检测以及路口车辆排队拥挤度分析数据的获得,一个主要难点就是如何正确检测到车辆,现有技术中通过帧间差分法,边缘检测法,或基于高斯背景建模的背景差法来检测车辆,这些方法会将由于光线突变产生的前景或者树叶摇晃产生的前景等噪音当作车辆,另外车辆静止或缓慢运行时,往往检测不到。
基于视频分析的路口车辆排队拥挤度分析另一个难点就是车辆检测到后,如何估计车辆排队的拥挤度,现有技术中一般通过排队车辆长度与路面长度比值来估算拥挤度。但因为存在透视现象,即远处车小,近处车大,所以通过几何校正估算出排队车辆个数,来进一步估算车辆排队的拥挤度更为准确。
实际应用中,往往只需要智能监控系统给出一个车辆排队拥挤度的指标,比如0-1之间一个小数,0表示车辆较少,1表示道路车辆堵塞,需要尽快疏通,路口车辆排队拥挤度可以划为畅通,比较畅通,有些拥挤,非常拥挤等几种等级,而无需准确的确定车辆拥挤度数值。
技术实现要素:
鉴于现有技术中存在的技术缺陷和技术弊端,本发明实施例提供克服上述问题或者至少部分地解决上述问题的一种道路车辆检测方法、交通参数检测方法及装置。
作为本发明实施例的一个方面,涉及一种道路车辆检测方法,包括:
根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
根据所述背景图像获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象。
在一个实施例中,可以是,所述的方法中根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线,包括:
针对所述图像序列中的每个图像帧,对所述图像帧进行梯度变化,得到对应的二值图像;
检索二值图像中轮廓线,获取每个轮廓线上的像素点坐标;
根据下述算式(1)确定轮廓线上各点的特征:
根据轮廓线上各点的特征,通过下述算式(2)确定该轮廓线是否为车道线:
上述算式(1)和(2)中:contourj(xi,yi)为轮廓线上第j轮廓上的第i点的特征;pj(xi,yi)为第j轮廓上的第i点的坐标,pj(xi+1,yi+1)为第j轮廓上的第i点的下一个点即第i+1点坐标,||pj(xi,yi)-pj(xi+1,yi+1)||为轮廓上第i点的链码值,当第i点的链码值为2或1时,contourj(xi,yi)为1;n为第j轮廓线上的点数;countj1为第j轮廓上特征contourj(xi,yi)为0的点的个数;countj2为第j轮廓上特征contourj(xi,yi)为1的点的个数;t为预设阈值常数;lalj为1则第j轮廓线是车道线。
在一个实施例中,可以是,所述的方法中对车道线内区域进行背景建模,并按照预定规则进行背景图像更新,包括:
根据算式(3)确定图像序列上在连续n个时间段tn内静止且不属于静止车辆上的像素点的集合:
下述算式(4)得到车道线内的需要更新背景的区域roi:
以上算式中:tn为某时间段,n为tn时间段的个数;(x,y)为图像帧上的点;t0为预设阈值常数;stillo是静止车辆的集合,
通过下述算式(5)对车道线内背景区域roi,进行背景图像更新,得到更新后的背景图像:
bkroi(x,y)=mt(x,y),if(x,y)∈roi&&idroi=1(5);
算式(5)中:mt(x,y)为t时刻当前图像帧(x,y)像素点的像素值,bkroi(x,y)为背景图像区域roi中对应像素点进行背景图像更新后的像素值。
在一个实施例中,可以是,所述的方法中获取图像序列的前景,包括:
通过下述算式(6)计算当前图像帧的像素点的像素值与背景图像的像素值的绝对差值,得到图像序列的前景:
其中:mot(x,y)为表征前景的特征,mot(x,y)=1则是前景;m(x,y)为当前图像帧(x,y)位置的像素值,bk(x,y)为背景图像(x,y)位置的像素值,tt=t0*at,t0为常数,at=1+(βt-127)/255,βt为当前图像帧每个像素点的灰度值之和除以当前图像帧像素点总数。
在一个实施例中,可以是,对前景进行跟踪,获取车道线内区域的车辆对象,包括:
根据下述算式(7),针对当前图像帧的每一个对象,计算所述对象与前一帧的每一个对象的欧式距离,得到所述对象与前一帧距离最近的对象:
根据下述算式(8)和下述算式(9)将前一帧的对象的对象号赋予与当前图像帧距离最近的对象,并将当前图像帧的其他对象赋予新的对象号,所述对象号唯一标识所述对象:
上述算式(7)-(9)中:当前图像帧为第t+1帧;onit+1为第t+1帧的第i个对象,onjt为第t帧的第j个对象;n为第t帧的对象个数;t为常数;ocit+1为onit+1的中心点坐标,ocjt为onjt的中心点坐标;||.||表示两点间欧式距离,min_d为在当前图象帧的m个对象中,离前一帧对象j的最短距离,num为新对象号;
根据上述算式(8)中得到的对象号,通过下述算式(10)和式(11)确定当前图像帧中车辆对象,所述车辆对象为:在图像序列中出现的帧数大于设定阈值k0、运动过且其尺寸大于设定阈值sizet的对象:
vo={oni,ifoni.frame>k0&&oni.move=true&&sizei>sizet(10);
上述算式中:vo为检测到的车辆对象集合,oni.frame为第i个对象出现的帧数,oni.move=true表示第i个运动过的对象,k0与k为常数,sizei为第i对象的尺寸,sizet为阈值尺寸。
在一个实施例中,可以是,所述的方法还包括:
通过下述算式(12)计算车辆对象中的静止车辆对象:
其中:dis为常数,表示距离差阈值;stilloi为静止车辆;voi为当前图像帧第i个车辆对象;
在一个实施例中,可以是,所述的方法还包括,在检测车道线之前,对获取的交通监控视频的图像序列进行帧抽取,将视频帧率降低至预定帧率。
作为本发明实施例的另一方面,涉及一种道路车流量统计方法,包括采用上述任一项所述的道路车辆检测方法得到车辆对象,通过在垂直车辆方向设置虚拟线圈根据车辆对象的对象号统计预设时间段内经过虚拟线圈的车辆个数,统计车流量。
作为本发明实施例的再一方面,涉及一种路口车辆排队拥挤度程度计算方法,包括采用上述任一项所述的道路车辆检测方法得到车辆对象,通过与vehiclelist列表比对,得到该车道内当前图像帧的排队车辆个数vn,根据下述算式(13)计算路口车辆排队拥挤程度:
其中:cg为路口车辆排队拥挤度数值,n为车道数,vi为第i车道被占满的车辆个数,k为常数。
作为本发明实施例的又一方面,涉及一种道路车辆检测装置,其特征在于,包括:
车道线检测模块,用于检测并获取交通监控视频的图像序列上的车道线;
背景建模及更新模块,用于对车道线内区域进行背景建模,并按照预定规则更新背景图像;
前景获取模块,用于获取图像序列的前景;
车辆对象检测模块,用于对前景进行跟踪,获取车道线内区域的车辆对象。
本发明实施例还涉及一种道路车流量统计装置,其特征在于,包括:
车道线检测模块,用于检测并获取交通监控视频的图像序列上的车道线;
背景建模及更新模块,用于对车道线内区域进行背景建模,并按照预定规则更新背景图像;
前景获取模块,用于获取图像序列的前景;
车辆对象检测模块,用于对前景进行跟踪,获取车道线内区域的车辆对象;
车流量统计模块,用于统计获取的车辆对象在预设时间段内经过虚拟线圈的车辆个数,统计车流量。
本发明实施例又涉及一种路口车辆排队拥挤度计算装置,包括:
车道线检测模块,用于检测并获取交通监控视频的图像序列上的车道线;
背景建模及更新模块,用于对车道线内区域进行背景建模,并按照预定规则更新背景图像;
前景获取模块,用于获取图像序列的前景;
车辆对象检测模块,用于对前景进行跟踪,获取车道线内区域的车辆对象;
路口车辆排队拥挤度计算模块,用于将车道线区域内的车辆图像与vehiclelist列表比对,得到该车道内当前图像帧的排队车辆个数vn,根据下述算式(13)计算路口车辆排队拥挤程度:
其中:cg为路口车辆排队拥挤度数值,n为车道数,vi为第i车道被占满的车辆个数,k为常数。
本发明实施例至少实现了如下技术效果:
1、本发明实施例提供的道路车辆检测方法,基于视频分析的交通参数的获得可利用现有的交通监控摄像头,对其捕获的视频数据进行分析,无需多增加传感器设备,检测装置安装简单、降低了使用成本。
2、本发明实施例提供的道路车辆检测方法,采用基于区域的背景建模与更新得到最新的背景图像,与现有技术中的背景建模方法相比,准确度高,获取背景速度快,性能鲁棒,受光线缓慢变化或者突然变化的影响较少,受路旁噪音的影响较少,缓慢或静止的车辆不会被更新为背景,根据所述背景获取图像序列的前景,通过前景进行跟踪检测车辆,这降低由于噪音导致的误检率,可以准确的检测车道线内区域的车辆。
3、本发明实施例提供的道路车辆检测方法,既可以用于进行车流量统计,又可以获取路口的车辆排队拥挤程度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所记载的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例提供的一种道路车辆检测方法的流程图;
图2为本发明实施例提供的一种道路车辆检测方法的步骤s101的流程图;
图3为本发明实施例提供的一种道路车辆检测方法的步骤s102的流程图;
图4为本发明实施例提供的一种道路车辆检测方法的步骤s103的流程图;
图5为本发明实施例提供的一种道路车流量统计方法的流程图;
图6为本发明实施例提供的一种路口车辆排队拥挤度程度计算方法的流程图;
图7为本发明实施例提供的图像透视变换示意图;
图8为本发明实施例提供的一个监控场景下某一道路的监控之路面较畅通示意图;
图9为本发明实施例提供的一个监控场景下某一道路的监控之路面有些拥挤示意图;
图10为图9的路面拥挤度分析图;
图11为本发明实施例提供的一种道路车辆检测装置的示意图;
图12为本发明实施例提供的一种道路车流量统计装置的示意图;
图13为本发明实施例提供的一种路口车辆排队拥挤度计算装置的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
下面分别对本发明实施例提供的电子眼引导的方法及装置和设备的各种具体实施方式进行详细的说明。
参照图1,本发明实施例提供的一种道路车辆检测方法,包括:
s101:根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
s102:对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
s103:根据所述背景获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象。
在本发明实施例中所述的背景图像为获取的交通监控视频的图像序列中的第一帧图像。在本发明实施例获得背景图像的方法中,程序运行时会不停的获取到交通监控视频的图像序列,在程序启动时,将获得的第一帧图像作为背景图像,在第一帧图像基础上不断进行背景图像更新,以获得最新的背景图像。
本发明实施例提供的道路车辆检测方法,基于视频分析的交通参数的获得可利用现有的交通监控摄像头,对其捕获的视频数据进行分析,无需多增加传感器设备,检测装置安装简单、降低了使用成本。
本发明实施例提供的道路车辆检测方法,采用基于区域的背景建模与更新得到最新的背景图像,与现有技术中的背景建模方法相比,准确度高,获取背景速度快,性能鲁棒,受光线缓慢变化或者突然变化的影响较少,受路旁噪音的影响较少,缓慢或静止的车辆不会被更新为背景,根据所述背景获取图像序列的前景,通过前景进行跟踪检测车辆,这降低由于噪音导致的误检率,可以准确的检测车道线内区域的车辆。
参照图2,在一个实施例中,所述方法步骤s101中,根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线,包括:
s1011:针对所述图像序列中的每个图像帧,对所述图像帧进行梯度变化,得到对应的二值图像;
s1012:检索二值图像中轮廓线,获取每个轮廓线上的像素点坐标;
s1013:通过以下算式(1)和算式(2)确定该轮廓线是否为车道线:
其中:contourj(xi,yi)为轮廓线上第j轮廓上的第i点的特征;pj(xi,yi)为第j轮廓上的第i点的坐标,pj(xi+1,yi+1)为第j轮廓上的第i点的下一个点即第i+1点坐标,||pj(xi,yi)-pj(xi+1,yi+1)||为轮廓上第i点的链码值,当第i点的链码值为2或1时,其对应的contourj(xi,yi)为1;n为第j轮廓线上的点数;countj1为第j轮廓上特征contourj(xi,yi)为0的点的个数;countj2为第j轮廓上特征contourj(xi,yi)为1的点的个数;t为预设阈值常数;lalj为1则第j轮廓线是车道线,否则不是。
本发明实施例中检测车道线,只考虑车道内的前景,屏蔽掉车道外的前景,可以减少很多干扰。基于链码的车道线检测耗时少,准确性高。
在一个具体实施例中,可以是,通过链码序列法对获取的交通监控视频的图像序列,通过对图片进行梯度变化(sobel变换),得到对应的二值图像,采用开源计算机视觉库(opensourcecomputervisionlibrary,opencv)寻找轮廓函数cvfindcontours从二值图像中检索轮廓,从而获得每个轮廓上的点的坐标pj(xi,yi)。由于每个物体的轮廓都有走向,即可用链码序列来表示一个轮廓的走向。
根据下述算式(1)确定轮廓线上各点的特征:
根据轮廓线上各点的特征,通过以下算式(2)确定该轮廓线是否为车道线:
根据链码知识,某点的链码为2,则该点的位置的横坐标与该点的下一个点的横坐标一样,该点的下一个点的纵坐标比该点的纵坐标大1个像素点,某点的链码为1,则下一点的横坐标与纵坐标都比该点的横坐标与纵坐标大一个像素点。
pj(xi,yi)为第j轮廓上的第i点的坐标,pj(xi+1,yi+1)为第j轮廓上的第i点的下一个点即第i+1点坐标,||pj(xi,yi)-pj(xi+1,yi+1)||为轮廓上第i点的链码值,取值为0-7中的数。contourj(xi,yi)为第j轮廓上第i个点的特征,当第i点的链码值为2或1时,其对应的contourj(xi,yi)为1。
车道线的轮廓特征,即轮廓上的点的链码值多数是1或2,即contourj(xi,yi)=1,判断一个轮廓是否为可能的车道线的思路为计算该轮廓每点的链码值,如果多数为1或者2,且链码值为1或2的像素点的个数大于预设阈值常数t(t的大小可以根据实际需求设定,一般定为50),则该轮廓为可能的车道线。
获得交通监控视频的第一幅图像,根据检测出来的可能的车道线,人工再确定下车道线位置,由于风吹等原因,随着时间的推移,摄像机的位置有可能发生小幅度的变化,通过上述检测到的可能的车道线来修正车道线的位置。
在一个具体实施例中,所述方法还包括:在检测车道线之前,对获取的交通监控视频的图像序列进行帧抽取,将视频帧率降低至预定帧率。例如,从摄像头传输来的图像序列一般是25帧/秒,为了避免不必要的计算,通过帧抽取,即帧率降到10帧/秒,就可以满足性能需求。
参照图3,在一个实施例中,所述方法步骤s102中,对车道线内区域进行背景建模,并按照预定规则进行背景图像更新,包括:
s1021:通过以下算式(3)和算式(4)对车道线内区域进行背景建模:
根据算式(3)确定图像序列上在连续n个时间段tn内静止且不属于静止车辆上的像素点的集合:
根据下述算式(4)得到车道线内的需要更新背景的区域roi:
以上算式中:tn为某时间段,n为tn时间段的个数;(x,y)为图像帧上的点;t0为预设阈值常数;stillo是静止车辆的集合,
s1022:首先获得第一幅图片,通过下述算式(5)对车道线内背景区域roi,即该区域特征idroi=1,进行背景图像更新,得到更新后的背景图像:
bkroi(x,y)=mt(x,y),if(x,y)∈roi&&idroi=1(5);
算式(5)中:mt(x,y)为t时刻当前图像帧(x,y)像素点的像素值,bkroi(x,y)为背景区域roi中对应像素点进行背景图像更新后的像素值。
本发明实施例采用图像差分的方法来表征背景特征,首先根据算式(3)标注出在一定时间长度(比如8秒)的像素值变化不大,并且不属于静止车辆的像素点,这些点的特征id(x,y)为1,即:
tn为某时间段,这里假设为1秒(10帧),n为tn时间段的个数,一般为8,(x,y)为图像上某个点。t0为预设阈值(t0的大小可以根据实际需求设定,一般定为20)。
mt+tn*i(x,y)为t+tn*i时刻某点(x,y)的像素值,与tn(假设1秒)后该点的像素值mt+tn*(i+1)(x,y)做比较,如果差值足够小,小于t0,这样连续n=8个时间段,某点(x,y)的像素值变化不大,且不属于静止物体,则标记该点的id(x,y)即为1,表示8秒内该点像素值变化不大。
stillo是静止车辆的集合,
参照算式(4),如果图像的某个区域的像素点的像素值均变化不大(id(x,y)=1),则更新该区域为背景,即:
roi为图像某个区域,id(x,y)=1的像素点的连通点构成的roi区域,该roi区域的idroi=1。
根据算式(5),背景图像更新是基于某个区域进行的,把idroi=1的区域中点的像素值作为背景图像相应点的像素值,从而更新了该区域的背景图像:
bkroi(x,y)=mt(x,y),if(x,y)∈roi&&idroi=1(5)
mt(x,y)为t时刻某点像素值,bkroi(x,y)为针对某个roi区域进行背景图像更新,该roi区域的idroi=1,即不是运动物体区域。
基于区域的背景图像更新不会将缓慢运行或者静止的车辆更新为背景,该背景图像更新能自适应早晚光线变化。
由于静止车辆位置处不会更新背景,可以控制车辆为静止的时间,比如一辆车检测为静止车辆后一分钟,就把该车辆为静止的标志去掉,从而原来该静止车辆的位置又可以更新背景了,这样可以解决如果将对象误检为静止车辆而导致长期不能更新该位置处的背景问题。
在一个具体实施例中,可以是,所述的方法中获取图像序列的前景,包括:
通过以下算式(6)计算当前图像帧的像素点的像素值与背景图像的像素值的绝对差值得到图像序列的前景:
其中:mot(x,y)为表征前景的特征,为1则是前景,否则为背景,m(x,y)为当前图像帧(x,y)位置的像素值,bk(x,y)为背景图像(x,y)位置的像素值,tt=t0*at,at=1+(βt-127)/255,βt为当前图像帧每个像素点的灰度值之和除以当前图像帧像素点总数,表示当前图像平均亮度,如果图像整体偏暗,则ɑt<1,否则ɑt>1。t0为常数,一般取值为15,可以根据实际情况调整t0的大小,如果检测出来的前景噪音过大,可以适当提高t0值。
在一个具体实施例中,本发明实施例提供的道路车辆检测方法,还包括:在对车道线内区域进行背景建模前,先对图像做滤波处理,图像m(x,y)为经过滤波处理后的图像。
在一个具体实施例中,本发明实施例提供的道路车辆检测方法,还包括:对通过上述方法得到的前景进行去阴影处理。
本发明实施例中所述去阴影是指:根据纹理信息,以及阴影比背景暗,但颜色与背景一致这些特征来去除。
具体的可以是,通过在(h,s,v)空间来比较颜色的变化,对得到的前景进行去阴影处理。由于hsv颜色空间更接近人眼的主观感受,可以将前景由rgb值转成hsv值,考察前景,把s=0,h不确定,且v值小于相应背景的v值的点标注出来,这些点的亮度低于背景,且是无颜色的灰色点,最后结合纹理信息确定这些点是否是阴影。如是阴影,则将这些点从前景去除。
参照图4,在一个实施例中,所述方法步骤s103中,对前景进行跟踪,获取车道线内区域的车辆信息,包括:
s1031:通过以下算式(7)、算式(8)和算式(9),计算当前图像帧对象的对象号,具体包括:
根据下述算式(7)针对当前图像帧的每一个对象,计算所述对象与前一帧的每一个对象的欧式距离,得到所述对象与前一帧距离最近的对象:
根据下述算式(8)和下述算式(9)将前一帧的对象的对象号赋予与当前图像帧距离最近的对象,并将当前图像帧的其他对象赋予新的对象号,所述对象号唯一标识所述对象:
上述算式(7)-(9)中:当前图像帧为第t+1帧;onit+1为第t+1帧的第i个对象,onjt为第t帧的第j个对象;n为第t帧的对象个数;t为常数;ocit+1为onit+1的中心点坐标,ocjt为onjt的中心点坐标;||.||表示两点间欧式距离,min_d为在当前图象帧的m个对象中,离前一帧对象j的最短距离,num为新对象号;
以及,
s1032:根据以上算式(8)中得到的对象号,通过以下算式(10)和算式(11)确定当前图像帧中车辆对象,所述车辆对象为:在图像序列中出现的帧数大于设定阈值k0、运动过且其尺寸大于设定阈值sizet的对象:
vo={oni,ifoni.frame>k0&&oni.move=true&&sizei>sizet(10),
以上算式中:vo为检测到的车辆对象集合,oni.frame为第i个对象出现的帧数,oni.move=true表示第i个运动过的对象,k0与k为常数,sizei为第i对象的尺寸,sizet为阈值尺寸。
由于根据本发明实施例中步骤s103的方法检测到的前景有可能是噪音,可以通过前景跟踪,去掉噪音,根据被跟踪的前景尺寸范围得到车辆,去掉尺寸范围比较小的可能是人或动物的噪音。为了减少计算量,提高跟踪速度,本发明实施例中采取的是直观、有效的近邻跟踪算法。
在步骤s1031中,参照算式(7)-算式(9)通过近邻跟踪算法把当前图像帧的每个对象位置与前一帧所有对象位置做比较,找出与当前图像帧每个对象距离最近的前一帧对象,这样就有可能是当前图像帧有多个对象对应前一帧同一个对象,那么再寻找距离最短的当前图像帧的对象,如果这个最短距离小于某个阈值,就把对应前一帧的对象的对象号赋予当前图像帧这个对象,当前图像帧其他在前一帧没有找到同一对象的对象赋予新对象号,表示这些对象是当前图像帧新产生的对象,前一帧没有该对象。
具体来讲,可以是,同一对象,在不同帧的对象号相同,求当前图像帧对象的对象号步骤如下:
首先通过算式(7)查找当前图像帧与前一帧相对应的对象号:
on为对象号,i为第t+1帧的第i个对象,j为第t帧的第j个对象,n为第t帧的对象个数,oc为某个前景的中心点坐标,||.||表示两点欧式距离,t为经验值,一般取50.当前图像帧即第t+1帧的第i个对象的中心位置ocit+1与第t帧的所有对象的中心位置ockt计算欧式距离,取与第i对象最近的,且其欧式距离小于t的第j对象的对象号作为该t+1帧的第i的对象的对象号,即
其次,通过算式(8)计算当前图像帧离前一帧对象j距离最短的那个距离:
其中1,2......,m为当前图像帧即第t+1帧中的m个对象,这些对象与前一帧即第t帧的对象j有相同的对象号。min_d为在这m个对象,离前一帧对象j距离最短的那个距离。
最后,通过算式(9)确定出当前图像帧的每一个对象的对象号:
num为新对象号。
参照算式(10)和算式(11),通过步骤s1032进行车辆检测的思路为跟踪当前图像帧每个对象,记录每个对象出现的帧数以及当前位置与历史位置,如果该对象的出现的帧数大于某阈值,且该对象运动过,且尺寸大于某阈值,就认为该对象为车辆。
vo={oni,ifoni.frame>k0&&oni.move=true&&sizei>sizet(10),
以上算式中:vo为检测到的车辆对象集合,oni.frame为第i个对象出现的帧数,oni.move=true表示第i个对象运动过。k0与k为常数,k0一般取15,k为30。sizei为第i对象的尺寸,sizet为阈值尺寸,根据摄像头距离地面位置经验选取。
当前图像帧的某前景对象,若出现的帧数大于k0=15帧,且运动过即oni.move=true,且尺寸大于某阈值sizet,就认为该对象oni是车辆vo。同时,因为当前图像帧的任一前景对象的历史位置都会被记录,通过比对当前图像帧某对象的位置
在一个实施例中,所述方法还包括:
通过以下算式(12)计算车辆对象中的静止车辆对象:
其中:dis为常数,表示距离差;stilloi为当前图像帧第i个车辆voi为静止车辆对象;
在车辆对象vo中,考察某车辆当前位置与该车辆的前第framet(一般选为25帧)的位置,如果位置差比较小,则认为该车辆静止,存入静止车辆对象集合stillo,某静止车辆对象出现的帧数超过某阈值,比如1000帧,则把该静止车辆对象的静止标志去掉,即从静止车辆对象集合stillo中去掉。在背景图像更新中,静止车辆对象的位置是不更新背景的。
作为本发明的一个具体实施方式,在算式(12)中:dis一般取20,stilltime的大小可以根据实际需要来设定,stilloi.frame为第i静止车辆出现的帧数,如果第i静止车辆出现的帧数大于stilltime(这里假设stilltime=1000帧,大概是1-2分钟的时间),则将该静止车辆从静止车辆集合去掉。在进行背景图像更新时,该静止车辆的位置就可以更新为背景,即作为背景了。调节stilltime大小可以控制静止车辆变成背景的时间。
参照图5,本发明实施例提供的一种道路车流量统计方法,包括:
s101:根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
s102:对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
s103:根据所述背景图像获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象;
s104:采用上述的道路车辆检测方法得到车辆对象,通过在垂直车辆方向设置虚拟线圈根据车辆对象的对象号统计预设时间段内经过虚拟线圈的车辆个数,统计车流量。
本发明实施例中,通过在交通监控视频的摄像机位置,垂直车辆运行方向处设置虚拟线圈,检测预设时间段内经过虚拟线圈的车辆个数。由于同一车辆在不同帧,对象号是不变的,当有车辆经过虚拟线圈时,同一对象号的车辆只能被统计一次。通过统计预定时间段内经过该虚拟线圈的车辆个数,即获得该交通监控视频的摄像机位置的该预定时间段的车流量。
参照图6,本发明实施例提供的一种路口车辆排队拥挤度程度计算方法,包括:
s101:根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
s102:对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
s103:根据所述背景图像获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象;
s105:通过与vehiclelist列表比对,得到该车道内当前图像帧的排队车辆个数vn,根据以下算式(13)计算路口车辆排队拥挤程度:
其中:cg为路口车辆排队拥挤度数值,n为车道数,vi为第i车道被占满的车辆个数,k为常数。
本发明实施例中,当场景在图像平面上的投影存在比较严重的透视现象(同样的物体,离摄像机越近看起来越大,离摄像机远,看起来越小)时,需要对每个像素点进行加权处理。
vehiclelist列表为事先通过透视变换的几何校正方法,得到的列表,该列表为图像上不同的位置,在该位置算起,对应一辆车在图像上应该具有的长度。靠近摄像机的车辆在图像上占的面积要大于远离摄像机的车辆在图像上占的面积。事先标定好vehiclelist列表,在检测车辆排队拥挤度时直接查表,可以减少计算量,提高检测速度。事先通过透视变换得到vehiclelist列表,进一步提高了计算车道线内排队车辆个数的的准确度和效率。
在一个具体实施例中,所述vehiclelist列表为事先通过透视变换的几何校正方法得到的列表,透视变换(perspectivetransformation)的本质是将图像投影到一个新的视平面,其通用变换公式为:
其中:(u,v)为原始图像像素坐标,(x=x’/w’,y=y’/w’)为变换之后的图像像素坐标。透视变换矩阵图解如下:
其中:
t2=[a13a23]t,用于产生图像透视变换;
t3=[a31a32],表示图像平移。
所以,即可求得透视变换矩阵;反之,给定透视变换矩阵,即可对图像或像素点坐标完成透视变换。
具体到本发明实施例中,参照附图7所示,在对应交通监控视频覆盖范围的参考图像上标定四个点1、2、3和4,给定透视变换对应的四对原始像素点坐标,算出变换矩阵
在计算某帧某车道上的车辆排队个数时,假设起始位置l落在vehiclelist列表的区间ln--ln+1,如果l<(ln+ln+1)/2,则该位置车辆的长度就按照区间ln--ln+1计算,即ln+1-ln长度为一辆车,否则按照ln+1--ln+2区间计算车辆长度。如果若干辆车前后连在一起,可以通过上述方法找出每个车道车辆的车头与车尾,参照vehiclelist列表,计算每个车道的车辆排队个数vn。
根据以下算式(13)计算车辆拥挤程度:
以上算式中:cg为路口车辆排队拥挤度数值,n为车道数,vi为第i车道被占满的车辆个数,κ为常数,根据获取交通监控视频的摄像机的俯角、位置进行设定。
下面以某一道路监控场景为例,说明本发明实施例提供的道路车辆检测方法、车流量检测及车辆排队拥挤度检测方法在实际智能交通项目中的应用。
参照图8所示,为道路监控摄像头某时候t的监控场景,此时道路车辆较流畅,车道线内车辆较少,此时监控摄像头连接的主机显示的道路信息为:统计当前车流量数值为9,车辆排队拥挤程度显示为:较畅通,3个红灯亮;参照图9所示,为道路监控摄像头某时候t1的监控场景,此时道路有些拥挤,车道线内车辆排队较多,此时监控摄像头连接的主机显示的道路信息为:统计的当前车流量数值为15,车辆排队拥挤程度显示为:有些拥堵,此时4个红灯亮,并会报警。参照图10所示,为计算机处理t1时刻路口车辆排队拥挤的分析图,可以看出存在着严重的透视现象,通过几何校正产生vehiclelist列表,从而计算出车辆个数,进一步通过本发明实施例提供的路口车辆排队拥挤程度计算方法来分析排队拥挤度。
以上实施例证明,本发明所提出基于视频分析的交通参数检测方法能够准确检测出车辆,从而能合理得计算路面车流量及车辆排队拥挤度参数,与其他交通参数检测方法比较,该方法计算量小,准确度高,安装方便,适合用于智能交通信号灯控制系统等智能交通项目。
参照图11,本发明实施例提供的一种道路车辆检测装置,包括:
车道线检测模块101,用于检测并获取交通监控视频的图像序列上的车道线;
背景建模及更新模块102,用于对车道线内区域进行背景建模,并按照预定规则更新背景图像;
前景获取模块103,用于获取图像序列的前景;
车辆对象检测模块104,用于对前景进行跟踪,获取车道线内区域的车辆对象。
在一个实施例中所述的车辆检测装置的车道线检测模块101具体用于:
针对图像序列中的每个图像帧,进行梯度变化,得到对应的二值图像;
检索二值图像中轮廓线,获取每个轮廓线上的像素点坐标;
根据下述算式(1)确定轮廓线上各点的特征:
根据轮廓线上各点的特征,通过下述算式(2)确定该轮廓线是否为车道线:
上述算式(1)和算式(2)中:contourj(xi,yi)为轮廓线上第j轮廓上的第i点的特征;pj(xi,yi)为第j轮廓上的第i点的坐标,pj(xi+1,yi+1)为第j轮廓上的第i点的下一个点即第i+1点坐标,||pj(xi,yi)-pj(xi+1,yi+1)||为轮廓上第i点的链码值,当第i点的链码值为2或1时,contourj(xi,yi)为1;n为第j轮廓线上的点数;countj1为第j轮廓上特征contourj(xi,yi)为0的点的个数;countj2为第j轮廓上特征contourj(xi,yi)为1的点的个数;t为预设阈值常数;lalj为1则第j轮廓线是车道线。
在一个实施例中,所述的车辆检测装置的背景建模及更新模块102具体用于:
根据算式(3)确定图像序列上在连续n个时间段tn内静止且不属于静止车辆上的像素点的集合:
根据下述算式(4)得到车道线内的需要更新背景的区域roi:
以上算式中:tn为某时间段,n为tn时间段的个数;(x,y)为图像帧上的点;t0为预设阈值常数;stillo是静止车辆的集合,
首先获得第一幅图片,通过下述算式(5)对车道线内背景区域roi,即该区域特征idroi=1,进行背景图像更新,得到更新后的背景图像:
bkroi(x,y)=mt(x,y),if(x,y)∈roi&&idroi=1(5);
算式(5)中:mt(x,y)为t时刻当前图像帧(x,y)像素点的像素值,bkroi(x,y)为背景区域roi中对应像素点进行背景图像更新后的像素值。
在一个实施例中,所述的车辆检测装置的前景获取模块103具体用于:
通过下述算式(6)计算当前图像帧的像素值与背景图像的像素值的绝对差值,得到图像序列的前景:
其中:mot(x,y)为表征前景的特征,mot(x,y)=1则是前景;m(x,y)为当前图像帧(x,y)位置的像素值,bk(x,y)为背景图像(x,y)位置的像素值,tt=t0*at,t0为常数,at=1+(βt-127)/255,βt为当前图像帧每个像素点的灰度值之和除以当前图像帧像素点总数。
在一个实施例中,所述的车辆检测装置的车辆对象检测模块104具体用于:
对前景进行跟踪,获取车道线内区域的车辆对象,包括:
根据下述算式(7),针对当前图像帧的每一个对象,计算所述对象与前一帧的每一个对象的欧式距离,得到所述对象与前一帧距离最近的对象:
根据下述算式(8)和下述算式(9)将前一帧的对象的对象号赋予与当前图像帧距离最近的对象,并将当前图像帧的其他对象赋予新的对象号,所述对象号唯一标识所述对象:
上述算式(7)-(9)中:当前图像帧为第t+1帧;onit+1为第t+1帧的第i个对象,onjt为第t帧的第j个对象;n为第t帧的对象个数;t为常数;ocit+1为onit+1的中心点坐标,ocjt为onjt的中心点坐标;||.||表示两点间欧式距离,min_d为在当前图象帧的m个对象中,离前一帧对象j的最短距离,num为新对象号;
根据上述算式(8)中得到的对象号,通过下述算式(10)和算式(11)确定当前图像帧中车辆对象,所述车辆对象为:在图像序列中出现的帧数大于设定阈值k0、运动过且其尺寸大于设定阈值sizet的对象:
vo={oni,ifoni.frame>k0&&oni.move=true&&sizei>sizet(10);
上述算式中:vo为检测到的车辆对象集合,oni.frame为第i个对象出现的帧数,oni.move=true表示第i个运动过的对象,k0与k为常数,sizei为第i对象的尺寸,sizet为阈值尺寸。
在一个实施例中,所述的车辆检测装置的车辆对象检测模块104还用于:
通过下述算式(12)计算车辆对象中的静止车辆对象:
其中:dis为常数;stilloi为静止车辆;voi为当前图像帧第i个车辆对象;
在一个实施例中,所述的车辆检测装置的所述的车辆检测装置还包括:
帧抽取模块,用于在检测车道线之前,对获取的交通监控视频的图像序列进行帧抽取,将视频帧率降低至预定帧率。
在一个实施例中,所述的车辆检测装置还包括:
图像去阴影模块,用于对获取的图像序列的前景进行跟踪前,对获取的图像序列的前景去阴影。
参照图12,本发明实施例提供的一种道路车流量统计装置,包括:
车道线检测模块101,用于检测并获取交通监控视频的图像序列上的车道线;
背景建模及更新模块102,用于对车道线内区域进行背景建模,并按照预定规则更新背景图像;
前景获取模块103,用于获取图像序列的前景;
车辆对象检测模块104,用于对前景进行跟踪,获取车道线内区域的车辆对象;
车流量统计模块105,用于统计获取的车辆对象在预设时间段内经过虚拟线圈的车辆个数,统计车流量。
参照图13,本发明实施例提供的一种路口车辆拥挤度计算装置,包括:
车道线检测模块101,用于检测并获取交通监控视频的图像序列上的车道线;
背景建模及更新模块102,用于对车道线内区域进行背景建模,并按照预定规则更新背景图像;
前景获取模块103,用于获取图像序列的前景;
车辆对象检测模块104,用于对前景进行跟踪,获取车道线内区域的车辆对象;
车辆排队拥挤度计算模块106,用于将车道线区域内车辆对象与vehiclelist列表比对,得到该车道内当前图像帧的排队车辆个数vn,根据以下算式(13)计算路口车辆排队拥挤程度:
其中:cg为路口车辆排队拥挤度数值,n为车道数,vi为第i车道被占满的车辆个数,k为常数。
事先标定好vehiclelist列表,在检测车辆排队拥挤度时直接查表,可以减少计算量,提高检测速度。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行一种道路车流量统计方法,所述方法包括:
根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
根据所述背景图像获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象;
通过在垂直车辆方向设置虚拟线圈根据车辆对象的对象号统计预设时间段内经过虚拟线圈的车辆个数,统计车流量。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行一种路口车辆排队拥挤度程度计算方法,所述方法包括:
根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
根据所述背景图像获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象;
通过与vehiclelist列表比对,得到该车道内当前图像帧的排队车辆个数vn,根据下述算式(13)计算路口车辆排队拥挤程度:
其中:cg为路口车辆排队拥挤度数值,n为车道数,vi为第i车道被占满的车辆个数,k为常数。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行一种道路车辆检测方法,所述方法包括:
根据获取的交通监控视频的图像序列,检测并确定出图像序列上的车道线;
对车道线内区域进行背景建模,并按照预定规则进行背景图像更新;
根据所述背景图像获取图像序列的前景,对前景进行跟踪,确定出车道线内区域的车辆对象。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。