一种基于共享多头模块的轻量型一阶段网络

2022-07-15 09:53肖贵明丁德锐魏国亮
智能计算机与应用 2022年7期
关键词:构架卷积头部

肖贵明,丁德锐,梁 伟,魏国亮

(上海理工大学 光电信息与计算机工程学院,上海 200093)

0 引 言

在计算机视觉中,目标检测一直是最基本也是最重要的研究方向之一。2012年,深度学习开始快速发展,目标检测也随之迎来了快速发展期。现今,对目标检测可分为一阶段网络构架和二阶段网络构架。一阶段网络具有参数小、速度快的特性;二阶段网络相比一阶段网络具有高精度,参数大、速度慢的特性。YOLO V1作为早期目标检测一阶段网络框架,具有良好的速度和不错的检测性能,但随着时间发展其检测精度稍有不足。2016年,SSD横空出世,其同时拥有高速度和高检测精度。但是SSD也存在问题:

(1)特征提取不充分,低层级特征冗余、语义信息不高。

(2)多个输出层的定位分支和分类分支特征共享,而定位偏向于边缘特征,分类偏向区域局部特征。

(3)网络维持高精度的同时无法很好的做到实时性。

针对以上几个问题,多种对SSD的改进及其变种出现,主要集中在以下两方面:

(1)增加检测速度。文献[4]通过更改主干网络,提出MobileNet v1,使用轻量型网络提升速度;文献[5]在其基础上进一步对网络构架进行修改,提出MobileNet v2,网络构架更小,参数量更少,速度更快;文献[6]提出了新的轻量型网络PeleeNet,相比MobileNet具有更少的参数量。但是提出的这些轻量型网络通常会使得检测精度下降。

(2)增加检测精度:文献[7]在SSD的网络基础上增加FPN块,用于增强特征融合,提升网络性能;文献[8]通过将浅层特征应用到深层特征中,进一步增强网络性能;文献[9]通过引入注意力机制,提升网络性能。值得指出的是,这些网络改进在增加SSD网络性能的同时,通常也增加了大量参数,使得网络速度变慢。

综上所述,本文致力于建立一种更轻、更快、更准的一阶段网络构架,同时兼顾速度、精度和参数量3方面需求,获得的创新点主要包括如下两个方面:

(1)针对速度和精度不能同时顾及的问题,本文在原有SSD的网络上进行了改进,提出了LSSD网络构架,在降低参数量,提升速度的同时,增加了检测精度。

(2)在提出LSSD网络构架的基础上进一步对网络头部进行了改进,提出了SMHM模块。在SMHM模块中将分类头部和定位头部分开训练,同时在分类头部中使用了注意力机制、双头机制、权重自适应、进行了参数共享,进一步降低参数量,提高检测精度。

1 SSD网络构架的改进

1.1 LSSD网络构架

相比于SSD网络构架,LSSD主要在VGG的拓展层Conv6后面的网络层上进行了改进,如图1所示。

图1 从SSD到LSSD的网络结构变化图Fig.1 Diagram of network structure change from SSD to LSSD

SSD网络的通道数是先增加后减少,其中在Conv6后面的网络层次为拓展层。SSD共有6层输出,分别为:Conv4-3:38*38*512、Conv7:19*19*1024、Conv8-2:10*10*512、Conv9-2:5*5*256、Conv10-2:3*3*256、Conv11-2:1*1*256;在拓展层的每层输出前,都会使用Conv:1*1*C的卷积层,减少网络参数量;在Conv7~Conv8-2之间使用Conv:1*1*256;Conv8-2~Conv9-2之间使用Conv:1*1*128;Conv9-2~Conv10-2之间使用Conv:1*1*128;Conv10-2~Conv11-2之间使用Conv:1*1*128。

SSD输出层以及输出层间的卷积层的网络设计存在两个问题:

(1)过大的输出层,将会带来大量的参数,造成特征冗余,同时网络进行分类和定位时,提取过多的特征不具有表征性。

(2)输出层间的卷积层使用Conv:1*1*C,使通道数下降,在Conv7到Conv9-2中下降4倍,在Conv9-2~Conv11-2中下降2倍;再通过Conv:3*3*C-S恢复输出层的通道数。虽然这在一定程度上减少了参数量,但是相邻层级间参数的减少过多,必然会损失一定的细节。

针对上述两个问题,本文提出了一种新的LSSD网络构架。

针对输出层,相比于SSD,提出的LSSD的变化主要体现在Conv6及后面的拓展层上。具体地,在SSD网络构架中,Conv6~Conv7时使用Conv:1*1*1024对增强特征的语义并没有什么影响,得到的Conv7:19*19*1 024中具有较多的低级特征。即Conv6的网络通道数已经达到最高,但是此时的层级仍然不是很高,特征的表征性不够好。为此,在本文提出的LSSD网络构架中,采用了Conv:1*1*512,得到Conv7:19*19*512,从而减少低级语义特征的冗余。随着层次的加深,语义信息逐渐增强,同时由于每张图片中的物体数量有限,需要的输出特征也并不会过多。因此,在本文构建的LSSD网络中,Conv7之后的相邻输出层的通道数均相差2倍,分别为:Conv8-2:10*10*256、Conv9-2:5*5*128、Conv10-2:3*3*64、Conv11-2:1*1*32,进一步去除冗余特征,使得到的特征更具表征性。

针对输出层间的卷积层,输出层间的卷积层保留原有构架,并且卷积层Conv:1*1*C不对输出层进行通道下降,卷积层Conv:3*3*C-S通道数和Conv:1*1*C的通道数保持两倍下降。具体地,在Conv7~Conv8-2之间使用Conv:1*1*512、Conv:3*3*256-;在Conv8-2~Conv9-2之间,使用Conv:1*1*256、Conv:3*3*128-;在Conv9-2~Conv10-2之间,使用Conv:1*1*128、Conv:3*3*64;在Conv10-2~Conv11-2之间,使用Conv:1*1*64、Conv:3*3*32-。这些改进的网络构架,使得相邻输出层间的特征传递得到良好的保留。

1.2 BAM模块

为了在网络分类头部提取出更为有效的特征,在分类头部网络中增加了BAM模块,如图2所示,这是一种注意力机制,在该模块中,输入特征经过Maxpool和AvgPool后,得到1*1*C的特征,然后通过Conv、Relu、Conv后再次得到1*1*C的特征,这两次Conv主要是为了降低参数量,将得到的特征进行相加,通过Sigmoid得到最终的输出特征。由于SMHM-LSSD网络头部中的通道数为128,通道数量并不多,所以本文在Conv的通道数上并未按BAM通用设置除以16,而是除以8,从而使得在参数下降的同时,保留更多的细节特征。

图2 改进的BAM模块Fig.2 Improved BAM module

1.3 SMHM模块

在SSD网络构架中,针对6个输出层,有6个网络头部,其中每个网络头部的分类和定位层共享特征参数,同时6个网络头部的anchor数量有所不同,分别为4和6。在检测中,分类和定位是两个不同的任务,对特征的要求不同,其中分类更偏向于对特定区域敏感,而定位偏向于对物体边界更加敏感。如果将分类和定位分支分开,分别进行训练,这无疑会增加参数量。可能的尝试是将SSD的6个网络头部合并成一个网络头部使得参数量减少,合并成一个网络头部后,如果统一取4个anchor,必然会影响SSD中原本6个anchor的网络头部的特征提取;如果统一取6个anchor,会使得低级特征的anchor数量过多,提取得到过多的不必要特征,从而影响检测性能。

本文针对以上的两个问题,提出了一种新颖的SMHM模块,如图3所示。在该模块中,首先使用一个Conv:128*1*1的卷积层B统一通道数,使得各输出层的输出通道为128;将网络头部中分类分支和定位分支分开,分别提取特征,从而满足分类和定位的特性需求。在这一过程中,为了解决将6个网络头部变为一个网络头部带来的特征提取问题,本文提出了以下3个策略:

图3 SMHM模块Fig.3 SMHM module

(1)使用BAM模块,增强特征提取。

(2)使用了两个分类头部(即B0对应的头部,B1对应的头部),第一个分类头部使用了一个BAM模块进行特征的提取,第二个分类头部使用了两个BAM模块进行特征提取,从而使得这两个头部能够提取到具有不同表征性的特征。

(3)使用了自适应权重,通过将两个网络头部进行平均池化后得到的数值作为该网络头部的权重,将两个网络头部进行加权和,以提取得到最适合的特征。

另一方面,为了进一步降低参数量,本文在SMHM模块中的B0、B1、B2实施共享参数。最后,在定位分支中,使用了4个Conv:128*3*3的卷积层。

2 实验结果与分析

2.1 实验数据集和评价指标

本文采用PASCAL VOC数据集验证提出的基于共享多头模块的轻量型一阶段网络的有效性。该数据库包含20个类别以及一个背景类别,共计21个类别。更为具体地,VOC2007一共包含了9 963张图片,5 011张为训练图片,4 952张为测试图片;VOC2012一共包含了11 540张训练图片。本次实验联合VOC2007和VOC2012训练集进行训练,在VOC2007测试集上进行测试。采用了VOC2007的评价指标,即采用均值平均精度作为评价标准。

2.2 模型与参数设置

本实验基于Ubuntu18.04平台,使用PyTorch深度学习框架以及一块GeForce GTX 1080GPU进行训练。具体地,主干网络为VGG16,输入图片的大小为300×300,每个batch大小为8张图片。使用SGD进行优化,初始学习率为0.001,总共运行了24个epoch,其中在运行第16个和第20个epoch时,下降了训练的学习率,且下降后的学习率分别为0.000 1和0.000 01。

2.3 实验结果与分析

实验结果见表1~表2,损失对比如图4~图6所示。表1为当前流行的网络构架的实验结果,可以看出本文提出的LSSD以及SMHM-LSSD网络构架(表中简写为SLSSD)有着较高的性能,超过了当前大部分的检测算法;LSSD300相比于SSD300性能增加0.2%;SLSSD300(4)相比于SSD300性能增加0.1%;SLSSD300(6)相比于SSD300性能增加0.6%。

图4 分类损失图Fig.4 Classification loss graph

图6 总损失图Fig.6 Total loss graph

表1 Pascal VOC2007测试结果Tab.1 Pascal VOC2007 test results

表2 每个分类器网络的框数和总框数以及参数和测试速度Tab.2 The number of frames and the total number of frames of each classifier network,as well as the parameters and test speed

表2为SSD、LSSD以及SMHM-LSSD的anchor数量、测试速度、参数量的对比,可以看出LSSD300相比于SSD300参数量减少23.1 M,速度提升5 fps/s;SLSSD300(4)相比于SSD300参数量减少28.7 M,anchor的数量减少了,速度增加8 fps/s;SLSSD300(6)参数量减少28.3 M,但由于anchor数量的增加,使得在速度上减少2 fps/s。

图4~图6为SSD和SMHM-LSSD(6)的损失对比图。图4为分类损失图,可以看出两者的分类损失值基本上重合,但是相比于SSD,SMHM-LSSD(6)的分类损失更加的稳定,究其原因是由于双头网络和BAM模块的使用使得提取得到的特征更加准确;图5为定位损失图,可以明显的看出将分类分支和定位分支进行分开训练,分支各自拥有参数后,定位分支能够得到更好的收敛;图6为总的损失值,可知SMHM-LSSD(6)的收敛性相比于SSD更好。

图5 定位损失图Fig.5 Location loss graph

3 结束语

本文针对经典单阶段网络构架SSD在拓展层上输出层参数量过多,输出层间特征减少过多的问题,提出了LSSD网络构架;针对分类定位卷积层共享特征的问题,在减少参数量的基础上,使用了头部共享SMHM,提出了两个分类头部、运用了BAM模块以及使用参数共享和自适应权重的策略,同时解决了由头部共享后anchor数量变动导致特征提取性能下降的问题;本文提出的SMHM-LSSD相比于SSD,在性能、速度、参数量上都得到了改善,并且相比于别的经典网络构架在性能上还是非常的优异。

猜你喜欢
构架卷积头部
基于全卷积神经网络的猪背膘厚快速准确测定
构架云中《金桥》 打造强势期刊 《金桥》相伴,空中生活更精彩
构架云中《金桥》 打造强势期刊 《金桥》相伴,空中生活更精彩
基于图像处理与卷积神经网络的零件识别
构架云中《金桥》 打造强势期刊
构架云中《金桥》 打造强势期刊
基于深度卷积网络与空洞卷积融合的人群计数
旅行休憩小头枕
卷积神经网络概述
长颈鹿