融合ECA机制的轻量化YOLOv4检测模型

2023-07-21 07:50刘雅楠李维乾
计算机技术与发展 2023年7期
关键词:主干卷积神经网络

刘雅楠,李维乾

(西安工程大学 计算机科学学院,陕西 西安 710048)

0 引 言

目标检测作为计算机视觉领域的重要分支,已广泛应用于无人驾驶、行人检测、人脸识别等领域。基于深度学习的目标检测算法通过训练神经网络模型,由浅及深自动提取目标特征,具有更强的鲁棒性,以快速、高效、准确的特点逐渐超越传统算法成为主流。当前目标检测主要分为一阶段和两阶段算法。其中,以YOLO[1-3]系列算法为代表的一阶段目标检测直接生成候选框,通过对候选框进行回归生成预测框;以RCNN[4-6]系列算法为代表的两阶段目标检测先生成包含感兴趣目标的候选区域,然后对候选区域的候选框进行回归生成预测框。一阶段算法相对于二阶段算法准确率低,但提高了检测速度。

如今,处理计算机视觉任务的总趋势是制作更深、更复杂的网络,以达到更高的精度。而更深的网络模型通常伴随着巨大的参数量,对存储和计算资源有较高要求。因此,设计更轻量、高性能的网络模型是未来的发展趋势。轻量化神经网络架构的设计主要包括三个不同方向:人工设计轻量化网络模型、基于神经网络架构搜索的自动化神经网设计、神经网络模型的压缩[7]。近年来,相关学者设计了一些高效的网络模型,例如Iandola等[8]提出的SqueezeNet模型,该模型是将3×3卷积替换为1×1卷积,通过减少通道数来减少计算量和参数量;Zhang Xiangyu等[9]提出了ShuffleNet模型,采用深度可分离卷积和通道重排操作代替ResNet block相应的层,从而减少计算量,提高效率,解决了因多个group convolution叠加造成的边界效应问题;Howard等[10]提出了MobileNet模型,该模型采用大量的深度可分离卷积设计的神经网络,大幅度减少了模型的参数量和计算量。文献[11-12]分别将MobileVit和MobileNetv3结构作为主干特征提取网络,通过深度可分离卷积大幅减少主干网络参数量,然而上述改进的轻量化模型对于算力受限的设备仍过于庞大,且此类深度可分离卷积网络模型由于GPU访存带宽的限制,读写数据过程占用了大量时间。

原始的YOLOv4模型以CSPDarknet53作为骨干网络,复杂的网络结构和更深的网络层次导致模型占用内存增大,对设备的计算能力也提出了更高的要求。为实现网络轻量化,该文针对目标检测网络计算参数量大、运算复杂度高、小目标检测效果差等问题,设计了一种改进的GhostNet-YOLOv4网络模型,将原主干替换为GhostNet残差结构,来降低计算量和参数量,提高运行效率。该方法简化了网络结构,有效减少模型计算量,改善模型的检测效果;融合ECA注意力机制模块,并引入Focal Loss,增强模型的特征提取,提高模型的检测精度。

1 相关网络模型

1.1 GhostNet

1.1.1 Ghost模块

在卷积神经网络中,生成的输入图像的一些特征映射存在许多相似的特征映射对,就像彼此的幻影。一般情况下,这些大量存在的、丰富甚至冗余的特征映射信息,保证了对输入数据的全面理解。因此,作为卷积网络的一个重要组成部分,不能直接将冗余特征去除[13]。然而,这些冗余也伴随着巨大的参数量和计算量,由于内存和计算资源有限,很难在嵌入式设备上部署。Ghost模块可以基于一组内在特征映射,应用一系列线性变换生成许多能够充分揭示内在特征背后信息的重影特征映射,以一种高效的、低成本的方式生成足够的特征映射,从而作为即插即用组件来升级现有的卷积神经网络。

普通卷积模块直接通过卷积得到所有输出信息,如图1(a)所示;Ghost模块整体思想分两步:第一,先使用较少的卷积核生成一部分特征映射,如图1(b)中先通过卷积生成少量特征映射;第二,对生成的固有特征映射应用轻量操作(包括深度卷积、分组卷积或其他方式的卷积)或恒等变换等一系列简单的线性操作,生成更多的特征映射,保留冗余信息;最后,将生成的特征映射和最开始的固有特征进行恒等变换拼接在一起,如图1(b)中的少量特征映射经过一系列操作得到更多特征映射,二者拼接得到所有输出信息。

(a)普通卷积结构

(b)Ghost模块结构图1 普通卷积结构和Ghost模块结构

假定模型输入尺寸为h×w×c,输出为h'×w'×n,卷积核尺寸为k,Ghost模块中的轻量操作采用深度卷积,分为s个部分。

则普通卷积的计算量为:

h'×w'×n×k×k×c

(1)

而采用Ghost模块的计算量为:

k×k×1

(2)

可以得出使用Ghost模块后压缩率约为s:

(3)

因此,与普通卷积相比,Ghost模块在不改变输出特征映射大小的情况下,大幅降低了计算成本。

1.1.2 Ghost Bottleneck

Ghost Bottleneck结构类似于ResNet中的基本残差块,集成了几个卷积层和shortcut。该部分主要由两个堆叠的Ghost模块组成,两个模块之间用shortcut连接,包括stride为1和stride为2两种情况,如图2所示。当stride为1时,第一个Ghost模块充当扩展层,用于增加通道数,第二个Ghost模块用于减少通道数,以匹配shortcut,shortcut用来连接这两个模块的输入和输出,且第二个模块不使用ReLU激活函数;当stride为2时,shortcut路径由下采样层和stride为2的深度卷积实现,用于加速卷积操作。此外,Ghost模块中的初始卷积均为1×1卷积,用于提高效率。

(a)stride=1 (b)stride=2图2 Ghost Bottleneck结构

1.1.3 GhostNet

GhostNet是基于Ghost Bottleneck建立的一种高效神经网络结构,第一层是具有16个滤波器的标准卷积层,然后通过一系列Ghost Bottleneck逐渐压缩特征映射的尺寸,扩大通道数。这些Ghost Bottleneck根据输入特征图的大小分为六个不同的阶段,见表1中输入为(208,208,16)(104,104,24)(52,52,40)(26,26,80)(26,26,112)(13,13,160)时的六个阶段,除了前五个阶段中每个阶段的最后一个瓶颈步长为2之外,其余各部分GhostNet Bottleneck的步长均为1。整体结构参数如表1所示。

表1 GhostNet结构参数

1.2 YOLOv4模型

当前主流的目标检测网络模型主要由主干网络Backbone、颈部网络Neck和头部网络Head构成。其中,主干网络用于特征提取,颈部网络用于加强特征提取,头部网络用于预测。YOLOv4模型[14]的主干网络采用CSPDarknet53,CSPDarknet53是在Darknet53的基础上融入了CSPNet结构,由五个残差块构成,分别包含1、2、8、8、4个残差单元,用于提取输入数据的特征;加强特征提取网络由SPPNet和PANet构成,用于将主干网络得到的三个初步特征层进行特征融合,从而获得更有效的三个特征层。当主干网络的最后一个特征层完成三次卷积操作后,SPPNet对最后一个特征层进行四个不同尺度的最大池化操作来增加感受野,分离出显著的上下文特征。随后将提取得到的特征层与主干网络得到的另两个特征层送入PANet,执行自下而上和自上而下的双向特征融合,实现特征的反复提取;头部网络则利用从PANet获得的多尺度特征进行回归和分类,最终输出的维度包含样本类别值、预测框在x轴和y轴的偏移量、预测框的高度和宽度及置信度。

2 改进的GhostNet-YOLOv4网络模型

目前为止,对图像进行实时目标检测面临着挑战和困难,首要就是深度神经网络存在复杂性和存储量高的问题。针对这个问题,该文所做的工作主要分为以下三个方面:

(1)改进前的GhostNet-YOLOv4模型以YOLOv4模型为基础,将YOLOv4原本的主干网络CSPDarknet53替换为GhostNet中的Ghost模块;

(2)在GhostNet-YOLOv4基础上进行模型优化,加入ECA注意力机制和Focal Loss,得到改进后的GhostNet-YOLOv4模型,在不影响模型运行速度的前提下,提高模型的检测精度,具体网络结构如图3所示;

图3 改进后的GhostNet-YOLOv4网络模型

(3)将原YOLOv4模型、改进前后的GhostNet-YOLOv4模型分别在PASCAL VOC 2007数据集上进行目标检测实验,验证该模型的优越性。

2.1 ECA注意力机制

近年来,通道注意机制在改善深度卷积神经网络性能方面显示出巨大的潜力。然而,大多数现有方法致力于开发更复杂的注意模块,以获得更好的性能,这不可避免地增加了模型的复杂性。为了克服性能和复杂性权衡的矛盾,ECA注意力机制只涉及少量的参数,提出了一种无降维的局部交叉信道交互策略[15],进行适当的跨通道交互,从而在显著降低模型复杂性的同时保持性能。通过实验表明ECA注意力机制效率更高,同时性能优于其他模块,在图像分类、目标检测和实例分割方面表现出卓越的能力。

ECA模块通过全局平均池化将输入特征图的信息压缩为一个具有全局感受野的通道描述符,使用尺寸为k的一维卷积,从该通道描述符中获取局部通道之间的相关性,再利用Sigmoid激活函数根据通道间的相关性计算出各通道的注意力值,最后作用在输入的特征图上,实现对特征通道的重标定。

其中一维卷积核的尺寸k由通道维数的函数来自适应确定,公式为:

(4)

其中,C表示通道数,odd表示向上取最近的奇数,该文γ和b分别取2和1。

2.2 损失函数

2.2.1 置信度损失函数

置信度损失函数如下所示:

(5)

2.2.2 分类损失函数

分类损失函数如下所示:

(6)

2.2.3 回归损失函数

回归损失函数如下所示:

图4 c、d示意图

2.2.4 Focal Loss

一阶段算法的检测精度比不上两阶段,主要原因是训练过程样本不均衡[16]。样本不均衡包括正负样本不均衡、难易样本不均衡等。目前解决这类问题主要有两种方案,一是hard sampling方法,即从所有样本中选择一定量的正样本和负样本,只计算被选择的样本的loss,一般会倾向选择一些困难负例样本,比如OHEM[17];另外一类方法是soft sampling方法,计算所有样本的loss,但是针对不同样本赋予不同权值,比如Focal Loss。

Focal Loss由Ross Girshick、He Kaiming等于2017年提出。Focal loss主要对交叉熵损失函数进行了改进,解决负样本不平衡问题[16]。

交叉熵如公式(8)所示。

(8)

为解决难负样本不均衡问题,Focal Loss中引入表达式(9),使难样本的loss进一步增加,负样本的loss进一步降低。

(9)

除此之外,Focal Loss中还通过α来解决正负样本不均衡问题,如公式(10)所示。

(10)

综上,Focal Loss的综合表达式为:

(11)

公式(9)~(11)中,γ和α为超参数,文中分别取2和0.25。

3 实验及分析

3.1 数据集及参数设置

实验采用PASCAL VOC 2007数据集,包括aeroplane、bicycle、bird、boat、bottle、bus、car、cat、chair、cow、diningtable、dog、horse、motorbike、person、pottedplant、sheep、sofa、train、tvmonitor共20个类别,9 963张图像,其中训练集5 011张,测试集4 952张,累计标注目标24 640个。实验在Windows 10操作系统下进行,使用Python 3.7进行编译,开发平台为PyCharm,深度学习框架为PyTorch,GPU为NVIDIA GeForce RTX 3090。

实验使用SGD优化器,动量设置为0.937,初始学习率设置为0.01,学习率衰减方式采用余弦退火算法;迭代次数为300,batch size为128,采用冻结训练,50个epoch后batch size为64;数据增强方式采用Mosaic增强,在训练小模型时适当弱化[18],将Mosaic系数设置为0.7。

3.2 性能评价指标

该文使用AP和mAP作为衡量检测精度的指标。在多类别物体检测中,每一个类别都可以根据准确率P(Precision)和召回率R(Recall)绘制一条PR曲线。准确率和召回率的公式如下:

(12)

(13)

Precision和Recall是一对矛盾的度量,一般来说,Precision高时,Recall值往往偏低;而Precision值低时,Recall值往往偏高。当分类置信度高时,Precision偏高;分类置信度低时,Recall偏高。为了综合考虑这两个指标,使用F1-score对整体效果进行评估,公式如下:

(14)

AP表示PR曲线下的面积,mAP表示多个类别的AP的均值,公式如下:

(15)

其中,n表示类别总数,TP表示被预测为正样本的正样本数量,FP表示被预测为正样本的负样本数量,FN表示被预测为负样本的正样本数量。

此外,为评测模型的轻量化效果,也将参数量和计算量纳入评价指标。

在计算mAP时,为更好地测量模型对目标区域的定位精度,判断检测目标区域的预测框是否精确,使用IoU (Intersection over Union)作为衡量预测框与真实框的误差标准。实验在计算mAP时设置IoU为0.5。图5、图6表示改进后的GhostNet-YOLOv4模型训练产生的P-R曲线、F1曲线(此处选取aeroplane、bicycle、bird、boat四类为例进行展示)。

图5 模型训练产生的P-R曲线

图6 模型训练产生的F1曲线

3.3 实验结果分析

分别将YOLOv4原网络模型、改进前的GhostNet-YOLOv4模型和改进后的GhostNet-YOLOv4模型在PASCAL VOC 2007数据集上运行,3种模型在20种目标类别上的AP如图7所示。

图7 YOLOv4、改进前的GhostNet-YOLOv4、改进后的GhostNet-YOLOv4在20种目标类别上的AP对比

模型整体参数量、计算量、mAP如表2所示。

表2 YOLOv4、改进前的GhostNet-YOLOv4、改进后的GhostNet-YOLOv4的参数量、计算量、mAP对比

为直观展示文中算法的有效性,算法随机抽取了三张图片,将改进前和改进后的GhostNet-YOLOv4网络模型的检测效果进行对比,从左至右依次为原始图像、改进前的GhostNet-YOLOv4检测效果、改进后的GhostNet-YOLOv4检测效果,如图8所示。可以看出,改进后的GhostNet-YOLOv4检测结果良好,能够完成目标距离较远、重叠、被遮挡、较小等情况下的检测任务,且相比改进前的模型有更高的置信度。

图8 改进前后的GhostNet-YOLOv4模型检测效果对比

4 结束语

该文设计了一种基于YOLOv4的轻量化网络模型,该模型主干网络采用GhostNet残差结构,并融合ECA注意力机制模块,在保证一定的准确率的同时,极大地压缩了模型占用内存,解决了因大量卷积操作造成计算成本高、推理速度慢的问题。此外,还在模型中添加了焦点损失Focal Loss,帮助网络提高检测精度。结果表明,改进后的GhostNet-YOLOv4在PASCAL VOC 2007数据集上的mAP达到85.09%,相对于改进前的GhostNet-YOLOv4提高了1.65百分点;相对于YOLOv4,参数量、计算量减少为原来的六分之一。

猜你喜欢
主干卷积神经网络
抓主干,简化简单句
基于3D-Winograd的快速卷积算法设计及FPGA实现
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
左主干闭塞的心电图表现
基于神经网络的拉矫机控制模型建立
整合内容 构建高效课堂——开展非线性主干循环活动型单元教学模式
复数神经网络在基于WiFi的室内LBS应用
全国主干公路网交通安全监控信息共享平台构建研究