陈鹏展,余杰杰
(华东交通大学 电气与自动化工程学院,江西 南昌 330013)
随着经济的不断发展、城市化进程的推进,交通拥堵问题逐渐突显出来,关于交通拥堵的研究也逐渐受到重视。刘梦涵等[1]采用Wald检验对行程速度、停车时间、停车次数、延误比和出入口密度这5个代表道路运行状态的自变量进行了筛选,并最终确定以行程速度为自变量,设计了基于累积Logistic回归的道路交通拥堵强度评价模型。He等[2]利用由平均行驶速度和最大允许道路行驶速度组成的速度性能指标将交通状况分为4种情况,再引入路段和道路网拥堵指标,对北京高速公路在春夏秋冬、工作日和休息日、上午和下午等各个时段的拥堵案例进行了分析。Zhang等[3]以城市主干道的交通流量、交通流密度和交通流速度作为基本属性来判别聚类优先级,提出了灰色关联隶属等级聚类算法,来分析城市交通拥堵情况。Khan等[4]提出了CVT-AI方法,通过将联网车辆技术(Connected Vehicle Technology,CVT)和人工智能(Artificial Intelligence,AI)结合,计算道路网络的交通密度,进而评估交通状况。Wang等[5]首先提出了一种拥堵定义,然后将交通拥堵分析作为回归问题处理,并构建了由20个不同场景构成的数据集,利用低级纹理特征和核回归来检测交通拥堵程度,同时通过局部约束距离度量学习来减少不同场景之间的影响。雷斌等[6]设计了一种基于改进的K近邻(K-Nearest Neighbor,KNN)非参数和小波神经网络加权组合模型,以交通流量、车道占有率和平均车速等作为主要特征参数,来预测短时交通流。Kan等[7]提出了一种在弯道处检测交通拥堵的方法,对出租车的GPS轨迹有效数据进行分析,将拥堵划分为了3个等级,通过聚类方法判别各个转弯方向上的拥堵事件,并以武汉道路交叉口为例,对其发生拥堵的时间和各个转弯方向上的排队长度进行了探索和分析。
文献[1]~文献[7]对道路交通拥堵分析做出了极大贡献,但仍存在以下问题。
① 需要监测道路交通流量和平均车速等交通要素,检测设备成本较高。
② 研究对象是一段时间内的道路交通情况,实时性较差。
③ 从道路段、道路网的角度分析和预测道路交通情况,对用户当前所处的道路点的交通情况无法做出分析,不能为车辆实时操作(加速、减速等)提供参考依据。
针对这些问题,本文首先提出用户当前所处道路的拥堵评价指标,同时,提出了一种基于用户视角、车载视频图像作为输入,结合视频图像中车辆车距、车道信息等交通要素和LSTM(Long Short-Term Memory,长短期记忆)网络的道路拥堵分析模型。该模型能够实时分析用户视角的交通要素,实时性较高,检测成本较低,可以为无人驾驶汽车[8]和车辆驾驶员提供交通要素分析结果。最后用训练好的模型在多种场景组成的样本中进行了测试,并达到了较好的效果。
随着深度学习的不断发展,许多目标检测算法相继被提出,其中YOLO(You Only Look Once)系列[9-11]的性能尤为突出。其网络结构比较简单,具有45~90 f/s的检测速度,能够对视频中的车辆目标进行检测,符合实时性的基本要求。YOLO是一种基于回归的目标检测算法,对于一张测试图片,最终输出目标边框的5个参数分别为x、y、w、h、C。目标边框的置信度为C,中心点的横纵坐标为x、y,宽和高分别为w、h。通过输出的目标框参数可知,车辆底线纵坐标为
yb=y+h/2
(1)
本文的车辆检测模型采用最新的YOLOv3网络架构,相比于YOLO和YOLOv2,其在保持检测速度的同时进一步提升了目标检测的准确性。数据集为KITTI目标检测数据集,首先将其格式转化适合YOLOv3网络架构的Pascal VOC(Visual Object Classes)数据集格式,并对目标类别进行简化统一,转换后的数据集标签为车、行人和骑自行车的人3类。选取数据集中5984张图片为训练集,749张图片为测试集;然后设置配置文件,类别数改为3,学习率为0.01,最大迭代次数为4000;最后加载预训练卷积权重文件进行训练,完成训练后测试准确率为89.96%,基本可以满足道路上车辆检测的要求。
为简化实验模型,本文使用一种建立约束区域的Hough变换方法[12],根据摄像头参数,选取约束值n,约束区域即为图像下方的1/n。Hough变换只在选取的约束区域内进行,计算量相对减小、符合实时性基本要求,同时根据车道车分布的特性,减少了其他非车道线区域的干扰,提升了准确率。车道线检测流程图如图1所示。
图1 车道线检测流程图
其中,图1(a)彩色原图经过滤波降噪得到图1(b)灰度图,然后由Canny边缘检测区域选择得到图1(c),约束域选择结果如图1(d)所示,再经车道拟合得到图1(e),最终车道检测结果图如图1(f)所示。检测到的车道线分别以直线方程L1、L2表示,两直线交点即车道消失点用坐标点(xh,yh)表示。
由于本文模型在估测车距后会做优化处理,因此采用文献[13]提到的简易测距方法,摄像头与前方目标车辆几何位置关系如图2所示,从图2中几何关系可求得摄像头与前车的距离为
图2 利用针孔摄像机几何结构估算图像中车辆位置距离
(2)
式中,Fc为摄像头焦距;Hc为摄像头高度;θ为摄像头与水平方向的俯仰角;yb为车辆底线纵坐标;yh为车道线消失点的纵坐标。当摄像头俯仰角θ较小时,式(2)可化简为
(3)
而实际情况中车载摄像头的俯仰角θ非常小,因此在摄像头Fc和Hc相关参数不变的情况下,目标车辆距离可以通过车道线消失点的纵坐标yh和车辆底线纵坐标yb推导得出。目标位置中间点(x,y)可以作为车辆等效位置像素点O,结合车道线L1、L2,点O与L1、L2的相对位置可以通过几何关系求得,进而判断出目标车辆与车道的位置关系。
根据车辆与车道之间的相对位置关系,结合估测的车距,形成车距矩阵。对于车道数为N的场景,与之对应的车距矩阵为N维。假设20为单车道车辆数最大值,车辆数不足20时补零处理,则3行20列的车距矩阵示例为需要说明的是,当前车与测试车辆在不同车道时,二者间垂直距离用测得的直线距离代替(垂直距离仅估算即可),其中非零元素代表前方车辆车距,主车道M0上,测试车与前车车距依次为2.74,7.55,16.93,24.36,25.24 m;侧车道M1上,测试车与前车车距为4.16 m;侧车道M2上,测试车与前车车距为1.76 m。对应测试样本图如图3所示。
图3 测试样本
图3中的车辆上方对应的数字是距车载摄像头的直线距离,在实际的驾驶环境中,基于当前用户视角下,前方车辆会出现被遮挡的情况,被遮挡的车辆无法被车载摄像头检测到。仅通过检测到的车辆来判断道路拥堵情况,与实际情况相差较大。因此,本文对车距矩阵进行均值优化后,再进行补零处理。
① 记两车之间车距的平均值为davg。
② 对于第N行第i个车距值,记d0=0,若di-di-1>2·davg,则在di前面插入数值(di-1+davg)。
③ 插入数值后,更新第N行,如果第N行元素个数少于20,或插入的数值小于100时,重复操作②。
④ 完成插值后,元素个数不足20补零处理,其他行元素优化处理同上,直到完成优化为止。
上述测试样本图3对应的车距矩阵经过优化后,如表1所示。与经图像测得的初始车距矩阵相比,经过优化的车距矩阵在保留测得的车距信息的同时,更符合实际的道路车辆分布。
表1 优化后的车距矩阵 单位:m
当前提出的道路拥堵评估模型,没有统一的评价指标。本文提出了基于用户视角的对当前道路场景的拥堵评价指标。
2.1.1 车辆间拥堵
根据查阅的相关文献,天气情况、道路类型、行车速度和加速度等诸多因素都会影响安全车距。为了简化模型,车辆行驶速度低于40 km/h时,记安全车距为30 m,可认为存在一定程度的道路拥堵;对于前方相邻两辆车,若二者之间车距小于驾驶舒适车距,则此情况造成一定程度的拥堵,相反则不会影响交通拥堵情况。对于前方相邻两车,拥堵指标如下:
s=λsd
(4)
(5)
式中,λ为舒适系数;sd为低速行车时的安全车距,这里取30;s为驾驶舒适车距;cn为前方第n辆车造成的拥堵程度;dn为第n辆车与用户间距离,当n=0时,dn=0。
2.1.2 单车道拥堵指标
在前方总计N辆车的单车道上,所有车辆累积所造成道路拥堵计算公式为
(6)
式中,an为车距影响系数,与车距dn成反比。基于当前用户视角来说,前方车辆距离越远,其车辆间拥堵指数对当前用户使用车道影响作用越小,对应的an值也越小。
2.1.3 多车道拥堵
在实际道路行驶中,用户是否处于拥堵场景,主要取决于同向行驶的车辆分布,因此,本文模型的检测对象为前方同向行驶的车辆。在多车道场景行驶情况下,当前用户车辆的车道为主车道,其他为次车道,各个车道拥堵指数同单车道拥堵方式计算,当车道数为m时,当前道路拥堵指数为
(7)
式中,C0、Ci分别为主车道、次车道拥堵指数;b0、bi分别为对应车道的车道影响系数,且b0>bi,各系数之和为1,即b0+b1+bi+…+bm-1=1。
假设最拥堵情况是每条道路20辆车在100 m内均匀分布,依据本文提出得道路拥堵指标,可得最大拥堵指数Cmax。本文将道路拥堵情况分为5个级别,分别是非常畅通、畅通、拥堵、比较拥堵和严重拥堵,如表2所示。
表2 拥堵等级划分
根据拥堵指数比值C/Cmax,当前道路拥堵情况可分为5个级别;当C/Cmax>1,即当前道路拥堵指数C大于最大拥堵指数Cmax时,属于严重的道路拥堵情况。
经过多个分类模型的对比实验分析,本文选择了效果较好的LSTM 网络。LSTM网络由Hochreiter等[14]提出,以解决循环神经网络长期依赖的问题,LSTM网络模块示意图如图4所示。
图4 LSTM网络模块示意图
在LSTM网络模型中,记忆单元的输出通过以下公式迭代计算:
ft=σ(Wf·(ht,xt)+bf)
(8)
it=σ(Wi·(ht-1,xt)+bi)
(9)
(10)
(11)
ot=σ(Wo·(ht-1,xt)+bo)
(12)
ht=ot·tanh(Ct)
(13)
本文依据提出拥堵的指标构建了单车道、双车道和三车道三类道路交通场景的矩阵数据集,其包含了非常畅通、畅通、拥堵、比较拥堵和严重拥堵5种交通情况,其各种交通情况由多类道路交通场景多个矩阵表示,共有矩阵7000个。实验基于Window 7系统(双核1.6 GHz CPU,12 GB内存)、以Python编程语言完成训练。
依据文中拥堵评价指标,道路拥堵情况被分为多个等级,道路拥堵研究由分析问题最终转变成分类问题。本文基于用户视角,利用LSTM分类网络搭建了道路拥堵分析模型,如图5所示。
图5 道路拥堵分类流程图
首先,视频图像输入到训练好的YOLOv3车辆检测网络,同时利用建立约束区域的Hough变换检测车道线,可获得车辆位置、车道线和车道线消失点;然后依据车距估测方法获得相关车距信息,同时根据车辆、车道线图像坐标关系可判断出车辆与车道的位置关系;接着根据车距、车辆与车道线位置关系,可以组合得到车距矩阵;最后将车距矩阵作为训练好的LSTM分类网络的输入,可输出当前道路情况拥堵分类结果。
为了验证本文提出的判断道路交通拥堵的方法,测试样本选取了12段车道线比较明显的车载视频,并且与传统的KNN算法、SVM分类模型进行对比分析。其中,5个道路拥堵等级的待测试样本各占400份,部分测试样本如图6所示。
图6 部分实验测试图片
采用传统的KNN算法和SVM(Support Vector Machine,支持向量机)分类模型对5类道路拥堵等级进行试验,结果分别如表3、表4所示。本文提出的基于LSTM道路拥堵分类模型的测试结果如表5所示,其对5类道路拥堵准确判断数分别为367、323、324、362、384,分类效果较好。
表4 SVM分类模型
表5 LSTM分类模型
根据传统的KNN算法和SVM分类模型分类结果可知,这两种分类算法对非常畅通和严重拥堵分类效果相对较好,分类准确率相对较高;对处于中间拥堵等级的分类,错误类别较多,错误数较高,分类效果相对较差。
将表5与表3、表4测试结果综合对比可知,本文提出的基于LSTM网络的道路拥堵分析模型对各个拥堵等级的分类正确数都相对较高,并且对处于中间较难区分的道路拥堵等级也有相对较好的分类效果。汇总KNN算法、SVM分类模型和本文模型对道路拥堵识别率,如表6所示。
表6 拥堵等级识别率汇总
根据表6可知,在5个拥堵等级的样本测试结果中,本文模型识别准确率均为最高,平均识别率达到了88%,平均识别率比传统KNN算法提高了10.35%,比SVM分类模型提高了20.95%。与传统KNN算法和SVM分类模相比,本文模型对处于中间较难区分的道路拥堵等级,也有相对较好的识别率。该测试结果说明,相比于传统KNN算法和SVM分类模型,基于LSTM分类模型更适合作为道路拥堵分类模型。
本文提出了基于用户视角道路拥堵评价指标,采用了基于用户视角分解道路交通要素和LSTM网络相结合的道路拥堵分析模型。本文模型基于用户视角在当前时刻进行道路拥堵分析,解决了传统方法分析一段时间内道路网交通要素实时性差的问题。将本文模型在测试样本图中进行测试,识别率达到了88%,验证了基于用户视角分解道路交通要素和LSTM网络相结合的模型在道路拥堵分析上有较好的效果。在今后的研究中,道路交通要素分解的优化将成为笔者研究工作的重点,将尽力从实时视频中实现用户视角分析当前道路拥堵情况,进一步改善实时性的问题。