本发明属于图像技术识别领域,具体涉及一种基于视频分析的交通事故检测方法。
背景技术:
社会经济发展水平的不断提高以及科学技术的迅猛发展,给汽车工业带来了非常迅速的发展速度,机动车的数量也日益增加。机动车保有量的增加导致了交通事故的频繁发生,而交通事故直接威胁到了人民的生命财产安全,危害性较大。为了尽量降低交通事故造成的影响和减小损失,亟需控制交通事故的发生率并提高交通事故的处理效率。目前,我国大中小城市的主要道路及交叉口大都安装了监控摄像头对道路进行实时监控,监控覆盖率也在不断增大,但目前发现并处理交通事故的途径,仍然以人工操作为主。基于视频分析的交通事故检测系统对于提高交通交通警察到达事故地点以及交通事故处理的效率就据有重要的意义,在很大程度上决定了事故受伤人员的生命安全、经济损失的大小以及交通拥堵时间的长短。
公开号为cn105405297a的中国发明专利基于光流场,分析视频帧全局的交通流特性及视频帧局部的车辆运动特性构造事故检验模型,检验交通事故是否发生。由于在实际的交通视频监控中存在相机微弱抖动和网络卡顿现象,该方法利用的光流及车辆速度等动态指标将会导致频繁的突变,从而容易导致较多的误报。
近年来深度学习方法在目标检测领域得到了广泛的应用,尽管深度学习在特征提取和目标分类上具有突出的能力,但是其局限性在于训练集中目标检测对象是否充分,会直接影响到最终识别效果,但交通事故场景通常不具备通用特征。所以,这一类相关工作在某些特定场景下识别某些特定种类的事故碰撞场景中有一定的效果,但是仍然不具有较强的泛化能力。
技术实现要素:
本发明的目的是提供一种基于视频分析的交通事故检测方法,利用交通监控视频流数据,可以有效对实时场景中交通事故进行检测及判别,降低环境噪声影响,以提高事故检测准确率及效率,并降低误报率,具有较高的鲁棒性及实用性。
本发明的技术方案如下所示:
一种基于视频分析的交通事故检测方法,包括以下步骤:
s1:获取目标路段的视频流,在视频的画面中配置可停车区域及不可停车区域;
s2:对视频流进行车辆识别,在视频流中生成车辆的定位框;
s3:对定位框进行预处理,并根据预设的时间间隔来周期性的检测定位框,获取定位框的轨迹信息,所述轨迹信息包括该定位框中的车辆id以及若干次的定位框坐标信息,并记录至历史信息记录表;
s4:判断车辆是否处于停车状态,计算车辆的停车信息并记录至停车信息记录表;
s5:判断视频流中任意两车辆是否相遇过,并记录相遇信息至相遇车辆列表;
s6:根据车辆的停车信息获取停车时间的累计值;
s7:对处于停车状态的车辆附近的行人信息进行计算并记录,获取行人停留时间;
s8:根据处于停止状态的车辆的类型判断事故类型,再根据相遇信息、停车时间的累计值、行人信息,判断事故是否发生,发生事故则发出预警,未发生事故则清空缓存结束步骤。
优选的,步骤s2中所述的识别车辆的模型为yolo目标检测模型。
优选的,步骤s4中所述的判断车辆是否处于停车状态的计算包括以下步骤:s4.1:根据车辆id,计算该id下的定位框在预设的时间间隔下的当前定位框位置和上一次检测的定位框位置之间的交并比,若交并比大于设定的交并比阈值的次数满足设定的次数阈值,则判定该id对应的车辆处于初步停车状态,反之则处于启动状态;
s4.2:记录处于初步停车状态的车辆的停车信息,计算处于初步停车状态的车辆的当前定位框位置信息与其车辆id对应的位于历史信息记录表中定位框的首次出现的位置信息的停车距离,若其超过设定距离的阈值,则判定为缓行,排除停车误报,反之则确定当前车辆处于停车状态。
优选的,所述停车信息记录在停车信息列表中,所述停车信息为交并比大于阈值的次数,若被判定为初步停车状态的车辆对应的车辆id已存在,则更新该车辆id下的位置信息和时间信息;针对判定为处于启动状态的车辆对应的车辆id,在停车信息列表中查询是否存在该车辆id,若存在则清除该车辆id下的停车信息。
优选的,步骤s5中车辆是否相遇的具体判断步骤为:针对视频流的前后两帧,计算当前场景中任意两辆车辆之间的定位框交并比,如果定位框交并比大于零,则两车相遇,将相遇的车辆信息记录至相遇车辆列表内。
优选的,所述步骤s6中的停车时间的累计值的计算步骤具体为:
s6.1:判断视频流中的车辆是否处于拥堵状态、排队状态,是则不对车辆进行停车时间的累计;
s6.2:对处于停车状态的车辆进行停车时间的累计,若车辆在视频流中第一次出现和最后一次出现之间的定位框交并比大于设定阈值,则进行停车时间的累计值,根据时间计算时间差获得停车时间的累计。
优选的,所述步骤s7中行人信息的获取步骤为:
s7.1:分离处于停车状态的车辆和其附近的行人;
s7.2:判断行人是否处于处于停车状态的车辆的外接圆内;
s7.3:计算并记录行人处于处于停车状态的车辆的2倍外接圆内的停留时间;
优选的,所述事故类型包括:机动车与机动车事故、机动车与非机动车事故、单车事故;判断停车车辆是否处于拥堵状态,是则只进行单车判断。
优选的,所述机动车与机动车事故和机动车与非机动车事故的判断过程一致,均为:若两车曾相遇,两车停留时间超过30秒,且两车中任一辆附近有行人对因车辆的在2倍外接圆范围内停留时间超过30秒,报出机动车与机动车事故;若两车曾相遇,两车停留时间超过60秒,报出机动车与机动车事故;若两车未相遇,则不进行事故判断。
优选的,所述单车事故的判断过程为:车辆为非机动车或机动车,且车辆的停止时间超过150秒,报出单车事故。
优选的,车辆是否处于拥堵状态的判断方法为:若监控区域内停止车辆不小于预先设置的数量阈值,统计监控区域内的平均车速,所述平均车速小于预先设置的车速阈值,则监控区域发生了拥堵,则判断视频流内车辆处于拥堵状态。
优选的,车辆是否处于排队状态的判断方法为:
拓展定位框的宽度,记录当前场景中在该宽度范围内的车辆至排队列表;
将记录的车辆按照定位框中心点y坐标排序;
判断相邻车辆的交并比是否大于零,若满足条件的相邻车辆的数量超过预设的阈值,则判定为排队状态。
本发明的有益效果为:
1、本发明提供的方法具有实时性高、对环境噪声适应能力强的优点,且在实际检测中准确度高,误报率低。
2、本发明所述的事故分类及判断方法通过调研大量实际现场事故场景进行总结,提出了多套适用于不同事故场景的配置方案,具有推广及实用价值。
附图说明
图1为本发明实施例的步骤流程图。
具体实施方式
下面将结合说明书附图对本发明的实施例进行详细说明。
如图1所示,本发提供了一种基于视频分析的交通事故检测方法,步骤如下:
1、获取视频流并处理,划分停车区域和不可停车区域。
作为本发明的一种实施方式,通过对摄像头获取目标路段的视频进行截图,在视频画面内配置可停车区域及不可停车区域,在交通正向卡口视频监控中,可停车区域为停止线前的停车区、左转待行区,不可停车区域为交叉口内车辆行驶区域;在路中段监控中,视频范围内道路区域一般均为不可停车区域;对配置的可停车区域及不可停车区域设置对应的停车报警时间,该报警时间因不同地点而已,可根据现场报警情况进行调整,本实施例中,不可停车区域配置时间在设置为15秒,可停车区域配置为15秒加上红灯时长。
2、对视频流进行识别,在视频内生成车辆的定位框。
作为本发明的一种实施方式,调用yolov3模型对视频流进行识别,生成对应所述视频流内各个车辆的定位框。
在本发明实施例中,yolo模型输出的结果为:
{a1,a2,..,an},ai={xai,yai,wai,hai};
其中xai,yai分别为目标定位框中心点的横坐标以及纵坐标,wai,hai分别为目标定位框的宽和高,a代表检测结果定位框,为标记符号,a={x,y,w,h},由横坐标、纵坐标、宽、高组成的一个数据结构,表示一个定位框。
3、对步骤2生成的定位框进行预处理,并获得轨迹信息。
作为本发明的一种实施方式,首先计算所述视频流相邻帧中所述定位框之间的交并比,再根据所述交并比大于交并比阈值的定位框生成轨迹信息。
交并比(intersection-over-union,iou),目标检测中使用的一个概念,是产生的候选框(candidatebound)与原标记框(groundtruthbound)的交叠率,即它们的交集与并集的比值。由于在视频流的相邻帧中,对应同一车辆的定位框通常具有较高的重叠,相应的在本步骤中,具体会计算视频流中相邻帧之间定位框的交并比,以通过交并比确定相邻帧对应同一车辆的定位框。
具体的,交并比iou可按下述公式计算:
其中,area(a)以及area(b)分别为视频流前后两帧中定位框的面积,通常计前一帧中定位框为a,后一帧定位框为b。
获取的轨迹信息包括车辆的标识信息及所述车辆的定位坐标信息,轨迹信息用于后续停车信息的判断。
在本发明实施例中,轨迹集队列结构如下:
traceset={trace1,trace2,...tracen};
其中,traceset为轨迹集队列,trace1为第i个轨迹信息,id为车辆跟踪编号,即标识信息;tr为车辆底部中心点坐标,其中m为同一跟踪编号所对应的定位框数量;matstart,matend分为该车辆轨迹起终点图像,用以判断是否跟踪正确;其中x、y、h为定位框的横坐标、纵坐标、高度。
4、判断视频场景是否处于拥堵状态。
作为本发明的一种实施方式,若监控区域内至少存在5辆车,统计监控区域内的平均车速,最近的10次统计中有5次的平均车速小于0.01,在1920*1080视频画面下,像素点位置的偏移速度,本实施例中的车速的单位可定义为像素/秒,则认为监控区域发生了拥堵。
5、判断视频场景是否处于排队状态。
作为本发明的一种实施方式,将视频中的任意一辆车的定位框宽度左右扩展四分之一,计算当前场景中,在该宽度范围内的车辆;并且记录到排队列表中;列表按照中心点y坐标排序;遍历列表,判断相邻车辆的iou是否大于零,如果满足条件相邻车辆超过三辆,则认为是排队状态。
6、判断车辆是否处于停车状态,并计算记录车辆的停车信息。
作为本发明的一种实施方式,本步骤具体如下:
6.1:根据车辆id,存储每个id对应的近20次的位置信息和时间信息至历史信息记录表。
6.2:根据当前的车辆信息,计算每个id对应的当前车辆的定位框位置信息与前一个设定检测时间间隔时刻定位框的检测结果,如果有5次满足iou停车的阈值0.9,初步判定车辆停止。
6.3:将处于停车状态的车辆的停车信息存储到停车信息列表中,如果对应的id已经存在,则更新相应车辆的位置信息和时间信息,并计算相应车辆与其首次出现停车状态的距离,若距离超过预设的缓行阈值,则判定车辆处于缓行状态,此时在停车信息列表中剔除该id的停车信息。
6.4:在停车信息列表中查询是否存在被判定为启动状态的车辆的id,若存在,因此,则清除与该id相关的停车信息。
7、判断视频流中任意两辆车是否相遇。
作为本发明的一种实施方式,本步骤的判断方法具体为:
7.1:针对前后两视频帧,计算当前场景中任意两辆车的iou。
7.2:如果iou大于零,则说明这两辆车相遇了,将相遇的车辆信息记录至相遇车辆列表内。相遇的车辆信息为一个元组(车辆a,车辆b),用于标记a、b两辆车曾经有过靠近的行为,用于疑似事故车辆判断的条件之一。
8、计算停止车辆的的停车累计时间。
8.1:首先停车信息记录表记为stoplist,历史记录信息列表记为prevlist,prevlist记录每个车辆id最近的20次记录;
8.2:遍历stoplist,对每一个停止车辆进行时间累计;
8.3:如果车辆的面积小于1500像素,认为是远处的车辆,不进行时间累计;
8.4:如果车辆所在位置判断为排队状态,则不进行时间累计;
8.5:根据车辆的跟踪id,找到对应的历史记录,如果第一次出现与最后一次出现之间的iou小于0.7,说明车辆移动,不需要进行停车时间累计;如果iou大于0.7,则跟踪id可能发生了变化,需要时间累计;
8.6在stoplist中,查找与该车iou大于0.7的停止车辆,并存到临时列表中,记为templist,templist按照id的大小,从大到小排序;
8.7:循环遍历templist,那么根据id,从prevlist中找到历史记录信息,如果历史记录中与该车的iou大于0.8的比例超过90%,则记录时间累计信息,否则不进行累计,退出循环;
8.8对于步骤8.7在遍历templist时,判断id最大的车辆是否从远处驶来,如果是远处驶来的,比例大于90%则退出循环。
9、记录停止车辆附近的行人信息。
作为本发明的一种实施方式,本步骤的具体过程为:
9.1:分离出停止车辆和该场景中的行人;分别计算每个停止车辆周围的行人信息;并存储一个map,记为stoppersonsmap,每个车辆对应一个行人信息列表;
9.2:以停止车辆c为例,首先在stoppersonsmap查找是否存在对应的信息,如果存在,则遍历当前行人列表,对每个行人判断在c车对应的行人列表,是否已经存在,如果已存在,则计算这个行人在c车2倍外接圆内停留的时间;不存在,则判断是否在c车的外接圆内,在外接圆内就记录行人信息;
9.3:如果在stoppersonsmap没有找到c车对应的行人信息,则需判断行人是否在c车的外接圆内。
10、根据上述得到的信息对交通事故类型进行分类。
假设时间阈值30秒,以停止车辆d、停止车辆e为例;
如果当前场景判断为拥堵状态,则只进行单车事故判断;
(1)机动车与机动车事故
1)、d车与e车全部为机动车,不满足这个条件不做判断;
2)、如果d车与e车,曾经相遇,则进行事故判断,否则不做判断;
3)、如果d车与e车,曾经相遇,两车停止时间都超过30秒,并且d车或者e车周围有某个行人在2倍外接圆范围内停留了30秒,就报出机动车与机动车事故;
4)、如果d车与e车,曾经相遇,两车停止时间都超过60秒,则报出机动车与机动车事故。
(2)机动车与非机动车事故
1)、d车与e车其中有一个是机动车,另一个是非机动车,不满足这个条件不做判断;
2)、如果d车与e车,曾经相遇,则进行事故判断,否则不做判断;
3)、如果d车与e车,曾经相遇,两车停止时间都超过30秒,并且d车或者e车周围有某个行人在2倍外接圆范围内停留了30秒,就报出机动车与机动车事故;
4)、如果d车与e车,曾经相遇,两车停止时间都超过60秒,则报出机动车与非机动车事故。
(3)单车事故
车辆是机动车或者非机动车,不满足这个条件不做判断;例如d车停止时间超过150秒,则报出单车事故。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。