2023年5月17日,吉林大学计算机科学与技术学院副教授王莹在CICV2023汽车自动驾驶仿真测试与评价技术专题研讨会中发表了题为《自动驾驶交通建模的关键技术与典型应用》的演讲。王莹教授分享了团队在自动驾驶仿真领域的最新进展,听者深受启发。本篇对王莹教授团队如何进行高逼真的自然驾驶交通流建模方法进行深度解读。
1、研究背景
在真实物理世界中,交通系统是“人-车-路-环境”耦合的复杂系统。目前,自动驾驶正逐步代替人类驾驶员,将来有可能完全替代人类驾驶员。但它在真正上路之前需要克服人类驾驶员在自然场景当中面临的复杂挑战,才能保证道路驾驶的安全性。如果完全靠场地测试和道路测试的途径来保障自动驾驶的安全性是不现实的。因此现在行业内普遍达成的共识为,利用模拟仿真技术,在实验室内完成大部分的测试工作,此外再辅助小比例的场地测试和道路测试,这才是自动驾驶系统快速落地的一条比较现实的途径。自动驾驶模拟仿真测试平台搭建需要具备诸多核心能力,交通仿真是其中的核心能力之一。
(资料图片)
图1 交通仿真的两种方式
从交通仿真实施角度来说,现在主要有两种实现途径(图1):
第一种途径采用实车路采的方式,通过数据回放营造交通场景,开展仿真测试。这种解决途径优势是真实,其本身采集的数据来源于真实交通。当然也存在着很多挑战,如成本、效率、风险、覆盖度等问题。但王莹教授认为比较关键的问题是这种方式的交互性交差。因为采集的交通场景数据数据是确定性场景。而真正把被测对象引入实测时,极有可能产生交通车的驾驶行为和自动驾驶算法控制的被测对象行为之间不匹配的问题。交互性是让人觉得很棘手或者难以解决的问题。
第二种途径是基于建模的方式完成交通仿真。它的优势在于成本、效率、风险、覆盖度、交互性方面的问题都可以,但复杂场景的交通建模要求比较高,存在技术门槛。值得肯定的是,伴随着技术不断升级,有望未来从根本上解决高质量交通建模的问题,因此这是一条有效可行的途径。关于交通建模(包括关键性场景建模)的研究也是当下的研究热点。
图2 交通建模技术的两种路径
从 交通/场景建模技术路径上看,共有两种(图2):
第一种路径是机理建模方式。最早期的交通建模需求是面向交通系统管控等相关领域,交通模型需要能够描述交通车运动的一般规律,模型结构简单,参数较少,这样能够保证大规模交通系统的仿真效率,因此适合大规模交通系统的多节点仿真。由于模型抽象程度比较高,机理模型在微观真实性上表现能力有限,而微观真实性特性又恰恰是自动驾驶系统在测试时比较关注的特性。因此,简单的机理建模无法满足自动驾驶测试的需求。
目前主流的交通仿真软件大多采用机理模型,且交通仿真软件供应商包括研发机构,很多都是国外机构,交通规则包括驾驶员习性、整体交通风格与我国驾驶习性存在不完全匹配的问题。另外,为了降低建模复杂度,通常机理模型会将纵向控制和侧向控制进行解耦,分别独立建模,也就是通常说的跟驰模型和换道模型。这种拆解在一定程度上会破坏自然驾驶数据的中驾驶行为的连续性和内在关联。
第二种技术路径是数据驱动方式。它可以有比较高的非线性拟合能力,在喂入大量数据之后,学习一般驾驶行为和驾驶意图的效果比较理想。但存在一个问题:从数据分布看,数据驱动方式倾向于学习所占统计比重更大的数据,对于侧向运动和一些危险切入场景的学习效果有待提高。
另外,现在有很多数据驱动方法将交通场景仿真的问题转化为轨迹预测的问题。但在交通模拟实施应用时因应用背景差异,忽略了交通系统中由于个体运动轨迹估计误差而导致的累积误差。因此,这个思路对于长时间交通仿真的稳定性和延续性需求支持性有限。另外,基于数据驱动的建模方式一般来说模型复杂度会比较高,因此数据驱动建模在大规模仿真的效率方面有待于提升。
图3 交通模型优化思路
基于上述分析,面向自动驾驶交通仿真需求和应用落地可行性,可从以下三方面进一步优化交通模型(图3):
第一步,从交通场景构建的标准化、合规性角度开展工作。例如,根据ISO 34502构建感知盲区相关的关键测试场景。因为场景的逻辑定义比较清晰,所以基本的实现方式是基于规则建立场景。
第二步,考虑从交通模型真实性和稳定性角度优化。也就是上述从数据驱动角度,尝试在保证交通流真实性的前提下,如何把交通模型做得更加稳定。
第三步,从系统层面分析和构建整个场景。本质上它依然是机理建模方式,但是建模对象不再局限于一个交通车,而是把影响场景的要素纳入到系统中进行建模。这种建模优势在于它可解释性强(参数化最后形成的建模方式)、模型可调可控、更适合应用落地。
2、研究方法与验证
结合上述优化思路,王莹教授在数据驱动建模方式上探索了两种研究思路,保证尽量让建模轻量化、交通场景稳定化。
1、基于时序全局优化的轻量化数据驱动跟驰模型
该模型解决两个问题:
第一,模拟交通建模中交通流的传播特性(图4、图5)。尽管影响主车的关键是周车,但交通流本身具有传播特性,距离主车较远的交通车驾驶行也会通过流的传播逐步影响主车的周车及主车驾驶行为。如果想把流的传播特性在整个交通建模中模拟出来,构建交通时不能选取非常小的局部区域建模。比如只关注主车周围的8个车,这种方式会导致流的传播特性没有办法表达出来。但如果模拟的交通车节点过多,势必要求神经网络的模型不能过于复杂,因此考虑需要轻量化模型实现较好的跟驰行为建模。
图4 传统训练方法
图5 时序全局优化训练方法
第二,模型训练的损失函数定义中加入传播误差积累(图6、图7)。在训练方式上,传统方式是输入第 t 时刻交通车状态量,经过模型学习之后,模型预测 t+τ时刻状态。所优化的目标函数希望 t+τ时刻预测状态和真实 t+τ时刻状态之间的误差尽量要小,这是一般的训练思路。这种训练思路非常适合在真正模型被调用过程当中,在第 t 时刻输入的状态数据是真值数据。比如轨迹预测问题就比较符合这种应用场景。自动驾驶车在进行驾驶决策时,每一个第 t 时刻输入都是从感知系统拿到的真实融合数据,训练模型和实际使用过程是完全匹配的,不存在累计误差问题。但在交通仿真中,交通系统会根据发车模型初始化所有交通节点。一旦初始状态给定以后,后续每一个仿真时刻,模型的输入都是上一个时刻模型预测的输出值,,并不是真值。。因此如果一旦在某些时刻模型预测出现较明显的误差,这种误差就会累积影响未来的估计。如图4 所示,随着时间推移误差会不断地进行积累,整个交通系统会发生倒车或者碰撞等问题,导致系统无法长时稳定运转下去。因此,所做的优化即模型训练中,在定义损失函数的时候把传播误差积累加进去,这样在训练结果时就能缓解这个问题。
传统训练方法的损失函数为:
注释: M为训练样本数目,T为样本时序长度
时序全局优化训练方法的损失函数为:
注释:其中 M为训练样本数目,T为样本时序长度
图6 传统训练方法中考虑的误差传播
图7 时序全局优化训练方法中考虑的误差传播
经过实验验证,方法显著提升了跟驰模型的长时精度(表1)和长时稳定性(表2),并极大程度地避免了异常跟驰速度(图8)的出现(表2),从而确保仿真交通中跟驰行为的真实性(图8)和交通的稳定性。
表1 模型采用不同训练方法的长时精度对比
注释:表中T为训练样本时长,仿真时间均为15s
注释:对比公式
表2 模型采用不同训练方法的速度异常度对比
注释:表中T为训练样本时长,仿真时间均为15s
注释:对比公式
图8 速度曲线(对比速度曲线重合度)
注释:上为传统训练方法,下为时序全局的训练方法。黑色的曲线是交通数据真值,交通车速度变化真值。其他颜色曲线是使用不同结构的神经网络训练的结果。
可以看到,改进后的训练方法能够获得比较稳定的预测结果。把数据驱动方式和机理建模当中比较经典的 IDM 模型做定量对比,在轨迹吻合度、所有车平均位置绝对值误差、速度异常度等方面都会有较大的改善。并且,实验也证实,通过改善训练方式,使用较轻量级的模型(如MLP),也能够达到较好的效果。这样,即可同时解决模型轻量化问题以及模型能够长时稳定运行的问题,这对于交通仿真来说,落地性得到进一步提升。
2、基于LSTM和注意力机制的系统级数据驱动交通模型
该模型解决交通整体性中“交互性”问题。
上一个模型是把所有交通车节点看作同质节点独立进行学习。它的问题在于真正仿真时,所有交通车节使用相同的模型进行预测,整个车群中车的“个性化学习”不够。
为了进一步捕捉和描述复杂车间交互,避免将单体从群体中抽离出来而丧失交通的局部整体性,同时为了实现更加高效直接的复杂交通环境模拟,以交通车群为研究对象,搭建基于注意力机制与LSTM编解码相结合深度神经网络。并采用复杂交通数据训练集训练模型(图10),从而实现面向自动驾驶测试的复杂交通环境仿真(图11)。网络设计时,增加了全局车辆的交互模块,用于计算所有车辆的时空注意力,这样使得模型在训练过程中,对于下一时刻的预测结果不仅基于每个交通车历史状态,也同时学习了其周车对他的影响。
图9 基于注意力机制与LSTM编解码相结合深度神经网络
图10 系统交通模型在自动驾驶测试中的应用方法
图11 数据集构建
注释:①交通混乱度指标(I):交通混乱度考虑车辆的侧向运动规律性Ilateral,车辆的纵向运动规律性Ilongitudinal,车辆的空间密度分布Idensity和车辆数目IN。 ②采集到的车群数据,基于混乱度(I)定义和量化,得到的混乱度分布如图3所示。其中绿色部分为混乱度I<0.2的样本;蓝色部分为的0.2<=I<0.4样本;红色为I>0.4的样本。本研究选取混乱度I>0.4的车群数据。筛选后的车群数据经过标准化处理,用于模型的训练。
在整个数据构建过程中,虽然国外开源数据集比较多,但王莹教授团队还是尽量结合中国驾驶特性,在采集数据时选择包括北京等地在内的下班晚高峰数据片段形成数据集。并且对数据集进行切片,通过观测交通车轨迹稳定性挑选出交互性更强的数据(有没有经常出现换道等行为、交通流密度和数量等),最终将交互性更强的数据作为训练数据集送入到网络当中进行学习。
在仿真过程中,被测对象可以接管交通流中的任何一辆交通车开展测试,流中的其他交通车将会把被测主车作为交通流中的同等的交通车对待,除被测主车的行为由被测自动驾驶算法决定外,其他交通车的运动由交通模型进行预测。这样的测试逻辑,也和物理世界中的测试逻辑保持一致。
为了验证模型中各模块的必要性以及模型的先进性,参与模型对比的设定如下:
1、 Social LSTM:作为baseline,并使用本工作中描述的数据集对Social LSTM 进行训练,以便进行公平的比较。
2、 System Traffic Model without interaction module (STM-LSTM):系统级交通模型的简化设置,删除了交互模块,将所有车辆视为彼此独立。
3、 System Traffic Model without intention connected (STM-INC):系统级交通模型的简化设置,阻断了编码器与解码器的通路。
4、 System Traffic Model (STM):完整的系统交通模型。
表3 模型性能对比(精度对比)
注释:对比公式
下面是实际验证结果(图12),(a)是实际轨迹真值,(b)-(e)是上述的对比网络。可以发现车群式系统建模方法在轨迹估计相似度、平顺性、连续性上具有一定优势。
图12 模型性能对比(轨迹对比)
注释:图中(a), (f)和(k)分别展示三个交通片段中所有车辆的真实运动轨迹,每一行随之的交通片段分别由不同的模型产生,可以发现STM在轨迹相似度和连续性上都具有优势。
以上就是王莹教授从数据驱动角度,分享团队关于自动驾驶交通建模方面近期的一部分工作,旨在提升真实性的前提下尽量降低模型复杂度,让模型具有可落地的前景。
关键词: