一种城市级智能交通仿真系统
技术领域
本发明涉及智能交通领域,特别是城市交通状态估计和预测与交通仿真系统。
背景技术
机动车保有量的日益增加,使得有限的道路建设已无法满足车辆快速增长所带来的交通需求,从而给我国的城市建设和社会公共交通带来了严峻的考验。交通仿真是研究交通行为的一种强有效的技术,可对现有系统或未来系统的交通运行状态进行再现或预先把握,从而对复杂的交通现象进行解释、分析,找出问题的症结,最终来解决交通拥堵等典型问题。
大多数城市交通仿真平台往往是基于传统检测器或者视频检测器的聚合信息(如周期内流量,饱和度等),人工的进行参数微调与设置,该方式效率低且不利于信号控制系统方案的同步更新。理论上讲,“模型驱动”的传统交通仿真太依赖交通系统的物理模型(如跟车模型、变道模型),而这些模型的建立是非常困难的,并且模型的检验与校准都需要大量的数据。另一方面,在实际的工程应用中,城市交通系统的运行具有复杂多变的特性,随着时间和空间的变化,道路交通状态也在不断变化。传统交通仿真是根据历史数据来分析交通问题,但历史数据只能反映短期内的部分真实场景,在表征长期交通状态的性能上略有不足,即无法实时的跟随交通的复杂变化。
随着计算能力的提高和算法理论的创新,大数据技术与人工智能的快速发展为解决城市交通问题提供了全新的思路。在智能交通的研究中,相关学者更倾向于把大数据应用到城市交通管理中,通过对海量数据进行挖掘,来分析城市交通相关发展的重要特征。
发明内容
为了克服已有城市交通仿真方式的无法实时的跟随交通的复杂变化的不足,本发明提供了一种城市级智能交通仿真系统,预测交叉口各车道的车辆排队长度,并进一步的对车辆排队长度的演变进行动态仿真。
本发明解决其技术问题所采用的技术方案是:
一种城市级智能交通仿真系统,以多源异构数据为输入,可预测交叉口各车道的车辆排队长度,并进一步的对车辆排队长度的演变进行动态仿真,所述仿真系统包括数据搜集模块、多维数据库、算法模块、交通状态预测模块、交通仿真推演模块和交互可视化模块;
所述数据搜集模块中,收集的数据包括交通动态数据和静态数据,所述动态数据是通过各种检测器获得的数据、来自浮动车检测的速度数据以及各种交通控制设备显示的控制方案信息,所述静态数据是路网的基础数据,包括路口渠化图、车道信息、路段信息和检测器编号;
所述多维数据库中,用来实时接收各类交通动态信息和存储道路基础配置信息;
所述算法模块中,利用生成对抗网络对车辆排队长度进行数据生成与状态预测,处理过程包括数据特征提取、数据维度处理、生成对抗网络和超参数优化;
所述交通状态预测模块中,通过输入上一时刻的一次预测所需的技术指标Wt=[w1t,w2t,…wkt],来预测下一时刻的车辆排队长度Lt+1,生成的数据用于交通仿真推演模块;
所述交通仿真推演模块中,对周期内车道排队长度的变化过程进行模拟,首先根据预测模块来估计红灯和绿灯结束时刻的车辆排队长度大小,对两者取差值来表征周期内排队长度的变化;然后从多维数据库获取当前路口的绿灯时长和红灯时长,计算每秒的车辆排队长度变化值,进一步得出剩下相位时间内的车辆排队长度大小;
所述交互可视化模块中,大屏展示整体或者区域的路网,点击查看路口详情,动态更新路段速度的大小并做不同等级展示,来直观展示路段的拥堵与畅通情况,展示路网整体的速度与流量均值等指标;连通车辆排队长度异常的报警系统,若排队长度超过阈值,则报警并显示该路口的实际位置、路口编号、监控编号静态信息,并将典型拥堵的路口以列表的形式实时刷新显示。
进一步,所述算法模块的处理过程为:
3.1)数据特征提取:利用栈式自编码器对输入数据集中有可能影响车辆排队长度的其他高级特征进行提取,并将提取的高阶特征作为新的技术指标加入到原输入数据中,如下:
设技术指标为[Y1,Y2,…,Yt],其中Yt表示时间点t时的技术指标,且Yt=[y1t,y2t,…ypt],其中ypt表示Yt中的第p个特征参数,将每个时间点的技术指标作为栈式自编码器的输入,进行高级特征提取,表示如下:
Zt=FSAE(Yt),即[z1t,z2t,…zqt]=FSAE([y1t,y2t,…ypt]),q<p
其中zqt表示Zt中的第q个高级特征参数,特征提取完毕后,将新生成的高级特征加入到原技术指标中,此时Yt=[y1t,,y2t,…ypt,z1t,z2t,…zqt],即每个时间点都有p+q个特征参数;
3.2)数据维度处理:利用主成分分析PCA对新创建的特征进一步的进行组合,以此来减少数据的维数,提高训练效率,组合后特征的描述能力将与最初的输入数据相同,并且时间维度不变,降维时参数设置为0.8,即维度为原来的80%,如下:
假设将重组的技术指标Y=[Y1,Y2,…,Yt]降到k维,其中Yt=[y1t,,y2t,…ypt,z1t,z2t,…zqt]T;
3.3)生成对抗网络GAN:GAN用于图像处理与数据生成,公式如下:
其中,x为真实的数据,在本发明中代表来自数据采集模块的真实车辆排队长度,pdata(x)为真实数据的分布,pz(z)为常见概率分布,z为采样自常见概率分布的随机噪声,G(z)为生成的虚假车辆排队长度,D(·)为鉴别器判断数据是否真实的概率,可理解为当更新鉴别器D时,需要最大化目标函数,而当更新生成器G时,需要最小化目标函数;
循环神经网络RNN用于时间序列数据,利用LSTM作为GAN的生成器,用降维后的技术指标W=[W1,W2…,Wt]代替噪声z来作为输入数据,输出为虚假的下一周期的车辆排队长度,Lfake=G(X);
it=σ(W(i)xt+U(i)ht-1+b(i)),
ft=σ(W(f)xt+U(f)ht-1+b(f)),
ot=σ(W(o)xt+U(o)ht-1+b(o)),
ut=tanh(W(u)xt+U(u)ht-1+b(u)),
ct=it·ut+ft·ct-1,
ht=ot·tanh(ct)
CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并利用卷积核提取该局部的特征;一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等,特征映射结构采用sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性;用CNN作为GAN的鉴别器,其输入数据为来自生成器的虚假车辆排队长度Lfake=G(X)和下一周期的真实车辆排队长度Lreal=x,网络的最后一层为全连接层,输出是二者为真实值的概率,并利用反向传播将概率值传回生成器,这样两个网络不断的调整参数来优化自身,Lfake会越来越接近Lreal,直到生成的数据真正学到了样本的分布;
卷积网络初始参数设置为:每次抓取的批次batch_size为64,学习率cnn_lr为0.01,卷积步长strides为1,激活函数LeakyReLU的α值为0.2,卷积时的填充值padding为1,卷积核的大小kernel_size为3×3,随机失活设置Dropout为0.2,卷积核的数量filters为1;
3.4)超参数优化:在GAN网络训练完毕后,记录LSTM生成的数据与真实数据之间的平均绝对误差,以该值作为奖励输入给强化学习算法,来决定是否改变网络的超参数,若改变,则调用贝叶斯优化模块来分析出最佳的超参数。
所述3.2)的处理过程为:
3.2.1)去中心化,即对每一行的特征减去各自的平均值,为(p+q)×t的矩阵,用Y′表示;
3.2.2)计算特征协方差矩阵为(p+q)×(p+q)的矩阵;
3.2.3)求协方差矩阵的特征值和特征向量;
3.2.4)对特征值从小到大排序,选择前边的k个,并将它们对应的特征向量组成特征向量矩阵M,为k×(p+q)的矩阵;
3.2.5)将原技术指标数据转换到由k个特征向量构建的新空间中,即W=MY′,为[k×(p+q)]·[(p+q)×t)]=k×t维的矩阵,从而实现了降到k维的处理;
W=[W1,W2…,Wt]为降维后的技术指标,其中Wt=[w1t,w2t,…wkt]为t时间点的技术指标,wkt为Wt中的第k个特征参数。
所述3.4)的处理过程为:
3.4.1)建立目标函数的替代概率模型;
3.4.2)找到在代理上表现最佳的超参数;
3.4.3)将这些超参数应用于真正的目标函数;
3.4.4)更新包含新结果的代理模型;
3.4.5)重复步骤3.4.2)-3.4.4),直到达到最大迭代次数或时间;
需要跟踪与优化的超参数如下:
batch_size:LSTM和CNN的批次大小
cnn_lr:CNN的学习率
strides:CNN的步长大小
α:GAN中激活函数LeakyReLU的α值
padding:CNN中卷积时的填充值
kernel_size:CNN的卷积核的大小
Dropout:LSTM的随机失活设置
filters:滤波器的初始数量。
再进一步,所述交通状态预测模块,低维数据集W=[W1,W2,…Wt]、真实车辆排队长度Lreal输入到生成对抗网络完成训练,获得生成器模型MLSTM()、鉴别器模型MCNN(),预测模块的预测器来自训练好的生成器模型FLSTM(),用于交通状态的预测,通过输入上一时刻的一次预测所需的技术指标Wt=[w1t,w2t,…wkt],来预测下一时刻的车辆排队长度Lt+1,生成的数据用于交通仿真推演模块,根据预测的结果,实现信号灯优化、公交优先决策;每经过一定时间的预测过程,都要验证生成器的预测效果,选择低维数据集最近的NA个周期数据集,获得NA个预测排队长度,与NA个真实排队长度值进行比较,如果预测误差大于设定误差阈值,则调用参数优化模块对当前的网络参数进行调整,预测准确率评价指标如下:
4.1)均方误MSE
4.2)平均绝对相对误差
4.3)均等系数EC
其中,EC为预测值与真实值之间的拟合度,范围为[0,1],值越大,表示拟合度越好,预测也就越准确。
更进一步,所述交通仿真推演模块中,仿真情况分以下两种:
第一种;若周期开始时刻为绿灯,则此时预测的车辆排队长度为最大值,到红灯开始时刻,预测的车辆排队长度为最小值,则绿灯时间内车辆排队长度变化值为前者减后者,仿真的是出车时的排队长度演变过程;
第二种:若周期开始时刻为红灯,则此时预测的车辆排队长度为最小值,到绿灯开始时刻,预测的车辆排队长度为最大值,则红灯时间内车辆排队长度变化值为后者减前者,仿真的是进车时的排队长度演变过程;
接收5部分数据:监控下车辆排队长度、车辆所处相位时刻、车辆到达率、车辆驶离交叉口流量、预测的车辆排队长度;监控下车辆排队长度、车辆所处相位时刻从数据采集模块获取,设定车辆到达率为泊松分布,车辆通过交叉口流量从多维数据库模块获取,预测的车辆排队长度从预测模块获取,最后根据视频监控下路口的实际情况对进车、出车过程进行动态仿真,实现与实际车辆排队长度变化大体一致的仿真排队长度演变,并每秒更新一次,从而让配时工作人员对未来时刻车辆队伍通过路口的情形有视觉的感受,过程如下:
进车情况:针对路口B西方向的进口道,预测模块首先根据上个周期的技术指标预测出当前周期红灯开始时刻t1的最小排队长度L1,和绿灯开始时刻t2的最大排队长度L2,则进车过程的排队长度变化为L2-L1,则红灯期间每秒的排队长度变化为(L2-L1)/(t2-t1);然后从多维数据库获取当前进车时刻为tnow,则剩下的车辆排队长度变化为(L2-L1)/(t2-t1)×(t2-tnow),最后根据从SCATS接口获取的交叉口周期内流量,计算每秒车辆驶离交叉口的数量,结合服从泊松分布的车辆到达率来实现排队长度每秒或数秒变化一次,并通过监控接口实时查看路口实际排队情况,与仿真的结果进行比较与分析;
出车情况:针对路口B西方向的进口道,预测模块首先根据上个周期的技术指标预测出当前周期绿灯开始时刻t2的最小排队长度L2,和红灯开始时刻t3的最大排队长度L3,则出车过程的排队长度变化为L3-L2,则绿灯期间每秒的排队长度变化为(L3-L2)/(t3-t2);然后从多维数据库获取当前出车时刻为tnow,则剩下的车辆排队长度变化为(L3-L2)/(t3-t2)×(t3-tnow),最后根据从SCATS接口获取的交叉口周期内流量,计算每秒车辆驶离交叉口的数量,结合服从泊松分布的车辆到达率来实现排队长度每秒或数秒变化一次,并通过监控接口实时查看路口实际排队情况,与仿真的结果进行比较与分析。
所述交互可视化模块的处理过程如下:
6.1)处置:若专业的交通控制工程师欲对报警路口处理,在点击该路口后,首先会出现路口仿真界面,供操作人员查看,同时也有接口连接实时监控,可供验证与校准;在专业的交通控制工程师根据实际情况调整方案后,系统会在后续的几个周期持续关注该路口,直到报警消除;若报警未消除,则仿真系统可连接控制系统,选择方案自适应生成功能,根据SCATS系统中的交通流数据,自动生成控制方案,方案应用后,继续查看路口异常情况是否消除;
6.2)观察:若用户想了解某路段的信息,在点击某路段后,会展现当前路段的平均行车速度、平均车流量信息;
6.3)查看:若用户想了解路口的具体情况,在点击某路口后,会展现路口基础信息功能预测功能和仿真功能。
所述6.3)的过程为:
6.3.1)基础信息功能:连通SCATS系统和静态数据库,可供用户查询路口当前时刻的流量信息、饱和度信息、路口实时控制方案、车道数量和编号、各车道排队长度数据,若提示数据缺失,则让用户选择是否修复,修复操作连接多维数据库模块,系统会根据自身算法对数据进行修复,然后将数据存入数据库对其补充,并展示结果;可查询、对比历史同时期的各项数据,并给出变化曲线;
6.3.2)预测功能:排队长度预测需要输入车道编号、周期时刻,系统会在数据处理模块的支持下自动搜集技术指标数据集作为输入,然后利用生成网络算法生成排队长度数据,会根据数据库中存储的历史数据,来分析预测的准确度和误差,将指标与预测结果同时展现出来;
6.3.3)仿真功能:仿真模块支持,该模块自动读取预测功能产生的排队数据,选择确定的路口出现车辆排队长度动态变化的仿真效果,设计实时监控接口入口,供用户对比和验证。
所述多维数据库的处理过程包括数据整理、数据修复和技术指标构建,如下:
2.1)数据整理:先对数据进行预处理,得到能够给计算模型直接使用的数据;
2.2)数据修复:采用图卷积和循环神经网络结合的方式,根据车道之间的关系、上下游路口的关系,挖掘交通流的时空特征,对检测器的缺失数据部分进行修复;输入数据是浮动车检测到的速度数据和流量检测器数据,道路图网络是交叉口检测器的分布以及相邻交叉口检测器的连接关系,路网插补模块是根据各检测器的位置关系提取数据之间的空间相关性,交叉口插补模块是利用同时刻同周期的历史数据提取时间相关系;
2.3)技术指标构建:以车辆速度、车流量、饱和度、控制方案作为表征交通状态的技术指标,多维数据库会按周期对这些技术指标进行聚合与统计,对各项数据进行移动平均处理和上下限取值;
最佳周期确定后,速度上下限选取周期内的最大最小值;在处理完毕后,会形成一个[流量、饱和度、控制方案、速度、各项数据上限、各项数据下限]这样一个多源的技术指标集合,作为算法模块的输入。
所述2.2)的过程如下:
2.2.1)数据恢复的操作对象为检测器记录的原始数据,原始数据首先经过异常检测,剔除其中因临时原因导致的短时错误数据记录情况,具体数据包括短时记录为零、数据过大超过阈值和流量饱和度明显不匹配的情况,将以上数据剔除后采用插值函数对缺失部分进行恢复;
2.2.2)将检测器作为节点,根据相邻路口的检测器所在车道路网连通性生成边,得到由检测器组成的图网络结构;
2.2.3)在经过错误数据恢复的基础上进一步进行缺失数据补全操作,作用场景为由于某些故障导致检测器一段时间内数据全部丢失的情况和部分车道上未安装检测器的情况;虑结合其历史数据和空间相邻路口车道的数据对其进行补全,另外考虑到相邻路口之前的互相影响,以及不同路口周期的起始时间和持续时间不同,以目标路口数据返回时刻为基准,选择相邻路口距离该时刻最近的周期对应的数据,操作为输入所有与目标路口空间相连路口检测器的时间序列数据,构造提取空间关系的卷积算子,然后根据当前路口同周期同时刻的历史数据作为循环神经网络的输入进一步提取时间依赖规律,最后根据提取出来的具有时空依赖的模型对缺失部分数据进行补全,卷积算子公式如下:
公式中为节点i在l+1层的特征表示,σ为激活函数,Ni为图网络中所有节点的集合,Aij为邻接矩阵中的元素,邻接矩阵表征检测器之间连通性关系,连接为1,否则为0,为i节点对j节点影响的权重参数;
设Jm,i为第m个交叉口的第i个检测器,Jm+1,j为第m+1个交叉口的第j个检测器,若车辆行驶可以先后经过检测器i和检测器j,则说明两个检测器连通,则邻接矩阵中Aij为1,否则为0;
所述图卷积步骤为:第一步,设置目标时间段,获取检测器相位结束时刻位于目标时间段的数据,对每个节点的检测器的特征信息进行抽取变换,并发送给相邻节点;第二步,利用卷积算子将相邻节点的信息进行聚集融合;第三步,对聚集的信息做非线性变换,从而增加模型的表达能力。
本发明从大数据的角度出发,提出一种基于生成对抗网络的城市交通仿真系统框架,该框架的技术点包括:
1)从全局出发,以数据为驱动,无需像传统仿真那样构建复杂的交通物理模型;
2)针对城市交通信号控制,系统可对车辆排队长度进行实时的生成和预测;
3)在微观级别,根据预测的实时车道车辆数,构建一个模拟车辆排队长度变化的微观仿真系统,实现与实际监控下车辆排队长度演变大体一致,以此来反映实时交通场景,该仿真可解决实际中人工数车辆排队长度导致工作效率低的问题;
4)该仿真系统集交通数据生成、交通状态预测、车辆排队长度演变于一体,可以应用于城市级全域路口的交通需求。
在交通中,车道级别的车辆数量是一个非常重要的参数,可反映交叉口的拥堵情况,表征最真实的交通状态,继而衍生出各类评价指标。本发明提出的城市级交通仿真系统框架如附图1,该系统充分考虑多因素的影响,以多源异构数据为输入,可预测交叉口各车道的车辆排队长度,并进一步的对车辆排队长度的演变进行动态仿真。仿真系统主要包括数据搜集模块、多维数据库、算法模块、交通状态预测模块、交通仿真推演模块、交互可视化模块。
本发明的有益效果主要表现在:能预测交叉口各车道的车辆排队长度,并进一步的对车辆排队长度的演变进行动态仿真
附图说明
图1是城市级智能交通仿真系统的框架图。
图2是数据修复流程图。
图3是实际路网图。
图4是路网检测器所在车道图结构图。
图5是算法整体框架图。
图6是GAN结构图。
图7是车辆排队长度情况分析图。
图8是车辆排队长度仿真流程图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图8,一种城市级智能交通仿真系统,充分考虑多因素的影响,以多源异构数据为输入,可预测交叉口各车道的车辆排队长度,并进一步的对车辆排队长度的演变进行动态仿真。仿真系统包括数据收集模块、多维数据库、算法模块、交通状态预测模块、交通仿真推演模块、交互可视化模块。
所述数据收集模块,准确预测交通状态是一项复杂的任务,因为交通环境的变化受到诸多因素的共同影响,如:交通信号控制方案、车辆速度、道路车流量、行人的介入、突发事件、天气等。而这些因素之间都隐藏着必然的联系,因此我们需要尽可能的从不同方面和角度来捕获对预测有用的交通信息。收集的数据包括交通动态数据和静态数据。动态数据一部分是通过各种检测器获得的数据,如流量、饱和度等;另一部分是来自浮动车检测的速度数据;还有一部分是各种交通控制设备显示的控制方案信息,比如信号周期、绿信比、相位、相序等。静态数据一般就是路网的基础数据,包括路口渠化图、车道信息、路段信息、检测器编号等。特殊地,在路口数据缺失严重时或者不可用时,可通过微观交通仿真器模拟路口运行状态,来产生各项数据,替代实际的路口环境。数据样例如下:
period |
loop_id |
volume |
ds |
green |
min_queue |
max_queue |
1 |
SCATS19_E_I_1 |
1 |
0 |
29 |
1 |
7 |
1 |
SCATS19_E_I_2 |
0 |
0 |
29 |
1 |
7 |
1 |
SCATS19_E_I_3 |
0 |
0 |
29 |
0 |
6 |
1 |
SCATS19_E_I_4 |
1 |
0 |
44 |
0 |
1 |
其中,period为周期,loop_id检测器线圈编号,volume为通过车辆数,ds为饱和度、green为绿灯时长、min_queue为路灯结束时刻的最小车辆排队长度、max_queue为红灯结束时刻的最大车辆排队长度。
具体功能点如下:
1.1)连接SCATS接口,可实时读取流量、饱和度、占有率及实时相位等数据;
1.2)实时获取高德速度数据;
1.3)访问路口实时监控接口,点击可查看路口车辆排队长度情况、拥堵情况;
1.4)读取路网静态数据,包括路口控制方案、路口渠化图、车道信息、路段信息等;
1.5)自动转成xml文件,主要指将路口管家数据转化成sumo可读取的xml文件。
所述多维数据库具备可读可写的功能,主要用来实时接收各类交通动态信息和存储道路基础配置信息,另外也具备数据预处理功能,包括数据整理、数据修复、技术指标构建。
2.1)数据整理:原始交通数据存入数据库时会有较多的冗余,一般不符合算法模型要求的格式,所以要先对数据进行预处理,比如对错误的数据进行清洗、对不规范的数据进行整理归纳、对数据进行标准化,从而得到能够给计算模型直接使用的数据。
2.2)数据修复:在实际情况中,由于道路施工、配置信息暂缺等原因导致的检测器数据缺失,使得许多路口的控制方案和交通状态数据出现空白。针对此问题,本发明中充分考虑交通流的时空特征对道路单个检测器的影响,和检测器记录的数据在时间上具有一定的出行规律,比如早晚高峰特征。同时由于车辆的运动,相邻检测器在记录上有一定的相似性。因此这里采用图卷积和循环神经网络结合的方式,根据车道之间的关系、上下游路口的关系,挖掘交通流的时空特征,对检测器的缺失数据部分进行修复。整体流程图见附图2,其中输入数据主要是浮动车检测到的速度数据和流量等检测器数据,道路图网络是交叉口检测器的分布以及相邻交叉口检测器的连接关系,路网插补模块主要是根据各检测器的位置关系提取数据之间的空间相关性,交叉口插补模块是利用同时刻同周期的历史数据提取时间相关系,步骤如下:
2.2.1)数据恢复的操作对象为检测器记录的原始数据,原始数据首先经过异常检测,剔除其中因临时原因导致的短时错误数据记录情况,具体数据包括短时记录为零、数据过大超过阈值和流量饱和度明显不匹配的情况。将以上数据剔除后采用插值函数对缺失部分进行恢复。
2.2.2)以三个实际路口为例,将检测器作为节点,根据相邻路口的检测器所在车道路网连通性生成边,得到由检测器组成的图网络结构。实际路口如附图3,图网络如附图4。
2.2.3)在经过错误数据恢复的基础上进一步进行缺失数据补全操作,作用场景为由于某些故障导致检测器一段时间内数据全部丢失的情况和部分车道上未安装检测器的情况。这两种的情况的一个共同特点就是数据呈现出长时间段的缺失,针对这种情况本发明考虑结合其历史数据和空间相邻路口车道的数据对其进行补全。另外考虑到相邻路口之前的互相影响,以及不同路口周期的起始时间和持续时间不同,因此不能按照定长时间来分割,这里采用的策略是以目标路口数据返回时刻为基准,选择相邻路口距离该时刻最近的周期对应的数据。具体操作为输入所有与目标路口空间相连路口检测器的时间序列数据,构造提取空间关系的卷积算子,然后根据当前路口同周期同时刻的历史数据作为循环神经网络的输入进一步提取时间依赖规律,最后根据提取出来的具有时空依赖的模型对缺失部分数据进行补全。卷积算子公式如下:
公式中为节点i在l+1层的特征表示,σ为激活函数,Ni为图网络中所有节点的集合,Aij为邻接矩阵中的元素,邻接矩阵表征检测器之间连通性关系,连接为1,否则为0,为i节点对j节点影响的权重参数。解释如下:
设Jm,i为第m个交叉口的第i个检测器,Jm+1,j为第m+1个交叉口的第j个检测器,若车辆行驶可以先后经过检测器i和检测器j,则说明两个检测器连通,则邻接矩阵中Aij为1,否则为0。
图卷积步骤为:第一步,设置目标时间段,获取检测器相位结束时刻位于目标时间段的数据,对每个节点的(检测器)的特征信息进行抽取变换,并发送给相邻节点;第二步,利用卷积算子将相邻节点的信息进行聚集融合;第三步,对聚集的信息做非线性变换,从而增加模型的表达能力。
2.3)技术指标构建:在交通流理论中,车辆速度、车流量、饱和度、控制方案均与车辆排队长度有必然的联系,即它们都会影响着车辆排队长度的变化,本发明中以这些数据作为表征交通状态的技术指标。多维数据库会按周期对这些技术指标进行聚合与统计,对各项数据进行移动平均处理和上下限取值。以速度数据为例,具体原理如下:
时间序列数据值由于受周期变动和随机波动的影响,起伏较大,不易显示出事件的发展趋势,移动平均可通过消除时间序列中的周期变动和不规则波动的影响,来呈现出时间序列的总体发展趋势。具体的就是对N个周期的历史速度数据取平均值,来代替这N周期内的速度大小,然后将第N+1个周期加入序列中,继续求后N个周期的平均值,以此类推,最后将所有的平均值画成一条曲线来表征速度的变化趋势。加大周期N会使平滑波动效果更好,但过大又会使趋势值对数据实际变动不敏感,故最佳的周期N根据平均误差率(MAPE)最小时来确定。
速度移动平均公式如下:
最佳周期确定后,速度上下限选取周期内的最大最小值。
在处理完毕后,会形成一个[流量、饱和度、控制方案、速度、各项数据上限、各项数据下限]这样一个多源的技术指标集合,作为算法模块的输入。
所述算法模块中,本发明利用生成对抗网络对车辆排队长度进行数据生成与状态预测,主要包括数据特征提取、数据维度处理、生成对抗网络、超参数优化。算法框架见图5,具体功能点如下:
3.1)数据特征提取:仅仅依靠现有的数据来预测交通状态可能还不够准确,可能会错过一些潜在的影响因素,即除了以数据处理模块产生的技术指标作为输入数据外,还应提取更深层次的相关参数。栈式自编码器是多个自编码器级联,其前一层自编码器的输出作为其后一层自编码器的输入,可以完成逐层特征提取的任务,最终得到的特征更有代表性。故本发明利用栈式自编码器(Stacked Autoencoders)对输入数据集中有可能影响车辆排队长度的其他高级特征进行提取,并将提取的高阶特征作为新的技术指标加入到原输入数据中。具体如下:
设技术指标为[Y1,Y2,…,Yt],其中Yt表示时间点t时的技术指标,且Yt=[y1t,y2t,…ypt],其中ypt表示Yt中的第p个特征参数。将每个时间点的技术指标作为栈式自编码器的输入,进行高级特征提取,表示如下:
Zt=FSAE(Yt),即[z1t,z2t,…zqt]=FSAE([y1t,y2t,…ypt]),q<p
其中zqt表示Zt中的第q个高级特征参数。特征提取完毕后,将新生成的高级特征加入到原技术指标中,此时Yt=[y1t,,y2t,…ypt,z1t,z2t,…zqt],即每个时间点都有p+q个特征参数。
3.2)数据维度处理:经上一步特征提取步骤后,会产生额外的特征作为技术指标,加入到原输入数据集中会使得维度变大,多变量的输入数据在一定程度上会增加问题分析的复杂性和训练的工作量。数据降维方法主要包括线性方法和非线性方法,线性方法有主成分分析法(PCA)和判别分析法(LDA)。主成分分析法可以起到降低维度的作用,把多指标合成为少数几个相互无关的综合指标(即主成分),其中每个主成分都能够反映原始变量的绝大部分信息,而且所含信息互不重复。这种方法在引进多方面变量的同时将复杂因素归结为几个主成分,使问题简单化,同时得到更加科学有效的数据信息。LDA就是根据研究对象的各种特征值判别其类型归属问题的一种多变量统计分析方法。非线性方法主要针对数据之间有很强的非线性关系,可挖掘更深层次的特征关联,经典的是局部线性嵌入(LLE)。本发明利用主成分分析(PCA)对新创建的特征进一步的进行组合,以此来减少数据的维数,提高训练效率,组合后特征的描述能力将与最初的输入数据相同,并且时间维度不变,降维时参数设置为0.8,即维度为原来的80%。思路如下:
假设将重组的技术指标Y=[Y1,Y2,…,Yt]降到k维,其中Yt=[y1t,,y2t,…ypt,z1t,z2t,…zqt]T。
3.2.1)去中心化,即对每一行的特征减去各自的平均值,为(p+q)×t的矩阵,用Y′表示;
3.2.2)计算特征协方差矩阵为(p+q)×(p+q)的矩阵;
3.2.3)求协方差矩阵的特征值和特征向量;
3.2.4)对特征值从小到大排序,选择前边的k个,并将它们对应的特征向量组成特征向量矩阵M,为k×(p+q)的矩阵;
3.2.5)将原技术指标数据转换到由k个特征向量构建的新空间中,即W=MY′,为[k×(p+q)]·[(p+q)×t)]=k×t维的矩阵,从而实现了降到k维的处理。
W=[W1,W2…,Wt]为降维后的技术指标,其中Wt=[w1t,w2t,…wkt]为t时间点的技术指标,wkt为Wt中的第k个特征参数。
3.3)生成对抗网络(Generative Adversarial Networks,简称GAN):GAN主要用于图像处理与数据生成,本发明将这个思想应用于交通时间序列数据,对未来的交通状态进行生成。该网络包括两个相互对抗的神经网络:生成器(Generator)和鉴别器(Discriminator)。生成器的目的是尽量去生成和真实数据同分布的样本来骗过鉴别器,鉴别器的目的是尽量将真实数据与生成数据区分开来,给它们画上真与假的标签。为了在对抗中胜出,二者不断进行迭代与优化,最终的纳什均衡是判别器无法分辨出数据来源,这时可认为生成器已学到了真实数据的分布。网络结构图见附图6,核心公式如下:
其中,x为真实的数据,在本发明中代表来自数据采集模块的真实车辆排队长度,pdata(x)为真实数据的分布,pz(z)为常见概率分布,z为采样自常见概率分布的随机噪声,G(z)为生成的虚假车辆排队长度,D(·)为鉴别器判断数据是否真实的概率,可理解为当更新鉴别器D时,需要最大化目标函数,而当更新生成器G时,需要最小化目标函数。
循环神经网络(RNN)可用于时间序列数据,因为它可以跟踪所有的历史数据点,并能够捕获数据随时间发展的趋势。但RNN第一大问题是对长跨度时间可能会有梯度消失或爆炸的问题,LSTM很好的解决了这个问题,利用输入门、遗忘门、输出门的组合规则来判断输入信息是否有用,只有符合算法认证的信息才会留下,不符的信息则通过遗忘门被遗忘。LSTM公式如下。故本发明利用LSTM作为GAN的生成器,用降维后的技术指标W=[W1,W2…,Wt]代替噪声z来作为输入数据,输出为虚假的(预测)下一周期的车辆排队长度,Lfake=G(W)。
it=σ(W(i)xt+U(i)ht-1+b(i)),
ft=σ(W(f)xt+U(f)ht-1+b(f)),
ot=σ(W(o)xt+U(o)ht-1+b(o)),
ut=tanh(W(u)xt+U(u)ht-1+b(u)),
ct=it·ut+ft·ct-1,
ht=ot·tanh(ct)
在时间或空间中,两个数据点之间的距离越近,他们的相关性越强,卷积神经网络(CNN)在空间数据上有较强的分析能力,同理也可用于时间序列数据。一般地,CNN的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并利用卷积核提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。本发明中用CNN作为GAN的鉴别器,其输入数据为来自生成器的虚假车辆排队长度Lfake=G(W)和下一周期的真实车辆排队长度Lreal=x,网络的最后一层为全连接层,输出是二者为真实值的概率,并利用反向传播将概率值传回生成器,这样两个网络不断的调整参数来优化自身,Lfake会越来越接近Lreal,直到生成的数据真正学到了样本的分布。
卷积网络初始参数设置为:每次抓取的批次batch_size为64,学习率cnn_lr为0.01,卷积步长strides为1,激活函数LeakyReLU的α值为0.2,卷积时的填充值padding为1,卷积核的大小kernel_size为3×3,随机失活设置Dropout为0.2,卷积核的数量filters为1。
本发明所运用的生成对抗网络无需估计交通样本数据的分布,可根据其潜在的分布来生成大量的同分布的数据,最终的结果是有大量的交通流-控制方案-交通状态组合,可将其应用于各个路口,来弥补交通数据的空白。
3.4)超参数优化:即使在较短的时间内预测出了精准的结果,但交通环境是个长期变化的过程,这些结果可能在特定的时间里有效,但随着环境的改变,预测网络的精度将会下降,所以我们需要不断优化整个过程。在GAN网络训练完毕后,记录LSTM生成的数据与真实数据之间的平均绝对误差,以该值作为奖励输入给强化学习算法,来决定是否改变网络的超参数,若改变,则调用贝叶斯优化模块来分析出最佳的超参数。贝叶斯优化的主要思想是,给定优化的目标函数,在考虑上一次参数信息的情况下,通过不断地添加样本点来更新目标函数的后验分布,直到后验分布基本贴合于真实分布,从而更好的调整当前的参数。步骤如下:
3.4.1)建立目标函数的替代概率模型;
3.4.2)找到在代理上表现最佳的超参数;
3.4.3)将这些超参数应用于真正的目标函数;
3.4.4)更新包含新结果的代理模型;
3.4.5)重复步骤3.4.2)-3.4.4),直到达到最大迭代次数或时间。
需要跟踪与优化的超参数如下:
batch_size:LSTM和CNN的批次大小
cnn_lr:CNN的学习率
strides:CNN的步长大小
α:GAN中激活函数LeakyReLU的α值
padding:CNN中卷积时的填充值
kernel_size:CNN的卷积核的大小
Dropout:LSTM的随机失活设置
filters:滤波器的初始数量;
所述交通状态预测模块,低维数据集W=[W1,W2,…Wt]、真实车辆排队长度Lreal输入到生成对抗网络完成训练,获得生成器模型MLSTM()、鉴别器模型MCNN()。预测模块的预测器来自训练好的生成器模型FLSTM(),主要用于交通状态的预测,一般是通过输入上一时刻的一次预测所需的技术指标Wt=[w1t,w2t,…wkt],来预测下一时刻的车辆排队长度Lt+1,生成的数据可用于交通仿真推演模块。根据预测的结果,可实现信号灯优化、公交优先等决策。每经过一定时间的预测过程,都要验证生成器的预测效果。选择低维数据集最近的NA个周期数据集,获得NA个预测排队长度,与NA个真实排队长度值进行比较,如果预测误差大于设定误差阈值(设定为5%),则调用参数优化模块对当前的网络参数进行调整。预测准确率评价指标如下:
4.1)均方误差(MSE)
4.2)平均绝对相对误差
4.3)均等系数EC
其中,EC为预测值与真实值之间的拟合度,范围为[0,1],值越大,表示拟合度越好,预测也就越准确。
所述交通仿真推演模块中,本发明主要针对车道级别的车辆数这一重要参数进行仿真,不对其他交通状态参数做分析。仿真模块主要对周期内车道排队长度的变化过程进行模拟,首先根据预测模块来估计红灯和绿灯结束时刻的车辆排队长度大小,对两者取差值来表征周期内排队长度的变化;然后从多维数据库获取当前路口的绿灯时长和红灯时长,便可计算每秒的车辆排队长度变化值,进一步得出剩下相位时间内的车辆排队长度大小。具体的仿真情况分以下两种:
第一种;若周期开始时刻为绿灯,则此时预测的车辆排队长度为最大值,到红灯开始时刻,预测的车辆排队长度为最小值,则绿灯时间内车辆排队长度变化值为前者减后者,仿真的是出车时的排队长度演变过程;
第二种:若周期开始时刻为红灯,则此时预测的车辆排队长度为最小值,到绿灯开始时刻,预测的车辆排队长度为最大值,则红灯时间内车辆排队长度变化值为后者减前者,仿真的是进车时的排队长度演变过程。
以上示意图见附图7。
仿真模块接收5部分数据:监控下车辆排队长度、车辆所处相位时刻、车辆到达率、车辆驶离交叉口流量、预测的车辆排队长度。如附图8。其中,监控下车辆排队长度、车辆所处相位时刻从数据采集模块获取,设定车辆到达率为泊松分布,车辆通过交叉口流量从多维数据库模块获取,预测的车辆排队长度从预测模块获取,最后根据视频监控下路口的实际情况对进车、出车过程进行动态仿真,实现与实际车辆排队长度变化大体一致的仿真排队长度演变,并每秒更新一次,从而让配时工作人员对未来时刻车辆队伍通过路口的情形有视觉的感受。以图7为例,仿真模块的工作思路如下:
进车情况:针对路口B西方向的进口道,预测模块首先根据上个周期的技术指标预测出当前周期红灯开始时刻t1的最小排队长度L1,和绿灯开始时刻t2的最大排队长度L2,则进车过程的排队长度变化为L2-L1,则红灯期间每秒的排队长度变化为(L2-L1)/(t2-t1);然后从多维数据库获取当前进车时刻为tnow,则剩下的车辆排队长度变化为(L2-L1)/(t2-t1)×(t2-tnow),最后根据从SCATS接口获取的交叉口周期内流量,计算每秒车辆驶离交叉口的数量,结合服从泊松分布的车辆到达率来实现排队长度每秒或数秒变化一次。并通过监控接口实时查看路口实际排队情况,与仿真的结果进行比较与分析。
出车情况:针对路口B西方向的进口道,预测模块首先根据上个周期的技术指标预测出当前周期绿灯开始时刻t2的最小排队长度L2,和红灯开始时刻t3的最大排队长度L3,则出车过程的排队长度变化为L3-L2,则绿灯期间每秒的排队长度变化为(L3-L2)/(t3-t2);然后从多维数据库获取当前出车时刻为tnow,则剩下的车辆排队长度变化为(L3-L2)/(t3-t2)×(t3-tnow),最后根据从SCATS接口获取的交叉口周期内流量,计算每秒车辆驶离交叉口的数量,结合服从泊松分布的车辆到达率来实现排队长度每秒或数秒变化一次。并通过监控接口实时查看路口实际排队情况,与仿真的结果进行比较与分析。
所述交互可视化模块中,此处主要对车辆排队长度仿真的可视化模块进行描述,其他的功能的可视化不作详细陈述。
交互可视化模块关系到用户的体验,包括大屏展示和各模块页面。该模块大屏展示整体或者区域的路网,可点击查看路口详情,可动态更新路段速度的大小并做不同等级展示,来直观展示路段的拥堵与畅通情况。可展示路网整体的速度与流量均值等指标。仿真系统会连通车辆排队长度异常的报警系统,若排队长度超过阈值,则报警并显示该路口的实际位置、路口编号、监控编号等静态信息,并将典型拥堵的路口以列表的形式实时刷新显示,供工程师在未来时刻关注这些路口。该仿真的可视化界面的功能点主要包括一下三点:
6.1)处置:若专业的交通控制工程师欲对报警路口处理,在点击该路口后,首先会出现路口仿真界面,供操作人员查看,同时也有接口连接实时监控,可供验证与校准。在专业的交通控制工程师根据实际情况调整方案后,系统会在后续的几个周期持续关注该路口,直到报警消除。若报警未消除,则仿真系统可连接控制系统,选择方案自适应生成功能,该功能根据SCATS系统中的交通流数据,自动生成控制方案,方案应用后,继续查看路口异常情况是否消除。
6.2)观察:若用户想了解某路段的信息,在点击某路段后,会展现当前路段的平均行车速度、平均车流量等信息。
6.3)查看:若用户想了解路口的具体情况,在点击某路口后,会展现路口基础信息功能、预测功能和仿真功能。具体的:
6.3.1)基础信息功能:连通SCATS系统和静态数据库,可供用户查询路口当前时刻的流量信息、饱和度信息、路口实时控制方案、车道数量和编号、各车道排队长度等数据。若提示数据缺失,则让用户选择是否修复,修复操作连接多维数据库模块,系统会根据自身算法对数据进行修复,然后将数据存入数据库对其补充,并展示结果。可查询、对比历史同时期(如一周、数周、一月)的各项数据,并给出变化曲线。
6.3.2)预测功能:排队长度预测需要输入车道编号、周期时刻,系统会在数据处理模块的支持下自动搜集技术指标数据集作为输入,然后利用生成网络算法生成排队长度数据。系统会根据数据库中存储的历史数据,来分析预测的准确度和误差,将指标与预测结果同时展现出来。
6.3.3)仿真功能:仿真模块支持,该模块自动读取预测功能产生的排队数据,选择确定的路口出现车辆排队长度动态变化的仿真效果。设计实时监控接口入口,供用户对比和验证。
本实施例单以车辆排队长度仿真为例进行步骤描述,不对其他的仿真功能进行陈述:
第一步:多维数据库通过各种接口对交通静态与动态数据进行获取,并对错误的数据进行清洗、对不规范的数据进行整理归纳、对数据进行标准化等操作。
第二步:针对检测器缺失或损坏导致的数据空白情况,数据修复模块根据车道之间的关系、上下游路口的关系,挖掘交通流的时空特征,对检测器的缺失数据部分进行修复。
第三步:在数据完整的基础上,对其进行聚合与特征提取,构建算法所需要的技术指标。
第四步:将训练数据分为训练集和测试集,先利用训练集对车辆排队长度进行生成训练,并根据评价指标计算生成值与真实值的误差;进一步的,将测试集运用到训练好的网络中,对预测值进行精度分析,若效果不佳,则利用强化学习模块对参数进行优化。
第五步:利用预测的最大最小车辆排队长度,假设车辆到达率为泊松分布,计算实际车辆驶离交叉口的流量和查询车辆所处的相位时刻,对交叉口进车、出车过程进行动态仿真。并且提供交叉口监控接口,专业的交通控制工程师可通过查看实际交叉口情况,对仿真的结果进行校准,若仿真与实际差距较大,则调用参数优化模块,对当前的算法网络进行调优。
第六步:实际运行中,若预测的车辆排队长度超过设定的阈值,则仿真系统会生成拥堵报警,专业的交通控制工程师通过点击路口查看仿真界面与实际监控视频,对交叉口的信号方案进行调整,直到排队长度恢复正常,报警解除。