包 智 鹏, 支 永 帅, 张 素 民, 何 睿
( 吉林大学 汽车仿真与控制国家重点实验室, 吉林 长春 130025 )
高速公路场景下由于车辆的行驶速度较快,发生交通事故的风险也大大增加,若要保证智能汽车在高速公路上安全行驶,需要智能汽车具备预测周围车辆的驾驶行为和轨迹的能力.然而在实际高速公路场景中,由于存在车辆交互、多模态驾驶行为以及驾驶员驾驶风格的多样性等诸多影响因素,对车辆的驾驶行为和轨迹进行预测成为了一项极具挑战的任务.
在基于学习的方法被应用之前,最早使用卡尔曼滤波(Kalman filtering,KF)进行轨迹预测.该方法在短期预测方面具有良好的表现[1-2].但该方法没有考虑驾驶员的驾驶行为,使其不适用于长期预测.为了提升长期预测的准确率,研究人员使用了高斯混合模型(Gaussian mixture models,GMMs)[3]、隐马尔可夫模型(hidden Markov models,HMMs)[4-7]和动态贝叶斯网络(dynamic Bayesian network,DBN)[8-9].这些预测模型将车辆视作一个单独的个体,使车辆与周围环境分割开来,忽略了道路环境及车辆交互的影响,使得模型在动态环境下的预测准确率降低.
为解决这一问题,研究人员将道路环境和车辆交互设计为轨迹预测中的代价函数,根据代价函数对未来轨迹做出最优预测.Bahram等[10]、Deo等[11]采用手动定义的代价函数(hand crafted cost function)对未来行为做出最优预测.Käfer等[12]采用上述方法进行十字路口场景下的车辆轨迹预测.这些代价函数不依赖于训练数据,可以根据需求灵活设置.但是模型预测结果的质量直接取决于设计的代价函数的合理性.
随着基于深度学习的方法在轨迹预测方面取得了较好的表现,越来越多的研究人员开始采用这种方法.轨迹预测是根据过去的一段轨迹序列预测未来的一段轨迹序列,即序列到序列转换(Sequence2Sequence)问题,因此可以通过基于循环神经网络(recurrent neural network,RNN)的方法完成预测任务.
近年来有大量的行为预测及轨迹预测研究都采用基于RNN的方法.Phillips等[13]利用长短周期记忆网络(long short-term memory network,LSTM)进行十字路口处的车辆行为预测.Xiao等[14]利用LSTM进行高速公路场景下的车辆行为识别及轨迹预测.Khosroshahi等[15]、Ondruska等[16]利用LSTM进行移动物体的检测.Kim等[17]提出利用LSTM预测未来2 s内车辆的位置.Shi等[18]使用LSTM在人流密集场景下预测行人轨迹,并建立了包含周围人轨迹信息的障碍物占据栅格,以考虑人类交互对被预测人类轨迹的影响,但后续将障碍物占据栅格中的信息输入到全连接层(fully connected layer,FC)的方法破坏了原来保存在障碍物占据栅格中的空间信息,导致预测准确率降低.Yoon等[19]采用门控循环单元(gated recurrent unit,GRU)进行车辆的行为预测,利用变分自动编码器(variational auto encoder,VAE)与GRU相结合的方式预测轨迹,同时将从地图中提取的道路结构信息编码进模型,排除未来不可能发生的行为,以提高预测效率及准确率.该方法所采用的GRU由于其结构简单,能够在更短的时间内完成预测.然而该方法在进行预测时仅考虑了道路结构,忽略了车辆交互的影响,使得在车辆较多的场景下模型预测结果的准确率有所降低.
为了满足高速公路场景下智能车辆快速准确预测周围车辆驾驶行为和轨迹的要求,同时预测过程需考虑车辆交互对预测结果的影响,本文提出一种基于双向门控循环单元(bi-directional gated recurrent unit,BiGRU)的多模态驾驶行为及轨迹预测模型.模型由BiGRU编码器、交互卷积池化层和GRU解码器组成.BiGRU编码器编码被预测车辆及其周围车辆的轨迹信息,交互卷积池化层保存车辆交互信息,GRU解码器将两者信息解码,生成多模态驾驶行为对应的轨迹.本文主要研究内容如下:
(1)基于BiGRU编码车辆历史轨迹:在实际应用中,智能汽车需要快速预测周围车辆的驾驶行为及轨迹,因此本文采用BiGRU编码器编码车辆的历史轨迹.与常用的LSTM不同,BiGRU的结构更为简单,能够有效简化计算步骤,同时其双隐状态层结构能够更完整地提取历史轨迹中各个轨迹点间的隐含关联信息.
(2)交互卷积池化层:高速公路场景中在道路上行驶的车辆可以被视作一个相互依赖的整体,各自的驾驶行为影响彼此的决策.本文根据高速公路的道路结构以及该场景下车辆交互的特点设计了交互卷积池化层,将被预测车辆周围车辆的编码信息作为输入,学习多车行为的依赖关系,响应交通环境的变化,动态调整预测的轨迹.
车辆的驾驶行为预测和轨迹预测,两者的本质是分类问题和回归问题.车辆的驾驶行为预测是从输入的历史信息到离散的车辆驾驶行为标签的映射函数近似任务,考虑到车辆存在多个驾驶行为,车辆的驾驶行为预测可视作一个多元分类问题.而车辆轨迹预测是将输入的历史信息的映射函数近似为连续输出变量——车辆未来轨迹任务,由于历史信息和输出的车辆未来轨迹与时间有关,车辆轨迹预测可视作输入变量按时间排序的回归问题,即时间序列预测问题.
车辆驾驶行为预测与轨迹预测的难点在于实际应用时预测模型的计算消耗时间要尽可能低,同时保证较高的准确率.其次是输入预测模型的历史信息在模型中传递时不出现关键信息丢失或失真现象.
预测问题共分为两个阶段:驾驶行为预测阶段和轨迹预测阶段.设I=(SeE)为驾驶行为预测的输入,其中E=(SjD),E为车辆交互信息,D为被预测车辆与其周围车辆间的相对位置信息;C={c1,c2,…,c6}为驾驶行为预测阶段输出的驾驶行为,c1,c2,…,c6分别代表直行、左换道、右换道、减速直行、减速左换道和减速右换道6种驾驶行为;mi(i=1,2,…,6)分别为各个驾驶行为的概率;M由各个驾驶行为概率组成,驾驶行为预测阶段的输出为
mi=P(ci|I),M={m1,m2,…,m6}
(1)
轨迹预测阶段根据输入I,在驾驶行为预测的基础上预测未来轨迹的概率分布:
P(O|I)=∑Pρ,μ,σ(Oi|ci,I)P(ci|I)
(2)
式中:O为轨迹预测阶段输出量;Pρ,μ,σ(Oi|ci,I)为输出的基于多模态驾驶行为的轨迹高斯分布;ρ、μ、σ为高斯分布参数.
本文设计的预测模型由BiGRU编码器、交互卷积池化层和GRU解码器组成.BiGRU编码器隐状态为64×2维;GRU解码器隐状态为128维;交互卷积池化层尺寸如图1所示.图1中θ为预测阶段的输出量,为高斯分布参数集合,即式(2)中的ρ、μ、σ.本文选用Adam优化器训练预测模型,设置学习率为0.001,模型采集历史信息的时间窗口Tobs为3 s,预测时间窗口Tpred为5 s.
图1 基于BiGRU的多模态驾驶行为及轨迹预测模型
本文设计的预测模型的编码器和解码器基于GRU实现,GRU最早由Cho等[20]提出.近年来在机器翻译[21]、语音识别[22]领域得到了广泛的应用.GRU由门控单元来调节单元内部的信息流.在LSTM中有3个门控单元——输入门、遗忘门和输出门来控制输入值、记忆值和输出值.而在GRU中只有两个门控单元:更新门和重置门.GRU在完成预测任务时的性能与LSTM相似,但GRU结构更为简单,得出预测结果时间比LSTM更短,适合用于在线的车辆轨迹预测.GRU具体结构如图2所示.
图2 GRU结构
(3)
zt=σ(WzXt+Uzht-1)
(4)
rt=σ(WrXt+Urht-1)
(5)
(6)
式中:σ为sigmoid函数,Wz、Wr、W为权值矩阵,Uz、Ur、U为偏置向量.其中Wz、Wr、W、Uz、Ur、U均为模型需要学习的参数,在训练模型的过程中,这些参数的值会随着每一次梯度下降而更新,当模型训练完成时,这些参数的值将达到最优.然而在模型训练前需要对这些参数进行初始化,为防止模型训练过程中出现梯度消失和梯度爆炸导致模型训练表现不佳,本文采用Xavier初始化方法[23]初始化Wz、Wr、W等权值矩阵,采用零初始化方法初始化Uz、Ur、U等偏置向量.
为了降低模型计算消耗时间,同时保证模型的预测性能,本文提出的模型采用BiGRU编码器,其作用是将车辆历史轨迹编码成一个包含车辆运动状态信息的上下文向量.模型为被预测车辆及其周围车辆分别分配一个BiGRU编码器,被预测车辆的上下文向量经过一个全连接层后输入到GRU解码器.而周围车辆的编码向量需要经过交互卷积池化层后再输入到GRU解码器,如图1所示.
车辆历史编码过程:在一个Tobs周期内,编码器分别将车辆历史轨迹序列的正序和逆序传递给BiGRU编码器两个单独的隐状态层,随后这两个隐状态层都连接到相同的输出层.此时输出层具有了输入序列中每个点的完整过去和未来信息.
如图3所示,一个完整的BiGRU包含输入层、隐状态层和输出层.模型中的BiGRU编码器只包含输入层和隐状态层.目的是对输入的轨迹序列进行记忆,并输出存储了车辆运动状态信息的最终隐状态ht,即上下文向量.
图3 BiGRU结构
BiGRU的前向计算和普通GRU一样,但BiGRU的输入序列对于两个隐状态层是相反方向的,而且输出层直到两个隐状态层处理完全部的输入序列才会更新.BiGRU的后向传播也与GRU类似,所有的输出层误差项首先被计算,随后再返回给两个不同方向的隐状态层.
获得两个隐状态层的输出后,将两者进行拼接得到编码器的隐藏状态ht.
(7)
在传统的轨迹预测研究中,被预测车辆通常被假设为一个独立的个体,而在实际的驾驶环境中,车辆交互对被预测车辆的驾驶行为及轨迹的影响是不可忽略的,因此模型在预测车辆的驾驶行为及轨迹时必须考虑车辆交互.最能够体现车辆交互的是被预测车辆与周围车辆间的相对位置信息、周围车辆所在车道信息以及周围车辆的运动状态信息.现有的预测方法中往往只考虑了周围车辆的运动状态信息而忽略了较为重要的被预测车辆与周围车辆间的相对位置信息和周围车辆所在车道信息.然而若直接将车辆间的相对位置和车辆所在的车道信息分别以欧式距离的形式和车道标签的形式输入到预测模型中,将延长车流较为密集时刻的预测时间,并降低预测准确率.
考虑到高速公路通常为多车道,线路笔直且无交叉口,同时车辆通常在车道内沿同一方向行驶,若将高速公路沿纵向以车辆长度为间隔划分为多段,沿横向以车道宽度为间隔划分,将得到类似栅格的障碍物占据图,其中车辆可视作障碍物.此时车辆所在栅格的位置,便包含了车辆间的相对位置信息和车辆所在车道位置信息.
本文按上述划分方法建立了栅格图形式的交互池.交互池的填充规则:根据被预测车辆与其周围车辆在空间上的相对位置填充到对应的栅格中.考虑到距离被预测车辆较远的车辆对其影响较小,交互池的尺寸需要加以限制.在横向上,考虑被预测车辆所在车道及其左右两车道内的车辆;在纵向上,考虑以被预测车辆为中心的前后各36 m范围内的车辆(一个栅格的长度为4.5 m).最后得到一张17×3的交互池,交互池填充后的效果如图1所示.
现有基于深度学习的预测方法通常会将获取的被预测车辆运动状态信息连接至全连接层以获得预测的驾驶行为.与之不同,交互池获取的车辆交互信息不能直接连接到全连接层,因为全连接层会破坏原来交互池中保存的空间信息,导致距离较远的车辆对被预测车辆产生的影响与距离较近的车辆对被预测车辆产生的影响是相同的.例如,被预测车辆正常行驶在道路上,此时发现左侧相邻车道前方36 m处车辆进行急减速,其产生的影响可能与被预测车辆当前车道前方18 m处车辆进行急减速所产生的影响是相同的,这将影响到预测的准确率.
由于本文建立的交互池是栅格图形式,同时提取交互池中信息时需保留栅格间的空间位置信息,这与用CNN进行图像识别的方法类似.CNN中卷积层的等变异性有助于保留张量中相对位置信息的特征,而池化层可以进一步提取特征,防止过拟合以及保证平移不变性.因此在预测模型中添加了两个卷积层和一个池化层,组成交互卷积池化层,其结构如图1所示,其中池化层的输出为考虑了车辆交互的环境信息编码.
不同驾驶员的驾驶风格不同,以及驾驶行为存在多种可能,即多模态,使得未来的轨迹存在不确定性.为了展示驾驶行为的多模态,以及轨迹不确定性,GRU解码器生成未来Tpred时间内不同驾驶行为的概率,以及不同驾驶行为下的每一帧轨迹点的二维高斯分布.预测未来轨迹的概率分布可由式(2)计算得到.
在训练模型的过程中,需要将损失函数降到最小,本文采用负对数似然损失(negative log likelihood,NLL)为模型的损失函数,如式(8)所示:
(8)
式中:Xobs为所预测车辆的历史轨迹序列,Ck为驾驶行为预测阶段预测出的驾驶行为,G为轨迹预测阶段预测出的车辆未来轨迹的高斯分布.
本文采用开源数据集NGSIM中的US-101[24]路段和I-80[25]路段训练模型.该数据集采样频率为10 Hz,记录了包括车辆坐标、速度、加速度、车辆类型和车道编号等信息.将数据集中的80%作为训练集和验证集,其余20%作为测试集.为了便于训练预测模型,采用滑动视窗的方式,以当前帧目标车辆的坐标为参考点,分步提取前3 s和后5 s的轨迹序列作为历史轨迹和未来真实轨迹.
在实际应用中,轨迹预测模块需要实时地预测出目标车辆未来的驾驶行为.因此本文提出的预测模型会在每个参考点更新输入的历史轨迹信息,动态调整最新的预测.为了体现这一动态调整过程,本文从测试集中选择了具有代表性的3种驾驶行为的预测过程,如图4所示.在每个参考点滑动输入轨迹序列,其中历史时域为3 s,预测时域为5 s.
如图4(a)所示,在200~500 m时,汽车基本保持在车道中央行驶.模型预测的驾驶行为为直线行驶,其概率也基本保持在1左右,而左换道和右换道驾驶行为对应的概率始终为0,即使轨迹在中途有些波动,模型的预测结果仍然没有受到影响.当汽车纵向位移为500 m左右时,汽车产生左换道意图,同时汽车的轨迹开始向车道左侧移动.此时模型所预测的左换道驾驶行为的概率开始上升,当汽车与车道线接触时,左换道驾驶行为的概率也上升到1.当汽车驶过车道线后,模型预测的左换道驾驶行为的概率逐渐下降至0,而直线行驶驾驶行为概率逐渐上升至1,同时在整个左换道过程中右换道驾驶行为概率始终为0.
同样的,图4(b)所示的汽车右换道过程,模型准确地预测了汽车的右换道驾驶行为.图4(c)展示的是汽车存在减速行为直线行驶的预测过程.汽车在纵向位移约1 850 m时发现当前车道前方200 m处有汽车在低速行驶,随后进行减速.在减速过程中,模型预测的减速直线行驶行为概率逐渐上升至1,同时左换道和右换道驾驶行为的概率始终为0.
图4的结果表明,本文设计的模型能够较为及时且准确地预测出汽车的多种驾驶行为,这有助于后续预测多模态驾驶行为对应的轨迹.
为了验证模型的准确性,试验设置了多种车辆轨迹预测模型作为对比,比较不同模型预测长时域轨迹时的均方根损失(root mean square error,RMSE)和NLL损失.
LSTM:将预测车辆的历史轨迹输入LSTM编码器,并将编码器输出的信息连接至全连接层,
(a) 车辆向左换道
(b) 车辆向右换道
(c) 车辆减速直线行驶
随后LSTM解码器输出未来轨迹分布,不考虑多模态性质.
GRU:将预测车辆的历史轨迹输入到包含全连接层的GRU预测未来轨迹分布,不考虑多模态性质.
BiGRU:将预测车辆的历史轨迹输入到包含全连接层的BiGRU预测未来轨迹分布,不考虑多模态性质.
CS-GRU:GRU与本文提出的交互卷积池化层连接,预测未来轨迹分布,不考虑多模态性质.
BiGRU-CS-GRU:该模型为本文设计的基于BiGRU的驾驶行为及轨迹预测模型,但不考虑多模态驾驶行为.
BiGRU-CS-GRU(M):该模型为本文设计的基于BiGRU的多模态驾驶行为及轨迹预测模型.
由表1可以看出,LSTM、GRU和BiGRU 3个模型在完成车辆轨迹预测任务时所展现出的性能基本相同,这一结果表明此前常用于语音识别、文字识别任务的GRU、BiGRU模型也能够完成车辆轨迹预测任务,同时保证良好的性能.此外由于BiGRU模型更为充分地利用了历史轨迹信息,其RMSE损失略低于前两者.
值得注意的是CS-GRU、BiGRU-CS-GRU模型的RMSE损失比前三者有了较大幅度的降低,该结果表明交互卷积池化层相较于全连接层能够有效地保留车辆交互信息,降低轨迹预测误差.
表1 不同模型RMSE损失对比
此外试验还对比了单一模态行为预测的轨迹预测模型BiGRU-CS-GRU和多模态行为预测的轨迹预测模型BiGRU-CS-GRU(M)的NLL损失.此处不使用RMSE损失进行对比是因为RMSE倾向于评估模型的平均结果,不适用于评估多模态的预测模型.如图5所示,BiGRU-CS-GRU(M)的NLL损失明显比BiGRU-CS-GRU的低,说明BiGRU-CS-GRU(M)预测的多模态轨迹分布相比BiGRU-CS-GRU预测的单一模态轨迹分布更适合表示车辆未来的真实轨迹.
图5 有无多模态驾驶行为预测下的NLL损失对比
在实际交通场景中,轨迹预测模块需要考虑车辆交互的影响并准确地预测出目标车辆的多模态轨迹.为了体现模型预测多模态轨迹时考虑了车辆交互的影响,本文从一段左换道行驶的轨迹预测过程中挑选了具有代表性的3帧图片.每一帧图片对应一个参考点,并以参考点前3 s的历史轨迹作为输入,预测未来5 s车辆的多模态轨迹.
图6展示了交通场景中汽车受车辆交互影响下的换道过程.图6(a)、(b)、(c)分别为同一汽车换道过程中具有代表性的3帧图片.灰色汽车是被预测车辆,绿色汽车为主车周围对其有交互影响的交通车.图中显示了不同驾驶行为即直行(KL)、左换道(LCL)、右换道(LCR)、减速直行(KL-Brake)、减速左换道(LCL-Brake)、减速右换道(LCR-Brake)所对应的预测轨迹高斯分布中概率最大的轨迹点序列.
图6(a)显示当前时刻主车周围存在4辆交通车,模型通过过去3 s主车、交通车的历史轨迹信息以及交互卷积池化层输出信息预测出了未来5 s车辆不同驾驶行为对应的轨迹.为便于观察,仅展示直行、左换道、右换道3条轨迹,直行轨迹的概率为1,左换道轨迹概率为0,右换道轨迹概率为0.
图6(b)显示由于主车前方1号车车速较低, 2号车距离较近且车速较快使得右边车道没有换道空间,而左边车道3号车距离较远,有较大的换道空间,主车准备换道超车.由于输入数据的更新,模型预测的主车轨迹发生变化,同时左换道轨迹的概率上升至0.4,直行轨迹的概率下降至0.6,右换道轨迹的概率为0.
图6(c)显示主车已与车道线接触,正在进行换道.此时可以看到左换道轨迹的概率为三者中最大,直行轨迹的概率下降至0.2,右换道轨迹的概率始终为0.
(a) 车辆未产生换道意图
(c) 车辆向左换道
值得注意的是,由于模型考虑了交通车的状态信息以及主车与交通车间的相对位置信息,所以在图6(b)时刻的交通场景下模型判断出汽车采取左换道的概率会更高.而没有考虑这些信息的预测模型所得出的结果将是左换道和右换道的概率同样高.
本文设计了一种适用于高速公路场景的基于BiGRU的多模态驾驶行为及轨迹预测模型,模型首先计算出多模态驾驶行为的概率,并在此基础上输出多模态驾驶行为对应的预测轨迹的高斯分布.模型通过BiGRU编码器编码车辆的状态信息.为考虑车辆交互的影响,利用交互卷积池化层记录被预测车辆与周围车辆间的相对位置信息和车辆所在车道信息,使得模型能够根据当前的交通场景快速且准确地预测车辆未来的驾驶行为和轨迹.试验结果表明,该模型相较于其他轨迹预测模型在长时间预测精度上有明显提高.
本文所设计的模型基于高速公路的行车数据进行训练,因此不适用于城市道路、工厂园区和停车场等低速场景,适用范围有限.今后将尝试设计适用于低速场景的车辆轨迹预测模型,并使之能够考虑更多交通环境语义(如信号灯、道路结构等)进行驾驶行为预测及轨迹预测.