1.一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,包括如下步骤:
1)相机预置位设置以及相机标定;
2)卷积神经网络模型初始化;
3)获取当前视频帧与视频帧时间;
4)检查相机工作状态;
5)使用卷积神经网络模型对兴趣区域ROI进行车辆目标检测;
6)维护静态目标跟踪队列;
7)拥堵区域检测;
8)拥堵状态上报。
2.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤1)中,所述的相机预置位为进行拥堵区域检测时相机所处的固定位置。
3.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤1)中,所述的相机预置位设置为将摄像头调整到合适的交通拥堵区域检测位置,并将当前相机位置设置为预置位。
4.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤1)中,所述的相机标定为截取相机视频流的一帧图像,在其上进行车道线、兴趣区域ROI、多个拥堵检测区域的标定,并且拥堵区域要求单车道上可容纳3辆车。
5.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤2)中,所述的卷积神经网络模型为YOLOv3,卷积神经网络模型初始化为卷积网络模型加载到GPU显卡中以及权重参数恢复。
6.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤4)中,所述的检查相机工作状态具体包括以下步骤:
4.1):获取当前相机的位置信息,与预置位比较是否相同,若相同则进行拥堵区域检测;否则,不进行拥堵区域检测;
4.2):计算当前视频帧时间Tcur与前一帧时间Tpre的时间间隔Tspace,单位均为秒,根据公式(1)计算:Tspace=Tcur-Tpre (1)
若Tspace≥3,则将静态目标跟踪队列重置;否则,进行正常的拥堵区域检测。
7.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤6)中,所述的维护静态目标跟踪队列包含以下步骤:
6.1):得到当前帧的车辆目标检测结果后,过滤掉不在车道线内以及拥堵检测区域内的车辆;
6.2):基于检测的静态目标匹配:
6.2.1):计算当前帧检测到的车辆目标D和跟踪队列中目标Q的IoU和宽高误差Ew、Eh;
IoU根据公式(2)计算:
其中,Dbox为当前帧的车辆目标D的边界框box,Qinit_box为跟踪队列中目标Q的初始边界框init_box,∩为求交集,∪为求并集;
宽高误差Ew、Eh分别根据公式(3)、公式(4)计算:
其中abs()为求绝对值,Dw和Dh分别为当前帧的车辆目标D边界框box的宽高,Qw和Qh分别为跟踪队列中目标Q边界框box的宽高;
6.2.2):如果IoU≥IoUthreshold,Ew≤Ew_threshold,Eh≤Eh_threshold,则认为D和Q是同一辆车且是静止车辆,将Q标记为当前帧已检测;否则,则将该车辆目标D加入跟踪队列中,初始box为当前目标D的box,初始图像为当前视频帧,初始时间Qinit_time为当前视频帧的时间;其中IoUthreshold,Ew_threshold,Eh_threshold为预先设置的阈值,IoUthreshold的取值范围为0~1.0,Ew_threshold和Eh_threshold的取值要求大于等于0;
6.3):维护跟踪队列:若跟踪队列中存在跟踪目标Q在当前帧中没有检测到、且前Errortolerate_frame帧也没有得到更新,则认为该目标已经移动,并将该跟踪目标Q从跟踪队列中移除;其中Errortolerate_frame为预先设置的可调值,其取值范围为Errortolerate_frame≥1。
8.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤7)中,所述的拥堵区域检测包含以下步骤:
7.1):判断跟踪队列中的目标是否为拥堵单元:跟踪目标Q的停留时间During≥Thresholdduring,则认为该目标为拥堵单元;其中Thresholdduring为预先设置的可调值,单位为秒,其取值范围为Thresholdduring≥1;
停留时间During根据公式(5)计算:
During=Tcur-Qinit_time (5)
其中,Tcur为当前视频帧时间,Qinit_time为跟踪目标Q的初始时间;
7.2):拥堵区域检测:如果在拥堵检测区域中同一个车道内存在ThresholdnumPerLoad个拥堵单元,或者该拥堵检测区域总共存在Thresholdtotal个拥堵单元,则判断该拥堵检测区域为拥堵;其中ThresholdnumPerLoad,Thresholdtotal为预先阈值的阈值,其取值范围为ThresholdnumPerLoad≥1,Thresholdtotal≥1;
7.3):多级拥堵判断:如果当前拥堵检测区域堵塞或者存在Thresholdnum个拥堵目标,则进入下一个后方拥堵检测区域拥堵判断,需要上报的拥堵区域集合为P={areai|i<n};
其中areai表示第i个拥堵检测区域,拥堵检测区域按行驶方向从前往后编号,n为当前检测到的最后方的拥堵区域编号;Thresholdnum为预先阈值的阈值,其取值范围为Thresholdnum≥1。
9.如权利要求1所述的一种基于深度学习的交通拥堵区域实时检测方法,其特征在于,步骤8)中,所述的拥堵状态上报包含以下步骤:
8.1):得到最后拥堵的拥堵检测区域集合P后,进行拥堵上报条件判断:如果上一帧不拥堵、且当前为拥堵,则进行上报;如果上一帧存在拥堵且和当前拥堵区域集合P相同、且拥堵间隔满足TcongestSpace≥ThresholdsaveInterval,则进行上报;如果上一帧存在拥堵且和当前拥堵区域集合P不相同,若拥堵间隔满足TcongestSpace≥ThresholdtolerantInterval,则进行上报,若拥堵间隔不满足TcongestSpace≥ThresholdtolerantInterval,则将当前拥堵区域集合强行置为上一次拥堵区域集合,但不进行上报;其中ThresholdsaveInterval,ThresholdtolerantInterval为预先阈值的阈值,单位为秒,其取值范围为ThresholdsaveInterval≥1,ThresholdtolerantInterval≥1;
拥堵间隔TcongestSpace根据公式(6)计算:
TcongestSpace=Tcur-TlastCongest (6)其中Tcur为当前帧时间,TlastCongest上一次汇报拥堵的时间;
8.2):如果需要进行拥堵状态上报,在拥堵区域arean中选择停留时间最短的拥堵目标Qmin,在Qmin的初始视频帧和当前视频帧上绘制出当前的拥堵区域集合P,并在视频帧底边添加视频帧时间和地点信息后将两张图像左右排列合并,最后将拥堵信息以及合成图进行上报。