APP下载

基于YOLOv4 目标检测算法的轻量化网络设计

2022-03-01何小海卿粼波吴小强

智能计算机与应用 2022年1期
关键词:网络结构卷积特征提取

胡 亮,何小海,卿粼波,吴小强

(四川大学 电子信息学院,成都 610065)

0 引言

在计算机视觉领域中,目标检测一直以来都是其中最重要的部分之一,其对应的算法也在不断推陈出新,目标检测技术已被广泛地应用于医疗、公共、军事等领域。当前,目标检测领域已经从传统的目标检测算法转向基于深度学习的目标检测算法。基于深度学习的目标检测算法根据其有无候选框生成,分为一阶段目标检测算法和二阶段目标检测算法。一阶段目标算法主要包括SDD、YOLO等,其不需要候选框,将定位和分类合成一步完成,这样做虽然增加了学习的难度,但是提升了算法的速度,同时也减少了占用空间。二阶段目标检测算法主要包括Rcnn、Fast-Rcnn、Faster-Rcnn等,由于比一阶段目标检测算法多了前景与背景的分类和检测,所以步骤相对复杂,占用的空间相对较多。

YOLO 系列算法作为一阶段目标检测算法的主要代表之一,被广泛应用于各类目标识别场景。YOLOv4算法作为YOLO 系列的代表作,虽然在精度和速度上被推向了一个新的高度,但随着网络复杂度和层数的不断增加,其参数量不断增加、模型大小不断增大,加大了对计算机硬件的需求,无法在诸如嵌入式平台等低功耗平台上实现应用,因此需对模型进行轻量化处理。针对YOLOv4 参数量较多模型较大的问题,人们提出了不同的解决方法。例如,在特征提取层CSPDarkNet53 中按照一定比例减少3个输出层中的残差结构;利用Cross-Stage Lightweight(CSL)模块替换特征提取层CSPDarkNet53 中的普通卷积模块,从而得到新的YOLO-CSL模型;利用 GhostNet模块代替YOLOv4 算法中传统的下采样操作,从而解决YOLOv4 中下采样操作成本较高的问题。

本文在YOLOv4 网络的基础上进行了轻量化处理。利用MobileNet 轻量化网络的思想,将其融入到YOLOv4的特征提取层CSPDarkNet53和特征金字塔PANet 以及SPP模块中,在适当地牺牲掉较少的精准度的情况下,大幅度地降低了网络的参数量及其模型占用空间。

1 网络结构设计

1.1 YOLOv4 网络

YOLOv4 可看作YOLOv3的加强版,其总体框架仍基于YOLOv3。对于主干特征提取网络backbone,YOLOv4 选择更优的CSPDarknet53 网络,替换了原来的Darknet53 网络;对于目标检测器的neck,即YOLOv3 中的特征金字塔,将其从原来的FPN 修改为PANet,并新增了SPP 结构,用于提升感受野,以较小计算量的增加换取较大准确率的提升;对获取到的特征进行预测head 部分,仍沿用YOLOv3 中的YOLO模块。最终网络结构如图1 所示。

图1 YOLOv4 结构图Fig.1 Structure of YOLOv4

除在以上模块中的大改动之外,为了让其更适合在单个GPU 上进行训练,YOLOv4 对此做出了专门的创新。例如,引用新的数据增强方法:Mosaic和Self-Adversarial Training;使用遗传算法来选择最优的超参数;改进一些现有的算法,使其更适合高效的训练与检测。如:改进SAM、PAN 以及Cross mini-Batch Normalization(CmBN)。

1.2 MobileNet 网络

MobileNet 是基于深度可分离卷积构造的网络,其核心思想是将标准卷积拆分为两个部分完成,即深度卷积和逐点卷积。对于标准卷积,其所有卷积核作用到所有的输入通道上进行卷积操作,实现一步完成。而对于MobileNet 而言,其将先进行深度卷积操作,针对输入的每个通道采用不同的卷积核,即一个卷积核对应一个输入通道,再采用逐点卷积,利用1×1的卷积操作来结合所有深度卷积得到输出。

输入尺寸为D ×D ×M,标准卷积核的尺寸为D ×D ×M ×N。若采用标准卷积核进行计算,步长为1 且padding,则计算量为D ×D ×M×N× D×D。若采用深度可分离卷积进行计算,总计算量为D ×D ×M ×D ×D+M ×N ×D ×D。将深度可分离卷积的总计算量和标准卷积的总计算量相比可得:

通常情况下取值较大,假设采用3×3的卷积核,通过式(1)可计算得到采用深度可分离卷积相比标准卷积可降低大约9 倍的计算量。

MobileNetv2总体思想仍基于深度可分离卷积,核心由Bottleneck Residual block模块组成,其结构如图2 所示。

图2 Bottleneck Residual block Fig.2 Bottleneck Residual block

Bottleneck Residual block模块引入了残差结构,增强了梯度的传播;去掉了最后输出时的ReLU,保留了特征多样性,增强了网络的表达能力;先对输入进行升维,有助于提取到整体的足够多的信息。MobileNetv2的整体网络结构参数设置见表1。

表1 MobileNetv2 参数设置Tab.1 MobileNetv2 parameter settings

1.3 整体网络结构

本文在YOLOv4 网络基础上,对网络结构进行调整。由表1 中数据可以看出,当输入图像尺寸为416×416×3 时,第3、5、7 层bottleneck的输出分别为52×52×32、26×26×96、13×13×320。所以,以MobileNetv2的第4、6、8 层bottleneck 为界,将其划分为3个模块,并将这3个模块代替YOLOv4 主干特征提取网络中的3个有效特征层,从而实现MobileNetv2和YOLOv4的结合,替换后的模型为Mobile-YOLOv4。

将修改后的Mobile-YOLOv4 网络与原YOLOv4网络作比较,其参数量从64,040,001 下降到了39,062,013,参数量仅下降了39%,参数量和网络大小下降程度并不理想。通过观察图1 可以发现,除主干特征提取层,YOLOv4 特征金字塔PANet 中存在着大量的标准卷积以及上采样和下采样的操作,这些卷积操作中包含的参数量极大,其存在的可压缩空间也较大。可利用深度可分离卷积的思想,将其中3×3 卷积块中的标准卷积替换成深度可分离卷积,从而实现参数量的下降。在SPP模块的输入和输出端有两个3×3的卷积块,可利用上述相同的方法,替换其中的标准卷积,进一步压缩模型的参数量和大小。最终轻量化后的网络结构如图3 所示。其中Moble_block1、Moble_block2、Moble_block3 分别对应表1MobileNetv2 结构中的1~4 层、5~6 层、7~8层,DW 为深度可分离卷积模块。

图3 轻量化后结构图Fig.3 Structure of lightweight YOLOv4

2 训练及测试结果

2.1 网络训练

本文在服务器上采用GPU模式进行网络训练,其中训练平台配置为:Intel(R)Core(TM)i7-8700 3.2 GHz 处理器;显卡为显存12 GB的NVIDIA 2080Ti SLI;Ubuntu 18.04 64 位操作系统;深度学习框架为Pytorch。

数据集使用VOC07+12 数据集,该数据集包含20个类,共有16 551 张图片,每张图片在传入网络时,resize 大小为608×608。按照9 ∶1的比例将数据集分为训练集和验证集。如图4 所示,当训练约15个epoch 后,网络收敛趋于平稳。

图4 Model lossFig.4 Model loss

2.2 测试结果

本文使用VOC2007test 数据集进行测试,将修改后的模型与原YOLOv4模型以及YOLO-CSL 进行对比。结果见表2。

表2 测试结果Tab.2 Test results

其中,Mobile-YOLOv4 为仅替换主干特征提取网络backbone 对应的模型,Proposed 为本文所修改优化后的模型。由表2 可看出,在仅替换backbone的情况下,参数量和模型大小下降并不明显,无法达到理想效果,在对PANet和SPP模块进行优化过后,参数量相较于原YOLOv4 网络降低了83.6%,下降程度明显,同时也提升了5.8,@05 仅下降了85,其准确率足够应用于某些特定场景。同时,参数量模型大小的降低以及的提升,可降低对计算机硬件的要求。

3 结束语

本文首先将MobileNetv2和YOLOv4的网络结构对比后进行融合,得到全新的Mobile-YOLOv4 网络,但是其实际压缩效果并不理想,参数量下降不明显。通过观察YOLOv4的特征提取金字塔模块和SPP模块,得知其中参数量较大,所以利用MobileNet 中深度可分离卷积的思想,将其中的标准卷积模块替换成深度可分离卷积模块,从而更进一步使模型得到压缩。最终本文利用上述方法改进后的网络,在牺牲可接受的准确度前提下,使得网络参数量和大小降低了83.6%,提升了FPS,降低了模型训练的时间及预测时间,且降低了对于计算机硬件的要求。

猜你喜欢

网络结构卷积特征提取
同步定位与建图特征提取和匹配算法研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
基于深度卷积网络与空洞卷积融合的人群计数
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
卷积神经网络概述
基于曲率局部二值模式的深度图像手势特征提取
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
非常规突发事件跨组织合作网络结构演化机理研究