APP下载

基于视频的前车并线及碰撞预警算法研究

2019-10-18赵富强王智灵梁华为

测控技术 2019年9期
关键词:前车预警矩阵

赵富强,孔 斌,杨 静,王智灵,梁华为

(1.中国科学院合肥智能机械研究所,安徽合肥 230031;2.中国科学技术大学,安徽合肥 230026;3.中国科学院合肥研究院应用技术研究所,安徽合肥 230088;4.安徽省智能驾驶技术及应用工程实验室,安徽合肥 230088)

随着社会经济的发展,人们生活水平不断提高,汽 车和驾驶员数量增长迅速,平均每年增长率是上一年的10%,每年增加超过千万辆汽车,汽车给人们带来便利的同时,也不可避免地带来了巨大的交通安全问题,在交通事故中,追尾事故占较大比重[1]。

驾驶安全问题是汽车产业亟待解决的关键性问题。近年来,知名车企将安全辅助驾驶系统纳入标配,尽可能保证驾驶员的安全[2]。安全辅助驾驶系统主要分为车道线偏离预警、前车碰撞预警和疲劳驾驶监测等 ,综合各方面信息,提醒驾驶员安全驾驶,该系统依赖于安装在车辆内或外部的相机,获取交通环境下的视频数据,利用计算机视觉方法,如目标检测、目标跟踪、区域分割等,计算目标位置和轨迹等信息,通过一定策略综合处理该信息,按照潜在危险的重要程度,输出预警信号[4]。但目前已有的辅助驾驶系统存在诸多问题:误警率较高,影响驾驶员,从而导致驾驶员关闭辅助驾驶系统,辅助驾驶系统形同虚设;嵌入式平台对视频数据的处理速度难以满足预警系统对实时性的要求;在不同的驾驶场景下,光照强度的变化导致车载相机成像质量变差,影响对图像的处理。近年来,随着计算机视觉的发展,目标检测和目标跟踪算法的准确率和实时性有了大幅度提高[5],同时,随着嵌入式GPU的兴起,对图像的处理速度可以满足预警系统对实时性的要求,目标检测和目标跟踪算法可以应用于安全辅助驾驶系统。

现实场景中,当前车并线时,前车和本车的驾驶员均无法在短时间内,判断两车是否保持安全的距离和速度,从而导致严重的交通事故。本文开创性地提出了前车并线预警策略,可以在前车有并线意图的情况下,提醒本车驾驶员及时减速避让。目前已有的前碰撞预警系统的原理是对前方静态目标障碍物的预警,主要关注前方目标的静态特点,并未考虑当前车辆与前方车辆之间的相对运动趋势。本文利用目标跟踪算法跟踪前方车辆,记录前车的位置和轨迹等信息,分析前车的运动趋势,实现前车并线预警功能。

1 前碰撞预警算法整体流程

前碰撞预警算法由目标检测、目标跟踪、标定测距以及预警策略模块组成,算法的整体流程如图1所示。通过车载相机获取路况图像,对图像进行预处理,利用目标检测算法检测图像中的目标车辆,如果检测到前方特定区域有目标车辆出现,切换到目标跟踪模块,跟踪后续图像中的目标,如果跟踪结果的最大置信度小于设定阈值,则说明目标消失或发生较大的外观变化,重新切换到目标检测模块。跟踪模块输出目标矩形框,并记录轨迹信息。通过标定测距模块测量当前车辆与前方目标车辆的距离[6]。预警策略模块融合距离、轨迹等信息,实现预警。

2 算法模块设计

2.1 交通场景下目标车辆检测模块

2.1.1 检测算法介绍

图1 前碰撞预警系统功能流程图

利用目标检测算法,获得图像中的目标车辆的位置。本文根据交通环境下车辆的特点:目标的尺寸通常变化不大,因此,本文对Yolov3卷积神经网络检测算法进行剪枝处理[7];对检测锚框的尺寸进行调整,如表1所示,第1列表示两个输出层分别负责检测的目标尺度,第1行表示每个输出层对应的检测锚框的3种大小,近似正方形锚框主要用于预测机动车等目标,瘦高的长方形锚框用于预测非机动车等目标。

表1 输出层的目标尺寸 单位:像素

2.1.2 算法的具体工作流程

利用已标注的交通场景图像样本数据集,对目标检测网络进行训练,完成每轮训练后,求解网络输出结果的损失,当损失小于一定阈值,或训练迭代到设定的次数后,保存权重参数并结束训练。在检测阶段,将输入图像输入到检测网络,与训练好的权重参数进行运算,输出目标的位置矩形框[8]。具体流程如图2所示,上面的图像集合表示训练集,通过深度学习方法训练权重参数,左边的图像表示测试图像,通过与网络的权重参数运算,输出目标检测框,如右边的图像中红色矩形框所示。

2.1.3 剪枝后的卷积神经网络结构

图2 目标检测算法流程图

图3 剪枝后的卷积神经网络结构

剪枝后的Yolov3卷积神经网络结构如图3所示,图中最上面的图像表示输入图像,依次与网络中各层运算,得到特征矩阵;从网络的不同层引出特征矩阵,经过几层卷积层融合后,到达输出层,分别检测不同大小的目标,如图中Convs/Scale1和Convs/Scale2所示,最下面的图像中红色矩形框表示目标的位置。每个输出层对应3种锚框,因此,输出层矩特征矩阵按通道分成3个部分,每个部分分别由矩形框(x,y,w,h)和置信度Conf组成。输出层Scale1充分保留了图像的细节信息,负责检测中小目标,输出层Scale2保存较多的语义信息,负责检测大目标。按照置信度对检测结果进行排序,选择置信度大于0.9对应的目标矩形框,作为最终网络的检测结果。

2.1.4 检测算法的损失函数

检测算法的损失函数由定位损失、分类损失和置信度损失组成[9]。

Locloss1表示目标中心位置损失,由目标框中心坐标的均方误差组成。

Locloss2表示目标矩形框的长宽损失,由目标框的长宽的平方根误差平方组成,一定程度上弱化较大尺寸的目标框损失对整体损失函数贡献。

式中,S2表示输出层的锚点数;B表示每个锚点对应的示预测目标的矩形框参数,分别对应中心坐标和长宽;x^i、y^i、w^i、h^i表示标注目标的矩形框参数。

分类损失用于计算预测类别与真实类别的误差,由目标类别误差和背景类别误差组成。

式中,Ci表示预测标签示真实标签;lnoobjij表示第i个锚点对应的第j个检测框是否有目标,如果有,则

置信度损失用于计算分类置信度对损失的贡献。置信度越小,对整体损失的贡献程度越大,反之亦然。

式中,pi(c)表示第i个锚点中第c类的预测置信度;p^i(c)表示第i个锚点中第c类的真值置信度;

由于各部分损失对损失函数的贡献程度不同,通过加权的方式,综合各部分损失函数,得到总体损失函数。

式中,λcoord表示位置误差的权重;λnoobj表示非目标类别误差权重。

2.2 基于路面纹理上下文的自适应尺度目标跟踪算法

基于路面纹理上下文的自适应尺度目标跟踪算法是前车碰撞预警算法的关键部分,主要用于跟踪目标车辆,记录前车运动轨迹。核相关滤波算法属于辨别式跟踪算法,在第一帧中的目标周围区域,采用在x和y方向上循环位移的方式采集样本,计算样本的HOG特征矩阵,根据循环矩阵的性质,可通过傅里叶变换在频域进行运算,从而加快了在线训练和跟踪的速度[10]。但由于其固有的缺陷,如:当连续帧间的目标尺度变化较大时,跟踪框往往无法准确跟踪前方目标车辆。本文从自适应尺度和道路纹理上下文信息融合等方面,解决原有算法存在的缺陷。

2.2.1 核相关滤波基本理论

基于核相关滤波的目标跟踪算法是辨别式跟踪算法,该算法利用样本集,在线学习一个可辨别的相关滤波器,用于区分下一帧中特定区域内目标的位置。传统的采样策略是在目标周围区域随机剪切样本,得到正负样本集,而核相关滤波算法采用循环位移的方法[11],在目标区域周围进行密集采样,计算样本的HOG特征矩阵,整个样本空间的特征矩阵组成的矩阵是循环矩阵。通过二维高斯函数产生样本标签,靠近样本空间的中央位置,标签值较大,反之亦然,标签值的大小表示目标的置信度。如图4所示,下层表示经过循环移位后的样本空间中的样本分布图,上层表示样本空间中的样本对应的标签值,靠近中间位置呈橘黄色,表示标签值较大,远离中间位置呈蓝色,表示标签值较小。

图4 循环样本空间与标签对应关系

在利用脊回归算法训练过程中,根据循环矩阵的性质,在频域中减少计算量,有效提高算法的实时性。脊回归算法如式(7)所示。

式中,A0为样本集特征矩阵;w为可学习相关滤波器的权重参数矩阵;y为样本集的标签矩阵;λ1为正则项参数。

对式(7)求导,并令导数为0,求解w的矩阵形式如式(8)所示;根据循环矩阵的性质,时域中的循环矩阵X可用频域中的对角阵表示,如式(9)所示;根据式(8)和式(9),可得到频域中的权重参数矩阵,如式(10)所示。

式中,F为傅里叶变换矩阵;AT为样本集特征矩阵的0共轭转置;α^0为循环特征矩阵A0的第一行向量组成的对角矩阵的傅里叶变换;α^0*为循环特征矩阵A0T的第一行向量组成的对角矩阵的傅里叶变换。

目标跟踪阶段,将下一帧图像中的搜索区域的特征组成的循环矩阵Z与权重参数矩阵w运算后,得到的响应矩阵R中最大的响应值对应的位置,是图像中目标的中心位置,如式(11)所示。

2.2.2 融合路面纹理上下文信息的跟踪方法

传统的核相关滤波器仅仅利用单一的目标信息作为跟踪标准,无法有效利用空间上下文信息,而空间上下文信息对预测目标位置具有重要意义[12]。在交通场景下,图像中的待跟踪目标车辆在路面上方行驶,且在行驶过程中,前后两帧的路面纹理相对稳定。如图5所示,图中蓝色矩形框表示路面纹理区域,红色矩形框表示目标车辆。可以与传统的核相关滤波算法融合,辅助跟踪目标车辆。

图5 道路场景下路面纹理与目标的位置关系

融合道路纹理信息的核相关滤波方法可有效解决目标部分遮挡的跟踪问题。如果遇到目标车辆部分遮挡,导致目标区域的响应值非最大响应值,融合路面纹理信息后,仍然可准确跟踪目标。融合路面纹理上下文信息的脊回归训练公式如式(12)所示。

式中,λ2为权衡路面上下文信息对响应值的影响程度参数;A1为路面区域的循环样本特征矩阵。

2.2.3 尺度自适应跟踪模型

在交通场景下的车辆跟踪过程中,由于前车和当前车辆的相对速度变化,导致图像中的目标车辆的尺度发生变化,传统的核相关滤波方法无法适应目标车辆变化较大的情况。本文在传统的核相关滤波的基础上,增加尺度自适应跟踪模型。

采用图像金字塔或滤波器金字塔模型处理与尺度相关的问题,通过一定尺度间隔采样不同尺度的图像[13],但该方法的计算量急剧增大,不利于预警算法对实时性的要求。本文根据交通场景下目标跟踪尺度变化的特点,增加一个维度处理目标尺度变化,如图6所示,图中左边的图像表示上一帧中用来在线训练位移滤波器w和尺度滤波器w1的样本,通过以像素为单位进行循环移位,得到循环样本空间,计算样本的HOG特征,与二维高斯标签矩阵结合,利用脊回归算法训练,得到位移滤波器w;以目标中心位置为中心,以一定的间隔采集不同尺度的样本,并计算样本的HOG特征,与一维高斯标签结合,通过脊回归算法训练,得到尺度滤波器w1;当获取到当前帧图像后,首先,通过位移滤波器w与输入图像的特征矩阵运算后,得到当前帧目标中心位置的坐标,然后,利用尺度滤波器计算当前帧目标的最优尺度,最终输出目标的位置和大小,如图中右下角图像中红色虚线框所示。

图6 自适应尺度跟踪算法的在线训练和检测流程

2.2.4 目标检测和目标跟踪切换策略

在复杂多变的交通场景中,正在跟踪的前方目标易出现运动模糊、遮挡及截断的情况,导致跟踪算法对目标跟踪失败,本文设计了一个目标检测和跟踪模块的切换时机的方法,当跟踪模块对目标跟踪失败后,及时切换到目标检测模块,重新检测目标[14]。

根据核相关滤波跟踪算法的输出结果的最大响应值的含义,当准确跟踪到下一帧目标时,响应矩阵的最大值接近于1,反之,接近于0。根据该特点,设定切换阈值β,如图7所示,当0<β<0.7时,表示跟踪模块无法有效跟踪目标,切换到检测模块,重新检测目标;当β>0.7时,表示跟踪模块仍然能够准确跟踪目标;当检测模块检测到有效目标时,切换到跟踪模块对目标进行持续跟踪。

图7 目标检测和跟踪模块切换流程

2.3 车载相机标定测距

通过测距模块实现测量当前车辆和前方目标的距离的功能。目前常用的测距方法有超声波测距、毫米波测距、摄像机标定测距和激光测距等[15]。利用单目相机的成像原理,通过镜头将物体的反射光进行折射后,在摄像机的感光屏上成像[16]。车载相机的坐标空间由4个相互关联的坐标系组成,如图8所示。其中,OW-XWYWZW表示世界坐标系,O-XYZ表示摄像机坐标系,o1-xy表示成像坐标系,o2-uv表示图像坐标系,红色的“×”表示世界坐标空间中的点MW和摄像机坐标系中的点M的位置坐标,蓝色的“×”表示图像坐标空间中的点m的位置坐标。根据式(13),实现图像坐标空间的点m与世界坐标空间中的点MW的一一映射关系。

式中,A为摄像机的内部参数;fx为x方向以像素为单位的焦距;fy为y方向以像素为单位的焦距;cx为图像中心对应的x方向的索引;cy为图像中心对应的y方

图8 坐标空间的对应关系图

2.4 预警策略

在目标检测和跟踪基础上,利用图9所示的流程实现检测和跟踪模块之间数据传递的有效性。具体流程如下。

图9 目标检测与跟踪算法的数据传递流程图

(1)预警系统启动后,获取视频数据的第一帧,首先,判断获取的帧是否有效,如果无效,则退出。否则,进入检测流程,检测并输出所有的检测结果,如果未检测到有效目标,则继续检测下一帧,否则,将目标位置信息记录下来,并将检测标志IsDetecting置false,最后,初始化目标跟踪模块,输出目标位置。

(2)当下一帧到来时,进入跟踪流程,跟踪目标并输出结果,如果跟踪结果的置信度小于阈值,则认为跟踪失败,则将检测标志IsDetecting置true,否则,更新目标跟踪模块,输出目标位置。

2.4.1 碰撞时间预警

采用车载相机标定的方法,可以计算当前车辆和前车的实际距离,同时还需要获得两车的相对速度,综合两个指标得出碰撞时间(Time of Collision,TTC)[17]。如图10所示,A车表示当前车辆,B车表示与A车同一车道的前方目标车辆,A车和B车之间的连线表示两车的碰撞时间。当驾驶员在2.5 s以上发现危险时,并采取制动措施,可以避免与前车发生碰撞。

图10 碰撞时间预警示意图

利用两车的相对距离d和相对速度v计算碰撞时间tTTC,由于无法直接测量前车的速度,为了降低成本,本车无法安装测速仪器,因此,可以通过前后两帧车距变化与连续两帧之间的时间差得出两车的相对速度,碰撞时间tTTC的计算方法如式(14)所示,以当前车辆的行驶方向为正方向,两车的在第t帧的相对速度由第t+1帧的距离dt+1与第t帧的距离dt之差与连续两帧的时间间隔Δt决定,当▽d<0时,表示两车的相对距离减小,当▽d>0时,表示两车的相对距离增示辆车的相对速度越大,反之亦然。

根据碰撞时间tTTC的值,采取相应的预警措施,如表2所示,当tTTC的取值在(-∞,-2.5)范围时,预警级别为三级,驾驶员可自主控制车辆,预警系统无需提示;当 tTTC的取值在(-2.5,-1.3]范围时,预警级别为二级,预警系统发出声音预警,提醒驾驶员安全驾驶;当tTTC的取值在(-1.3,0]范围时,预警级别为一级,预警系统发出声音提示,并在一定程度上制动车辆。

表2 碰撞时间与预警级别关系表

2.4.2 前车并线预警

如果前方车辆进入当前车道,驾驶员需要提前预判是否避让,如果当前车辆与前方车辆的相对速度较高,或前车以较大的速度和角度突然并线,驾驶员无法在短时间内避让,酿成车祸。本文结合前车运动轨迹,分析前车并线意图,实现前车并线预警功能。

车载相机安装在车辆顶部的中央位置,相机成像的中心点对应于车辆正前方的中央位置,如图11所示,图中红色栅格线表示当前车辆安全行驶区域,该区域以当前车辆中央向前方的延长线为中轴线,分别向左右两边扩展的距离称为扩展距离,用d1表示,向前方延伸的距离称为延伸距离,用d2表示。区域内的每条红色直线表示距离当前车辆不同距离的位置,蓝色实线表示该区域形成的三维空间的边界,以当前车辆两侧车道内的目标车辆的中心位置为目标运动轨迹的锚点,当目标锚点从红色区域外部向区域内部移动时,表示前方车辆有并线意图,此时,预警系统开始预警,提醒驾驶员减速避让。扩展距离d1和延伸距离d2的关系,如图12所示,横坐标表示两车的相对距离,单位为m,用distance表示,纵坐标表示不同distance对应的安全行驶区域在图像中的宽度,单位为像素,用width表示,随着两车的相对距离的增加,width逐渐减小。

图11 前车并线预警原理示意图

图12 检测宽度与车距关系折线图

2.4.3 非机动车预警

根据目标车辆的类别,将目标车辆分为机动车和非机动车。在交通场景中,非机动车属于运动状态不稳定的交通参与者,在驾驶过程中,容易出现突然停止、转弯或摔倒等情况,机动车驾驶员需要与非机动车保持一定的距离,并随时注意突发情况的发生。当非机动车出现在当前车辆前方时,预警算法及时预警,提醒驾驶员注意避让非机动车,谨慎驾驶。

3 结果与分析

本文的实验采用KITTI数据集和实际交通场景采集的样本数据集。其中KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前世界上最大的无人驾驶场景数据集,该数据集包含目标检测、跟踪、激光雷达及双目视觉等图像序列和标注数据。如表3所示,KIITI数据集根据目标的最小尺寸(Min_Box)、最大遮挡面积(Max_Occlusion)和最大截断区域(Max_Truncation),分为容易、中等和困难3个部分,分别评估算法在不同难度的数据集下的性能指标;在实际场景下采集的数据集包括高架道路、市区公路等交通场景。

表3 KIITI数据集难易程度分布

3.1 标定测距实验分析

通过车载相机与障碍物的实际距离和利用车载相机的标定矩阵计算出来的距离,来分析标定误差。如表4所示,随着相机与障碍物的距离的增加,误差率有所增加,主要是因为距离相机越远的位置,单位像素所对应世界坐标空间中的距离越大,导致标定误差增大,但误差在允许范围内,满足预警系统对误差的要求。

表4 车载相机标定误差统计

3.2 目标跟踪算法性能分析

利用KITTI数据集抽取包含单个目标的数据集,并采用VOT评估工具箱,对比本文所述的跟踪算法与已有的跟踪算法之间的性能,结果如表5所示,Ms_Rcacf_6表示本文所述的算法在λ2=0.6时的算法,cacf_dsst表示未考虑路纹理上下文区域的多尺度跟踪算法,cacf表示未考虑道路纹理上下文区域的单尺度跟踪算法,kcf_dsst表示传统的核相关滤波的多尺度跟踪算法。分析实验数据可知,本文提出的算法的平均交并比和EAO(Expected Average Overlap)数据均排名第1,平均失败次数排名第2,帧率FPS排名第3,综合以上指标分析,本文所述的算法在准确率方面表现更好,在程序实现中,可通过并行计算技术来弥补帧率较小的缺点。

表5 目标跟踪算法性能指标

3.3 碰撞时间预警实验分析

本实验将车载相机安装在车辆顶部中央位置,对真实道路场景进行采样,并在离线场景下对算法进行测试,实验结果如图13所示,x轴表示两车的相对距离;y轴表示两车的相对速度;z轴表示碰撞时间TTC。当碰撞时间在(-1.3,0]之间时,进行一级预警,如散点图中红色大号球点所示,当碰撞时间在(-2.5,-1.3]之间时,进行二级预警,如散点图中黄色中号球点所示,当碰撞时间在(-∞,-2.5)之间时,进行三级预警,如散点图中绿色小号球点所示。两车的相对距离越小,相对速度为负数,且绝对值越大时,表示辆车在短时间碰撞,预警的紧急度越高,反之亦然。

图13 预警时间与预警级别散点图

交通场景下,碰撞时间与预警输出示意图,如图14所示,上方坐标系的横轴表示当前帧在图像序列中的索引,纵轴表示碰撞时间TTC的值,图中每一帧的索引对应该帧中当前车辆与目标车辆的碰撞时间,红色的点表示一级预警,黄色的点表示二级预警,绿色的点表示三级预警,下方的图像表示特定帧在图像中的预警结果,黄色矩形框表示目标的位置,其下方的字体描述预警界别。

3.4 并线预警实验分析

该实验主要应用于结构化道路,如:高速、高架道路等场景,并线预警算法对当前车辆前方一定范围进行检测,并对可能变道的车辆进行持续跟踪,当变道车辆开始进入危险区域时,进行预警,提示驾驶员及时减速避让,防止因减速不及时,导致与前方车辆发生追尾。并线预警实验结果,如图15所示,绿色矩形框表示安全情况下目标车辆的位置,这些车辆对当前车辆安全行驶不能构成潜在危险;当目标车辆进入危险区域后,该车辆的位置矩形框由绿色变成红色,预警系统通过语音或指示灯提示驾驶员“前方车辆变道,注意减速避让”;图中红色符号“×”表示目标车辆中心位置的历史轨迹,黄色曲线表示目标车辆与当前车辆的相对位置变化;完成前车并线并稳定行驶后,停止预警。

3.5 非机动车预警实验分析

在实际交通场景下,非机动车属于弱势交通参与对象,同时由于非机动车驾驶员交通安全意识不强,容易突然变道或者曲线行驶,引发交通事故。该实验通过采集交通场景下的包含非机动车的视频数据,对本文所述的非机动车预警算法进行测试,实验结果如图16所示,黄色直线表示当前车辆前方危险区域,绿色和黄色矩形框分别表示非机动车或行人的位置信息,当非机动车进入危险区域后,预警系统进行预警,提示驾驶员注意前方非机动车辆,注意避让或减速。

图14 前车碰撞时间预警示意图

图15 前车并线预警示意图

图16 非机动车预警示意图

4 结束语

本文提出的基于视频的前车并线及碰撞预警算法实现了前车碰撞时间预警、前车并线预警以及非机动车预警等功能。目标检测算法对交通环境下的车辆有较高的检出率,有效提高了预警算法的准确率,同时,本文提出的基于路面纹理上下文信息的目标跟踪算法融合目标周围信息,实现对目标的精确定位,可以准确获得前车目标车辆的运动轨迹信息。根据检出的结果,结合车载相机标定方法,实现对前方车辆距离的估计,为后续的综合预警提供充足的信息。但是,由于交通环境复杂,难以衡量跟踪算法对目标的跟踪结果的准确性,较难把握检测算法和跟踪算法的切换时机,在以后的工作中,将进一步对长时跟踪算法进行研究,结合目标的几何及外观信息等,进行综合判断。

猜你喜欢

前车预警矩阵
法国发布高温预警 严阵以待备战“史上最热周”
园林有害生物预警与可持续控制
基于ACC系统的目标车辆换道与出入弯道状态辨识算法∗
初等行变换与初等列变换并用求逆矩阵
汽车追尾哪种情况无需负责
机载预警雷达对IFF 的干扰分析
矩阵
矩阵
矩阵
预警个啥