一种基于目标跟踪的交通视频逆行事件检测方法

未命名 07-17 阅读:140 评论:0


1.本发明涉及目标跟踪技术领域,具体涉及一种基于目标跟踪的交通视频逆行事件检测方法。


背景技术:

2.逆行事件就是造成交通事故的重要因素之一。在高速公路上,车辆行驶速度较快,一旦逆行事件发生,司机同志将难以采取紧急措施,从而引发交通事故,而且在逆行引起的交通事故中,由于车辆相向行驶,造成的后果更加严重,严重威胁人们的出行安全。
3.目前,在学术领域的研究中,大多数的研究只在较为良好的环境条件下进行,相对来讲,视频更加清晰,光照条件更好,已经达到了不错的精度。然而这与我们的实际交通场景是不符的,首先是天气因素难以把控,暴雨、夜晚灯光昏暗等条件也是常常发生的,而学术研究中很少考虑这些极端天气。其次,在学术研究中,由于研究的场景较少,因此对于道路区域的划分常常是通过人工标注的方式进行的,每次在新的场景下进行逆行检测时,都需要提供人工划分的道路划分图,并标注正确行驶方向,在应用场景数量众多的情况下,这种方式是非常费时费力的。
4.在业界市场中,也有很多实现这一技术的公司,但它们的产品也存在一些问题。如上所述,市面上的解决方案大多数也都是通过人工的方式对道路区域进行划分,并给出正确的行驶方向,这对于大批量应用来说是不友好的。其次,更有一些通过使用红外线、传感器等硬件设备来实现更高精度的方法,但这些设备兼容之前没有相应模块的设备,必须重新安装,使用过程中耗费大量人力、财力。
5.因此,针对上述问题,目前亟待提出一种能够自动划分道路区域并计算正确行驶方向的逆行检测方法,并能够应对常见的极端环境。


技术实现要素:

6.本发明的目的是为了解决现有技术中的上述缺陷,提供一种基于目标跟踪的交通视频逆行事件检测方法。
7.本发明的目的可以通过采取如下技术方案达到:
8.一种基于目标跟踪的交通视频逆行事件检测方法,所述逆行事件检测方法包括以下步骤:
9.s1、采集交通视频p1,共有t1个视频帧,每个视频帧尺寸为m
×
n,使用标记法和分割法对交通视频p1中道路区域进行划分,得到道路区域划分图r
road
,其中包含nr个道路区域,第l个道路区域记为r
l
,l=1,2,

,nr;
10.s2、对交通视频p1中所有车辆进行目标跟踪得到t1个视频帧中所有车辆的检测框,设交通视频p1中共有nc1台车辆,其中第a台车辆cara在第tf个视频帧ff
tf
中的检测框记为tf=1,2,

,t1,a=1,2,

,nc1,第a台车辆在第tf个视频帧中位置用检测框
中心点坐标表示,根据第a台车辆在相邻视频帧ff
tf
和ff
tf-1
中检测框位置变化计算第a台车辆在第tf个视频帧中的速度使用第l个道路区域内所有车辆平均速度的方向作为第l个道路区域的正确行驶方向v
l
,将所有道路区域正确行驶方向保存在正确行驶方向字典d中;
11.s3、采集交通视频p2,共有t2个视频帧,每个视频帧尺寸为m
×
n,对交通视频p2中第ts个视频帧fs
ts
中所有车辆进行目标跟踪,ts=1,2,

t2,得到视频帧fs
ts
中所有车辆的检测框,同时为每台车辆维护一个逆行情况列表,设视频帧fs
ts
中共有nc2台车辆,则第b台车辆carb的检测框记为boxb,检测框中心点记为(xcb,ycb),与其对应的第b台车辆逆行情况列表ib={zi|i∈[1,25],zi∈{0,1}},逆行情况列表ib记录了第b台车辆在视频帧fs
ts
之前1秒内所有视频帧中是否处于逆行状态,zi=1表示车辆carb在第ts-25+i帧中处于逆行状态,反之为正常行驶状态;之后将第ts个视频帧及第ts-1个视频帧送入光流网络flownet2.0得到视频帧fs
ts
中所有像素点的光流,将检测框boxb内像素点的平均光流作为车辆carb的速度vcb,通过查找r
road
中(xcb,ycb)处像素值得知车辆carb处于第lb个道路区域,lb∈[1,nr],进而在正确行驶方向字典d中得到第lb个道路区域的正确行驶方向根据速度vcb的方向与正确行驶方向夹角θb判断视频帧fs
ts
中车辆carb是否逆行,根据判断结果更新逆行情况列表ib;
[0012]
s4、检查第b台车辆的逆行情况列表ib,如果其中zi为ib中第i个元素,在视频帧fs
ts
中标注第b台车辆为逆行车辆,对交通视频p2中的剩余视频帧重复上述s3、s4操作,检测出交通视频p2中所有逆行车辆。
[0013]
进一步地,所述步骤s1过程如下:
[0014]
s101、使用分割法得到道路区域r
seg
:首先对交通视频p1使用混合高斯模型排除道路上所有车辆得到背景图片,背景图片只包括道路、树,然后对背景图片进行道路分割得到交通视频p1中所有道路区域r
seg
={c
xy
|x∈[0,m),y∈[0,n),c
xy
∈{0,1}},其中c
xy
=1表示在交通视频p1中像素位置(x,y)属于道路区域;c
xy
=0表示交通视频p1中像素位置(x,y)不属于道路区域。
[0015]
道路分割需要对干净的背景图像进行分割,否则分割结果中道路区域会因为车辆的遮挡而不完整,因此在道路分割之前使用混合高斯模型对交通视频p1进行背景建模,排除车辆得到背景图片,混合高斯模型统计每个像素位置在t1个视频帧中的取值,并对每个像素位置使用高斯分布对上述取值进行拟合,由于每个像素位置的像素点在大部分视频帧中都是代表道路区域的像素点,故高斯分布中出现概率最高的像素值代表的就是道路像素点对应的像素值,取所有像素位置对应的高斯分布的中值,得到的图片即为背景图片,除了堵车情况,混合高斯模型都能得到干净的背景图片;为了将视频中的道路区域划分出来,可以使用道路分割方法对视频帧处理,道路分割原理是对视频帧中所有像素点进行分类,将所有被分类为道路的像素点组合起来就得到了道路区域,同时混合高斯模型得到背景图片中没有车辆,对背景图片使用道路分割便能得到完整的道路区域。
[0016]
s102、使用标记法得到道路区域r
mark
:对交通视频p1中t1个视频帧使用目标跟踪得到所有车辆检测框,根据每个视频帧中的检测框得到t1个视频帧的检测框标记图
和检测框中心点标记图其中其中表示第tf个视频帧的检测框标记图,d
xy
=1表示像素点(x,y)在检测框区域内,反之不在;表示第tf个视频帧的检测框中心点标记图,e
xy
=1表示像素点(x,y)是检测框中心点之一,反之不是;对t1个视频帧使用混合高斯模型得到所有视频帧的前景区域标记图个视频帧使用混合高斯模型得到所有视频帧的前景区域标记图表示第tf个视频帧ff
tf
的前景区域标记图,f
xy
=1表明该像素点(x,y)在视频帧ff
tf
中是前景区域内的点,反之不是;此时所有检测框前景区域表示车辆所处位置,即可行驶区域,统计交通视频p1的t1个视频帧中每个像素位置被判定为可行驶区域的次数,得到次数统计图c={g
xy
|x∈[0,m),y∈[0,n),g
xy
∈[0,t1]},其中g
xy
表示像素位置(x,y)在t1个视频帧中被判定为可行使区域的次数为g
xy
次,针对次数统计图c中各点的取值使用自适应阈值计算出阈值th,将次数统计图c化为二值图c
th
,将t1个视频帧的检测框中心点标记图求并集得到汇总后的检测框中心点区域结合二值图c
th
和中心点区域s
center
得到标记法的道路区域r
mark
={h
xy
|x∈[0,m),y∈[0,n),h
xy
∈{0,1}},h
xy
=1表示在交通视频p1中像素位置(x,y)属于道路区域;h
xy
=0表示交通视频p1中像素位置(x,y)不属于道路区域。
[0017]
标记法基于车辆经过的地方就是道路区域的思想,通过目标检测检测到车辆位置,通过混合高斯模型得到前景物体轮廓,两者结合,检测框内前景物体轮廓是车辆的轮廓,通过记录车辆轮廓组成完整的道路区域,并且每台车辆只在一条道路内行驶,从而得到互不相连的nr个道路区域,对应交通视频p1中nr条道路。
[0018]
s103、将分割法和标记法得到的划分结果r
seg
和r
mark
进行“或”操作,对或操作的结果进行形态学操作,对形态学操作后的结果寻找所有连通域得到nr个道路区域,从1至nr对这nr个道路区域分别赋予编号标识,非道路区域记为-1,得到最终道路区域划分图r
road
={m
xy
|x∈[0,m),y∈[0,n),m
xy
∈{-1,1,2,

,nr}},m
xy
表示在交通视频p1中像素位置(x,y)属于编号为m
xy
的道路区域。
[0019]
由于分割法在车少的情况下划分结果比较准确,标记法在车多的情况下划分结果比较准确,故这里结合两者,相互补充得到适用于各种条件下的方法,使用形态学操作是为了使结果更加清晰,排除掉干扰点,使结果更加完整。
[0020]
进一步地,所述次数统计图c采用递推计算,过程如下:使用前tf个视频帧得到的次数统计图c
tf
计算过程为:
[0021][0022]
c0(x,y)=0
[0023]
0≤x《m,0≤y《n
[0024]
其中c
tf-1
(x,y)为使用前tf-1个视频帧得到的次数统计图c
tf-1
在像素位置(x,y)处的值,c0(x,y)代表初始次数统计图c0在像素位置(x,y)的初始值,其值为0,使用前t1个视频
帧计算得到的次数统计图即为最终的次数统计图c;
[0025]
将次数统计图c化为二值图c
th
的二值化过程如下:
[0026][0027]
0≤x《m,0≤y《n
[0028]
其中c
th
(x,y)为二值图c
th
在像素位置(x,y)处的值,c(x,y)为次数统计图c在像素位置(x,y)处的值;
[0029]rmark
(x,y)是在像素位置(x,y)处道路区域r
mark
的值,计算过程如下:
[0030][0031]
0≤x《m,0≤y《n
[0032]
其中c
th
(x,y)表示二值图c
th
中像素位置(x,y)处的值,s
center
(x,y)表示检测框中心点区域s
center
中像素位置(x,y)处的值。
[0033]
标记法划分道路区域存在一种特殊情况,即大货车轮廓会出现在两条道路中造成两个道路区域相连,故这里不能直接将所有车辆轮廓覆盖的区域都标记为道路区域,然而造成道路相连的大货车毕竟是少数,如果统计所有视频帧中像素点被分类为道路区域的次数,大货车轮廓所覆盖的像素点对应的计数值会比较小,故通过计数并使用阈值去除统计值较小的像素点即可排除这些特殊车辆带来的影响,得到互不相连的nr个道路区域。
[0034]
进一步地,所述步骤s2过程如下:
[0035]
s201、对交通视频p1中所有车辆进行目标跟踪,得到每台车辆在每一个视频帧中的检测框,检测框中心点表示车辆所在位置,根据第a台车辆在第tf个视频帧和第tf-1个视频帧中位置变化计算出第a台车辆在第tf个视频帧中的速度即即计算过程如下:
[0036][0037][0038]
由于不需要使用具体速度大小,只要得到方向即可,故直接使用检测框中心点变化作为位移,以相邻两个视频帧间的时间间隔为单位时间,从而计算出速度,虽然这样算出的速度大小不一定准确,但方向基本是准确的;
[0039]
s202、初始化正确行驶方向字典d,将nr个道路区域正确行驶方向设置为(0,0),针对t1个视频帧,使用t1个视频帧中所有车辆的速度方向更新行驶方向字典d中对应道路区域的正确行驶方向;
[0040]
对于第l个道路区域,路面上不一定存在指示正确行驶方向的箭头供机器识别,故只能通过车辆行为判断正确方向,使用第l个道路区域内大多数车辆的行驶方向作为第l个道路区域的正确行驶方向,具体实施时可以使用平均值,平均值一定是代表大多数车辆的行驶方向,由此可以得到准确的正确行驶方向;
[0041]
进一步地,所述行驶方向字典d的更新过程如下:
[0042]
已知第a台车辆在第tf个视频帧中的速度和位置在道路区域划分图r
road
中查询处的值,得知第a台车辆位于第la个道路区域,la=1,2,

,nr,将速度的方向加到d中第la个道路区域对应的正确行驶方向上,计算方法如下:
[0043][0044]
对所有交通视频p1中t1个视频帧中所有车辆进行上述处理,得到最终的正确行驶方向字典d;
[0045]
考虑到检测框飘框的影响,可能导致第b台车辆在某一帧中的速度方向计算错误,故使用第b台车辆在所有视频帧中速度的平均值来消除某一帧中速度的错误计算结果;考虑到视频中也可能出现逆行车辆,故使用所有车辆速度的平均值来消除逆行车辆带来的影响,由此可以得到准确的正确行驶方向。
[0046]
进一步地,所述步骤s3过程如下:
[0047]
s301、对交通视频p2的第ts个视频帧fs
ts
中所有车辆进行目标跟踪,得到所有车辆检测框,同时,如果视频帧fs
ts
中第b台车辆第一次出现,则新建第b个逆行情况列表ib={zi|i∈[0,25],zi=0},即初始时所有元素为0,记录第b台车辆逆行情况,初始化为0是避免车辆刚进入视频就被判定为逆行车辆;
[0048]
s302、将第ts个视频帧和第ts-1个视频帧输入flownet2.0光流网络(详见文章"flownet 2.0:evolution of optical flow estimation with deep networks,"2017ieee conference on computer vision and pattern recognition(cvpr),honolulu,hawaii,usa,2017,pp.1647-1655.)得到fs
ts
的光流图flow
ts
,flow
ts
为m
×n×
2的三维矩阵,则二维向量flow
ts
(x,y)表示fs
ts
中像素位置(x,y)处的光流,0≤x《m,0≤y《n,根据光流图flow
ts
计算第b台车辆在视频帧fs
ts
中的速度vcb,速度vcb计算方法如下;假设第b台车辆在视频帧fs
ts
中检测框左上角坐标为(xltb,yltb),右下角坐标为(xrdb,yrdb),则vcb计算过程如下:
[0049][0050]
由于检测框存在飘框问题,且目标检测会出现遮挡情况,这些都会导致检测框位置计算不准确,造成速度方向计算错误导致误检,考虑到代表车辆的所有像素点的平均速度和车辆的速度是一致的,故可以使用检测框内像素点的平均光流作为车辆的速度,相比于根据检测框位置变化来计算速度的方法,计算平均光流的方法的计算结果更加准确;
[0051]
s303、查找第b台车辆位置(xcb,ycb)在道路区域划分图r
road
中对应的道路区域编号,记为lb,在正确行驶方向字典d查找第lb个道路区域对应的正确行驶方向计算速度vcb的方向与正确行驶方向夹角θb的三角函数cosθb,公式如下:
[0052][0053]
如果cosθb》0,认为第b台车辆在第ts个视频帧中逆行,在逆行情况列表ib末尾添加
元素1;反之在逆行情况列表ib末尾添加元素0,最后删除ib中第一个元素。
[0054]
由于道路上车辆可能出现变道等情况,车辆速度方向并不一定和正确行驶方向完全一致,故这里计算车辆速度方向与正确行驶方向夹角,设定最大误差为90
°
,由于正常行驶车辆速度方向与正确行驶方向夹角接近于0
°
,而逆行车辆速度方向与正确行驶方向夹角接近于180
°
,故选取90
°
为分界既能应对车辆变道导致速度方向与正确行驶方向不完全一致的情况,也具有足够的区分度。
[0055]
进一步地,所述步骤s4中,遍历所有逆行情况列表,标注逆行车辆,对单个逆行情况列表处理过程如下:取第b台车辆对应的第b个逆行情况列表ib,检查其中值为1的元素个数占所有元素个数的比例数占所有元素个数的比例其中zi为ib中第i个元素,如果比例ratiob》50%,认定第b台车辆carb是一台逆行车辆,用红色在视频帧fs
ts
中标注出检测框boxb;反之比例ratiob≤50%,认定车辆carb是一台正常行驶的车辆,不做任何处理,针对交通视频p2后续视频帧重复执行s3、s4操作,检测出交通视频p2中所有逆行车辆。
[0056]
考虑到计算误差,车辆在某一帧中被检测出逆行行为可能是误差导致,故这里对车辆在1s内所有视频帧中的逆行情况进行综合评判,只有1s内多次出现逆行行为才确定是真的逆行车辆,大大降低误检率。
[0057]
本发明相对于现有技术具有如下的优点及效果:
[0058]
1)本发明使用分割法和标记法对道路区域进行划分,分割法需要较为干净的背景,在车少的情况下结果比较准确;标记法需要大量车辆来进行道路区域划分,在车多的情况下结果比较准确;本发明结合了两种方法,无论在车多还是车少的情况下都有较好的划分结果,相较于常用的人工划分的方式,本发明的方法完全能适应各种环境,取代人工操作,在精度没有明显下降的情况下更加方便快捷,可以应用于大规模的逆行检测应用场景中。
[0059]
2)本发明采用光流法辅助目标跟踪进行车辆速度的计算,相较于常规只使用检测框位置变化计算车辆速度的方法,后者更容易受到检测框飘框以及遮挡问题的影响,在某些极端场景比如交通堵塞情况下会有较多误检,而本文方法使用光流法辅助目标跟踪进行车辆速度计算,对检测框准确度的依赖较小,鲁棒性更强,在极端场景中也有较好的逆行检测效果,
附图说明
[0060]
此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0061]
图1是本发明实施例公开的基于目标跟踪的交通视频逆行检测方法的流程图;
[0062]
图2是本发明实施例公开的基于目标跟踪的交通视频逆行检测方法的示例处理步骤图;
[0063]
图3是本发明实施例公开的基于目标跟踪的交通视频逆行检测方法的测试视频中的逆行样例图。
具体实施方式
[0064]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例
中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0065]
实施例1
[0066]
如图2所示,本实施例公开了一种基于目标跟踪的交通视频逆行事件检测方法,具体包括下列步骤:
[0067]
s1、采集交通视频p1,共有t1个视频帧,每个视频帧尺寸为m
×
n,本实施例中共有3000帧,视频帧尺寸为1080
×
720,使用标记法和分割法对交通视频p1中道路区域进行划分,得到道路区域划分图r
road
,其中包含nr个道路区域,第l个道路区域记为r
l
,l=1,2,

,nr,具体步骤如下:
[0068]
s101、使用分割法得到道路区域r
seg
:首先对交通视频p1使用混合高斯模型排除道路上所有车辆得到背景图片,背景图片只包括道路、树,然后对背景图片进行道路分割得到交通视频p1中所有道路区域r
seg
={c
xy
|x∈[0,m),y∈[0,n),c
xy
∈{0,1}},其中c
xy
=1表示在交通视频p1中像素位置(x,y)属于道路区域;c
xy
=0表示交通视频p1中像素位置(x,y)不属于道路区域;
[0069]
s102、使用标记法得到道路区域r
mark
:对交通视频p1中t1个视频帧使用目标跟踪得到所有车辆检测框,根据t1个视频帧中的检测框得到t1个视频帧的检测框标记图和检测框中心点标记图其中其中表示第tf个视频帧的检测框标记图,d
xy
=1表示像素点(x,y)在检测框区域内,反之不在;表示第tf个视频帧的检测框中心点标记图,e
xy
=1表示像素点(x,y)是检测框中心点之一,反之不是;对t1个视频帧使用混合高斯模型得到所有视频帧的前景区域标记图高斯模型得到所有视频帧的前景区域标记图表示第tf个视频帧的前景区域标记图,f
xy
=1表明该像素点(x,y)在视频帧ff
tf
中是前景区域内的点,反之不是;此时所有检测框前景区域表示车辆所处位置,即可行驶区域,统计交通视频p1的t1个视频帧中每个像素位置被判定为可行驶区域的次数,得到次数统计图c={g
xy
|x∈[0,m),y∈[0,n),g
xy
∈[0,t1]},其中g
xy
表示像素位置(x,y)在t1个视频帧中被判定为可行使区域的次数为g
xy
次,针对次数统计图c中各点的取值使用自适应阈值计算出阈值th,本实施例中阈值为th为1500,将次数统计图c化为二值图c
th
,将t1个视频帧的检测框中心点标记图求并集得到汇总后的检测框中心点区域结合二值图c
th
和中心点区域s
center
得到标记法的道路区域r
mark
={h
xy
|x∈[0,m),y∈[0,n),h
xy
∈{0,1}},h
xy
=1表示在交通视频p1中像素位置(x,y)属于道路区域;h
xy
=0表示交通视频p1中像素位置(x,y)不属于道路区域;
[0070]
s103、将分割法和标记法得到的划分结果r
seg
和r
max
进行“或”操作,对或操作的结果进行形态学操作,对形态学操作后的结果寻找所有连通域得到nr个道路区域,本实施例
中nr为3,从1至nr对这nr个道路区域分别赋予编号标识,非道路区域记为-1,得到最终道路区域划分图r
road
={m
xy
|x∈[0,m),y∈[0,n),m
xy
∈{-1,1,2,

,nr}},m
xy
表示在交通视频p1中像素位置(x,y)属于编号为m
xy
的道路区域;
[0071]
s102的具体实施方法中,所述次数统计图c采用递推计算,过程如下:使用前tf个视频帧得到的次数统计图c
tf
计算过程为:
[0072][0073]
c0(x,y)=0
[0074]
0≤x《m,0≤y《n
[0075]
其中c
tf-1
(x,y)为使用前tf-1个视频帧得到的次数统计图c
tf-1
在像素位置(x,y)处的值,c0(x,y)代表初始次数统计图c0在像素位置(x,y)的初始值,其值为0,使用前t1个视频帧计算得到的次数统计图即为最终的次数统计图c;
[0076]
将次数统计图c化为二值图c
th
的二值化过程如下:
[0077][0078]
0≤x《m,0≤y《n
[0079]
其中c
th
(x,y)为二值图c
th
在像素位置(x,y)处的值,c(x,y)为次数统计图c在像素位置(x,y)处的值;
[0080]rmark
(x,y)是在像素位置(x,y)处道路区域r
mark
的值,计算过程如下:
[0081][0082]
0≤x《m,0≤y《n
[0083]
其中c
th
(x,y)表示二值图c
th
在像素位置(x,y)处的值,s
center
(x,y)表示检测框中心点区域s
center
在像素位置(x,y)处的值;
[0084]
形态学操作主要分为腐蚀和膨胀操作,操作过程都是用一个形态学算子扫描图像中的每一个像素,即形态学算子中心像素对准待处理像素,用形态学算子中的每一个不为0的像素与其覆盖的像素做“与”操作,得到若干个计算结果,个数取决于形态学算子中不为0的元素个数,不同之处在于,腐蚀操作中处理某个像素时,当所有计算结果都为1时,被处理的像素值才为1,否则为0;而膨胀操作中只要有一个计算结果为1,被处理的像素值就为1,否则为0;其中形态学算子有不同大小不同形状,本实施例中采用3
×
3的十字形,即3
×
3的二维矩阵在此基础之上又产生了开操作和闭操作,开操作是先腐蚀后膨胀,用来分离物体,消除小区域,闭操作是先膨胀后腐蚀,用来填充闭合区域,本实施例采用的形态学操作为先进行开操作,后进行闭操作;
[0085]
s2、对交通视频p1中所有车辆进行目标跟踪得到t1个视频帧中所有车辆的检测框,设交通视频p1中共有nc1台车辆,其中第a台车辆cara在第tf个视频帧ff
tf
中的检测框记为
tf=1,2,

,t1,a=1,2,

,nc1,第a台车辆在第tf个视频帧中位置用检测框中心点坐标表示,根据第a台车辆在相邻视频帧ff
tf
和ff
tf-1
中位置变化计算第a台车辆在第tf个视频帧中的速度使用第l个道路区域内所有车辆平均速度的方向作为第l个道路区域的正确行驶方向v
l
,将所有道路区域正确行驶方向保存在正确行驶方向字典d中,具体步骤如下:
[0086]
s201、对交通视频p1中所有车辆进行目标跟踪,得到每台车辆在每一个视频帧中的检测框,检测框中心点表示车辆所在位置,根据第a台车辆在第tf个视频帧和第tf-1个视频帧中位置变化计算出第a台车辆在第tf个视频帧中的速度即即计算过程如下:
[0087][0088][0089]
s202、初始化正确行驶方向字典d,将nr个道路区域正确行驶方向设置为(0,0),本实施例中正确行驶方向字典d初始化为{1:(0,0),2:(0,0),3:(0,0)},针对t1个视频帧,使用t1个视频帧中所有车辆的速度方向更新正确行驶方向字典d中对应道路区域的正确行驶方向;
[0090]
所述正确行驶方向字典d的更新过程如下:已知第a台车辆在第tf个视频帧中的速度和位置在道路区域划分图r
road
中查询处的值,得知第a台车辆位于第la个道路区域,la=1,2,

,nr,将速度的方向加到d中第la个道路区域对应的正确行驶方向上,计算方法如下:
[0091][0092]
对所有交通视频p1中t1个视频帧中所有车辆进行上述处理,得到最终的正确行驶方向字典d,本实施例中正确行驶方向字典为:{1:(-0.81,0.59),2:(-0.45,0.89),3:(-0.56,-0.83)}。
[0093]
s3、采集交通视频p2,共有t2个视频帧,每个视频帧尺寸为m
×
n,对交通视频p2中第ts个视频帧fs
ts
中所有车辆进行目标跟踪,ts=1,2,

t2,得到视频帧fs
ts
中所有车辆的检测框,同时为每台车辆维护一个逆行情况列表,设视频帧fs
ts
中共有nc2台车辆,则第b台车辆carb的检测框记为boxb,检测框中心点记为(xcb,ycb),与其对应的第b台车辆逆行情况列表ib={zi|i∈[1,25],zi∈{0,1}},逆行情况列表ib记录了第b台车辆在视频帧fs
ts
之前1秒内所有视频帧中是否处于逆行状态,zi=1表示车辆carb在第ts-25+i帧中处于逆行状态,反之为正常行驶状态;之后将第ts个视频帧及第ts-1个视频帧送入光流网络flownet2.0得到视频帧fs
ts
中所有像素点的光流,将检测框boxb内像素点的平均光流作为车辆carb的速度vcb,通过查找r
road
中(xcb,ycb)处像素值得知车辆carb处于第lb个道路区域,lb∈[1,nr],进而在正确行驶方向字典d中得到第lb个道路区域的正确行驶方向根据速度vcb的方向与
正确行驶方向夹角θb判断视频帧fs
ts
中车辆carb是否逆行,根据判断结果更新逆行情况列表ib,具体步骤如下:
[0094]
s301、对交通视频p2的第ts个视频帧fs
ts
中所有车辆进行目标跟踪,得到所有车辆检测框,同时,如果视频帧fs
ts
中第b台车辆第一次出现,则新建第b个逆行情况列表ib={zi|i∈[0,25],zi=0},初始时所有元素为0,记录第b台车辆逆行情况;
[0095]
s302、将第ts个视频帧和第ts-1个视频帧输入flownet2.0光流网络得到fs
ts
的光流图flow
ts
,flow
ts
为m
×n×
2的三维矩阵,则二维向量flow
ts
(x,y)表示fs
ts
中像素位置(x,y)处的光流,0≤x《m,0≤y《n,根据光流图flow
ts
计算第b台车辆在视频帧fs
ts
中的速度vcb,速度vcb计算方法如下;假设第b台车辆在视频帧fs
ts
中检测框左上角坐标为(xltb,yltb),右下角坐标为(xrdb,yrdb),则vcb计算过程如下:
[0096][0097]
s303、查找第b台车辆位置(xcb,ycb)在道路区域划分图r
road
中对应的道路区域编号,记为lb,在正确行驶方向字典d查找第lb个道路区域对应的正确行驶方向计算速度vcb的方向与正确行驶方向夹角θb的三角函数cosθb,公式如下:
[0098][0099]
如果cosθb》0,认为第b台车辆在第ts个视频帧中逆行,在逆行情况列表ib末尾添加元素1;反之在逆行情况列表ib末尾添加元素0,最后删除ib中第一个元素。
[0100]
s4、检查第b台车辆的逆行情况列表ib,如果其中zi为ib中第i个元素,在视频帧fs
ts
中标注第b台车辆为逆行车辆,对交通视频p2中的剩余视频帧重复上述s3、s4操作,检测出交通视频p2中所有逆行车辆,具体步骤如下:
[0101]
遍历所有逆行情况列表,标注逆行车辆,对单个逆行情况列表的处理过程如下:取第b台车辆对应的第b个逆行情况列表ib,检查其中值为1的元素个数占所有元素个数的比例其中zi为ib中第i个元素,如果比例ratiob》50%,认定第b台车辆carb是一台逆行车辆,用红色在视频帧fs
ts
中标注出检测框boxb;反之比例ratiob≤50%,认定车辆carb是一台正常行驶的车辆,不做任何处理,本实例中,在交通视频p2第2150帧中有一辆大货车和一辆轿车,大货车对应信息节点的逆行情况列表中元素为1的个数有24个占总元素个数的96%,故该货车为逆行车辆;轿车对应信息节点的逆行情况列表中元素为1的个数有0个,故该轿车不是逆行车辆,针对交通视频p2后续视频帧重复执行s3、s4操作,检测出交通视频p2中所有逆行车辆。
[0102]
实施例2
[0103]
本实施例对实施例1公开的一种基于目标跟踪的交通视频逆行事件检测方法进行训练和测试。本实施例在nvidia rtx 1080ti gpu的上运行。经整理,本发明从高速公路摄像机中采集了20个视频对进行测试,每个视频对包括白天视频和夜晚视频,白天视频用于划分道路行驶区域和计算正确行驶方向,夜晚用于测试,测试视频中有12个视频是拍摄环
境较好的情况下的视频,2个是光线较暗情况下的视频,3个是雨天摄像机镜头有雨水情况下的视频,3个是交通拥堵情况下的视频,具体道路区域划分图和逆行检测结果由图3所示,整体测试结果如下:
[0104]
表1本发明在不同环境交通视频中的逆行事件检测效果
[0105] 质量好的视频光线较暗的视频雨天视频交通拥堵视频总计逆行车辆总数6891752502731387检测到的逆行车辆数6631602242601307漏检车辆数2615261380召回率96.2%91.4%89.6%95.2%94.2%
[0106]
由上述结果可知,即使是在较为恶劣的成像环境下,本发明召回率的下降不是很多,虽然雨天和光线较暗场景下对本发明影响较大,但仍能保持90%左右的召回率,基本能够保证在任何极端环境条件下检测到大部分逆行车辆。
[0107]
实施例3
[0108]
本实施例对实施例1公开的一种基于目标跟踪的交通视频逆行事件检测方法和常用的逆行检测方法进行对比。常用的逆行检测算法中只使用检测框位置变化计算车辆速度,对检测框位置的准确性依赖较大,在车辆行进速度较慢时常常出现误检,比如交通拥堵情况,本发明在交通拥堵视频上对两者进行对比,对比结果如下:
[0109]
表2本发明与常用方法在拥堵场景下逆行事件检测情况对比
[0110] 本发明常用方法逆行车辆总数273273检测到的逆行车辆数260256漏检车辆数1317误检车辆数753准确率97.4%83.9%召回率95.2%94.8%
[0111]
经过对比可以发现,在拥堵情况下,常用方法的准确率显著下降,产生较多误检车辆,而本发明的方法面对拥堵情况仍有较好的结果,算法退化不明显。
[0112]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

技术特征:
1.一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述逆行事件检测方法包括以下步骤:s1、采集交通视频p1,共有t1个视频帧,每个视频帧尺寸为m
×
n,使用标记法和分割法对交通视频p1中道路区域进行划分,得到道路区域划分图r
road
,其中包含nr个道路区域,第l个道路区域记为r
l
,l=1,2,...,nr;s2、对交通视频p1中所有车辆进行目标跟踪得到t1个视频帧中所有车辆的检测框,设交通视频p1中共有nc1台车辆,其中第a台车辆car
a
在第tf个视频帧ff
tf
中的检测框记为tf=1,2,...,t1,a=1,2,...,nc1,第a台车辆在第tf个视频帧中位置用检测柜中心点坐标表示,根据第a台车辆在相邻视频帧ff
tf
和ff
tf-1
中检测框位置变化计算第a台车辆在第tf个视频帧中的速度使用第l个道路区域内所有车辆平均速度的方向作为第l个道路区域的正确行驶方向v
l
,将所有道路区域正确行驶方向保存在正确行驶方向字典d中;s3、采集交通视频p2,共有t2个视频帧,每个视频帧尺寸为m
×
n,对交通视频p2中第ts个视频帧fs
ts
中所有车辆进行目标跟踪,ts=1,2,...t2,得到视频帧fs
ts
中所有车辆的检测框,同时为每台车辆维护一个逆行情况列表,设视频帧fs
ts
中共有nc2台车辆,则第b台车辆car
b
的检测框记为box
b
,检测框中心点记为(xc
b
,yc
b
),与其对应的第b台车辆逆行情况列表i
b
={z
i
|i∈[1,25],z
i
∈{0,1}},逆行情况列表i
b
记录了第b台车辆在视频帧fs
ts
之前1秒内所有视频帧中是否处于逆行状态,z
i
=1表示车辆car
b
在第ts-25+i帧中处于逆行状态,反之为正常行驶状态;之后将第ts个视频帧及第ts-1个视频帧送入光流网络flownet2.0得到视频帧fs
ts
中所有像素点的光流,将检测框box
b
内像素点的平均光流作为车辆car
b
的速度vc
b
,通过查找r
road
中(xc
b
,yc
b
)处像素值得知车辆car
b
处于第l
b
个道路区域,l
b
∈[1,nr],进而在正确行驶方向字典d中得到第l
b
个道路区域的正确行驶方向根据速度vc
b
的方向与正确行驶方向夹角θ
b
判断视频帧fs
ts
中车辆car
b
是否逆行,根据判断结果更新逆行情况列表i
b
;s4、检查第b台车辆的逆行情况列表i
b
,如果其中z
i
为i
b
中第i个元素,在视频帧fs
ts
中标注第b台车辆为逆行车辆,对交通视频p2中的剩余视频帧重复上述s3、s4操作,检测出交通视频p2中所有逆行车辆。2.根据权利要求1所述的一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述步骤s1过程如下:s101、使用分割法得到道路区域r
seg
:首先对交通视频p1使用混合高斯模型排除道路上所有车辆得到背景图片,背景图片只包括道路、树,然后对背景图片进行道路分割得到交通视频p1中所有道路区域r
seg
={c
xy
|x∈[0,m),y∈[0,n),c
xy
∈{0,1}},其中c
xy
=1表示在交通视频p1中像素位置(x,y)属于道路区域;c
xy
=0表示交通视频p1中像素位置(x,y)不属于道路区域;s102、使用标记法得到道路区域r
mark
:对交通视频p1中t1个视频帧使用目标跟踪得到所有车辆检测框,根据每个视频帧中的检测框得到t1个视频帧的检测框标记图和检测框中心点标记图其中
表示第tf个视频帧的检测框标记图,d
xy
=1表示像素点(x,y)在检测框区域内,反之不在;表示第tf个视频帧的检测框中心点标记图,e
xy
=1表示像素点(x,y)是检测框中心点之一,反之不是;对t1个视频帧使用混合高斯模型得到所有视频帧的前景区域标记图个视频帧使用混合高斯模型得到所有视频帧的前景区域标记图表示第tf个视频帧ff
tf
的前景区域标记图,f
xy
=1表明该像素点(x,y)在视频帧ff
tf
中是前景区域内的点,反之不是;此时所有检测框前景区域表示车辆所处位置,即可行驶区域,统计交通视频p1的t1个视频帧中每个像素位置被判定为可行驶区域的次数,得到次数统计图c={g
xy
|x∈[0,m),y∈[0,n),g
xy
∈[0,t1]},其中g
xy
表示像素位置(x,y)在t1个视频帧中被判定为可行使区域的次数为g
xy
次,针对次数统计图c中各点的取值使用自适应阈值计算出阈值th,将次数统计图c化为二值图c
th
,将t1个视频帧的检测框中心点标记图求并集得到汇总后的检测框中心点区域结合二值图c
th
和中心点区域s
center
得到标记法的道路区域r
mark
={h
xy
|x∈[0,m),y∈[0,n),h
xy
∈{0,1}},h
xy
=1表示在交通视频p1中像素位置(x,y)属于道路区域;h
xy
=0表示交通视频p1中像素位置(x,y)不属于道路区域;s103、将分割法和标记法得到的划分结果r
seg
和r
mark
进行“或”操作,对或操作的结果进行形态学操作,对形态学操作后的结果寻找所有连通域得到nr个道路区域,从1至nr对这nr个道路区域分别赋予编号标识,非道路区域记为-1,得到最终道路区域划分图r
road
={m
xy
|x∈[0,m),y∈[0,n),m
xy
∈{-1,1,2,...,nr}},m
xy
表示在交通视频p1中像素位置(x,y)属于编号为m
xy
的道路区域。3.根据权利要求2所述的一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述次数统计图c采用递推计算,过程如下:使用前tf个视频帧得到的次数统计图c
tf
计算过程为:c
o
(x,y)=00≤x<m,0≤y<n其中c
tf-1
(x,y)为使用前tf-1个视频帧得到的次数统计图c
tf-1
在像素位置(x,y)处的值,c0(x,y)代表初始次数统计图c0在像素位置(x,y)的初始值,其值为0,使用前t1个视频帧计算得到的次数统计图即为最终的次数统计图c;将次数统计图c化为二值图c
th
的二值化过程如下:0≤x<m,0≤y<n其中c
th
(x,y)为二值图c
th
在像素位置(x,y)处的值,c(x,y)为次数统计图c在像素位置(x,y)处的值;r
mark
(x,y)是在像素位置(x,y)处道路区域r
mark
的值,计算过程如下:
0≤x<m,0≤y<n其中c
th
(x,y)表示二值图c
th
中像素位置(x,y)处的值,s
center
(x,y)表示检测框中心点区域s
center
中像素位置(x,y)处的值。4.根据权利要求1所述的一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述步骤s2过程如下:s201、对交通视频p1中所有车辆进行目标跟踪,得到每台车辆在每一个视频帧中的检测框,检测框中心点表示车辆所在位置,根据第a台车辆在第tf个视频帧和第tf-1个视频帧中位置变化计算出第a台车辆在第tf个视频帧中的速度即即计算过程如下:下:s202、初始化正确行驶方向字典d,将nr个道路区域正确行驶方向设置为(0,0),针对t1个视频帧,使用t1个视频帧中所有车辆的速度方向更新行驶方向字典d中对应道路区域的正确行驶方向。5.根据权利要求4所述的一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述行驶方向字典d的更新过程如下:已知第a台车辆在第tf个视频帧中的速度和位置在道路区域划分图r
road
中查询处的值,得知第a台车辆位于第l
a
个道路区域,l
a
=1,2,...,nr,将速度的方向加到行驶方向字典d中第l
a
个道路区域对应的正确行驶方向上,计算方法如下:对所有交通视频p1中t1个视频帧中所有车辆进行上述处理,得到最终的正确行驶方向字典d。6.根据权利要求1所述的一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述步骤s3过程如下:s301、对交通视频p2的第ts个视频帧fs
ts
中所有车辆进行目标跟踪,得到所有车辆检测框,同时,如果视频帧fs
ts
中第b台车辆第一次出现,则新建第b个逆行情况列表i
b
={z
i
|i∈[0,25],z
i
=0},即初始时所有元素为0,记录第b台车辆逆行情况;s302、将第ts个视频帧和第ts-1个视频帧输入flownet2.0光流网络得到视频帧fs
ts
的光流图flow
ts
,flow
ts
为m
×
n
×
2的三维矩阵,则二维向量flow
ts
(x,y)表示fs
ts
中像素位置(x,y)处的光流,0≤x<m,0≤y<n,根据光流图flow
ts
计算第b台车辆在视频帧fs
ts
中的速度vc
b
,速度vc
b
计算方法如下;假设第b台车辆在视频帧fs
ts
中检测框左上角坐标为(xlt
b
,ylt
b
),右下角坐标为(xrd
b
,yrd
b
),则vc
b
计算过程如下:
s303、查找第b台车辆位置(xc
b
,yc
b
)在道路区域划分图r
road
中对应的道路区域编号,记为l
b
,在正确行驶方向字典d查找第l
b
个道路区域对应的正确行驶方向计算速度vc
b
的方向与正确行驶方向夹角θ
b
的三角函数cosθ
b
,公式如下:如果cosθ
b
>0,认为第b台车辆在第ts个视频帧中逆行,在逆行情况列表i
b
末尾添加元素1;反之在逆行情况列表i
b
末尾添加元素0,最后删除i
b
中第一个元素。7.根据权利要求1所述的一种基于目标跟踪的交通视频逆行事件检测方法,其特征在于,所述步骤s4中,遍历所有逆行情况列表,标注逆行车辆,对单个逆行情况列表的处理过程如下:取第b台车辆对应的第b个逆行情况列表i
b
,检查其中值为1的元素个数占所有元素个数的比例其中z
i
为i
b
中第i个元素,如果比例ratio
b
>50%,认定第b台车辆car
b
是一台逆行车辆,用红色在视频帧fs
t5
中标注出检测框box
b
;反之比例ratio
b
≤50%,认定车辆car
b
是一台正常行驶的车辆,不做任何处理,针对交通视频p2后续视频帧重复执行s3、s4操作,检测出交通视频p2中所有逆行车辆。

技术总结
本发明公开了一种基于目标跟踪的交通视频逆行事件检测方法,该方法步骤如下:S1、对交通视频中道路区域进行划分,得到道路区域划分图;S2、利用目标跟踪,计算道路区域内所有车辆的平均行驶速度,以该速度方向作为道路区域的正确行驶方向,得到正确行驶方向字典;S3、针对交通视频中的所有车辆进行目标跟踪,使用光流法计算车辆当前速度方向并与正确行驶方向比较判断车辆当前帧是否逆行,得到所有车辆行驶情况记录;S4、如果一辆车在1s内半数以上的视频帧中被判为逆行车辆,则该车辆为逆行车辆,在交通视频中进行标示。本发明公开的全自动高速公路逆行检测方法在实际场景应用中验证了检测方法的有效性。检测方法的有效性。检测方法的有效性。


技术研发人员:张星明 花铭阳 王昊翔 林育蓓
受保护的技术使用者:华南理工大学
技术研发日:2023.03.22
技术公布日:2023/7/11
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐