蒋渊德,朱 冰,赵祥模,赵 健,郑兵兵
(1.长安大学信息工程学院,西安 710018;2.吉林大学,汽车仿真与控制国家重点实验室,长春 130025;3.中航光电科技股份有限公司,洛阳 471000)
自动驾驶汽车测试是保障车辆安全性的基础防线,然而由于实际交通场景维度高、交通车辆之间存在复杂的动态交互关系,给自动驾驶测试带来了挑战。当前广泛采用的测试场景缺乏对背景交通车辆的交互描述,难以可靠反映实际交通场景特性。如何描述交通车辆交互特征,是测试技术的研究难点,是决定自动驾驶汽车测试结果可信性的基础,当前研究中通常采用交通流模型(元胞自动机、智能驾驶员模型、社会力模型[1]等)进行自动驾驶汽车测试,对实际交通车辆之间的复杂交互特征表达能力有限。
在自动驾驶汽车测试场景构建方面,通过数理统计分析驾驶数据分布特征,结合各场景的边界先验知识构建典型测试场景得到成功应用,如建立切入场景、交叉口冲突场景、跟驰场景[2]等。定义不同场景之间的差异度量,利用非监督学习算法分析自然驾驶数据是另一类场景提取方法,常用的有kmeans、贝叶斯推理[3]等。深度学习在构建测试场景方面得到了广泛研究,如深度学习聚类、变分自编码器、生成式对抗神经网络[4]。但这些方法偏向于建模驾驶数据的概率统计关系,常生成类似的或不合理的场景。交通车辆之间的交互特征是影响测试场景有效性的重要因素。Markkula等[5]对交通车辆交互特征研究进行了调研总结,将交互定义为路权冲突。Scheibler等[6]将车辆间的交互描述为行为已知条件下的约束建模问题,通过优化求解算法生成边界测试场景。Bagschik等[7]基于本体论建立了交通车辆间的交互关系知识,提出了语义场景生成方法。Zhang等[8]对车-车、人-车、人-人之间的交互进行了研究,基于贝叶斯博弈论建立了拟人交通车辆模型。Chao等[9]将交通车辆之间的交互作用建模为引力和斥力,构建了自动驾驶汽车虚拟测试环境。Feng等[10]基于实际驾驶数据统计车辆状态转移概率,构造了对抗驾驶场景。
利用机器学习算法从驾驶数据中挖掘交通车辆之间的交互耦合机理成为当前的热点研究方向。Bhattacharyya等[11]将交通车辆行为数据和道路信息投影为鸟瞰图,利用卷积神经网络进行编码,学习其交互关系。Cui等[12]将道路信息转化成带有语义向量的简化约束(如将车道抽象成两条直线,车辆抽象成矩形等),然后采用卷积网络学习交通车辆之间的交互关系。Liu等[13]建立了一种基于LSTM的交通车辆模型。为降低图像渲染中的计算负荷,研究人员直接以交通车辆轨迹向量作为输入,通过设计交通车辆之间以及与道路信息的交互方式学习其耦合关系。如Gao等[14]采用图神经网络进行建模,减少了70%以上的模型参数。Gilles等[15]融合地图特征和轨迹向量特征学习交通车辆之间的交互关系,并预测未来时域行为的概率热图。Mohamed等[16]提出社会时空图卷积网络,将交通车辆之间的交互作用建模为图结构,采用核函数定量评估行人之间的交互影响。这类方法采用端到端的方式学习同质的表示模型,构建的交互模型具有计算复杂度高、部署应用可扩展性差的问题。
独立建模方式难以考虑实际交通车辆之间的复杂交互关系。统一建模方法以场景内所有信息作为输入进行训练,模型具有较大计算量,与实际环境中各交通车辆的局部可观测特点不一致,且可扩展性较差,难以应用于不同测试场景构建。针对这一问题,本文中在多智能体机器学习算法[17]的基础上利用“分布执行-集中训练”策略建模交通车辆交互特征,各交通车辆通过局部可观测信息进行决策,通过集中式优化策略进行模型训练。
面向自动驾驶汽车测试的交通车辆建模须满足以下3点要求:能够准确模拟实际交通特征;具有良好的鲁棒性;模型具有良好的可扩展性。据此,本文参照交通流建模思路将交通车辆交互模型拆解为跟驰模型、换道决策模型和换道规划模型,以避免模型对交通车辆数量、行驶环境的应用局限性。同时利用机理模型构建虚拟数据、开源数据集和构建的固定工况数据集对模型进行训练。采用局部决策-全局优化方式进行模型训练,保证模型在自动驾驶汽车测试应用中的可扩展性。采用对抗训练方式提高模型对输入噪声的鲁棒性,通过模型决策误差对模型的准确性进行评估。依据文中提出的交通车辆交互模型构建框架能有效保证模型的有效性,可作为其它数据建模方法的参考架构。
自动驾驶汽车测试本质是通过构造符合实际交通特征的行驶场景,测试车辆在安全、协同、能耗等方面的性能。本文中针对当前普遍采用的交通流模型在交通车辆动态交互特性方面描述能力不足,建立如图1所示的建模框架,主要包括数据集构建、交通车辆模型建立以及对抗训练优化等几部分内容。
图1 建模框架
为满足交通车辆建模对真实训练样本的依赖,结合物理模型和实际交通数据构建训练样本集。通过自注意力模型的长程关联表达能力建立交通车辆交互模型,提高模型对真实环境的表达能力。针对交通车辆交互模型在可扩展性方面的需求,按照模块化建模方式分别建立自注意力跟驰模型、换道规划模型和换道决策模型。为保证模型对干扰噪声的鲁棒性,本文基于对抗训练进行模型优化。最后将训练的交通车辆模型用于虚拟测试场景构建,通过与真实数据对比验证模型的有效性。
本文中同时利用物理模型构建的虚拟数据和真实环境数据建立模型训练数据集。
传统研究相继提出了多种交通流模型,如IDM、元胞自动机模型等,为充分利用这些理论,基于跟驰模型和换道模型建立虚拟数据集。
2.1.1 跟驰模型
利用IDM模型生成纵向跟驰数据。IDM模型数学表达式[18]为
2.1.2 换道模型
换道行为较复杂,当前研究通常将其分为自由换道和强制换道,存在多种换道决策模型,如速度判别法、效用函数判别法、概率判别法等。在此采用自由换道将其分为换道意图产生和换道执行。利用驾驶员对当前车道的满意度曲线d=τv+d0(取τ=1.1,d0=5.8)作为换道决策触发状态[19]。
在换道轨迹生成方面,研究人员相继提出了贝塞尔、多项式、正弦函数曲线等方法。在此利用正弦函数进行换道轨迹规划。
式中:y(t)表示在t时刻的侧向偏移;t1为换道时间;d为车道宽。
以y(t)为目标换道轨迹,利用最优曲率预瞄控制可得车辆转向盘转角数据。
上述模型虽然在交通流宏观特征方面具有良好的表达能力,却难以描述实际交通环境中驾驶员的随机驾驶行为。
同时利用开源数据集和实际驾驶数据作为真实数据集,对模型进行训练。采用的开源数据集包括Argoverse和Level 5数据集,其中Level 5数据集提供超过4 000条道路、54个停车区域信息。Argoverse数据集提供324 557个场景数据。本文中基于Argoverse和Level 5提取车辆跟驰行驶和换道行驶场景,对构建的交通车辆交互模型进行优化。
实际交通数据为交通车辆交互特征建模提供了重要依据。为构造覆盖不同驾驶特性的驾驶数据,基于一辆红旗H7搭建如图2所示的驾驶数据实车道路试验采集平台,主要通过3类传感器采集驾驶数据:用于测量车辆状态的惯导系统RT3002;用于探测周围车辆状态的ESR毫米波雷达;用于采集周围视觉信息的摄像机C930e。通过CANoe对主车CAN总线、ESR毫米波雷达和RT3002的CAN接口进行数据同步,然后采用工控机上的数据记录软件RTMaps(Intempora公司的一款软件,可用于数据采集、同步和回放,支持CAN、LIN、以太网和串口等多种通信接口)实现CAN信号和视频数据的同步存储。
图2 驾驶数据采集平台
实际环境中存在大量风格各异的驾驶员,在长春生态大街净月国际雕塑公园附近开展试验,共有87名驾驶员参加驾驶数据采集,被测人员包括了不同的驾龄和职业,具体分布情况如表1所示。
表1 驾驶员统计信息
为采集驾驶员换道行为数据,设置工况:①前车分别保持30、40、50 km/h的速度行驶,主车加速追赶前方目标车至一定车间距后换至相邻车道行驶;②前车分别以30、40、50 km/h速度行驶,主车与前方目标车保持稳定跟车一段时间后前车逐渐减速,被测驾驶员进行换道操作。测试中由驾驶员自主决定换道时机和换道轨迹。
结合上述采集的实际驾驶数据和开源数据集,构建真实驾驶数据集,为交通车辆建模提供数据基础。
将自动驾驶汽车测试视作交通车辆与被测车辆的动态交互,采用模块化建模方式构建交通车辆交互耦合模型。
交通车辆具有车道保持、左换道、右换道3种决策行为,参考传统物理建模思想,认为影响车辆换道行为的周围车辆包括本车道前车和相邻车道前、后车,据此利用LSTNet[20]建立交通车辆换道决策模型,整体结构如图3所示,主要包括卷积网络层、循环网络层和全连接层。
输入状态量为xdec=[vx,ax,dpre,vpre,di,vi],其中vx、ax分别表示主车速度、加速度,dpre表示与前车的间距,vpre表示前车速度,di、vi分别表示与车辆i的间距和车辆i的速度,i=lf、lr、rf、rr分别表示左车道前车、左车道后车、右车道前车和右车道后车。为建模时序依赖关系,以一段时窗内的状态[xdec,1,xdec,2,...,xdec,T1](T1表示时长)作为输入,以保持当前车道、左换道、右换道3种驾驶行为作为模型输出。
如图3所示,首先通过一组一维卷积神经网络提取变量之间的局部关系,然后采用GRU循环神经网络建模变量之间的时序关系,其包括重置门和更新门,计算如下:
图3 换道决策模型
式中:p表示跳过的变量数;Wxr、Whr、br、Wxz、Whz、bz、Wxc、Whc、bc表示待优化参数。
本文以交叉熵作为换道决策模型损失函数,利用上节内容构建的数据集进行训练。
在跟驰和换道建模中,将车辆纵向加速度决策输出视作对状态变量选择性注意的结果,利用Transformer自注意力模型构建跟驰模型和换道模型,模型结构如图4所示。
图4 跟驰模型/换道模型结构
输入 变量为xfoll=[vx,vpre,apre,dpre],其中apre表示前车加速度。以T2表示输入状态时序长度,以各历史状态点处的信息作为一个片段,采用一维卷积对每个片段进行特征建模,得到特征序列结合每个片段的位置编码pi得到最终的输入序列为
以上述得到的特征序列为输入,采用Transformer自注意力模型进行计算,每层的输入为三元组(query,key,value),第li层的输入计算为
式中WQ、WK、WV为学习参数。
输出为
多头自注意力模块输出为
式中:WO为学习参数;SAi(qi,ki,vi)为第i个自注意力的计算结果,通过式(13)得到。
采用如图4所示架构建立换道模型,以主车、目标车道前、后车状态量为模型输入,为xlachange=[vx,vy,ay,vp,ap,vr,ar,dp,dr],其中vy表示主车侧向速度,ay表示主车侧向加速度,vp、vr表示目标车道前车、后车速度,ap、ar表示目标车道前车、后车加速度,dp、dr分别表示与目标车道前、后车的距离。输入状态时序长度为T3,以车辆当前位置为原点,以纵向、侧向位移序列cmodel=[x1:T4,y1:T4]为输出(其中T4为换道轨迹规划时长),模型计算过程与跟驰模型类似。
实际交通场景是交通车辆耦合交互演化的过程,区别于以往研究多针对单个交通车辆的建模方法,本文中建立分布执行-集中优化策略,集中损失函数为
式中:Li表示第i个交通车辆的损失函数;n表示当前场景内的交通车辆个数;xt为模型输入;f(·)表示集中损失函数(图1中的融合网络)。
为保证各交通车辆损失函数最小,可通过以下单调约束对各交通车辆进行集中优化。
式中Ai表示第i个交通车辆。以各单体模型损失函数为输入,建立一个单调网络函数,从而表达不同交通车辆之间的交互关系,最终得到综合损失函数Ltot。为保证单调性约束条件式(15),如图1中对抗训练部分所示(其中,s为综合xdec、xfoll和xlachange的系统全局状态信息),采用线性混合损失函数网络及绝对值激活函数,从而满足所有权重都是非负数。
单交通车辆损失函数为
本文将构建的各类模型进行集中式训练,利用当前行为类别(车道保持、换道)交叉熵损失函数和决策输出(车道保持:amodel为车辆纵向加速度。换道:纵、侧向位置)MSE损失函数得到各单体模型损失函数,其中,agt表示实际加速度值,cgt表示实际换道轨迹。以式(14)作为损失函数,可集中优化多交通车辆模型,建模多交通车辆之间的交互关系。
单体交通车辆模型的计算复杂性导致难以解析表达其稳定性特征,而交通场景中具有大量的随机干扰,会对模型形成对抗攻击,影响模型的有效性。对抗训练能够提升模型鲁棒性,对多交通车辆交互场景构建具有重要作用。
对抗训练通过构造对抗扰动来提高模型对原数据的鲁棒性,其训练过程可通过下式进行描述:
式中:x、y分别表示模型输入和输出真值;D为训练数据集;∆x表示对抗扰动;Ω为扰动空间;θ表示模型参数。
模型训练过程中不断执行max和min操作向样本中注入扰动∆x以误导模型输出,然后以(x+∆x,y)作为训练样本对模型进行参数优化。本文中采用FGM(fast gradient method)算法[21]构造扰动,如下式所示:
式中ε为一常数。
为测试模型的有效性,利用真实驾驶数据(占比30%)构建测试集分别对决策模型、跟驰模型和换道控制模型进行测试。以一辆前车运动历程构造测试场景,通过对比模拟车辆和真实车辆运动轨迹分布对模型进行验证。
本文设置的主要模型参数如表2所示。
表2 网络参数
模型训练环境为Nvidia RTX3080 GPU,i7-11700 CPU,Pytorch 1.6。为测试模型在CPU上的推理速度,以i7-8550 CPU(无GPU)作为测试环境。
采用文中分布执行-集中对抗训练策略对模型进行参数优化,以模拟数据在不同行为类别下的特征分布作为指标对模型进行分析,以Wasserstein距离[22]作为量化指标定量评价特征分布间的差异性。
5.1.1 换道决策模型
换道决策模型主要用于对车辆当前行驶状态进行评估,决策是否执行换道操作,其核心是对换道决策点的判定。据此本文共提取820个换道起始点,以[∆v,vx,dpre](其中∆v表示相对速度)作为换道特征描述,对该三维特征点进行平面拟合,将其作为决策平面,通过拟合仿真换道决策平面和真实数据换道平面进行分析,如图5所示。图6和图7分别为左换道和右换道起始点的相对速度分布对比结果。计算得左换道和右换道工况下特征分布之间的Wasserstein距离分别为1.466 8和0.586 7。可以看出,构建的仿真模型与真实数据具有较好的分布一致性。
图5 换道点特征平面对比
图6 左换道起始点数据分布
图7 右换道起始点数据分布
5.1.2 跟驰模型
当车辆保持当前车道行驶时,统计大量仿真数据,通过对比其与真实数据的特征分布进行模型分析。图8和图9分别为真实数据相对距离-相对速度分布和仿真数据分布。可以看出,真实数据具有更大的相对车速,仿真模型相对较小的相对速度意味着车辆具有更大的行驶速度。构建的模型能够较好反映实际数据的统计特性。
图8 真实数据分布
图9 仿真数据分布
针对车辆加速度和速度进行分析,结果如图10和图11所示。由图可知,模型仿真数据与真实数据特征具有较好的统计一致性,计算得到车辆加速度和速度分布之间的Wasserstein距离分别为0.189 5和0.884 6。
图10 加速度分布对比
图11 车速分布对比
5.1.3 换道规划模型
从仿真数据中提取车辆换道规划轨迹(即换道决策模型输出换道决策时,换道规划模型的输出轨迹),以车辆当前位置作为坐标原点,车辆航向方向为x轴方向,得到换道规划轨迹的侧向偏差,其统计结果如图12所示。计算得到侧向偏差分布之间的Wasserstein距离为0.167 1,可知其与真实数据统计分布较为接近。图13为多条具体换道轨迹对比结果。
图12 侧向偏差分布对比
图13 换道轨迹示例
为适应自动驾驶汽车测试需求,建立的交通车辆交互特征模型应具有良好的计算效率,较低的计算负荷有助于提高模型的可扩展性。
分别统计了各类模型在仿真场景构建中的计算耗时,如图14所示。由图可知,自注意力跟驰模型的推理速度约为526次/s(单次耗时0.001 9 s),换道规划模型约为200次/s(单次耗时0.005 s),换道决策模型推理速度约为77次/s(单次耗时0.013 s),模型具有较好的计算效率。
图14 模型计算时间对比
提出了一种分布执行-集中优化的交通车辆交互过程建模方法,将单体模型分解为行为决策模型、跟驰模型和换道控制模型来提高场景模拟的可扩展性,采用集中对抗训练算法对各单体模型进行优化,提升模型对输入扰动的鲁棒性。通过与真实数据分布对比分析了模型的准确性。
构建的交通车辆交互模型具有相对较低的计算复杂度,同时能表征车辆之间的复杂耦合关系,具有良好的部署扩展性。建立的行为决策模型能可靠反映实际驾驶员换道行为特点,跟驰模型和换道控制模型能准确表征驾驶员的驾驶操控特征分布。
本文提出的交通车辆交互过程建模方法从数据集构建-模型建立-集中对抗训练等多个步骤进行研究,能有效保证模型在模拟精度、计算效率、鲁棒性等方面的性能。未来将基于交通车辆交互过程表征开展测试场景构建研究。