APP下载

改进YOLOv4算法的高速公路碰撞预警系统

2022-03-11谈文蓉薛余坤陈秋实邢雪枫

关键词:摄像头预警距离

谈文蓉,薛余坤,陈秋实,邢雪枫

(西南民族大学计算机科学与技术学院,计算机系统国家民委重点实验室,四川 成都 610041)

根据美国汽车工程协会的统计,追尾、爆胎和驾驶员注意力不集中是导致事故发生的主要因素[1],车辆检测及碰撞预警技术是智能汽车高级驾驶辅助(Advanced Driving Assistance System,ADAS)领域的关键技术之一,该技术能够有效降低交通事故概率,并有利于驾驶员集中注意力,因此具有重要的研究意义.另外,在2020年2月24日,国家发改委、中央网信办、工业和信息化部等11个部委提出,到2025年,中国标准智能汽车的技术创新、产业生态、基础设施、法规标准、产品监管和网络安全体系基本形成[2],这标志着智能汽车是国家未来发展战略的一部分,是世界汽车行业的发展趋势.

目前,有关车距检测的方法种类繁多,Fayad等人[3]使用激光测距传感器和相对速度测量传感器来获取与前车的速度差,Yang等人[4]提出使用毫米波雷达与机器视觉信息相融合的车辆检测方法,Boyuk等人[5]采用单目CCD(Charge Coupled Device)摄像机作为输入设备,再根据真实车道线宽度与图像中车道线宽度的关系计算出两车之间的实际距离,但当车道线显示不够清晰或存在遮挡时,此算法存在较大缺点.在车辆检测方面,Viola等人[6]使用基于AdaBoost的车辆检测方法,黎洲[7]和Seo[8]等人提出了基于YOLOv2(You Only Look Once v2)框架的车辆检测算法,可同时进行车辆识别和车辆视角识别,在非结构化道路上取得了较好的结果,但在高速公路上由于车速较快、算法响应不够及时,故存在的安全隐患较大[9].在车辆碰撞预警策略方面,Pyo等人和Lee等人[10]分别提出以“碰撞时间”和“安全距离”为评价指标,对后面预警策略的制定有一定指导意义.杨澜等人[11]构建了基于4G和DSRC(Dedicated Short Range Communications)通信网络的高速公路通信场景与事故预警框架,并基于车路协同建立以时间、位置、速度、车间距以及制动距离为参数的车辆追尾碰撞预警模型,但对道路信号环境提出了较高的要求.

针对上述车辆检测和防碰撞预警算法的各种问题,提出了基于深度学习YOLOv4(You Only Look Once v4)框架的高速公路车辆防碰撞的预警算法.车载摄像头作为智能车辆进行周围环境感知的主要途径,小鹏G3电动车已将摄像头安装在车顶以获取更丰富的信息感知,故本文同样将摄像头安装在车顶,结合车载摄像头的安装位置、世界坐标系与图像像素坐标系的关系进行真实距离转换,实时构建车辆危险距离区域,从而在前方车辆进入危险车距内能够及时向驾驶员进行报警提醒.为了提高针对视频的车辆检测的准确度、减少图像抖动带来的距离偏差,本文提出对进行车辆检测的视频进行防抖预处理的方法,将摄像头采集的视频使用光流跟踪算法对模糊的视频帧进行运动补偿.基于YOLOv4算法的防碰撞预警框架主要包括视频图像防抖处理模块、车载摄像头标定模块、车辆检测模块、危险行驶区域构建模块以及最终的防碰撞预警算法处理模块,整体框架如图1所示.

图1 高速公路防碰撞预警模型整体框架

1 基于改进YOLOv4算法的车辆检测

1.1 YOLOv4算法原理

2020年4月份,YOLOv4作为YOLOv3的升级版本被推出,将最新的计算机视觉领域成果融合在一起[12],其主要网络结构如图2所示.

图2 YOLOv4主要网络结构

YOLOv4在输入端使用了Mosaic数据增强扩充了数据集,随机读取4张图片进行随机的尺寸调整、旋转、裁剪等操作,再拼接为一张608×608大小的图片作为输入的训练数据,效果如图3所示.

图3 Mosaic数据增强方式示例

网络结构方面使用CSPDarkNet53作为主干网络,增强了卷积层提取图像特征的能力,同时引入了残差结构,使得模型可以具有更深的网络结构.FPN(Feature Pyramid Network)层自顶向下传达了强语义特征,PAN(Path Aggregation Network)层自底向上传达了强定位特征,而YOLOv4创新性的将其两两联合,从不同的检测层对不同地检测层进行参数聚合.预测端使用了CIOU_Loss(Complete Intersection Over Union_Loss)作为损失函数[13],如公式1所示,将预测框和目标框的长宽比、重叠面积、中心点距离都考虑了进去,使得预测框回归的速度和精度更高一些.

(1)

其中Distance_C为预测框和真实框的最小外接矩阵的对角线距离,Distance_2为预测框和真实框的两个中心点的欧氏距离,IOU为预测框和真实框的交集和并集之比.v为衡量长宽比一致性的参数,其中的wgt和hgt为真实框的宽和高;w和h为预测框的宽和高.

1.2 YOLOv4算法的改进

1.2.1 改进的主干网络

为了适应高速行车环境,提高车辆检测的速度,本文使用ResNet50-vd代替原本的CSPDarkNet53作为主干网络,该网络需要计算的参数量仅有35.51 M,相较于原本网络79.31 M的参数量下降了55.2%,极大地提高了模型的训练速度和检测速度.同时,为了弥补更换主干网络而造成的性能损失,本文将ResNet50-vd网络最后的3×3卷积替换为可变形卷积(Deformable Convolutional Networks, DCN)[14]来增强网络对车辆进行精确定位的能力.DCN通过调整偏移量{ΔPn=1,2...,N}来实现网格点采样位置的偏移,增大感受野的范围,其输出特征图的值P0如公式2所示:

(2)

其中Δmn为调节偏移量的权重参数,w(Pn)为采样位置的权重信息.

图4 引入DCN的ResNet50-vd主干网络结构图

结合图2的整体网络结构图,图4中输出的特征图C2、C3将进行上采样,作为后续网络中FPN层的输入特征图.

1.2.2 改进的FPN层和PAN层

针对YOLO系列算法对小目标检测困难的问题,YOLOv4算法引入FPN层和PAN层,将低层特征高分辨率和高层特征高语义信息进行参数融合,大大提高了对小目标的检测能力.本文对YOLOv4使用的FPN层与PAN层进行改进,具体结构如图5所示:

图5 改进后的FPN层和PAN层

改进后的FPN层将经过ResNet50-vd网络得到的19×19、38×38和76×76三种大小特征图,先与大小分别为1×1、3×3和1×1的卷积核进行卷积操作,再经过上采样计算并与上一层特征图融合.同样,改进后的PAN层也先进行小卷积处理后,再使用下采样计算并与下一层特征图融合.改进后的网络结构通过在上、下采样之前增加多次卷积操作,加深了网络结构,使特征图获得更大的感受野,从而可以获取更全面的低层特征、更高的高层语义.

1.3 图像防抖处理

在对输入的视频进行车辆检测的过程中,发现由于车辆振动造成图像序列模糊在很大程度上影响检测的结果,故针对车辆在高速行驶中产生震动和道路自身存在颠簸的问题,本文使用SURF(Speeded Up Robust Features)算法和基于特征匹配的光流法进行实时防抖处理[15],其主要算法流程如图6所示:

图6 视频实时防抖算法流程图

首先使用SURF算法对输入视频的每一帧进行特征点检测,再使用基于特征匹配的光流法跟踪特征点的位置,计算跟踪特征点的运动矢量,对相机的运动路径进行估计.光流法假定同一目标在不同帧间运动时,其亮度值不会发生改变,假设某一像素在第一帧的光强度为f(x,y,t)(其中t为时间维度),它经历dt时间移动了(dx,dy)的距离,故可得式3:

f(x,y,t)=f(x+dx,y+dy,t+dy).

(3)

将上式右端使用泰勒展开式进行展开,得到式4:

(4)

其中ε代表二阶无穷小项,可忽略不计,将式4代入式3后同除以dt,故可得式5:

(5)

图7 未增稳的相机运动轨迹

将由光流法获得的仿射变换矩阵Ht进行求解,使得二阶导数的平方积分最小化,如公式6所示:

(6)

其中ρti为第t帧的角点位置,ρt+1i为第t+1帧的角点位置,H为进行稳定处理之后的仿射变换矩阵.

根据变换矩阵对视频进行运动补偿,获得较为稳定的视频帧序列输出,如图8所示.

图8 稳定后相机运动轨迹

1.4 车辆检测模型评估

本文使用UA-DETRAC车辆数据集,由于预警模型不需要对车型分类,故将数据集的car、truck和bus标签统一为car标签.使用百度PaddleDetection框架进行模型训练,具体配置为Ubuntu系统、4核CPU、Tesla V100 16GB GPU、32GB内存.本文采用Mosaic方法进行数据增广,设置训练迭代次数为60 000次,学习率在前50 000次设置为0.001,后10 000次设置为0.000 5,采用大批量训练方式,batch_size设置为24,最终在训练集上对于车辆识别的平均精确度(Average Precision,AP)达到85.16%,预测框中心点坐标与真实框中心点基本重合.

本文使用实车拍摄的6 650帧图像进行测试分析,手动标记车辆目标,将本文算法与原始YOLOv4算法、未进行防抖处理的算法进行比较,具体结果如表1所示.

由表1可得,采用ResNet50-vd和可变形卷积作为主干网络的方法,在牺牲一小部分精确度的情况下,使每一张图片提高了2.7 ms检测速度;使用改进的FPN和PAN结构,将识别精确率提升了2.11%.最后,使用防抖处理后的视频序列进行车辆检测,更是再将AP值提高了2.27%,同时由于算法复杂度上升,每帧检测的速度略微有所下降,防抖处理前后车辆检测结果如图9所示.

表1 车辆检测的对比测试结果

2 车辆碰撞预警模型

根据对四川省高速公路交通事故资料进行统计分析[16],重大事故发生多是由于追尾导致,其原因主要是纵向车距和速度差的判断失误.故设计一种预测准确、实时性高、工作可靠的车辆碰撞预警模型(Collidion Avoidance Models,CA),是提升行车安全的重要方式.

图9 防抖处理前后车辆识别结果

2.1 前方安全车距设计

为了构建高速公路碰撞预警区域模型,要设计一个“临界安全车距”,以防前车突然停止而导致的追尾碰撞事故.结合高速公路的高速行车场景,为了实现提前预警,本文使用党宏杜等人[17]提出的实时估计路面摩擦系数来改变安全车距的算法.此算法考虑到不同驾驶风格的驾驶员特点,结合行驶路面状况,根据前后车辆速度计算安全车距D,计算方法如公式7和公式8所示:

(7)

(8)

其中,am、al分别为前车和后车的减速度,Td、Tm为制动协调时间和驾驶员反应动作时间.ρ为驾驶员特征系数,根据不同驾驶风格调整数值,范围为ρ为0.25~1.00,本文暂设为1.00.φ为路面情况对安全车距的影响,由摩擦系数μ来确定,其中,μnorm为正常路面的摩擦系数,μmin为路面条件最差时的摩擦系数如路面结冰等,根据相关的研究结果,取f(μnorm)=1,f(μmin)=0.3,正常路面环境行驶时,取φ=1.参考其他资料,取am=al=6 m/s2,Td=0.2 s,Tm=2 s.Vf和Vl为后车和前车的速度,为了增大安全车距,在计算前方安全距离时取Vf=Vl.由上述公式可得,各个车速的前后安全距离如表2所示.

表2 车速与前方安全距离的关系

2.2 实际距离转换

根据上面的计算公式可得到实际安全车距,为了在图像上构建安全区域,需要将实际距离转变为图像上的像素距离,即从世界坐标系转换为像素坐标系.本文使用单目视觉系统采集图像数据,根据其小孔成像的原理来对距离进行测量,首先获取摄像头的内部参数和安装位置参数,根据几何模型将实际位置坐标转换为图像坐标[18].本文使用的摄像头安装位置和图像转换关系如图10所示:

图10 摄像头安装位置和图像转换关系示意图

图中参数f,h,α分别为摄像头的焦距、安装高度和安装角度,β为P点与光轴之间的夹角,D为摄像头到P点的距离,y0,yP分别为光轴、点P在成像平面中的纵坐标大小.图中几何关系如公式9所示:

(9)

由于其他参数已知,故可由上式得到yP与D之间的关系如公式10所示:

(10)

再将表3中得到的前后方安全距离作为距离D,可由上式计算出成像平面中纵坐标yP的大小,如表3所示:

表3 图像坐标与车速的关系

通过分析上面表格中车速v和成像平面中纵坐标yP的数据,利用numpy库自带的数据拟合函数polyfit使用最小二乘法进行一元三次多项式的拟合,得到车速v和成像平面中纵坐标yP的拟合方程如公式11所示,由此可根据车速实时构建危险预警区域模型:

yp=3.452×10-3v2-1.011v+419.5.

(11)

3 车辆碰撞预警策略

在高速公路行车过程中,驾驶员处于高速行驶状态下,需要预警系统能够准确及时地应对复杂多变的行车环境.本文所采用的预警策略是在高速公路路面形成一块随车速实时变化的危险预警区域,根据车辆检测系统得到车辆在图像中的坐标位置,根据车辆的变道信息,给予驾驶员不同的提示[19].

根据真实高速公路场景下在行驶过程中会出现的几种危险情况,对驾驶员进行预警提醒,具体预警策略为:提示司机前方车辆过近、左侧来车和右侧来车,如图11所示,预警流程算法如图12所示.本预警模型能够对所有可能存在的碰撞事故进行预测,有效减少由于安全车距过短而导致的安全事故.

图12 预警算法流程图

3.1 车辆碰撞预警实验结果与分析

在高速公路真实行车实验中,考虑到目前车辆自身算力有限,故使用移动PC平台进行测试,具体配置为Windows10 操作系统、Inter I5-5500 CPU、8 GB内存、NVIDIA GTX 1060 4G GPU.根据公式11实时构建危险预警区域,当有车辆进入到预警区域时触发报警.在道路真实行车实验获取的12 GB数据中,共计发生前方车辆距离过近86次,左侧方来车31次,右侧方来车16次,使用防抖处理前后进行对比测试,测试结果如表4所示:

表4 车辆预警的对比测试结果

正确预警指有车辆进入危险区域,系统应该预警并且成功预警;错误预警指由于图像抖动,导致原本不应该预警的车距出现误报的情况.由表1和表4可得,经过防抖算法处理之后的视频序列,一方面提高了车辆的识别率,另一方面有效降低了危险预警区域的纵向误差,减少了错误预警次数.为了更有效地对预警性能进行评价,引入预警准确率和误报率两个指标,其公式如12所示:

(12)

经过计算可得,增稳前系统的预警准确率为90.98%,误报率为18.05%;而增稳后系统的预警准确率为98.49%,误报率为7.52%.经过防抖算法处理的预警系统相较于未防抖的系统准确率提升7.51%,误报率降低了10.53%,尤其是对于前方车辆距离过近的情况更为有效,误报率更是降低了16.28%.

在移动端平台运行环境下,道路真实行车的预警结果如图13所示,由于平台算力有限,检测的平均FPS为29左右,满足实时检测的要求.

图13 车辆碰撞预警测试结果

4 结束语

本文提出的危险预警模型重点研究了高速公路场景下车辆检测和碰撞预警技术.首先,将摄像头采集的图像信息进行防抖处理,减少路面颠簸对距离判断的影响,再根据车辆行驶速度、路面状况和驾驶员特性在图像中确定实时、稳定的危险预警区域.最后,结合改进的YOLOv4算法检测车辆坐标与预警区域的位置关系,对可能存在的追尾碰撞进行有效预测.对提出的车辆防碰撞预警模型进行了真实行车实验,测试结果表明,在危险区域构建的稳定性和车辆检测的实时性、准确率方面取得较好效果.但本文提出的模型同样存在一些问题,例如未来将加强车辆检测算法对夜晚、大雾、大雨、大雪等天气下对车辆的识别能力,还可以融合多种传感器的优势,提高系统的鲁棒性和准确度.另外,未来可采用张云飞[20]提出的基于车道线平行特征来判断摄像头俯仰角度的算法,以适应车载摄像头不同的安装位置和道路起伏的行车环境,提高系统的普适性.

猜你喜欢

摄像头预警距离
浙江首试公路非现场执法新型摄像头
预警型智能包装在食品安全中的应用和设计
摄像头连接器可提供360°视角图像
超级秀场 大风预警
距离美
爱的距离
预警个啥
距离有多远
无法开启摄像头的解决方案
找出摄像头花屏的“罪魁祸首”