基于神经网络PID的盲区危险目标自动避碰系统研究
2021-07-06黄昆
黄昆
(天津经纬恒润科技股份有限公司,天津 300385)
主题词:智能驾驶 盲区危险等级评估 神经网络PID控制 自动避碰
缩略语
PID Proportional,Integral,Derivative
ADAS Advanced Driving Assistance System
BSM Blind Spot Monitoring System
DTW Dynamic Time Warping
1 引言
根据世界卫生组织统计数据,全球每年约有125万人死于交通事故,另有5 000 万人受到不同程度的伤害[1]。为了减少交通事故,智能驾驶技术中的避撞系统(Collision Avoidance System)受到了越来越多的关注和重视[2]。汽车盲区是指由于视线遮挡而导致驾驶员不能直接观察到的区域(图1)。目前,在智能驾驶汽车盲区的先进驾驶辅助系统(Advanced Driving Assistance System,ADAS)中,较为成熟的功能仅有盲区监测系统(Blind Spot Monitoring System,BSM),它可以通过传感器探测车辆左右后侧盲区中即将超车的车辆,并对驾驶员进行警示,以避免驾驶员在变道的过程中与左、右、后方车辆发生碰撞。
图1 车辆盲区示意
为了使盲区避碰系统能及时触发,相关的紧急驾驶场景通常依据目标激活盲区预警功能的初始状态进行轨迹预测,并通过危险等级评估指标对场景模式进行识别[3]。Kluger[4]等从离散傅里叶变换纵向加速度时间序列中提取特征变量,并使用聚类(K-Means)从自然驾驶数据中识别关键事件。Lee[5]等利用路段加减速累积频率图来测量减速度曲线的风险等级,并利用行驶轨迹数据训练神经网络模型来预测潜在的紧急减速,用于碰撞预警。张立军[6]等基于轨迹预测模型,提出了一种以距离为安全指标的商用车盲区防撞预警方法。白龙[7]基于视觉感知系统,以单目摄像头的测距结果为依据,提出了一种盲区安全预警方法。赵宇峰[8]利用单目视觉原理中的摄像机针孔成像模型对盲区目标进行测距,提出了一种盲区监测预警的视觉判定方法。然而,BSM盲区预警功能目前仅能对依据车辆盲区是否存在目标进行预警提醒,而无法对车辆进行避碰控制,因此盲区避碰系统的开发对盲区智能驾驶辅助技术具有十分重要的意义。
综上所述,盲区智能驾驶辅助功能的研发仍停留在盲区目标预警的阶段,将从盲区避碰进行深入的研究。设计一种基于神经网络PID 构造的盲区危险目标自动避碰系统,将目标的横向相对聚类为危险等级评估的指标,依据指标的谱聚类分析结果,对目标所处区域的危险等级进行划分,并以期望的安全指标对高危险等级的盲区危险目标进行神经网络PID 控制,辅助驾驶员实现盲区危险目标的自动避碰功能。
2 场景数据获取
基于某主机厂的道路测试组采集的道路测试场景数据库,提取盲区目标超越本车场景的交通场景数据,用以对盲区目标的风险等级分类。数据采样间隔为10 Hz,记录车辆并排前10 s 至车辆离开盲区的自车参数信息、车辆相对位置信息和相对运动信息。
2.1 原始数据筛选
基于某主机厂的道路测试场景数据库,提取了265例盲区目标超车场景(图2),作为危险等级评估的安全指标样本。通过人工筛选,保留了251 例木牛毫米波雷达数据采集完整的场景,剔除66 例涉及三轮车、摩托车、自行车非机动车辆的干扰场景。最终,筛选出有效且完整的盲区目标超车场景片段,共计185例。
图2 盲区目标超车场景
2.2 目标横向相对距离的提取
“盲区危险事件—紧急避碰”是盲区危险目标在超越本车的过程中,目标的横向相对距离小于驾驶员期望的安全距离,使得自车驾驶员转动转向盘向危险目标反方向紧急避碰。
第1阶段:自车处于自由驾驶状态,其运动状态随机。
第2 阶段:目标车以很大的纵向相对速度(5~15 m/s)从左/右相邻车道进入危险区域,自车驾驶员控制转向盘向反方向进行转向,以避免碰撞。
在本次研究中,目标车进入盲区定义为“盲区一般事件”,当目标的横向相对距离小于最小安全距离时定义为“盲区危险事件—紧急避碰”,以此表示驾驶员对当前状态危险程度的判断。
数据提取通过上位机获取,图3 为场景提取的上位机界面,左侧示图为场景的视频及GPS 位置信息,右侧示图为场景的数据信息。自车速度Vego、方向盘转角SAS、偏航角a、相对距离R、相对速度等Vr,纵向时距信息为目标的纵向时距。
图3 上位机界面
3 盲区安全指标的聚类分析
3.1 聚类分析方法
谱聚类是一种基于图论的算法,将所有数据视为空间中的点,并假设所有这些数据点都由赋予权值的边连接[9]。2 个点相似度越大,边缘权值越大,反之亦然。所有数据点之间的权值构成邻接矩阵W,第i行和第j列的元素记录点i和点j之间的权值。谱聚类的目的是找到该图的分区,使得不同组之间边的权值之和很小,而组内边的权值之和很大[10]。
选取目标的横向相对距离作为盲区避碰安全指标,对盲区车辆危险等级进行分类。针对盲区避碰安全指标的聚类分析结果,自车与目标车的横向相对距离越小、距离变化率越大,通常表明驾驶员认知的危险程度越高。因此,在样本相对横向距离进行聚类分析过程中,以样本间的动态时间规整(Dynamic Time Warping,DTW)和样本的变化率(ΔCur)作为度量标准。
(1)“距离”度量标准
由于样本中目标车驾驶员从发出超车意图到超车结束的时间跨度不同,因此采用DTW 算法计算样本中目标横向相对距离时间序列的DTW距离。不同时间序列的DTW距离是基于样本点与样本点之间的路径距离之和最小原则,计算距离路径最优解。选择2个k维信号X和Y,如式(1)、式(2)所示。
由于车辆CAN 总线和雷达探测到的信号都为1维信号,也就是说信号X和Y都只有第1行有数据,其中X有m个样本点,Y有n个样本点。样本点之间的距离用欧氏距离进行计算。信号X中第M∈{1,2,…,m}个样本点与信号Y中第N∈{1,2,…,m}个样本点的欧式距离计算如式(3)。
式中,dmn(X,Y)为计算各个样本点之间的距离;xk,m为X中m个样本点中的第k个样本点,yk,n为Y中n个样本点中的第k个样本点。
寻找使采样点之间的距离之和最小的2个路径序列ix*和iy*,如式(4),计算规则如图4。
图4 距离计算规则
2个时间序列信号X和Y之间的DTW距离计算如式(5)。
式中,dmn(X,Y)为计算各个样本点之间的距离。
计算获得的DTW距离可以完整的保留时间序列中的危险等级信息,以及目标的横向相对速度的最大值、最小值和均值。
(2)平均变化率
在提取的目标横向相对距离曲线中的平均变化率ΔCur(相对横向距离变化幅度和持续时间的比值)时,首先需要将DTW距离和变化率ΔCur进行归一化,消除维度对测量的影响。基于DTW距离和平均变化率ΔCur,通过高斯径向基函数内核(一种相似性的度量表示)表示样本点之间的两两相似之处,获得样本的邻接矩阵W,将相近的样本划归为同一类型。最终得到的样本邻接矩阵W如式(6)所示。
在邻接矩阵W中,样本点与样本点之间的权值wij可以用来表示样本点之间的相似性。权值wij的计算公式如式(7)。
式中,n表示采用的指标数量,本文取值为2(包括DTW距离和ΔCur)。
3.2 聚类结果及分析
基于MATLAB软件对第2章提取的185条目标横向相对距离曲线进行谱聚类分析,同时使用K均值聚类算法[11]对目标的平均横向相对距离、最小横向相对距离和横向相对距离的平均变化率ΔCur的均值进行聚类分析,并对两种聚类分析方法的结果进行比较,其对比结果如表1所示。
由表1可知,相较于K均值聚类算法,谱聚类算法得到的平均变化率更低,因此依据谱聚类分析的结果对场景危险程度进行分类。由于Cluster-2 具有更大的横向相对距离和平均变化率,因此将其划分为无风险类型,其平均横向相对距离Rmean可以作为驾驶员的期望横向相对距离。而Cluster-1 具有较小的横向相对距离和平均变化率,将其划分为低风险类型,由于提取的盲区目标超车场景都为无碰撞的自然驾驶场景,因此该类场景的横向相对距离最小值Rmin可以作为驾驶员认知的危险场景与安全场景的边界。
表1 谱聚类与K均值聚类算法聚类结果对比
4 基于安全指标的车辆控制模型
神经网络PID 控制[12](Neural network PID control,NN PID)是一种典型的控制算法,它在传统PID 控制的基础上,通过神经网络学习并调节PID 参数,可以在较短时间内使模型达到预期要求。本文设计的神经网络PID 控制模型是基于m 语言编写的,其结构示意图如图5所示。模型的输入量包括驾驶员期望的目标横向相对距离x和目标实际的横向相对距离Rx,模型的输出量为PID 控制的方向盘转角SAS。其中PID参数仅需要给出一个初始的默认值,通过神经网络即可实现PID参数的自动调节。
图5 神经网络PID模型示意
4.1 PID控制算法
(1)PID的传递过程模型
在PID 模型的闭环控制中,系统通过计算被控制量的驾驶员期望值和实际测量值之间的误差e(t),对被控制量进行不断地调节,使其实际观测值无限接近期望值。PID控制的一般形式如式(8)。
式中,y(t)为系统的输出,kp为PID的比例调节参数,ki为PID的积分调节参数,kd为PID的微分调节参数。
(2)系统误差更新
由于每一个循环过后,被控制量的实际观测值都会发生改变,因此系统误差也会随之更新,直到系统误差足够小后,可以认为模型的控制调节效果达到预期。系统误差的更新公式如式(9)。
式中,xk+1为第k+1次循环的输入量,e(t)为系统误差。
4.2 基于神经网络的PID参数调节
神经网络PID 控制模型旨在通过神经网络,对PID模型的PID参数进行不断地学习和调节,如图6所示。神经网络的输入变量为系统误差e(t)、输出量y和上一循环周期的PID 参数kp(t)、ki(t)、kd(t),输出变量为下一周期的PID参数kp(t+T)、ki(t+T)、kd(t+T)。
图6 神经网络模型
神经网络PID参数调节模型构建过程如下:
(1)隐藏层节点数计算
神经网络隐藏层的节点数选择,可以通过公式(10)计算获得。
式中,m为隐藏层节点数,n为输入层节点数,l为输出层节点数,α为1~10之间的常数。
(2)神经网络的训练方法
神经网络是通过训练的误差反馈来逐步调整各层输入的权重配比,其常用的训练方法包括梯度下降法和最小二乘法。经过综合考虑,本文设计的跟车场景识别模型以梯度下降法作为神经网络模型的训练方法,其迭代公式如式(11)。
式中,wi+1为第i+1 个更新结果,di为第i个结果的距离误差,ηi为学习效率。
(3)神经网络学习效率
神经网络的学习效率一般在0.01~0.80 之间选取,如果选择的值过大会导致收敛过快,系统震荡不稳定等问题,如果学习效率过小,则会导致神经网络的训练速度过慢,经过反复试验,发现选取学习效率的值为0.5时,即可满足构造需求。
(4)PID参数调节
PID 参数由3 类参数组成:比例kp、积分ki、微分kd。在此使用θ表征PID参数。设定参数θ的累计平方梯度r的初始值为0,其更新公式如公式(12)所示。PID参数θ的更新公式如公式(13)所示。
式中,g为参数的梯度。
式中,g为参数的梯度;η为学习效率;δ为小常数,取值为1~7(避免分母为0)(补充其他变量的解释)。
5 盲区危险目标自动避碰系统
5.1 系统构架
盲区危险目标自动避碰系统架构如图7 所示,由感知层、决策层和执行层3部分组成[13]。
图7 盲区危险目标自动避碰系统架构
(1)感知层通过感知传感器对交通环境中的盲区目标进行感知探测;
(2)决策层依据感知层获取的目标信息,对目标是否需要自动避碰、避碰方位进行控制决策;
(3)执行层通过神经网络PID 模型控制自车对盲区危险目标进行避碰,控制达到期望的横向位置。
5.2 感知层
系统的感知层如图8 所示,主要使用木牛雷达对交通目标进行感知探测。定义纵向时距TTO为本车与目标的纵向相对距离与相对速度之比,表征目标与自车并排所需时间。系统的输入量为目标偏航角a,相对距离R,相对速度Vr,输出量为目标纵向相对距离Rx,横向相对距离Ry,和纵向时距TTO。
图8 目标感知探测模块
木牛雷达可获取的目标信号包括:偏航角a、相对距离R和相对速度Vr。首先需要将目标位置信息转换为自车坐标位置,其计算如式(14)、(15)。
5.3 决策层
系统决策层如图9 所示,它通过感知层获取的交通环境信息对自车是否需要紧急避碰进行决策规划[14-16]。系统的输入量为目标与自车的纵向相对距离Rx,横向相对距离Ry,相对速度Vr,左右车道线位置,自车速度Vego和纵向时距TTO,输出量为盲区目标预警的激活时间、目标方位(左后方或右后方)、危险等级信号和自动避碰介入信号。
图9 盲区目标预警模块
(1)盲区目标预警的激活时间
盲区目标预警的激活时间是目标车进入自车相对危险区域后,预警功能激活的时间。功能激活需要满足的约束条件如下。
①速度约束
盲区目标预警功能激活需要满足目标车辆速度大于自车速度的条件,速度约束条件如式(16)。
式中,Vego为Vobj为目标车辆速度。
②位置约束
盲区目标预警功能激活需要约束目标的横向相对位置在特定的区域范围内,其约束条件式(17)所示。
式中,Rx为横向距离;Lane为车道位置(由Mobileye EQ3 摄像头获取);Rd为当前道路的车道宽度,其值由左右车道线距离差值计算获得。
盲区目标预警功能激活需要约束目标的纵向相对位置在自车后方的特定区域范围内,其约束条件如公式(18)所示。
式中,Ry为纵向距离;RBSM为功能激活的纵向距离阈值,取30 m[17]。
③时距约束
盲区目标预警功能激活需要确定目标车辆具有在较短时间内超越自车的能力,约束条件如式(19)。
式中,TTO为纵向时距;TTOBSM为功能激活的纵向时距阈值,通过大量场景数据分析,取值为3.5 s。
(2)目标方位
车辆盲区包括左侧盲区和右侧盲区两部分,为了判断是否需要使用左侧或者右侧的盲区目标预警功能,需要对目标所处的方位进行判定。由于目标可能部分位于本车道内,无法直接以车道线为方位的界限,本文通过比较目标与左右两车道线的距离对进行方位进行判定,若满足式(20),则判定目标位于右侧;若不满足,则判定目标位于右侧。
式中,Rx为横向距离;LaneL为左侧车道线位置,LaneR为右侧车道线位置。
(3)危险等级信号和自车避碰介入信号
盲区目标的危险等级划分如表2 所示,以Cluster-1 的最大横向相对距离Rmin和Cluster-2 的平均横向相对距离Rmean作为等级划分的界限,将场景分为0 级危险场景、1 级危险场景、2 级危险场景。自车避碰介入信号以场景的危险等级作为介入依据,对于0 级的场景不介入自动避碰功能,信号为N,对于1 级和2 级的危险场景介入自动避碰功能,信号为Y。
表2 盲区目标的危险等级划分
5.4 执行层
系统通过执行层控制车辆进行避碰,当系统接受到自动避碰指令后,通过第4章构建的神经网络PID模型控制本车进行偏转,实现对危险目标进行自动避碰。系统执行层如图10所示,输入量包括本车速度、方向盘转角、纵向时距、横向距离、方位、危险等级、自动介入信号,输出量为神经网络PID控制输出的方向盘转角。
图10 系统执行层
6 系统验证
为了对盲区自动避碰系统的可行性进行验证,使用ADAS 功能试验车进行实车道路测试,以实现对系统的自动避碰性能进行评估[18-20]。道路测试的地点选择为一条车辆较少的高速公路,测试时间为2019 年11 月16 日,天气晴,道路交通条件为畅通,数据采集设备包括木牛毫米波雷达、Mobileye EQ3 摄像头、Brick PC、CANape 数据存储及处理软件,系统测试的场景设定如表3所示。
表3 系统测试的场景设定
为阐述智能驾驶汽车盲区自动避碰系统的可行性,限于篇幅,选取一段场景示例对功能的盲区自动避碰功能进行展示,如图11所示。t1-t9时刻目标自本车的右侧进入盲区,当车辆的纵向时距满足功能的激活条件时,对目标的危险等级进行判定,并依据目标的危险等级控制车辆进行避碰。
图11 场景示例
图11 示例中,数数据采集设备获取的场景数据如图12 所示,图12(a)为自车的速度Vego曲线、图12(b)为自车方向盘转角SAS、图12(c)为目标的纵向相对位置Rx、图12(d)为目标的横向相对位置Ry、图12(e)为目标的相对速度Vr、图12(f)为实际纵向时距TTO的曲线和TTO为3.5 s 的激活时刻曲线对比图。
图12 示例场景的数据信息曲线
在本文中,以车辆可碰撞时刻(目标车头超过自车车尾)自车与盲区危险目标的横向相对距离期望值Rx_pre与实际值Rx的误差来评估系统的性能,即最终的横向误差ek.。一个较小的ek.意味着系统的自动避碰性能优良,一个较大的ek.意味着系统的自动避碰触发较晚或自动避碰性能较差,需要提早预警时间或优化算法。从示例展示结果可以看出,盲区目标触发自动避碰功能后,即纵向时距TTO小于3.5 s,系统控制车辆想反方向进行自动避碰控制,大约2.6 s 自车与目标的横向相对距离接近期望值,完全满足驾驶员对盲区危险目标自动避碰功能的要求。
7 结论
本文基于神经网络PID 算法,提出了一种盲区危险目标自动避碰方法。通过K均值聚类算法,对盲区超车场景的目标横向距离进行聚类分析。神经网络PID自动避碰控制算法以聚类结果目标横向距离作为安全指标,通过构造系统感知层、决策层和执行层,对危险和较为危险的目标进行自动避碰控制,以提高智能加速汽车的安全性。系统经过实车道路试验验证,智能加速汽车在右后侧目标驶入危险区域时,触发自动避碰控制系统,并能在较短时间内控制车辆避开超车目标。
简而言之,本文所构建的盲区危险目标自动避碰系统在道路测试中有着良好的表现。将在以后的研究中对涉及多目标的复合驾驶场景进行深入的研究,以实现多目标干扰的盲区危险目标自动避碰。