一种城市交通流量预测系统及方法与流程

文档序号:18839919发布日期:2019-10-09 06:46阅读:290来源:国知局
一种城市交通流量预测系统及方法与流程

本发明涉及交通管理技术领域,特别是涉及一种城市交通流量预测系统及方法。



背景技术:

近年来随着科技、经济的发展,城市人口密度越来越大,拥有汽车的人数也在逐年增长,但人们对交通运输需求的提高却无法得到及时的满足。也就是说,交通发展的速度赶不上交通拥堵增加的程度。人们对于交通体验的要求也越来越高,不论出行的拥堵程度,还是交通的安全性都是交通体验的重要指标,在无法立即提高交通硬件设施的前提下,合理的出行策略和智能化的交通管理将会有望提高交通的质量。近年来,由于计算机性能的不断提升,深度学习已经成功运用到了很多应用中,并且被证明是最前沿的人工智能技术。将这些技术运用到时空数据对一系列的时空应用非常重要,将有望对包括城市交通,城市安全,城市规划等方面带来突破性的进展,从而给城市带来一个通畅安全的交通出行环境。

预测交通流量问题可以看成是一个时空预测问题。交通流量预测初期可分为近期和远期预测。近期预测可运用数理统计方法,对以往调查的交通流量进行数据处理,根据其发展规律和趋势,推算而得预测结果。远期预测可运用交通预测模型,对未来城市居民的出行活动作全面的分析研究,根据土地使用情况和道路交通网络规划,通过人流量的分布、交通方式的划分等步骤来预测交通预测。传统和近期的预测方法的不足如下:

(1)传统的时间序列预测模型

常用的模型有历史平均模型、滑动自回归平均模型(arima)、季节性差分自回归滑动平均模型(sarima)、风险价值模型(var)、人工神经网络模型(ann)等。历史平均模型无法对动态事件(如交通事故)做出响应;arima在分析之前需要区别对待,不适合有缺失值的时间序列;sarima的不足之处在于它非常耗时;var会忽略预测值和残差之间的关系;ann的线性建模能力欠佳。

(2)近期的深度神经网络模型

近期的深度神经网络模型在时间、空间上的应用取得了较多的成果和良好的发展,然而,卷积神经网络(cnn)和循环神经网络(rnn)都只能捕捉空间或者时间单一的依赖性。即使近期的长短期记忆网络(lstm)可同时学习时间和空间依赖性,但其无法建模很深的网络和很长的依赖关系。

现有技术存在不足的原因是:交通数据是时空数据,较为复杂,能够影响的因素较多,且实际的交通情况存在着较大的不可控性。再者预测模型自身存在缺陷,解决问题的方向单一,和复杂的交通数据存在矛盾,因此现有的模型只是在尽可能地减小误差,而无法良好地提取到实际交通的特征规律。

由于具体地区人群的主观因素和出行的行为特征。同时,城市的交通流量的空间特征规律十分复杂,且通常呈非线性,其对应的时间序列特征通常也因为很多复杂的因素是非线性且不可控的,传统和现有的模型通常存在精度不够,因此,有必要对交通时空数据的复杂性,非线性采用新的方法去结合交通的实际含义,寻求其特征规律进行分析和研究。



技术实现要素:

本发明主要解决的技术问题是提供一种城市交通流量预测系统及方法,能够很好地提取城市交通流量实际的时间,空间的特征,解决现有模型存在的时空数据处理方法不佳以及自身存在缺陷的问题。

为解决上述技术问题,本发明采用的一个技术方案是:提供一种城市交通流量预测系统,包括:数据收集模块,用于根据手机gps信号和/或车辆gps信号收集当前日期之前预定时间段内城市交通的轨迹点,统计每个网格区域每个单位时段的输入流和输出流,并将输入流和输出流整合为一个张量,其中,输入流为单位时段开始时不在网格区域内但结束时在网格区域内的所有轨迹点之和,输出流为单位时段开始时在网格区域内但结束时不在网格区域内的所有轨迹点之和,城市区域被划分为多个网格区域,若干个单位时段为一天;数据预处理模块,用于将输入流和输出流的特征尺度缩放到预测模型要求的范围,并选择一个日期作为目标日期,筛选目标日期的前3个单位时段的张量作为近期输入数据、前一天的张量作为周期输入数据、前一周的张量作为趋势输入数据,将目标日期的张量作为测试数据;模型训练模块,用于通过近期模型对近期输入数据进行提取特征得到近期输出流向量,通过周期模型对周期输入数据进行提取特征得到周期输出流向量,通过趋势模型对趋势输入数据进行提取特征得到趋势输出流向量,将近期输出流向量、周期输出流向量和趋势输出流向量进行集成得到目标日期的仿真流量图,将目标日期的仿真流量图的特征尺度缩放到预测模型要求的范围,利用目标日期的仿真流量图与测试数据的误差反向调节所述预测模型,其中,所述近期模型、周期模型、趋势模型均采用相同的深度残差神经网络架构;模型评估模块,用于利用均方根误差测试评估所述预测模型;交通预测模块,用于利用所述预测模型输出未来预定时间的预测流量图,将预测流量图缩放到原值,并使用热力图对所述预测流量图做可视化表示。

优选的,所述数据预处理模块还用于查找缺失轨迹点的待补全单位时段,并判断待补全单位时段之前预定天数的相同时间的单位时段是否存在轨迹点,在存在轨迹点时,根据所述连续预定天数的相同时间的单位时段的输入流通过ses函数对待补全单位时段的输入流进行填充,根据所述连续预定天数的相同时间的单位时段的输出流通过ses函数对待补全单位时段的输出流进行填充,以及在不存在轨迹点时,将待补全单位时段所在天的全部轨迹点删除。

优选的,所述ses函数表示如下:

ft+1=αxt+(1-α)ft

其中,t为本期时间,α为指数平滑系数,xt为第t期的实际观察值,ft为第t期的预测值,ft+1为第t+1期的预测值。

优选的,所述输入流表示为:

所述输出流表示为:

其中,tt是单位时段开始和结束时连线的轨迹,i表示网格区域的长,j表示网格区域的宽,p表示时间区间tth的轨迹集合,gk-1表示单位时段开始时的轨迹点,gk表示单位时段结束时的轨迹点,k表示轨迹点的编号;

所述张量表示为:

x∈r2×i×j

优选的,所述数据预处理模块采用的特征缩放算法如下:

x=x*2-1

其中,xmax表示所有数据中的最大值,xmin表示所有数据中的最小值;

与特征缩放算法对应的原值还原算法如下:

x=x*(xmax-xmin)+xmin。

优选的,所述深度残差神经网络架构依次包括3*3卷积层、12个残差单元、3*3卷积层、bn层、relu激活函数、3*3卷积层、残差的merge、激活函数和卷积层。

优选的,所述预测模型采用动态滑动时间窗口进行训练。

优选的,所述均方根误差表示为:

其中,n表示测试数据的数量,其中xi和分别表示测试数据的真值和对应的仿真值。

为解决上述技术问题,本发明采用的另一个技术方案是:提供一种城市交通流量预测方法,包括:s1:根据手机gps信号和/或车辆gps信号收集当前日期之前预定时间段内城市交通的轨迹点,统计每个网格区域每个单位时段的输入流和输出流,并将输入流和输出流整合为一个张量,其中,输入流为单位时段开始时不在网格区域内但结束时在网格区域内的所有轨迹点之和,输出流为单位时段开始时在网格区域内但结束时不在网格区域内的所有轨迹点之和,城市区域被划分为多个网格区域,若干个单位时段为一天;s2:将输入流和输出流的特征尺度缩放到预测模型要求的范围,并选择一个日期作为目标日期,筛选目标日期的前3个单位时段的张量作为近期输入数据、前一天的张量作为周期输入数据、前一周的张量作为趋势输入数据,将目标日期的张量作为测试数据;s3:通过近期模型对近期输入数据进行提取特征得到近期输出流向量,通过周期模型对周期输入数据进行提取特征得到周期输出流向量,通过趋势模型对趋势输入数据进行提取特征得到趋势输出流向量,将近期输出流向量、周期输出流向量和趋势输出流向量进行集成得到目标日期的仿真流量图,将目标日期的仿真流量图的特征尺度缩放到预测模型要求的范围,利用目标日期的仿真流量图与测试数据的误差反向调节所述预测模型,其中,所述近期模型、周期模型、趋势模型均采用相同的深度残差神经网络架构;s4:利用均方根误差测试评估所述预测模型;s5:利用所述预测模型输出未来预定时间的预测流量图,将预测流量图缩放到原值,将预测流量图缩放到原值,并使用热力图对所述预测流量图做可视化表示。

区别于现有技术的情况,本发明的有益效果是:

解决了传统和现有预测模型无法在保证精度的情况下,使用深层网络去拟合时空数据,寻找其空间规律的问题。通过使用三个模型对不同时间维度进行建模,解决了传统时间序列模型要求交通流量呈现季节性的问题。同时本发明在resnet模型基础上,优化了残差单元,如添加bn层,借鉴mobilenetv2的块单元设计思想优化其提取特征的方式,能够提高预测模型的精度。并且在训练模型的过程中,采取了动态滑动时间窗口的训练方式,不仅可以极大的提高训练的速度,减少模型的训练时间,而且也提升了模型的预测精度,可以高效地得到一个很好的预测模型。最后以rmse作为模型的评估标准,以中国某大城市公布的数据为例,该预测系统对比arima、sarima、var、rnn、lstm和门控循环单元(gru)效果表现更优。

附图说明

图1是本发明实施例的城市交通流量预测系统的架构示意图。

图2是是城市交通流量预测系统的数据定义图。

图3是是某城市的交通流量示例图。

图4是是本发明使用的预测模型的结构图。

图5是本发明实施例的城市交通流量预测系统进行短期预测的效果图。

图6是本发明实施例的城市交通流量预测系统进行长期预测的效果图。

图7是本发明实施例的城市交通流量预测方法的流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,是本发明实施例的城市交通流量预测系统的架构示意图。本实施例的城市交通流量预测系统包括数据收集模块10、数据预处理模块20、模型训练模块30、模型评估模块40和交通预测模块50。

数据收集模块10用于根据手机gps信号和/或车辆gps信号收集当前日期之前预定时间段内城市交通的轨迹点,统计每个网格区域每个单位时段的输入流和输出流,并将输入流和输出流整合为一个张量,其中,输入流为单位时段开始时不在网格区域内但结束时在网格区域内的所有轨迹点之和,输出流为单位时段开始时在网格区域内但结束时不在网格区域内的所有轨迹点之和,城市区域被划分为多个网格区域,若干个单位时段为一天。本发明划分的城市区域为中心城区,因为太过偏僻或人口密度较小的区域,不存在实际应用价值。

每个网格区域内的值代表流量图的像素点的大小,同时也代表该网格区域内交通流量的输入流和输出流的大小。参阅图2,是城市交通流量预测系统的数据定义图。如图2(a)所示,是输入流和输出流。输入流是在给定时间区间内进入一个区域的交通总流量。输出流是一段时间内从一个区域流出的交通总流量。输入流和输出流可以通过进出行人的数目、汽车的数目、公共汽车的数目估计出来。图2(b)中给出了一个例子,我们可以利用手机信号来估计行人的数目,表明r2区域中人的输入流和输出流分别是3和1。类似的,使用车辆的gps轨迹,r2区域中车辆的输入流和输出流分别为0和3。因此,总共的输入流和输出流分别是3和4。

参阅图3,是某城市的交通流量示例图。本实施例中,某城市的城市区域被划分成32×32的网格区域,数据收集模块10统计得到每个网格区域某单位时段的输入流和输出流。输入流表示为:

输出流表示为:

其中,tt是单位时段开始和结束时连线的轨迹,i表示网格区域的长,j表示网格区域的宽,p表示时间区间tth的轨迹集合,gk-1表示单位时段开始时的轨迹点,gk表示单位时段结束时的轨迹点,k表示轨迹点的编号;

张量表示为:

x∈r2×i×j

也就是说,统计每个网格区域每个单位时段(例如为30分钟)的输入流和输出流,统计完之后得到一个i×j的矩阵,将i×j的矩阵转换为一个双通道的流量图,记为2×i×j,其中2是通道数即双通道,分别表示单位时段的输入流和输出流,该流量图即为将流量数据转化为张量的数据格式。

数据预处理模块20用于将输入流和输出流的特征尺度缩放到预测模型要求的范围,并选择一个日期作为目标日期,筛选目标日期的前3个单位时段的张量作为近期输入数据、前一天的张量作为周期输入数据、前一周的张量作为趋势输入数据,将目标日期的张量作为测试数据。

其中,之所以要对输入流,输出流的特征尺度进行特征缩放,是因为面对多维特征问题的时候,需要保证这些特征都具有相近的尺度,从而可以帮助梯度下降算法更快地收敛,从而提高算法效率。在本实施例中,预测模型要求的范围为-1到1之间。在本实施例中,数据预处理模块20采用的特征缩放算法如下:

x=x*2-1

其中,xmax表示所有数据中的最大值,xmin表示所有数据中的最小值;

与特征缩放算法对应的原值还原算法如下:

x=x*(xmax-xmin)+xmin

也就是说,在进行特征缩放时,可以利用特征缩放算法进行缩放,在需要将数据还原成原值时,则可以利用原值还原算法进行还原。

近期输入数据、周期输入数据、趋势输入数据都是目标日期之前的数据,且都以张量图的形式存储,举例而言,测试数据为目标日期2013071201的数据,存储格式为[2][32][32],则近期输入数据为2013071148、2013071147、2013071146的数据,存储格式为[6][32][32];周期输入数据为2013071101到2013071148的数据,存储格式为[2][32][32];趋势输入数据为2013070501到2013071148的数据,存储格式为[2][32][32]。

模型训练模块30用于通过近期模型对近期输入数据进行提取特征得到近期输出流向量,通过周期模型对周期输入数据进行提取特征得到周期输出流向量,通过趋势模型对趋势输入数据进行提取特征得到趋势输出流向量,将近期输出流向量、周期输出流向量和趋势输出流向量进行集成得到目标日期的仿真流量图,将目标日期的仿真流量图的特征尺度缩放到预测模型要求的范围,利用目标日期的仿真流量图与测试数据的误差反向调节预测模型,其中,近期模型、周期模型、趋势模型均采用相同的深度残差神经网络架构。

在本实施例中,深度残差神经网络架构依次包括3*3卷积层、12个残差单元、3*3卷积层、bn(batchnormalization)层、relu激活函数、3*3卷积层、残差的merge、激活函数和卷积层。近期输入数据、周期输入数据、趋势输入数据在经过三个模型后,最终在三个模型merge过后链接到全连接层,再通过tanh激活函数,将目标日期的仿真流量图的特征尺度缩放到[-1,1]之间,和数据预处理的特征尺度缩放一致,从而得到符合预测数据形式的结果,从而与实际结果进行比较,反向的调节预测模型参数进行训练。

参阅图4,是本发明使用的预测模型的结构图。三个模型对不同时间依赖进行特征提取,最后进行集成,然后通过tanh函数映射到预测模型要求的范围,从而得到仿真流量图。

本发明在resnet的block基础上提出了添加bn和符合数据要求的残差单元,然后结合mobilenet-v2模型的块单元优化了resnet模型的残差单元,借用了轻量化网络mobilenet-v2模型块单元的思想“扩张→卷积提特征→压缩”,将原来残差网络的卷积单元的卷积方式2→4→64改为2→256→64,使得模型精度提升。本文的近期卷积原理形式化表达为(周期以及趋势模型类似):

其中x指代的是近期模型的数据和目标数据,其中*代表卷积,f代表激活函数,wc(1)和bc(1)代表需要学习的参数。

本发明的resnet模型形式化表达为(周期以及趋势模型与其相同):

其中代表l层残差单元所包含的所有学习参数。

从而可以在深度增加的前提下,保证准确率不会下降。

在本实施例中,预测模型采用动态滑动时间窗口进行训练。具体而言,首先将数据按照时间顺序排列,然后定义了动态大小的时间滑动窗口,对数据中时间日期添加时间的相关性计算,将窗口大小动态设置为21天至35天(3周至5周),每次在筛选窗口大小时,依次比较每个天数对应的时间数据之间的相关性,并对其进行求和,最后求平均,然后取平均相关性最大的窗口大小,然后进行训练。然后窗口向后1周的数据作为测试集,然后从数据初始位置开始向后滑动,每次向后滑动1周的时间,然后做窗口大小动态选择,最后直到训练数据不足结束,完成模型的训练。极大的优化了模型训练速度,其具体算法流程可以为时间滑动窗口优化算法或动态滑动时间窗口相关度的计算。

时间滑动窗口优化算法的编码示例如下:

input:

traindata://用于训练模型的已经预处理好的数据

output:

{model}//训练好的模型,后期可直接调用其方法,保存模型参数

1index=0//开始索引

2while(index+size*48<len(traindata))://结束训练条件

3size=maxcorrelation(data,index)//动态窗口大小计算(相关度计算)

4traindata_window=traindata[index:index+size*48]//一个窗口的训练数据

5testdata_window=traindata[index+size*48:index+(size+7)*48]//测试数据

6model.load(before_model)//加载上一个窗口训练好的模型

7model.fit(traindata_window,testdata_window)//迭代更新模型

9index=index+7*48//其中48为每一个天的时间间隙数量

动态滑动时间窗口相关度的计算的编码示例如下:

input:

x2://对应的时间序列,时间已处理为整数,比如2015050101,2015050102…

y2://依此对应的序号,比如1,2…

1xmean=np.mean(x2);ymean=np.mean(y2)//公式计算#均值

2xsd=np.std(x2);ysd=np.std(y2)//标准差

3zx=(x2-xmean)/xsd//z分数

4abs_zx=(zx);zy=(y2-ymean)/ysd;abs_zy=(zy)#相关系数

//平均相关度,用于后期做比较

5r=(np.sum(abs_zx)+np.sum(abs_zy))/(len(y2)+len(x2)*5)

模型评估模块40用于利用均方根误差测试评估预测模型。

在本实施例中,均方根误差作为评估模型,其表示为:

其中,n表示测试数据的数量,其中xi和分别表示测试数据的真值和对应的仿真值。在具体应用时,可以评估多次,最后取平均值。

举例而言,模型评估模块40选用4年的数据,分别对应了2013年的7月1日-10月29日,2014年的3月1日-6月27日,2015年的3月1日-6月27日和2015年11月1日-2016年2月10日的数据作为训练数据,2016年2月10日-2016年4月10日数据作为测试数据,数据的格式为(样本量,图像通道,图像长度,图像宽度),单位时段为30分钟,输入6×m×n,2×m×n,2×m×n,输出为2×m×n,采用rmse评估预测模型,每个地区的流量最大值为1293,预测的rmse为0.0298,折合到真实值为17.30,均方根误差rmse越小,表示预测模型的精度越高。

以rmse作为评估标准,不同算法模型交通流量预测对比如表1所示:

表1不同模型结果对比表

交通预测模块50用于利用预测模型输出未来预定时间的预测流量图,将预测流量图缩放到原值,并使用热力图对预测流量图做可视化表示。其中,预测流量图通过原值还原算法得到原值,从而得到预测的结果。

参阅图5,是本发明实施例的城市交通流量预测系统进行短期预测的效果图。本实施例通过echart的热力图对预测效果进行了展示,预测结果为2016年4月10日00:30的交通流量的输入流和输出流情况,每个区域有具体的值。

参阅图6,是本发明实施例的城市交通流量预测系统进行长期预测的效果图。本实施例通过echart的热力图对预测效果进行了展示,预测结果为2016年4月10日00:30和2016年4月10日01:00的交通流量的输入流和输出流情况,每个区域有具体的值。其长期预测的原理是,先进行短期预测,然后将短期预测结果作为输入数据放入预测模型,再次进行短期预测,从而达到长期预测的效果,

在本实施例中,数据预处理模块20还用于查找缺失轨迹点的待补全单位时段,并判断待补全单位时段之前预定天数的相同时间的单位时段是否存在轨迹点,在存在轨迹点时,根据连续预定天数的相同时间的单位时段的输入流通过ses函数对待补全单位时段的输入流进行填充,根据连续预定天数的相同时间的单位时段的输出流通过ses函数对待补全单位时段的输出流进行填充,以及在不存在轨迹点时,将待补全单位时段所在天的全部轨迹点删除。预定天数例如为5-14天,也就是说,如果待补全单位时段所在日期的前5-14天的每个单位时段均存在轨迹点,那么就对该待补全单位时段的输入流和输出流进行补全,否则将该待补全单位时段所在日期的所有单位时段的轨迹点剔除。

进一步地,ses函数表示如下:

ft+1=αxt+(1-α)ft

其中,t为本期时间,α为指数平滑系数,xt为第t期的实际观察值,ft为第t期的预测值,ft+1为第t+1期的预测值。

参阅图7,是本发明实施例的城市交通流量预测方法的流程示意图。本实施例的城市交通流量预测方法包括以下步骤:

s1:根据手机gps信号和/或车辆gps信号收集当前日期之前预定时间段内城市交通的轨迹点,统计每个网格区域每个单位时段的输入流和输出流,并将输入流和输出流整合为一个张量,其中,输入流为单位时段开始时不在网格区域内但结束时在网格区域内的所有轨迹点之和,输出流为单位时段开始时在网格区域内但结束时不在网格区域内的所有轨迹点之和,城市区域被划分为多个网格区域,若干个单位时段为一天;

s2:将输入流和输出流的特征尺度缩放到预测模型要求的范围,并选择一个日期作为目标日期,筛选目标日期的前3个单位时段的张量作为近期输入数据、前一天的张量作为周期输入数据、前一周的张量作为趋势输入数据,将目标日期的张量作为测试数据;

s3:通过近期模型对近期输入数据进行提取特征得到近期输出流向量,通过周期模型对周期输入数据进行提取特征得到周期输出流向量,通过趋势模型对趋势输入数据进行提取特征得到趋势输出流向量,将近期输出流向量、周期输出流向量和趋势输出流向量进行集成得到目标日期的仿真流量图,将目标日期的仿真流量图的特征尺度缩放到预测模型要求的范围,利用目标日期的仿真流量图与测试数据的误差反向调节预测模型,其中,近期模型、周期模型、趋势模型均采用相同的深度残差神经网络架构;

s4:利用均方根误差测试评估所述预测模型;

s5:利用预测模型输出未来预定时间的预测流量图,将预测流量图缩放到原值,并使用热力图对所述预测流量图做可视化表示。

本实施例的方法具有与前述实施例的系统相同的技术特征,在此不再赘述。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1