APP下载

基于注意力机制和多空间金字塔池化的实时目标检测算法

2024-02-29王国刚李泽欣董志豪

计算机测量与控制 2024年2期
关键词:池化类别卷积

王国刚,李泽欣,董志豪

(山西大学 物理电子工程学院,太原 030006)

0 引言

作为计算机视觉领域的重要研究课题,目标检测的目的是解决目标分类及定位问题。目前,目标检测已广泛应用于智能视频监控[1-3]、无人驾驶[4-5]、智能化交通[6-7]、人脸识别[8-9]、遥感影像分析[10-12]和医学图像检测[13-15]等领域。

传统目标检测算法主要分3个阶段来完成目标检测任务,首先进行区域的选择,采用不同大小的滑动窗口遍历截取图像,产生多个候选框来尽可能检测所有存在的目标;然后进行特征的提取,由于传统目标检测方法的特征大多是人为手动设计的,因此使用人工设计的特征提取器提取特征;最后提取到特征后,利用支持向量机[16]、可变形部件模型[17]和AdaBoost[18]等分类器来判别目标的类别。该类算法通过工程人员的经验提取特征,检测精度低,难以满足实际需求,具有一定的局限性。

2014年,Girshick等提出的R-CNN[19]算法,成功将深度学习应用到目标检测领域。相较于传统算法,基于深度学习的目标检测算法在性能上更具优势。这类算法可分为两种,一种是以SSD[20],Efficientdet[21]为代表的单阶段目标检测算法,这类算法直接在整张图片上生成若干候选框,再对这些候选框进行类别、框大小以及位置的回归预测。另一种是以R-CNN,Fast R-CNN[22],Faster R-CNN[23]为代表的两阶段目标检测算法,这类算法第一阶段先得到存在物品的候选区域,第二阶段再对候选区域中的候选框进行类别、框大小以及位置的回归预测。

深度学习目标检测算法采用大量特征来提升性能。但是,基于某些特征的目标检测器泛化性能差,采用了加权残差连接(WRC,weighted-residual-connections)、跨阶段部分连接(CSP,cross-stage-partial-connections)等特征的YOLOv4[24]目标检测器的泛化性能得到了一定程度的改善。然而,YOLOv4中的空间金字塔池化(SPP,spatial pyramid pooling)模块未充分提高特征融合网络浅、中、深层特征图的表征能力;检测头网络特征图的每个通道权重都相同,难以凸出重要通道上的信息;且使用了更复杂的网络结构,增大了模型参数量,增加了检测时间。

针对以上问题,提出一种基于注意力机制和多空间金字塔池化的实时目标检测算法(AMMP,real-time object detection algorithm based on attention mechanism and multi-spatial pyramid pooling)。该算法采用多空间金字塔池化,提取多尺度信息,加强特征融合网络的浅、中、深层特征图的表征能力;引入压缩激励通道注意力机制,建模通道间的相关性,自适应调整特征图各个通道的权重,从而使网络更加关注重要特征;特征融合和检测头网络中使用深度可分离卷积,减少网络参数量,提高算法检测速度。实验结果表明,AMMP算法的均值平均精度(mAP,mean average precision)优于7种主流对比算法。与基准算法相比,该算法在降低复杂度的同时,提高了检测准确度。

1 相关网络

YOLOv4由Backbone特征提取网络、Neck特征融合网络和Head检测头网络三部分组成。Backbone、Neck分别采用CSPDarknet53网络和加入了SPP结构的路径聚合网络[25](PANet,path aggregation network)。CSPDarknet53将CSPNet结构应用于Darknet53网络中,加速了特征提取过程,该网络由5个大残差块组成,这5个大残差块包含的小残差单元个数分别为1,2,8,8,4,即两个CBM卷积模块和一个CSPX卷积模块共同组成一个大残差块。SPP结构采用3种不同尺寸的池化核对上层特征图做最大池化处理,扩大了网络的感受野。PANet由上采样和下采样两部分组成,实现了主干网络深层特征与浅层特征的融合,提高了网络的检测精度。Head检测头网络有3个检测头,每个检测头包含3组候选框的调整参数,每组候选框的调整参数包含1个置信度参数、4个调整长宽和坐标偏移量的参数和20个待检测的类别参数。通过这些参数,YOLOv4调整候选框的中心点坐标和宽高,生成最终的预测框。

2 基于注意力机制和多空间金字塔池化的实时目标检测算法

2.1 多空间金字塔池化

为提高目标检测准确度,AMMP在特征融合网络构建多空间金字塔池化模块(MSPP,multi-spatialpyramid pooling module)。MSPP包含深层空间金字塔池化模块(D-SPP,deep-spatialpyramid pooling module)、中层空间金字塔池化模块(M-SPP,middle-spatialpyramid pooling module)和浅层空间金字塔池化模块(S-SPP,shallow-spatialpyramid pooling module)3部分,如图1所示。MSPP借鉴空间金字塔思想,提取局部特征和全局特征,融合多重感受野,从而扩大了主干特征的接收范围,分离出了重要的上下文信息,提高了模型的检测精度。

D-SPP、M-SPP和S-SPP采用1×1卷积减少通道数,再经3种不同尺寸的池化核做最大池化处理,提取不同尺度的特征信息,最后,采用concat操作,在通道维度上连结各个分支的特征图,使输出特征图通道数变为原来的四倍,从而增强了特征图的表征能力,如图2所示。MSPP三部分采用的最大池化操作的池化核大小为K×K,步长为1,填充padding=(K-1)/2,K∈{5,9,13}。

图2 D-SPP、M-SPP或S-SPP结构

位于AMMP特征融合网络深层特征区域的D-SPP,提高了深层特征区域特征图的表征能力。深层特征区域特征图经过上采样、特征融合传入中层特征区域。M-SPP位于中层特征区域,提高了中、深层特征区域特征图的表征能力。中层特征区域特征图经上采样和特征融合传入浅层特征区域。位于浅层特征区域的S-SPP,提高了浅、中、深层特征区域特征图的表征能力。网络前向传播过程中,特征融合网络深层区域特征图的表征能力得到了3次增强,中层区域特征图的表征能力得到了两次增强,浅层区域特征图的表征能力得到了一次增强。最后下采样过程中,将不同尺寸的特征图送入AMMP的3个检测头进行检测,有效提升了模型对大中小3种目标的检测能力。

AMMP特征融合网络通过使用D-SPP、M-SPP以及S-SPP模块,融合了不同尺度的特征信息,加强了浅、中、深层特征图的表征能力,提高了检测精度。

2.2 压缩激励通道注意力模块

为使最深卷积层关注重要通道信息,AMMP在检测头网络构建压缩激励通道注意力模块(SECAM,squeeze-and-excitationchannel attention module),如图3所示。SECAM自适应调整最深卷积层中特征图的各通道权重,强化权值高的通道特征,抑制权值低的通道特征,使检测头网络的特征信息表达更充分,从而提升模型检测性能。

图3 AMMP的检测头网络

AMMP检测头网络中,特征图的不同通道表示不同目标。SECAM通过建模通道间的相关性,自适应调整特征图各个通道的权重,从而实现目标的自适应选择,使网络更加关注重要通道特征,如图4所示。SECAM通过压缩,激励和重校准3个操作得到加权后的特征图。压缩是对特征图U的每个通道进行的全局平均池化操作,如公式(1)所示:

(1)

图4 压缩激励通道注意力模块

式中,z表示压缩通道后得到的特征向量,H和W表示特征图U的高度和宽度。

激励通过激活函数建模特征通道间的相关性以生成每个通道的权重,如式(2)所示:

s=Fex(z,W)=σ(W2δ(W1z))

(2)

式中,s表示生成的通道注意力权重,δ和σ分别表示激活函数ReLU和Sigmoid,W1和W2表示用于降维操作的特征矩阵。

重校准将每个通道乘以相应的权重,得到重新标定的特征,如式(3)所示:

(3)

AMMP在检测头网络构建压缩激励通道注意力模块。SECAM调整最深卷积层各通道之间的权重,从而降低干扰信息的影响,强化检测头网络提取特征信息的能力,提升模型的检测性能。

2.3 深度可分离卷积

若标准卷积输入特征图F、卷积核K的尺寸分别为DF×DF×M和DK×DK×M×N,得到DF×DF×N的输出特征图G,则G可由公式(4)计算得到:

(4)

由式(4)可知,标准卷积的计算成本为:

P1=DK×DK×M×N×DF×DF

(5)

其中:DK表示卷积核大小,DF表示输入特征图的高度或宽度,M和N分别表示输入、输出通道数,P1表示标准卷积的计算量。

由公式(4)和(5)可知,标准卷积是将卷积核作用在输入特征图的所有通道上,这增大了模型参数量,增加了目标检测时间。为克服这一缺陷,AMMP在图5所示的特征融合和检测头网络中使用深度可分离卷积(DSC,depthwise separable convolution),以减少参数量,提高目标检测速度。

图5 AMMP的特征融合和检测头网络

深度可分离卷积将标准卷积分解为逐深度卷积和逐点卷积两个操作,从而以较小的精度代价减少了网络计算量。逐深度卷积将不同的卷积核作用在不同的输入通道上,以学习空间特征;逐点卷积将1×1的卷积核作用在逐深度卷积操作得到的通道上,以学习通道特征。

(6)

由式(6)可知,逐深度卷积的计算成本为:

P2=DK×DK×M×DF×DF

(7)

逐深度卷积未对过滤后的信息进行组合。为解决这一问题,深度可分离卷积在逐深度卷积后采用了逐点卷积。若逐点卷积核尺寸为1×1×M×N,则其计算量可由公式(8)得到:

P3=M×N×DF×DF

(8)

深度可分离卷积由逐深度卷积和逐点卷积构成,故其计算量为:

P4=P2+P3=DK×DK×M×DF×DF+M×N×DF×DF

(9)

由公式(5)和(9)可得深度可分离卷积与标准卷积计算量之比,如公式(10)所示:

(10)

与基准模型相比,采用了深度可分离卷积的AMMP模型,减少了参数量和模型大小,且在保持较高检测精度的前提下,提高了检测效率。

2.4 AMMP网络模型

AMMP网络模型如图6所示。AMMP在特征融合网络构建多空间金字塔池化模块,提取多尺度特征信息,提高Neck网络浅、中、深层特征图的表征能力;在检测头网络构建压缩激励通道注意力模块,自适应调整特征图各个通道的权重,强化高权值通道特征的学习,提升模型鲁棒性;特征融合以及检测头网络中使用深度可分离卷积,在保持较高检测精度的前提下,提高模型检测速度。

图6 AMMP网络模型示意图

3 实验结果及分析

3.1 数据集与实验环境配置

实验采用PASCAL VOC2007数据集。该数据集包含20个类别,5 011张训练图片,4 952张测试图片。

训练采用的工作站配置为:Intel(R)Xeon(R)CPU,Tesla T4 GPU,167 G内存;测试采用的PC机配置为:Intel○RCoreTMi5-8265U CPU,NVIDIA GeForce MX250 GPU,8 G内存。深度学习框架为pytorch1.2,GPU加速库版本为CUDA10.0,Cudnn7.4.1.5。

训练阶段,采用Adam优化器更新网络参数,动量、权重衰减系数分别设置为0.9和0.000 5。训练分两个阶段,第一阶段冻结主干网络,调整非主干网络参数;第二阶段释放主干网络,调整整个网络参数。第一阶段学习率设置为0.001,Batch size设置为16,epoch设置为20;第二阶段学习率设置为0.000 1,Batch size设置为8,epoch设置为100。

3.2 评价指标

实验采用F1、查准率(P,precision)、查全率(R,recall)、平均精度(AP,average precision)和均值平均精度mAP来评估算法性能;且采用参数量、模型大小和每秒传输帧数(FPS,frames per second)来评价算法复杂度。此外,通过绘制查准率-查全率(P-R,precision-recall)曲线和F1曲线,直观地比较不同算法的检测性能。

3.3 定量分析

表1给出了8种算法在PASCAL VOC2007数据集上的AP和mAP值。由表1可知,AMMP算法的5个类别的AP值为最优,6个类别的AP值为次优,8个类别的AP值排名第三。且与SSD、YOLOv3、YOLOv4-tiny、YOLOv4、YOLOv5m、Centernet、Efficientdet-D0算法相比,AMMP算法的mAP分别提升了8.99%、3.83%、8.36%、0.16%、1.92%、7.51%、1.97%。

表1 8种算法的AP以及mAP

置信度阈值变化,查准率和查全率也随之变化。实验设置不同的置信度阈值,绘制P-R曲线和F1曲线,以直观比较不同算法的检测性能。通过分析PASCAL VOC2007的测试集可知,car是最难检测的类别之一。通过分析PASCAL VOC2007的训练集可知,boat是最能体现样本不均衡问题的类别之一。故实验选用car和boat为代表,绘制八种算法在这两种类别上的P-R曲线和F1曲线,如图7~10所示。

图7 car类别的P-R曲线比较

图8 car类别的F1曲线比较

P-R曲线与横轴所围面积越大,算法性能越好。由图7可知,AMMP算法car类别的P-R曲线和横轴间的面积最大,故八种算法中,AMMP算法对代表类别car的检测性能最好。

正负样本不均衡时,P-R曲线越平稳且和横轴间的面积越大,算法性能越好。由图9可知,AMMP算法boat类别的P-R曲线最平稳且和横轴间的面积最大,故样本不均衡情况下,AMMP算法对代表类别boat的检测性能优于其他算法。

图9 boat类别的P-R曲线比较

F1曲线越平稳且越接近于1,算法的检测效果越好。由图8、图10可知,不管是car类别还是boat类别,AMMP算法的F1曲线最平稳且最接近于1,所以AMMP算法对这两种代表类别的检测效果最好。

图10 boat类别的F1曲线比较

表2给出了8种算法在7项评价指标上的实验结果。由表2可知,8种算法中,虽然AMMP算法的查准率比Efficientdet-D0、YOLOv4、Centernet算法略低,但AMMP算法的均值平均精度,查全率和F1得分均为最优。由表2还可看出,相比基准模型YOLOv4,AMMP的参数量、模型大小分别减少27.85 M和106.25 MB;且帧率达到了33.70帧/秒,满足实时性要求。

表2 8种算法的客观评价指标对比

3.4 定性分析

为直观比较AMMP与其他7种主流目标检测算法的性能,实验选取PASCAL VOC2007测试集中5张待检测图片以进行定性分析。图11~15为8种算法的检测结果对比图。

图11 待检图片1的检测结果比较

编号001366的待检图片1,包含2个dog目标和4个person目标。该图片中的场景,背景复杂,存在遮挡现象。检测结果如图11所示,由图可知,SSD、YOLOv4-tiny、YOLOv5m和Centernet算法均漏检了dog目标;SSD、Centernet和Efficientdet-D0算法漏检了person目标;YOLOv3、YOLOv4和AMMP算法虽无漏检问题,但AMMP算法的检测精度更高。

编号003025的待检图片2,包含4个sheep目标和1个person目标。该图片场景存在目标重叠,遮挡现象。检测结果如图12所示,由图可知,SSD、YOLOv4、YOLOv5m和Centernet算法均漏检了sheep目标;YOLOv4-tiny算法对sheep目标存在重复检测问题;YOLOv3算法sheep目标的定位出现严重偏差;Efficientdet-D0算法对所有目标的定位精度均低于AMMP算法;AMMP算法无漏检、重复检测及定位精度不高的问题,故性能最好。

图12 待检图片2的检测结果比较

编号003858的待检图片3,包含6个person目标和1个train目标。该图片场景存在遮挡现象,背景阴暗。检测结果如图13所示,由图可知,SSD、Centernet和Efficientdet-D0算法均漏检了person目标;SSD、YOLOv4-tiny、YOLOv4、YOLOv5m和Centernet算法漏检了train目标;YOLOv3算法将train目标错检成boat目标;AMMP算法无漏检、错检问题,检测效果最好。

图13 待检图片3的检测结果比较

编号006121的待检图片4包含3个car目标。该图片场景中,目标尺度变化大,背景复杂,有遮挡现象。检测结果如图14所示,由图可知,SSD、YOLOv3和YOLOv4-tiny算法均漏检了car目标;YOLOv4、YOLOv5m、Centernet和Efficientdet-D0算法虽无漏检问题,但其检测精度均低于AMMP算法。

图14 待检图片4的检测结果比较

编号006771的待检图片5,包含1个tv目标,1个diningtable目标以及6个person目标。该图片场景中,光照不足,背景阴暗。检测结果如图15所示,由图可知,YOLOv5m漏检了diningtable目标;Centernet和Efficientdet-D0算法漏检了person目标;SSD、YOLOv3、YOLOv5m、Centernet和Efficientdet-D0算法漏检了tv目标;YOLOv4算法把背景错检成tv目标。YOLOv4-tiny和AMMP算法虽无漏检、错检问题,但AMMP算法检测精度更高。

图15 待检图片5的检测结果比较

3.5 消融实验

为验证深度可分离卷积(DSC)、多空间金字塔池化(MSPP)以及压缩激励通道注意力(SECAM)方法对YOLOv4的优化作用,进行了消融实验,实验结果如表3所示。

表3 消融实验

由表中第1、2行可知,引入DSC后,mAP下降0.56%,模型大小、参数量分别下降107.8 MB和28.26 M。这表明DSC方法仅以微小的精度代价,换取了模型大小和参数量近一半的减少。由表中第2、3行可知,引入MSPP后,mAP提升了0.38%。这是因为MSPP方法可提取多尺度特征信息,增强感受野,提高特征图的表征能力。由表中第3、4行可知,引入SECAM后,mAP提升了0.34%。这是因为SECAM可建模通道间的相关性,自适应调整特征图各通道权重,引导网络更多地关注重要特征。

由表中第1、4行可知,融合DSC、MSPP以及SECAM后,mAP提升0.16%,模型大小、参数量分别下降106.25 MB和27.85 M。这表明,与基准算法相比,AMMP算法综合考虑了检测精度和速度,在降低复杂度的同时,提高了检测准确度。

4 结束语

本文提出一种基于注意力机制和多空间金字塔池化的实时目标检测算法。该算法采用多空间金字塔池化模块,提取多尺度信息,融合多重感受野,加强特征融合网络的浅、中、深层特征图的表征能力。引入压缩激励通道注意力机制,建模通道间的相关性,调整特征图各个通道的权重,使网络更加关注重要特征,提升模型鲁棒性。特征融合和检测头网络中使用深度可分离卷积,减少网络参数量,提高模型检测效率。实验结果表明,所提算法的均值平均精度均优于其他7种主流对比算法;与基准算法相比,该算法在降低复杂度的同时,提高了检测准确度。且算法的检测速率达到33.70帧/秒,满足实时性要求。之后,本研究将考虑进一步提升算法的准确性,尝试加入不同的特征融合网络结构以及更优的损失函数,在保证算法检测速度不降低的前提下,进一步提高检测精度,并且在工程中实现运用。

猜你喜欢

池化类别卷积
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
卷积神经网络中的自适应加权池化
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于卷积神经网络和池化算法的表情识别研究
基于傅里叶域卷积表示的目标跟踪算法
服务类别
论类别股东会
一种基于卷积神经网络的性别识别方法