APP下载

基于YOLO v4的夜间车辆检测模型轻量化研究

2022-04-02刘星星屈立成

计算机技术与发展 2022年3期
关键词:正则剪枝特征提取

徐 丽,刘星星,屈立成

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

0 引 言

在YOLO v3[1]算法结构的基础上YOLO v4[2]融合了最近几年在深度神经网络中有明显优势的算法模型思想和训练技巧,达到了很高的检测精度。主干特征提取网络在Darknet基础上,结合CSPNet算法的思想,构成CSPDarknet53,并使用Mish[3]激活函数、Dropblock正则化方式[4];加强特征提取网络由YOLOv3采用的特征金字塔网络(FPN)修改为加入空间金字塔池化层[5](SPP)和路径聚合网络[6](PANet)的组合;预测网络使用YOLO v3中的YOLO-Head,预测框筛选使用DIOU_NMS。最终形成“CSPDarknet53+SPP-PANet+YOLO-Head”的模型结构。

YOLO v4网络相较于传统机器学习算法有着明显的优势,其优势主要体现在更多的参数和更大更深的网络模型。复杂的模型结构能够增强网络的非线性拟合能力,并且海量数据能够增强模型的泛化能力[7]。然而在实际使用时,YOLO v4网络模型需要面临计算资源的限制及速度的严格要求,故该文主要对基于YOLO v4的夜间车辆检测模型进行轻量化,使其在检测精度降低少许的基础上最大程度地缩减参数量及模型体积,使检测速度更快,更能满足夜间车辆检测的实时性需求。

1 轻量化夜间车辆检测算法

夜间车辆检测模型的轻量化过程如图1所示。

1.1 算法流程

轻量化夜间车辆检测的问题也是转化成一个回归问题求解,即将整张图像用作网络输入,直接在输出层回归边框位置及其所属类别,流程如图2所示。

图1 夜间车辆检测模型轻量化过程

图2 夜间车辆检测算法过程

(1)将输入的原始图像resize到416*416;(2)利用更改为MobileNet V2的主干特征提取网络,使得网络参数量与计算量较少,可以更快地提取待检测目标的有效特征;(3)在加强特征提取网络以SPP+PANet的模型结构分别进行最大池化、卷积、上下采样、特征层融合的操作,实现将多层语义特征以及多尺度感受野进行融合,同时将加强特征提取网络里面的3×3普通卷积全部更改为深度可分离卷积;(4)在预测网络利用加强特征提取网络处理后的3个特征层进行结果预测,判断先验框里面是否存在待检测对象以及对象类别,并采用非极大值抑制NMS处理和先验框调整来确定最终的预测框,得到车辆种类及坐标信息。

训练前,对数据集进行白平衡处理[8]以减少路灯颜色干扰进而增强图像画质,并采用K-means++算法针对数据集聚类出合适的先验框,其中距离度量使用交并比距离。训练时,首先采用Mosaic算法进行数据增强,有利于区别检测物体的背景、前景,丰富了数据集中的图像特征,尤其是随机缩放出现了很多小目标车辆,增强了网络对小目标车辆的特征提取能力。最后采用构建的夜间车辆检测模型对数据集进行稀疏正则化训练。

1.2 特征提取网络

YOLOv4夜间车辆检测算法的特征提取网络包括主干特征提取网络和加强特征提取网络两部分,相比预测网络参数量在这两部分较多。而MobileNet即MobileNet V1是2017年谷歌提出的一种轻量化的CNN模型,目前共有3个版本,其结构是以深度可分离卷积为基础的,除第一层是普通卷积,其余卷积层都由深度可分离卷积组成,计算量与参数量非常少,简单的网络定义,就可获得检测性能优异的网络,因此常作为轻量化的特征提取网络,故将主干特征提取网络CSPDarknet53分别更改为三个版本的MobileNet,得到的模型参数量和体积如表1所示。

表1 不同主干特征提取网络的模型参数量和体积

从表1可以看出,主干特征提取网络使用了MobileNet后其参数量和模型体积还是相当庞大,而夜间车辆检测模型的大多数参数在加强特征提取网络居多,其参数量主要集中在3×3的卷积上面,故尝试将加强特征提取网络里面的3×3普通卷积全部更改为在模型轻量化方面有优异特性的深度可分离卷积,此时可得到模型参数量和体积的情况如表2所示。

表2 修改PANet后不同主干网络的模型参数量和体积

从表2可以看出,在主干特征提取网络使用MobileNet的基础上,同时把加强特征提取网络里面的普通卷积全部更改为深度可分离卷积,此时参数量和模型体积明显缩减了。同时可以看到MobileNet V2的模型参数量和体积少于MobileNet V1和MobileNet V3,故决定将CSPDarknet53更改为MobileNet V2作为模型的主干特征提取网络,同时将加强特征提取网络里面的3×3普通卷积全部更改为深度可分离卷积。

1.3 稀疏训练

深层模型的通道稀疏性有利于通道剪枝,且能获得有可能会被剪枝的重要性低的通道数量。按照通道修剪原理,稀疏训练过程中得为每个卷积层的每个通道分配一个缩放因子γ(γ作为通道剪枝的重要依据[9],将其正则项和权重损失函数联合优化,网络本身就可识别重要性低的通道并将其安全剪除,而不会影响其泛化性能),将其与该通道的输入相乘,使得每层的各通道提取的特征产生不一样的作用效果,其中缩放因子的绝对值就表示通道重要性。因为夜间车辆检测网络中每个卷积层后都增加了批量归一化(BN)层,BN层的公式如(1)所示:

(1)

L1正则化是以L1范数为基础,即把参数的L1范数和项与目标函数相加,如公式(2):

(2)

其中,C0是原始的代价函数,n是样本数,λ是权衡正则项与C0项比重的正则项系数,后面一项即L1正则项。计算时w梯度的变化如公式(3)所示:

(3)

其中,sgn是符号函数,那么使用下面公式(4)对参数进行更新:

(4)

从上式可以看出,L1正则项是将原本接近零(即|w|≈0)的那些参数w移到零,从而使某些参数为零,这意味着L1正则化能够发挥选择通道的作用,使得重要性降低的通道γ尽可能靠近0。故为有效地区分通道的重要与否,该文通过L1正则化来进行通道的稀疏训练。与此同时,依据网络中参数的变化,引入与γ有关的惩罚项,稀疏训练损失函数如公式(5)所示:

(5)

其中,(x,y)表示网络的输入、输出,w表示权重,第一项表示原始网络训练时的损失,第二项表示关于γ的L1正则,g(γ)表示缩放因子的稀疏诱导惩罚,λ表示超参数,作用是将正常训练损失和通道缩放因子惩罚项损失的比例进行平衡,Γ表示缩放因子γ的取值集合。通常L1正则化即g(γ)=|γ|为通道的重要性,被广泛应用于实现稀疏化。

1.4 通道剪枝

模型剪枝是复杂模型轻量化时一种广泛使用的方法。最早是用来去除模型中的多余参数,减小复杂度,进而提升泛化性能。模型剪枝可以从不同剪枝粒度上实现,例如权重级、通道级或层级。细粒度剪枝(如权重级)比较灵活常用,而且剪枝率高,但它一般得使用特殊设备来辅助实现。相反粗粒度剪枝并不需要特殊设备,但是要对某些整层进行修剪,所以并不灵活,而且只有当深度足够深时,例如多余50层的网络[10],剪枝才是有效果的。相比之下通道级别的剪枝能够很好地权衡灵活性与易于实现程度,且能够应用于任何CNN或全连接的网络,由此生成一个轻量化的网络,使得传统的CNN能够在任何平台上快速有效地运行。

实现通道级剪枝需要修剪所有与通道相关的输入和输出,但是对已预训练好的模型做通道剪枝效率不高,因为不可能通道所有输入或输出的权重都有近似0的值。实验结果表明,在保证相对准确率时,对预训练好的ResNet做通道剪枝,仅仅可以减少10%的参数量[11]。

通道剪枝的实现流程如图3所示。

图3 通道剪枝流程

(1)对每个通道引入缩放因子γ,与该通道输入相乘;(2)将γ正则项和权重损失函数联合进行稀疏正则化训练;(3)剪去较小缩放因子的通道;(4)微调剪枝后的模型;(5)经过性能评估后再进行修剪迭代,最后得到一个轻量化的车辆检测模型。

图4 通道剪枝

稀疏训练后获得的通道缩放因子如图4(a)所示,当前的缩放因子γ是稀疏分布的,第i层卷积层中的通道2和4中缩放因子近似为0,这代表着经过训练的模型认为该通道所提取的特征对目标的识别和分类基本没有任何作用,通过剪枝操作后,会删去该通道,里面的卷积核及其参数将不会被保存,达到轻量化模型的效果。剪枝之后的轻量化模型如图4(b)所示。

1.5 模型微调

(6)

2 实验结果及分析

2.1 实验环境与参数设置

实验的硬件配置为Intel(R)Core(TM)i7-8700K CPU @ 3.70 GHz,64 GB内存与NVIDIA GeForce GTX 1080 Ti独立显卡,软件环境为Windows 10系统,算法基于Keras框架,CUDA版本为10.0。在实验中,选择Adam作为优化器,early_stopping用于设定早停,val_loss多次不下降自动结束训练,表示模型基本收敛,batch_size=16,学习率设置为0.001,并在110 epoch后调整为0.000 1,共训练220 epoch。将实验里面的数据划分为68%的训练集、12%的验证集与20%的测试集,其中训练验证集占到80%。

2.2 数据集介绍与评价指标

使用的数据集是UA-DETRAC数据集。该数据集是由佳能摄像机在天津和北京24个不同地点拍摄的10小时的视频组成,图像分辨率为960×540像素。该数据集将车辆分为四类,即car、bus、van和others,由于只有车辆被检测,故只取前三类car、bus、van。因为要研究的是夜间场景下的车辆检测算法,所以选取了16 000张夜间图像作为该文的研究对象。

常用的车辆检测算法评价指标有:精确率(Precision,P)、召回率(Recall,R)、平均精度AP、全部类别目标平均精度mAP、每秒处理帧数FPS等。

2.3 模型轻量化实验结果分析

基于YOLO v4检测模型,将CSPDarknet53更改为MobileNet V2作为模型的主干特征提取网络,并将加强特征提取网络里面的普通卷积全部更改为深度可分离卷积后的车辆检测模型(M1)进行训练。对模型M1进行220次迭代的稀疏性训练,稀疏因子λ采用默认值0.000 1,剪枝率设为50%,可以发现剪枝后模型(M2)的检测精度下降了4.9%,所以对模型进行微调,最终得到微调后的检测模型(M3)。模型轻量化过程中各个模型的检测结果如表3所示。

表3 模型轻量化过程中各个模型的检测结果

从表3可知,通道剪枝可有效剪除网络冗余,并且利用模型微调对剪枝后的模型进行再训练可弥补剪枝带来的检测精度损失,在参数量及模型体积缩减一半以上的情况下,检测精度只损失了0.68%。因此该方法能够对实验中的检测模型进行有效的轻量化。该轻量化夜间车辆检测模型的car、bus、van的AP和mAP的变化如图5所示。

图5 AP和mAP变化图

损失函数曲线如图6所示。

图6 loss变化曲线

由图可知网络在迭代训练200次后损失曲线不再明显波动,模型更快地趋于收敛,曲线相当平滑,整体训练效果良好,且在迭代训练210次后网络发生了早停,停止训练。

对于嵌入式及移动终端设备来说,因计算性能、内存有限,不能满足深度神经网络的运行需求时,就会追求极致的剪枝率[14],但是对于模型轻量化来说,超过一定的剪枝率,就会使得检测精度直线下降。因此,该文对模型剪枝率方面进行了实验与对比分析,使得模型检测精度在基本保持不变的情况下能够去除更多的网络冗余,使检测速度更快,更能满足夜间车辆检测的实时性需求。

由表4可以看出,剪枝率越大,参数量和模型体积越小,检测精度会随之有一定的下降。当剪枝率在75%时,剪枝后模型的参数量和模型体积降为大约原来的5%,FPS提升为大约原来的2倍,同时mAP只降低了1.6%。当剪枝率达到90%时,检测精度会大幅降低。故该文采用剪枝率为50%时的轻量化模型,此时检测精度mAP为98.29%,且每秒处理帧数FPS为42帧图像。

表4 剪枝率对比

模型轻量化后的检测效果如图7所示。

图7 车辆检测轻量化模型的检测效果

为了验证轻量化模型对小目标车辆的检测效果,从UA-DETRAC数据集中专门挑选了3 200张未经过预处理的夜间车辆图像,其特点为存在小目标车辆。经过测试,在YOLO v4算法中的mAP为98.39%,而在该文轻量化模型的mAP达到98.04%,证明所提出的轻量化夜间车辆检测模型对小目标车辆也具有很好的鲁棒性。

3 结束语

该文构建了基于YOLO v4的轻量化夜间车辆检测模型,其检测精度和实时性都可满足夜间车辆检测的需求,而且对小目标车辆也有很高的检测精度。然而仅实现了夜间车辆的类别与位置检测,对检测到的车辆进行实时跟踪[15]以及预测其接下来准确的行驶方向也具有重要意义。

猜你喜欢

正则剪枝特征提取
人到晚年宜“剪枝”
具有逆断面的正则半群上与格林关系有关的同余
基于YOLOv4-Tiny模型剪枝算法
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
带低正则外力项的分数次阻尼波方程的长时间行为
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
微动目标雷达特征提取、成像与识别研究进展
任意半环上正则元的广义逆