APP下载

基于改进YOLOv4 算法在车辆检测中的应用

2022-12-23赵燕姣李钢姚琼辛

电子设计工程 2022年24期
关键词:空洞卷积函数

赵燕姣,李钢,姚琼辛,任 杰

(长安大学 信息工程学院,陕西西安 710061)

车辆检测是借助相应的深度学习算法检测出图片中的车辆并判断属于哪种类型,车辆作为道路上的重要通行工具,对其准确检测已成为城市交通管理的重要工作[1]。一般来说,传统的目标检测算法分为三步:划定可能包含有目标的区域、进行特征提取以及检测分类[2],但划定区域时,整个算法的时间复杂度会大幅度提升,并且手工提取特征会导致算法鲁棒性差,由于以上缺点的存在,引入深度学习的方法检测车辆。

基于深度学习的检测算法可分为两种[3]:两阶段算法和单阶段算法。两阶段的算法主要以Region-CNN 算法及其改进算法为代表,检测过程分为两个阶段:先利用RPN 生成预选框,再通过检测网络实现预选框的分类和回归,虽然这类算法具有较高的AP值,但是整个算法运行时间较长。单阶段的算法包括SSD 算法、YOLO[4-6]系列算法,这类算法去掉了RPN 阶段,因而检测速度较快,但准确率较低。其中YOLOv4 算法的检测速度和精度都比其余单阶段检测算法有优势,因而改进YOLOv4 算法可用于对具体目标的检测。

李昭慧[7]等人为了能够精确地检测出驾驶人员是否处于疲劳驾驶,针对YOLOv4 的网络框架,引入空洞卷积技术,并且在其特征金字塔的前半部分和后半部分各增加一个卷积层,从而提高对深层特征的提取,增加卷积来输出感受野。叶子勋等人通过替换骨干网络来解决模型庞大的问题[8]。罗晖[9]等人在检测公路路面病害时,改进YOLOv4 中的损失函数,来提高检测的精确度。针对原YOLOv4 算法在复杂环境下对车辆的特征提取能力不强、检测精度低等问题,对通用的算法做了改进。

1 YOLOv4算法原理

1.1 YOLOv4网络架构

YOLOv4 网络结构如图1 所示。

图1 YOLOv4网络结构图

YOLOv4 的骨干网络是CSPDarkNet53,由DarkNet53[10]与CSPNet[11]结合而成。CSPNet 可以实现更加丰富的梯度组合,并整合了网络从开始到结束阶段的所有特征图来减少计算量。CSPDarkNet53 包含5 个CSPNet 模块,激活函数使用Mish 函数,具体公式如式(1)所示,函数图如图2 所示,横坐标代表x的值,纵坐标代表Mish 值。Mish 函数可以增强深层信息的传播,使网络具有更高的准确性,骨干特征提取网络将部分CSPNet 模块提取的特征传入颈部[12]。

图2 Mish函数曲线图

颈部是由SPP 和PANet 两部分组成。SPP 网络对特征层进行1×1、5×5、9×9 和13×13 四种尺度的最大池化(Maxpooling)操作,有效提高网络的感受野,并提取出重要的上下文特征[13]。PANet 结构的作用可以进一步提高特征提取能力,和FPN[14]相比多了自下而上的特征融合,可以使底层的信息传到高层。

头部是由三个YOLO head 组成的预测层,功能是利用获得的特征进行预测,YOLO head 工作原理是:K-means 算法对样本目标聚类得出先验框大小,在此基础上利用相对偏移量计算出预测框的大小及位置[13]。

1.2 Mosaic数据增强

数据增强是针对训练数据集过少来扩充数据集的技术。通过对图片翻转、裁剪、缩放、添加噪声、Mosaic 增强等操作可以达到扩充数据集的目的。Mosaic 数据增强是CutMix[15]数据增强的改进,Mosaic增强过程如图3 所示。Mosaic 数据增强扩充了数据集的多样性,并增加了网络的鲁棒性[16]。

图3 Mosaic数据增强过程图

2 改进的YOLOv4算法

2.1 K-means++算法

目标检测中引入Anchor box 机制有助于模型快速收敛,Anchor box 是指预先定义好不同长宽比的边界,在YOLO head 阶段通过相应的技术对Anchor box进行微调可以得到预测结果。YOLOv4 算法对训练数据使用K-means 聚类算法获得Anchor box,Kmeans 聚类算法最终结果受初始化聚类中心点的影响,为了摆脱此影响,提出改进版本的K-means++算法获取Anchor box,K-means++算法可以使计算速度大幅提高,减少运行时间。K-means++算法的实现流程如图4 所示。

图4 K-means++实现流程图

2.2 空洞卷积

在图像分割和目标检测领域,空洞卷积(Dilated Convolution)被广泛使用。空洞卷积可以增加感受野,当图像经过YOLOv4 的SPP 网络后会丢失很多信息,特别是空间结构信息,对分辨率较低的图片破坏效果尤为严重。为了解决该问题在YOLOv4 的骨干网中加入了空洞卷积模块,空洞卷积可以保留图像内部的信息,提高目标检测效果。改进后的网络结构如图5 所示。

图5 改进后的YOLOv4网络结构

空洞卷积引入了扩张率(Dilation Rate)概念,该值代表卷积核在处理数据时各值间的距离[17],扩张率分别为1、2、4 的空洞卷积如图6 所示。

图6 空洞卷积图解

空洞卷积的卷积核计算公式如式(2)所示:

式中,xn是加入空洞之后的卷积核大小,xk是扩张率为1 的卷积核大小,Dr为空洞率。

2.3 损失函数

损失函数可以对模型的预测性能进行评估,YOLOv4 算法的损失函数由bbox 损失、置信度损失和类别误差组成[18],总损失函数如式(3)所示:

其中,bbox 损失函数LCIoU和相关公式如式(4)所示:

用P 代表预测矩形框,Q 代表实际矩形框,式中,IoU为P 与Q 的交集和并集的比值,b为P 的中心点,bgt为Q 的中心点,ρ为b和bgt的欧几里得距离,c是同时含有P 和Q 的最小封闭区域的对角线距离,av是对长宽比的惩罚项[12],v为描述P和Q的长宽比的比例一致性的参数,wgt为Q 的宽度,hgt为Q 的高度,w为P 的宽度,h为P 的高度,a为平衡参数。

YOLOv4 算法在运行过程中为了定位目标会生成大量的先验框,当一幅图中目标个数很少,大量的先验框处于背景区域,这就导致正负样本数差异过大。因此,在损失函数方面使用Focal Loss 损失函数[19],它可以避免原始交叉熵函数导致的正负样本不均衡的问题,从而达到提高目标检测精度的目的。Focal Loss 表达式为:

式中,ln 是以e 为底的对数,y为真实标签,y'为标签的预测值,γ为调节参数,用于调节简单样本权重,以提高网络训练速度,使得模型可以更好实现样本的特征学习[9],α参数用来平衡正负样本数量比例。

3 实验准备

3.1 数据采集

该次实验数据样本由拍摄西安市南二环道路上的车辆图片、挑选公共数据集和对图片通过算法扩充三部分组成。其中拍摄了3 000 张图片,从VOC2007公开数据集挑选了684 张图片,为了使训练后的网络模型鲁棒性更好,对数据集进行加雾、加雨、调整亮度、图像高斯模糊等方式扩充。每种扩充方式是从原始数据集中选择500 张图片,通过相应的图像处理算法来修改图片。图7 展示的是未处理之前、加雾、加雨、图像变亮、高斯模糊的图片。扩充后的训练集5 115张,测试集569张,比值为9∶1,利用标注软件来进行手工标注,数据标签是car(汽车)、bus(公交车)两类。

图7 数据扩增效果图

3.2 实验环境

实验的硬件环境:RTX2070 GPU 显卡、Intel(R)Core(TM) i5-9400F CPU @ 2.90 GHz。软件环境:Windows10、Python 3.6.2、CUDA 10.0、Pytorch 1.2.0。

4 实验结果与分析

4.1 模型评估指标

利用实验结果所得的精确率(Precision)、模型查全性能的召回率(Recall)、模型整体性能的F1 值、类别平均精度AP(Average Precision)[20]作为模型好坏的标准。mAP 和AP 的相关计算如式(6)所示:

式中,TP 指检测出正确的车辆数,比如实际为car 的样本,检测出来也为car,FP 指检测出错误的车辆数,比如实际为非car,检测出来为car,FN 指没有正确检测出的车辆数,比如实际为car,检测为非car。F1 表示综合评价指标,F1 是P和R同时达到最高,取到平衡的值,公式如式(7)所示:

4.2 实验结果

该次实验是以VOC 数据集的预训练模型为基础进行训练完成的,该训练方法提高了模型在未训练数据上良好的表现能力,使训练更稳定,减少了训练模型的时间。算法改进前后检测效果如图8、9 所示,从检测结果可以看出,改进后的算法在检测车辆时的准确度得到了提升,并且降低了漏检率。

图8 YOLOv4算法检测结果

图9 改进的YOLOv4算法检测结果

实验最后所得的busP-R曲线如图10 所示,carP-R曲线如图11 所示,其中横坐标代表召回率(Recall),纵坐标代表精确率(Precision),bus 的AP值为86.05%,car 的AP 值为86.21%。

图10 bus P-R图

图11 car P-R曲线

使用相同的数据集,做改进YOLOv4 算法和YOLOv4、YOLOv3 对比实验,实验结果如表1 所示。

表1 不同算法的性能对比

由表可知,改进后算法较原YOLOv4 算法mAP值提高了7.31%,相比于YOLOv3 算法提高了8.83%。各项评估值均有不同程度的提升,达到了预期的结果。

5 结束语

通过改进YOLOv4 算法,解决了在复杂环境下车辆检测精确率低的问题。实验由两部分组成:通过图像处理算法扩充数据集和修改YOLOv4 网络,对比实验结果可知,改进后的YOLOv4 的mAP 达到了86.13%,召回率和精确率均比原YOLOv4 有较高的提升,达到了预期的效果,但是还存在网络模型参数大的问题,下一步的重点是减少网络模型参数量,方便YOLOv4 模型在移动端部署,减少对其内存的占用。

猜你喜欢

空洞卷积函数
二次函数
基于3D-Winograd的快速卷积算法设计及FPGA实现
第3讲 “函数”复习精讲
锻造过程中大截面塑料模具钢中空洞缺陷的闭合行为
二次函数
函数备考精讲
如何避免想象作文空洞无“精神”
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法