公路交通科技  2022, Vol. 39 Issue (3): 176-182

扩展功能

文章信息

施俊庆, 陈林武, 李素兰, 孟国连, 夏顺娅
SHI Jun-qing, CHEN Lin-wu, LI Su-lan, MENG Guo-lian, XIA Shun-ya
基于CNN的城市道路交通事件检测算法
Urban Road Traffic Incident Detection Algorithm Based on CNN
公路交通科技, 2022, 39(3): 176-182
Journal of Highway and Transportation Research and Denelopment, 2022, 39(3): 176-182
10.3969/j.issn.1002-0268.2022.03.022

文章历史

收稿日期: 2020-09-29
基于CNN的城市道路交通事件检测算法
施俊庆1,2 , 陈林武1 , 李素兰3 , 孟国连1 , 夏顺娅1     
1. 浙江师范大学 工学院, 浙江 金华 321004;
2. 浙江师范大学 浙江省城市轨道交通智能运维技术与装备重点试验室, 浙江 金华 321004;
3. 武汉市桥梁维修管理处, 湖北 武汉 430014
摘要: 交通事件检测是预防和缓解城市路网偶发性交通拥堵的重要手段。基于卷积神经网络(CNN)和浮动车数据(FCD), 提出1种改进的城市道路交通事件检测算法, 形成城市道路交通流的时空特征与交通事件之间的映射关系。将道路按照交叉口分段设置, 重构具有时空特征的多维信息输入张量, 通过时空矩阵来描述完整的道路交通流时变信息。在隐藏层和输出层的计算中, 利用多层卷积-池化结构提取数据高层次特征, 选取ReLU作为卷积层激活函数, 采用最大池化函数作为池化层计算依据, 使用激活函数实现全连接层的非线性映射, 利用SoftMax函数计算输出层, 并通过误差计算修正隐藏层的权值。以武汉市出租车轨迹数据和部分交通事故数据对算法的有效性进行验证, 其中的70%作为训练集, 30%作为测试集。结果表明: 相较于传统的BP算法, 本算法的事件检测率达85.33%、误报率为2.80%, 精确度为95.52%, 各项性能指标均有所提升, 能较好地适用于城市道路交通事件检测; 多层网络结构能够更好地提取城市道路交通流的时空特征, 充分学习交通流的周期性变化规律, 更好地识别早晚高峰和交通事件造成的交通流异常现象。
关键词: 城市交通     检测算法     卷积神经网络     交通事件     浮动车     深度学习    
Urban Road Traffic Incident Detection Algorithm Based on CNN
SHI Jun-qing1,2, CHEN Lin-wu1, LI Su-lan3, MENG Guo-lian1, XIA Shun-ya1    
1. School of Engineering, Zhejiang Normal University, Jinhua Zhejiang 321004, China;
2. Key Laboratory of Intelligent Operation and Maintenance Technology & Equipment for Urban Rail Transit of Zhejiang Province, Zhejiang Normal University, Jinhua Zhejiang 321004, China;
3. Wuhan Bridge Maintenance Management Office, Wuhan Hubei 430014, China
Abstract: Traffic incident detection is an important means for mitigating and preventing non-recurrent traffic congestion in urban road network. An improved urban road traffic incident detection algorithm based on CNN and floating car data (FCD) is proposed to map the spatiotemporal features of the urban road traffic flow data and the traffic incident. The road sections are set according to intersections, the multi-dimensional information input tensor with spatiotemporal characteristics is reconstructed, and the complete time-varying information of road traffic flow is described by spatiotemporal matrix. In the calculation of hidden layer and output layer, the high-level features of data are extracted by using multilayer convolution-pooling structure. Selecting ReLU function as the activation function of the convolution layer, adopting the maximum pooling function as the calculation basis for the pooling layer, and the nonlinear mapping of the fully connection layers is realized by using activation function. The output layer is calculated by using SoftMax function, and the weight of the hidden layer is corrected by error calculation. The taxi data and the partial traffic accident data of Wuhan City are served as a case to verify the algorithm's effectiveness, 70% of which are used as the training set and 30% as the test set. The result shows that (1) Compared with the traditional BP algorithm, the proposed algorithm could improve the performance of all indicators, including incident detection rate of 85.33%, false alarm rate of 2.80%, and accuracy of 95.52%, which is more suitable for urban road traffic incident detection; (2) the multi-layer network structure could better extract the spatiotemporal features of urban road traffic flow, thoroughly learn the periodic variation of traffic flow, and better identify abnormal traffic flow caused by traffic incidents or peak hours.
Key words: urban traffic     detection algorithm     convolutional neural network (CNN)     traffic incident     floating car     deep learning    
0 引言

城市道路发生交通事件之后,往往会造成道路通行能力下降,形成偶发性交通拥堵。如果不能及时有效地处理交通事件,可能会造成交通拥堵恶化,导致路网内的大面积拥堵,严重时可导致交通瘫痪。及时有效地检测并疏导城市道路交通事件,是缓解城市交通拥堵的有效途径,也是交通管控的重要组成部分。

交通事件检测分为非自动检测和自动检测两种。非自动检测以人工的方式来检测并报告交通事件。自动检测通过识别和分析交通流参数的变化来判别交通事件,主要包括比较算法、统计算法和时间序列算法等[1]。比较算法中的加州算法是最早也是最典型的交通事件自动检测(Automatic Incident Detection, AID)算法,该算法根据相邻检测器之间的占有率差值判别交通事件[2]。在此之后又相继出现了多种算法,如对加利福尼亚算法进行改进的多目标事件检测算法(APID) [3]、贝叶斯算法[4]、标准正态偏差算法[5]、随机森林法[6]、小波变换理论算法[7-8]和粒子群算法SVM模型[9]等。上述方法在高速公路以及城市快速路系统中得到了很好的应用[10]

大多数AID算法都以感应线圈检测器数据为主。随着GPS设备的不断完善,通过浮动车数据(Floating Car Data, FCD)能够更为精确实时地获取车辆信息(如位置、速度和行驶方向等),且成本更低,为事件检测提供了新的契机[10]。同时,有研究证明浮动车能够充分监控道路中的交通变化[11],已被广泛用于交通状态的判别[12-15]。文献[12-13]利用浮动车数据进行了交通状态的判别,研究了拥堵传播规律。文献[14]分析了高速公路上FCD比例对交通状态判别的影响,结果显示使用5%~10%渗透率的FCD就能准确估测交通状态。

近年来,卷积神经网络(Convolutional Neural Network, CNN)在多目标识别和分类领域中的优异性能,使其备受关注,在交通预测和评估领域得到了广泛应用,比如道路车速预测[16-17],行程时间预测[18]和交通流预测[19]等。针对事件检测领域,通常将CNN与视频监控数据相结合来进行交通事件的检测[20];也有研究将采集到的检测器数据转化为对应的二维灰度图片数据,实现多路段异常交通状态的判断,但算法未能充分考虑数据的周期性变化[21]

然而,现阶段的大多数算法并不能很好地诠释道路网络的空间相关性,且大多数算法是围绕高速公路或城市快速路的交通事件检测展开研究,少有对信号控制条件下的城市道路交通事件进行研究。本研究利用浮动车数据,分析交通流的时空依赖性,重构城市道路交通流时空特征信息,提出了一种基于CNN的城市道路交通事件检测算法,并利用武汉市江汉区实测数据对算法性能进行验证。

1 基于CNN的交通事件检测算法设计

传统神经网络各层连接形式均为全连接,同时隐藏层层数相对较少。CNN与传统神经网络的主要区别在于它在全连接层之前增加卷积-池化层,通过重复使用卷积和池化操作进行特征提取,使得网络中的高层结构能够更好地获得底层信息,从而组合低层特征来构造高层特征。

在构建CNN交通事件检测算法时,首先提取算法输入张量,其次构建CNN隐藏层结构,提取数据特征,然后训练检测模型,学习交通信息的时空关联性,最后对算法性能进行测试,分析评价算法检测效果。

1.1 交通信息张量提取

Ma等[16]用一个时空矩阵来记录时间序列下不同道路空间中的交通信息。本研究将道路按照交叉口分段设置,通过时空矩阵来描述完整的道路交通流时变信息。因此,CNN的输入张量可用XRn×k×u表示,其中n表示通道数,k×u为时空矩阵。道路网中单通道矩阵X形式如公式(1)所示。

(1)

式中,xku为路段u在时间k下的交通信息数据值。

1.2 隐藏层与输出层计算

CNN的隐藏层包括卷积层、池化层和全连接层等,通过前向传播和后向传播两个阶段,对结构层中的参数进行更新。前向传播是将输入层信息经过各隐藏层计算,传输至输出层给出输出结果。反向传播是通过梯度下降法对CNN中各层参数进行更新修正,极小化损失函数,最大限度地保证输出结果与预期结果相一致[22]

卷积层是CNN模型中最为核心的一层,由若干个神经单元组成。假设与卷积层(第l层)直接相连的输入张量为XlRn×p×q,其中,pq分别为矩阵高度和宽度。第l层激活函数输出al的计算如公式(2)所示。

(2)

式中,f为激活函数;WlRm×h×h为卷积核的权矩阵(即,滤波器);m为滤波器个数;h为滤波器的尺寸;bl为卷积层的偏执;⊗为卷积运算。常见的激活函数有ReLU,Sigmoid,Tanh和Softmax等。其中,激活函数ReLU: f(x)=max(x, 0)相较于其他函数收敛速度更快[23],因此本研究选取ReLU作为卷积层激活函数。

池化层位于连续的卷积层中间,用于压缩数据和网络中的参数数量,实现一定的尺度空间不变性,并在一定程度上防止过拟合。常用的池化函数有最大池化和平均池化。以最大池化函数(=max(cij))为例,其中,Rw×w为池化窗口的输出;w为窗口尺寸;cij为窗口对应区域内的元素。池化窗口以一定步长遍历卷积层输出,并以窗口经过的每个区域内最大值作为输出值。

全连接层各层之间所有神经元相互连接,并使用激活函数实现非线性映射。第l层激活函数输出al的计算如公式(3)所示。

(3)

式中,zl为全连接层(第l层)的原始输出;Xl为全连接层输入。

输出层使用Softmax函数计算不同类别的概率分布,并选择最大概率类别作为输出,具体计算如公式(4)所示[23]

(4)

式中pj为第j类别输出的概率;zj为第j类别输出值;O为类别总数,且所有类别概率累加和为1。

1.3 隐藏层的权值修正

输出与期望之间的误差计算如式(5)所示。

(5)

式中j类别输出的期望概率。

全连接层之间的参数梯度如式(6)所示:

(6)

式中,δl为第l层原始输出的误差;·为矩阵Hadamard乘积。

对于池化层,直接将误差反向传播至上一层,无需校准全矩阵。

对于卷积层,各参数的梯度计算如式(7)所示。

(7)

式中*为互相关运算。

各层的权值修正如式(8)所示。

(8)

式中,β为学习速率;λ为正则化参数;M为样本数。

1.4 算法流程

Step 1:初始化各层网络及其参数(权值、阈值、滤波器尺寸、池化窗口尺寸等)和学习速率,转至Step 2。

Step 2:输入数据按前向传播过程依次经过卷积层、池化层、全连接层,并计算得到输出数据,转至Step 3。

Step 3:计算网络输出与期望之间误差,转至Step4。

Step 4:误差是否大于期望值。是,按反向传播过程将误差传回网络中,依次求得全连接层、池化层、卷积层误差,并更新各层的参数(权值、偏执等),转至Step 5;否,结束训练,固定模型各参数。

Step 5:根据各层误差更新相关权值,转至Step 2。

1.5 算法评价指标

本研究通过精确度、检测率、误报率F1值等常用的评判指标,评价所提出的算法检测性能。PreDRFAR能够反映事件检测算法的有效性,F1是精确度和检测率的调和平均值,能够评价算法的综合性能。

2 试验与分析 2.1 原始数据分析

本研究采用武汉市2019年4,5,6这3个月的浮动车数据(约1.8万辆出租车)和江汉区青年路的交通事故数据(约1 000条),对所提出的检测算法进行测试。研究区域道路结构如图 1所示。

图 1 道路结构 Fig. 1 Road structure

以某一起事故为例,2019年4月10日20:48:05接到报警“青年路常青路路口鄂A小型汽车号牌的士与渣土车擦碰”。根据事件信息,选取4月9日和4月10日20:15—21:45之间90 min的浮动车数据,计算该路段的行程速度,如图 2所示,与相同时段无事故时相比,事故路段浮动车速度有一个明显的下降过程。

图 2 路段速度变化 Fig. 2 Speed variations on road section

研究道路事故统计如图 3所示,速度特性如图 4所示。根据事故数据的初步统计,事故发生时间、地点随机性较大,每日事故量差距较小,且事故程度适中,总体工作日事故发生频率较高。本研究使用的浮动车数据采样时间为10~15 s,并以每5 min为间隔上传1次。因而本研究根据获取得到的所有FCD,以5 min为单位计算道路区间平均速度,由图 4可以发现,每日平均速度变化趋势较为稳定,周末相较于工作日早高峰有所延后。

图 3 交通事故周分布 Fig. 3 Weekly distribution of traffic accidents

图 4 路段速度变化 Fig. 4 Speed variations on road section

2.2 参数设置

将研究区域(青年路及部分相交道路)按交叉口划分为24个子路段,根据FCD上传时间间隔,以5 min为单位计算各子路段平均速度,将1天划分为288个时段。为提高算法精度,以20 min为单位,将1天划分为285个时间片段,如第1个时间片段为00:00—00:20,第2个时间片段为00:05—00:25,依此类推。

图 4可知,周末交通流在时间上的变化与工作日有所差异,为减少数据差异性,本研究选用工作日的部分数据进行训练及测试,包括交通事故时段数据、400个高峰时段数据以及800个平峰时段数据。其中,交通事故时段数据为402起事故对应的浮动车数据(剔除缺失时段数据后)。数据集中,70%用于训练,30%用于测试。

输入结构设置为(2, 4, 24),其中第1个通道用于记录连续20 min内各子路段的交通信息;第2个通道用于记录第1通道中各行数据所属时段,其数值为各时段编号(1-288)。

对于模型的输出层,本研究设定输出类别为0, 1或2∶0表示为平峰期交通状态,1代表道路中有交通事故发生,2表示为高峰期交通状态(0和2均为无交通事件类别)。

构建CNN算法时,需要确定的关键参数有:卷积-池化层的超参数(滤波器和池化窗口大小)以及深度[10],由于没有统一的方法来确定超参数的结构,因此本研究参考文献[22, 24],选择滤波器尺寸为3×3,池化窗口大小为2×2以及最大池化函数。

CNN的深度也直接影响着算法的学习效率及性能。由于池化窗口大小为2×2,每次经过池化后算法中的节点数会减半,针对本研究的输入结构最多需要2层卷积-池化结构层。另外,假设学习速率β=0.01,正则化参数λ=5,误差期望值为0.01。

本研究构建的CNN事件检测模型各层具体参数情况如表 1所示。

表 1 CNN事件检测算法结构及参数设置 Tab. 1 Structure and parameter setting of CNN incident detection algorithm
序号 结构层 超参数 维度
1 输入层 (2, 4, 24)
2 卷积层1 Filter(32, 3, 3) (32, 4, 24)
3 池化层1 Pooling(32, 2, 2) (32, 2, 12)
4 卷积层2 Filter (64, 3, 3) (64, 2, 12)
5 池化层2 Pooling(64, 2, 2) (64, 1, 6)
6 全连接层1 (384, 1)
7 全连接层2 (24, 1)
8 输出层 (3, 1)

2.3 试验结果分析

为了检验本研究所提出的算法用于交通事件检测的有效性,本研究根据测试集对训练好的事件检测模型进行验证,通过对比BP算法的检测效果,验证模型的实用性,具体结果如表 2所示,其中,CNN1为表 1结构。对比表 2中的结果,可以发现,相较于BP神经网络(全连接形式),本研究所提出的算法(CNN1)通过卷积-池化结构层来代替BP算法的全连接,能减少网络中参数数量,取得更高精度的计算效果。各项评价指标均有所提升,检测率提升了5.74%,误报率降低了1.02%,精确度提升了4.28%,综合效果提升了5.13%。结果表明本研究算法能够以更低的误报率及更高的检测率识别异常交通流。

表 2 检测结果 Tab. 2 Test result
算法 检测率/% 误报率/% 精确度/% 综合效果/%
CNN1 85.33 2.80 95.52 90.14
BP 79.59 3.82 91.24 85.01
CNN2 85.29 3.93 89.23 87.22
CNN3 80.00 2.74 96.24 87.37

同时,为了区分不同结构层对检测精度的影响, 本研究设置了两组对照组(单卷积-池化结构层)来比较结构层数量对检测性能的影响,分别为CNN2卷积层(64, 4, 24),池化层(64, 2, 12);CNN3卷积层(128, 4, 24),池化层(128, 2, 12);综合比较表 2中3种卷积池化结构中,CNN1结构相较CNN2结构各指标均有优势,检测率和综合效果分别高出0.04%和2.92%;而相较于CNN3结构,误报率高出0.06%,精确度降低0.72%,但检测率高出5.33%,综合效果高出2.77%,可见CNN1的检测性能最好。并且CNN1算法识别类别0的精确度为100%,类别1的精确度为85.33%,类别2的精确度为98.21%。

对比上述试验可得,CNN能够更好地识别交通流的时空特性,比传统的神经网络具有更高的检测性能。

3 结论

本研究构建了基于CNN的交通事件检测算法,以浮动车为数据源,将计算得到的道路时间序列速度信息重构为具有时空特征的多维输入张量,利用多隐藏层进行特征提取,学习数据在时间及空间上的关联性,实现对城市道路交通事件的自动检测。试验结果表明,所提出的算法能够实现对突发事件的检测,具有较高的检测率与精确度,较低的误报率,具有较强的实用性和有效性。

由于构建大规模深度学习数据集的困难性,本研究在有限数据集的基础上进行了CNN多路段事件检测的探索性研究,对大规模的城市网络下的实时检测效果验证有待进一步拓展研究。

参考文献
[1]
PARKANY E, XIE C. A Complete Review of Incident Detection Algorithms & Their Deployment: What Works and What Doesn't[R]. Burlington: The New England Transportation Consortium, 2005.
[2]
ZHU G Y, ZHANG J X, LIN H T, et al. Automatic Detection of Urban Traffic Incidents and Supporting Decision Model for Police Dispatching Based on Travel Time[J]. Kybernetika, 2016, 52(1): 106-130.
[3]
MASTERS P H, LAM J K, WONG K. Incident Detection Algorithms for COMPASS: An Advanced Traffic Management System[C] // Vehicle Navigation and Information Systems Conference. Dearborn: IEEE, 1991: 295-310.
[4]
LEVIN M, KRAUSE G M. Incident Detection: A Bayesian Approach[J]. Transportation Research Record, 1978, 682: 52-58.
[5]
DUDEK C L, MESSER C J, NUCKLES N B. Incident Detection on Urban Freeways[J]. Transportation Research Record, 1974, 495: 12-24.
[6]
邴其春, 龚勃文, 林赐云, 等. 城市快速路交通事件自动检测算法[J]. 中南大学学报(自然科学版), 2017, 48(6): 1682-1687.
BING Qi-chun, GONG Bo-wen, LIN Ci-yun, et al. Traffic Incident Automatic Detection Algorithm for Urban Expressway[J]. Journal of Central South University (Science and Technology Edition), 2017, 48(6): 1682-1687.
[7]
SAMANT A, ADELI H. Feature Extraction for Traffic Incident Detection Using Wavelet Transform and Linear Discriminant Analysis[J]. Computer-Aided Civil and Infrastructure Engineering, 2000, 15(4): 241-250.
[8]
TENG H L, QI Y. Application of Wavelet Technique to Freeway Incident Detection[J]. Transportation Research Part C: Emerging Technologies, 2003, 11(3/4): 289-308.
[9]
SUN Y, HOU Z X. A Novel Abnormal Traffic Incident Detection Method Based on Improved Support Vector Machine[J]. Journal of Applied Science and Engineering, 2018, 21(1): 45-50.
[10]
CHENG Y, ZHANG M, YANG D Y. Automatic Incident Detection for Urban Expressways Based on Segment Traffic Flow Density[J]. Journal of Intelligent Transportation Systems, 2015, 19(2): 205-213.
[11]
HOUBRAKEN M, LOGGHE S, SCHREUDER M, et al. Automated Incident Detection Using Real-time Floating Car Data[J]. Journal of Advanced Transportation, 2017, 2017: 1-13.
[12]
翁剑成, 赵晓娟, 荣建. 基于D-S理论的城市快速路交通事件自动检测算法[J]. 公路交通科技, 2011, 28(12): 112-116, 144.
WENG Jian-cheng, ZHAO Xiao-juan, RONG Jian. Urban Expressway Automatic Incident Detection Algorithm Based on D-S Theory[J]. Journal of Highway and Transportation Research and Development, 2011, 28(12): 112-116, 144.
[13]
杨珍珍. 基于拥堵传播规律的交通事件信息发布方法[J]. 公路交通科技, 2019, 36(5): 121-129, 137.
YANG Zhen-zhen. A Method for Disseminating Traffic Incident Information Based on Rule of Congestion Propagation[J]. Journal of Highway and Transportation Research and Development, 2019, 36(5): 121-129, 137.
[14]
SUNDERRAJAN A, VISWANATHAN V, CAI W, et al. Traffic State Estimation Using Floating Car Data[J]. Procedia Computer Science, 2016, 80: 2008-2018.
[15]
LIANG Z J, CHEN H, SONG Z H, et al. Traffic Congestion Incident Detection and Dissipation Algorithm for Urban Intersection Based on FCD[C] // 2017 3rd IEEE International Conference on Computer and Communications. Chengdu: IEEE, 2017: 2578-2583.
[16]
MA X L, DAI Z, HE Z B, et al. Learning Traffic as Images: A Deep Convolutional Neural Network for Large-scale Transportation Network Speed Prediction[J]. Sensors, 2017, 17(4): 818.
[17]
NGUYEN H, BENTLEY C, KIEU L M, et al. Deep Learning System for Travel Speed Predictions on Multiple Arterial Road Segments[J]. Transportation Research Record, 2019, 2673: 145-157.
[18]
HOU Y, PRAVEEN E. Network Scale Travel Time Prediction Using Deep Learning[J]. Transportation Research Record, 2018, 2672: 115-123.
[19]
BAI J, CHEN Y H. A Deep Neural Network Based on Classification of Traffic Volume for Short-term Forecasting[J]. Mathematical Problems in Engineering, 2019, 2019: 1-10.
[20]
陈湘军. 综合深度特征的异常交通事件视频解析及应用系统[D]. 南京: 南京大学, 2016.
CHEN Xiang-jun. Video Analysis of Abnormal Traffic Events and Application System Based on Deep Image Feature[D]. Nanjing: Nanjing University, 2016.
[21]
ZHU L, GUO F C, KRISHNAN R, et al. A Deep Learning Approach for Traffic Incident Detection in Urban Networks[C] // 21st IEEE International Conference on Intelligent Transportation Systems. Maui: IEEE, 2018: 1011-1016.
[22]
LECUN Y, BOTTOU L. Gradient-based Learning Applied to Document Recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[23]
李旭冬, 叶茂, 李涛. 基于卷积神经网络的目标检测研究综述[J]. 计算机应用研究, 2017, 34(10): 2881-2886, 2891.
LI Xu-dong, YE Mao, LI Tao. Review of Object Detection Based on Convolutional Neural Networks[J]. Application Research of Computers, 2017, 34(10): 2881-2886, 2891.
[24]
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet Classification with Deep Convolutional Neural Networks[J]. Communications of the ACM, 2017, 60(6): 84-90.