郭景华,李克强,王 进,陈 涛,李文昌,王 班
(1.厦门大学机电工程系,厦门 361005; 2.清华大学车辆与运载学院,北京 100084;3.中国汽车工程研究院股份有限公司,重庆 401122)
智能化、网联化已经是汽车技术发展的大势所趋,将引领未来的汽车发展方向[1]。在汽车智能驾驶技术快速发展的同时,其安全性受到汽车企业和科研机构的广泛关注,汽车智能驾驶系统的测试与评价研究成为当前全球关注的热点问题[2-3]。对于智能驾驶系统的测试与评价,场景是基础条件,测试场景必须与真实交通环境中存在的危险相对应,并且可以描述前车的随机运动状态。因此,研究危险场景和该类场景下前车随机运动状态的预测方法对于设计更加有效合理的智能驾驶系统测试与评价体系具有重要意义。
生成场景的方法主要可以分为两类:基于知识的方法(演绎)和基于数据的方法(归纳)。目前使用知识体演绎法建立测试场景的团队以德国布伦瑞克工业大学为代表[4-5],其团队以专家知识、交通法规和道路建设法规条文为依据,基于本体论建设智能驾驶系统测试场景库。而国内大多数研究机构以数据驱动的归纳方法建设测试场景[6-7],通过数据采集和分析,建立基于实际交通环境的场景库。国内使用数据采集的方法建立测试场景的主要原因是:我国交通环境复杂,且很多道路并非按照标准建设,按照标准知识体系建立测试场景会与实际情况有很大差别。从试验成本和效率考虑,汽车智能驾驶系统测试场景的数量应当尽量少。
目前针对车辆行为状态的预测已有相关研究,宗长富等[8]提出一种隐马尔科夫模型(HMM)与人工神经网络(ANN)相结合的模型,用于实现驾驶意图辨识和驾驶行为预测。彭金栓等[9]基于驾驶员视觉特性与车辆运动状态设计BP神经网络结构,构建车辆换道行为预测模型。熊晓夏等[10]借助支持向量机(SVM)和基于混合高斯的隐马尔科夫链提出道路交通事故链(CRTI)模型对道路事故进行预测。文献[11]中以模拟驾驶试验数据为依据,提出以目标车道后车的最大减速度和平均减速度为衡量指标,分析换道行为对道路交通安全的影响程度,并基于支持向量机理论建立换道安全性预测模型;此模型目前对驾驶意图或驾驶行为识别有良好的预测效果,可应用于车辆辅助驾驶系统中,但是对智能网联环境中前车状态的预测较少。文献[12]中设计卡尔曼滤波器,通过信号融合处理,获取汽车运动姿态参数的最优估计值,采用多层递阶模型预测汽车未来时刻可能的行驶运行状态,提高汽车的主动安全性。张金辉等[13]分析跟车工况的运动特性,建立贝叶斯网络,对前车运动速度进行预测。综上所述,国内外学者关于智能驾驶系统应对风险的研究主要集中在对自车行为的预测分析,由于道路交通环境复杂,智能网联环境中由人类驾驶员操控的前车车辆受驾驶员驾驶风格的影响,对智能汽车来说前车运动状态随机,现有的运动状态预测方法难以用于预测前车随机运动状态。
鉴于此,本文中提出一种基于危险场景聚类分析的前车随机运动状态预测方法。首先,对自然驾驶数据中的危险片段数据进行聚类得到不同的典型场景。随后,提取各个场景下速度与加速度特征,建立马尔可夫链蒙特卡洛(Markov Chain Monte Carlo,MCMC)模型,并且利用MCMC预测出各危险场景下前车随机运动状态。最后,比较MCMC预测得到的前车运动状态与实际运动状态,验证提出的预测模型的有效性。
本研究的数据全部来自中国大规模实车路试(China field operational test,China-FOT)的自然驾驶工况数据,累计在20台车辆上安装数据采集设备,进行30万km的道路自然驾驶数据采集。试验车安装了摄像机、毫米波雷达和GPS等传感器,可以实时采集至少6路LVDS(低压差分信号传输)高清视频、2路车辆高帧率的 CAN信号、1路GPS信息、1路前视视频和检测结果,该系统不仅解决了场景数据采集,而且采用多传感器同步采集车辆状态和GPS等信号。视觉雷达融合系统由前视模块和77 GHz毫米波雷达组成,实现目标等级融合,前视模块主要用于前方目标的检测与分类,毫米波雷达主要用于精准测距测速,视觉雷达融合方案可以弥补相机在测距和测速方面的缺陷。
设备采集到的自然驾驶数据包含的自车信息有图像帧号、自车速度、加速度、制动踏板信号、制动压力、油门信号、挡位信息、GPS信息、车辆横摆角速度和侧向加速度;目标物信息包括图像帧号、目标物ID、目标物类型、目标物距自车前向距离(以自车中轴线最前端为原点)、目标物距自车的横向距离、目标物速度和相对速度。由于加速度在采集过程出现较大的异常值,采用普通滤波会让数值失真,这里使用3-σ法则首先对加速度进行异常值去除,再滤波处理。
采集的数据去除异常值后,“噪声毛刺”并不多,文中采用均值滤波对速度和加速度进行滤波处理,得到比较光滑的曲线,继而使用差分法对加速度求微分得到加速度的导数,为后续截取危险工况做准备。
根据我国实际情况,提取自然驾驶数据中危险工况作为场景聚类基础。筛选规则参考SHRP2自然驾驶数据中筛选危险场景方法[14],最终得到危险工况片段116段。
每个危险工况数据片段视频都包含多个场景要素,确定聚类的要素选取范围有环境信息、本车信息、目标信息、交通信息、道路信息5大类。对所有危险片段数据进行统计分析发现,由于前车运动状态不同,前车的危险工况多数是制动减速造成的,部分是由于切入造成的,这种情况下碰撞时间(timeto-collision,TTC)值无法准确得到,因此统计时未考虑在其中。初步统计后,其中有一些变量不适合聚类分析,如本车运动状态,自车直行占了82%,差异性不明确,但是在设计具体的场景中可以作为参考。同样的变量还有公交车道、应急车道、路面干燥条件,其中某一类占90%以上的比例。从初步确定的场景要素中去掉不适合进行聚类分析的要素,最终得到12个场景要素,如表1所示。
本文中采用系统聚类的方法提取典型危险场景,可以减少人们的主观意识对分类结果的影响,聚类中涉及到距离的计算有变量与变量之间的距离、样本与样本之间的距离和类与类之间的距离。根据变量类型不同,一般分为名义变量和定量变量,本文只涉及到名义变量,由于不同变量存在不同数量的取值范围,要求名义变量中不同变量值之间距离相等,规定不同值间距离为1,相同变量距离为0,本文中处理方式是将场景要素中的变量编码转化为向量,所有场景要素的变量编码全部转换,部分如表2所示。
由前述规定可知,相同变量间距离为0,不同变量间距离为1,计算样本间距离时,利用总的样本数减去不同样本数再求倒数。设 X1,X2,X3,…,Xn为来自总样本中的p元样本,第i个样本表示为Xi=(xi1,xi2,…,xip)(i=1,2,3,…,n),第 i个样本与第 j个样本之间的距离dij表示为
表1 场景要素类型
表2 变量编码转换
类与类之间的距离采用类平均法表示,即类与类之间的平方距离的平均值,分别设GK、GL为含有nK和nL个样本的类,其间距离DKL定义为
基于上述方法得到的场景要素聚类结果如图1所示。在并类过程中,如果当前次数的并类不一致系数比上一次聚类的不一致系数有大幅度提升,说明该次并类的效果不是很好,而它前一次的并类效果较好,不一致系数增加的幅度越大,说明上次效果越好,在使类的个数尽量少的前提下,可参照不一致系数对的变化来确定分类的个数,本文中研究的最终聚类个数为3类。
图1 聚类树形图
将场景要素的变量在每类中的占比与此类变量在总体变量中所占比例作比较,得到每一类场景要素的典型特征,最终得到3种典型场景,见表3。
表3 聚类分析危险场景
本节中将大量自然驾驶数据作为概率获取的样本,利用车辆状态在短时间内满足马尔可夫性的特征,构建车辆随机运动的预测模型,用MCMC来预测下一时刻车辆状态。
利用马氏链[15]对车辆状态进行表征,需要将车辆的速度和加速度二维状态联合进行一维编码,最终实现车辆状态之间的转移概率计算。设置速度取值区间和加速度取值区间,整个速度—加速度二维序列可被分成多个小隔间,每一个隔间内存在速度-加速度点,称之为一个状态。为兼顾算法效率和后续解码的准确度,经过多次试验得到,将速度步长设为0.8 km/h、加速度步长设为0.03 m/s2较为合适。不同场景下,交通流量不同,前车运动状态不同,分别在3类场景中选取车辆速度-加速度样本数据,进行马氏链模型的构建。
选取各个场景自车速度和加速度值,绘制其二维散点相图,隔间划分方法是:用速度或加速度最大值与最小值的差除以相应的步长,得到速度和加速度隔间数目。统计所有速度-加速度点散落在各个隔间的概率,去掉概率为零的隔间,然后从左到右,从上到下依次蛇形编码,最终实现车辆状态二维转一维的编码。二维编码示意图见图2,基于划分的网格,对每个存在数据点的隔间编码得到1,2,3,…,m,m+1,…,m+n等状态。
图2 二维编码示意图
车辆在行驶过程中,当时间间隔较小时,车辆未来的状态与当前状态是相关的,与过去状态无关,可视为离散的马尔可夫链。马尔科夫链模型表示为(S,P),S为马氏链所有状态组成的非空状态集,P为马氏链状态转移概率矩阵。由条件概率定义可知,状态si转移到状态sj的状态转移概率pij可由式(3)表示:
其中,pij为马氏链{X(n)}在t时刻的转移概率,物理意义是事件从t时刻si转移到t+1时刻sj的概率,不同状态转移构成了状态转移矩阵P。
历史样本数据中,速度与加速度被划分为若干片段,组成不同的状态,每个状态有自己的状态编码,车辆在运行时按照时间序列或从一个状态转移到另一个状态,即发生了状态转移。可以根据这一特性,统计历史工况数据,得到状态转移矩阵,计算公式如下:
状态转移概率矩阵具体实现步骤如下。
(1)将s个状态组成s×s的矩阵,第i行j列元素表示状态si下一时刻转移到状态sj的频数Nij。
(2)以状态隔间的中心值作为该隔间的代表值,根据隔间划分步长,找到隔间的上下限。
(3)离散数据的取样时间间隔为0.1 s,计算当前状态速度和加速度经过0.1 s后的速度值。
(4)查找历史样本数据当前状态经过0.1 s后速度区间对应的样本数量。
(5)统计上一步骤中样本属于下一状态速度和加速度区间的样本数量,即为当前状态转移到下一状态的频数。
(6)状态转移概率pij可由状态转移频数除以所在行所有状态转移频数的和得到。
水库枢纽由大坝、溢洪道、输水洞、泄洪洞和水电站等五部分组成。大坝为浆砌石重力墙式堆石坝,坝高46 m,长350 m。
本节中利用随机抽样的MCMC方法来预测车辆未来状态,通过解码建立前车随机运动的预测模型。
对拥有 n个状态的马氏链分布列{X(t),t=1,2,…,n},它的状态转移矩阵为P,对其进行模拟,蒙特卡罗模拟具体步骤如下。
(1)根据前文编码的方式,明确当前时刻车辆的状态,假设[v0,a0]通过编码得到状态 s0,则初始U0=s0,同时生成随机数组{r1,r2,r3,…},随机数组的个数根据需要模拟预测的未来状态个数来确定,其中 ri要求满足 0<ri<1。
(2)求下一时刻预测的状态,在状态X(0)=s0已经发生的条件下,X(1)的条件分布概率为P(X(1)=sj|X(0)=s0)=p0j,j=1,2,3,…,n,此概率是已知的,可以从状态转移矩阵P中取出第k0行所有元素(所有马尔科夫链状态的第k0个状态即为状态s0)。
(3)取随机数r1,如果存在对某个k1满足式(5),则确定车辆下一个状态为 s1,即 U1=s1。
(4)同理模拟预测s1下一时刻样本U2,已知当前状态为 s1,即 X(1)=s1已知,X(2)的条件分布列即为第k1行的所有概率,取出第k1行所有元素,求k2使其满足式(6),用 s2表示马氏链的第 k2个状态,则下一时刻样本U2=s2。
(5)重复上述步骤,直到得到所有的预测状态Un={s1,s2,…}。
(6)通过上述MCMC模拟过程得到预测状态序列Un,对其状态编码进行解码,解码方式是:反查编码对应的速度和加速度隔间,取隔间的中值作为该状态的速度和加速度信息。
根据城市道路场景中交通流具体情况,选取第2节聚类得到的城市工况下所有的车辆数据作为马氏链模型的历史信息样本数据。经统计,城市工况下危险发生时刻,自车速度多集中在20~60 km/h,目标车速度多集中在20~35 km/h,目标车加速度呈近似正态分布。
聚类场景1中速度 加速度散点图如图3所示,根据散点图散落的隔间,统计得到3 913个状态,以速度和加速度分别为x轴和y轴,一维状态编码号为z轴,得到的二维状态编码空间分布图如图4所示,每一个“+”代表一个状态。
高速夜间场景中,危险发生时刻自车速度近似正态分布,多数集中在40 km/h左右,由于夜间行车能见度较低,危险发生时刻目标车速度普遍在20 km/h左右,而且前车加速度分布较广,以此推断多数危险时刻发生在低速驶出高速进入匝道时。图5和图6表示聚类出高速夜间场景速度-加速度分布和状态隔间分布。利用上述状态表达和编码的方法,高速夜间场景下速度- 加速度经过编码得到1 685个状态。
图3 城市工况散点图
图4 城市工况二维编码空间分布图
图5 高速夜间工况散点图
在聚类得到的第3类危险场景中,典型场景是郊区弯道,危险发生时刻自车速度多为均匀分布,目标车辆速度集中在20 km/h左右,将所有第3类聚场景的自车速度和加速度样本作为马氏链的历史工况数据,通过二维状态一维化,得到1 768个状态,状态表达如图7和图8所示。
图6 高速夜间工况二维编码空间分布图
图7 郊区弯道工况散点图
图8 郊区弯道工况二维编码空间分布图
采用蒙特卡洛模拟方式,将聚类出的3类场景中自车速度和加速度作为历史数据,采样时间为0.1 s,预测未来15 s内的速度与加速度状态,结果如图9~图11所示。
图9 场景1蒙特卡罗模拟与历史工况数据对比
图10 场景2蒙特卡罗模拟与历史工况数据对比
图9~图11分别是聚类出的3类场景中的历史数据进行随机蒙特卡洛模拟后,得到的速度与加速度图,在每种场景下取速度和加速度样本,随机模拟得到不同的速度-加速度分布,随机选取一段数据与模拟得到的数据对比。从图中可以看出,模拟得到的车辆状态与历史工况中的车辆状态运动趋势相似,出现偏差是由于历史工况数据中存在不同车型和不同时刻的危险场景数据,利用马尔科夫蒙特卡洛模拟得到的结果是对这些数据学习而得,因此并不能完全一致,而且这些差别体现了车辆状态的随机性表达。因此,马尔可夫链蒙特卡洛模拟能够表现出车辆运动随机性并根据样本数据模拟出未来车辆运动状态。由于在进行马尔可夫链采样时,对速度和加速度离散化,解码得到的速度和加速度是由离散的速度和加速度拼接而成的,所以图中加速度波动明显。
图11 场景3蒙特卡罗模拟与历史工况数据对比
本文中首先采用SHRP2危险场景判定方法提取自然驾驶数据危险场景特征,从数以兆计的自然驾驶数据中提取出危险场景片段,截取数据流和视频流。通过对危险场景数据中场景要素的标记提取场景关键要素,对危险场景要素作聚类分析,最终得出符合我国实际道路的3类典型危险场景。随后,将聚类分析得到的危险场景下速度和加速度数据作为历史工况数据,采用MCMC理论建立了车辆运动状态随机预测模型,证明了危险场景下前车运动状态的预测能力,经过与实际原始数据对比发现,预测得到的状态数据能够有效表达聚类分析得到的危险场景下前车的随机运动状态。