APP下载

带有注意力模块的反卷积一阶检测算法研究

2021-05-24汤彩芸张孙杰裴自强

小型微型计算机系统 2021年6期
关键词:池化检测器卷积

汤彩芸,张孙杰,裴自强

1(上海理工大学 光电信息与计算机工程学院,上海 200093)2(华中科技大学 人工智能与自动化学院,武汉 430074)

E-mail:15656230962@163.com

1 引 言

目标检测是计算机视觉领域最基本的任务之一.现在,大多算法都基于深度学习[1-3],按照训练方式可将目标检测分为两个分支,一种是以Fast R-CNN[4]为代表的二阶检测器,包括RCNN[5,6],Faster-RCNN[7],SPPNet[8]等.另一种是以YOLO[9]为代表的一阶检测器,包括SSD[10],RetinaNet[11]等.一般来说,一阶检测器速度快,但是检测精度没有二阶检测器表现得好.虽然,检测器的精度和速度都提升到一定高度了,但是多尺度检测[12]仍然是目标检测需要攻克的难题之一.针对此问题,基于特征金字塔的算法[13]被提出.金字塔的深层特征语义表现能力强,而底层特征分辨率高,因此定位精度高.根据这一特性,很多检测器都旨在建立具有强语义信息的精细分辨率特征,比如RCNN系列的Libra RCNN[14]在特征图上进行rescale,integrate,refine以进一步融合特征信息,最后再和原特征相加,增加特征表示;YOLO的v2,v3[15,16]系列添加一个转移层把浅层特征连接到深层特征图里;SSD系列的变体[17-20],通过不同上采样手段等操作融合高层信息到底层.

本文中,为解决多尺度问题,受到ASSD[21]启发,我们在检测器中引入注意力模块,旨在为特征图提供更易学习的特征.在识别物体时,人类视觉系统会第一时间关注到感兴趣的物体,并自动忽略没用的信息.神经网络中用到的注意力机制就为达到人类视觉相同的效果.本文主要贡献如下:1)从人类视觉注意力出发,本文设计一种结合空间和通道的注意力模块,这个模块可以学习到全局信息,进而生成注意力图可以作为检测的一种指引;2)跟其他检测算法相比,我们所提出的检测算法大幅改进DSSD算法,在仅牺牲一点速度的情况下性能得到显著提升.

2 相关工作

2.1 目标检测

R-CNN[5,6]开创式地把深度学习应用到目标检测中.随后Fast R-CNN[4]和SPP-Net[8]在R-CNN[5,6]的基础上引入区域特征提取,提取每个候选区域的RoI(Region of Interest),经过池化等操作后得到固定大小的特征图用以检测.Faster R-CNN[7],设计了RPN网络代替费时的SS(Selective Search)方法,将特征提取,推荐区域提取,分类回归整合到一个网络中,使得检测速度大幅提升.直到现在,Faster R-CNN[7]都被广泛运用[22],近几年提出的Cascade R-CNN[23]和Libra R-CNN[14]等都是基于这种思想.

YOLO[9]作为首个一阶检测器,提出将整张图片作为网络输入,直接在输出层回归包围框的位置及所属类别,从而加速网络检测.其V2、V3[15,16]版本去掉全连接层,加以使用分类网络darknet等,使其检测性能达到巅峰.SSD[10]提出利用多个尺度特征图用以检测,保证了目标定位精准,但对小目标物体来说,由于底层特征缺少语义信息,精确定位的同时很难达到分类精准.针对这类问题,之后的DSSD[24]、FSSD[25]、ESSD[26]都提出在网络中引入特征融合模块,加强特征表示.图1是基于SSD[10]的各种网络结构图,其中(a)SSD,(b)DSSD,(c)FSSD,(d)ESSD,(f)DSSDA(本文).

图1 SSD检测器的各种变体Fig.1 Various variations of the SSD detectors

2.2 注意力机制

人类特有一种视觉信号处理机制,在扫描图像后,获得注意力焦点,人类视觉系统会对这一焦点区域投入更多的注意力资源,从而获取该目标的细节信息,并且抑制其他无用信息.深度学习领域首次应用注意力机制解决机器翻译[27,28]问题.之后,Dzmitry Bahdanau等人[29,30]在这个领域更深入的应用注意力机制.现在,注意力机制广泛应用于多种视觉任务中,比如多标签图像分类问题[31];多任务学习[32]提出每个任务学习一个attention作为特征选择器,从而选择与该任务相关的特征;跨模态分割任务中,L.Ye等人[33]设计了跨模态的self attention机制.由此可见,注意力机制的应用场景十分广泛[34].

3 带有注意力模块的反卷积检测器

本文提出的带有注意力模块的反卷积一阶检测器的网络结构图如图2所示,其中,卷积层(1-5)来自ResNet_101主干网络,其他特征层设置和DSSD一致.原始的SSD为解决多尺度问题,采用了在多个尺度特征图上预测的方案,但是浅层特征相对深层特征来说缺少语义信息,因此小目标检测存在一定难度.相对的,对大目标物体来说,定位不够精准.本文为解决这些问题,采用DSSD的模型,依次融合高低层特征以加强语义表征并在此基础上嵌入注意力模块,以加强网络表示.具体措施如下:采用ResNet_101(conv1-conv5_x)作为主干网络,后面连接的特征金字塔(conv6_x-conv9_x)和原始DSSD设置相同,但为了简化计算,省去了原始DSSD最后一个上采样过程.受到ASSD的启发,在预测前加入attention模块,可以帮助检测器更好地捕捉到需要关注的区域,抑制没有意义的区域.Attention模块位于特征图和预测模块之间,这样可以更好地利用特征信息.表1是网络选取特征图,输入图片大小是320pixel320pixel,深度代表选用特征层在网络中的位置.

图2 DSSDA网络架构图Fig.2 Overall architecture of our DSSDA object detector

表1 ResNet_101主干网络中选取的特征图Table 1 Selected feature layers in ResNet_101 backbone

3.1 特征融合模块

特征融合的目的是建立高分辨率强语义信息的特征.本文采用可学习反卷积模块对各个深层特征层做上采样,然后把两种特征做点乘融合信息,这个过程和DSSD的融合类似.整个特征融合模块如图3所示.具体做法是:网络中的深层特征做反卷积上采样到前一个特征同样分辨率,为了防止混叠效应,在反卷积后面再做一次卷积和批标准化操作.而浅层特征经过两次3×3的卷积之后,和上采样的深层特征做点乘,融合后的信息再经过ReLU激活函数后得到最终预测用的特征图.

图3 带有反卷积的特征融合模块Fig.3 Feature fusion with deconvolution

3.2 注意力模块

整个注意力模块包括通道和空间两个子模块,嵌入在每个预测模块前,用于加强特征表示,结构如图4所示.送入注意力模块的特征图F∈RC×W×H,由两个子模块分别生成1D的通道注意力图F1∈RC×1×1和2D的空间注意力图F2∈R1×W×H,最终这两个子图经过点乘操作得到用以预测的特征图.整个运算过程如式(1)所示:

F′=F2⊙F1⊙F

(1)

其中⊙代表逐元素相乘,F′是最终调整好用以预测的特征图.接下来详细介绍两个子模块.

图4 注意力模块结构图Fig.4 Attention module structure

3.2.1 通道注意力模块

Jie Hu et al[35]提出的Squeeze-and-Excitation模块使用全局平均池化计算通道维度注意力.Sanghyun Woo[36,37]提出CBAM,BAM指出最大池化可以收集通道间的其他重要特征,通道模块利用最大池化和平均池化共同作用,可以很大程度上提升网络性能.我们受到这些思想的启发,同样采用两种池化并用的方式处理通道注意力.具体做法如下:

首先压缩空间维度,对特征图分别做平均池化和最大池化,得到融合不同空间信息的通道特征.设计一种共享参数的卷积网络,分别将两个特征图送入卷积层,可以进一步调整融合后的特征.再把这两个通道特征相加后送入ReLU激活函数,得到最终通道特征图F1∈RC×1×1.这种设计不仅考虑了不同情况下的空间信息融合,而且卷积层的设计可以加强通道间的注意力表示.公式(2)代表了计算过程.

(2)

3.2.2 空间注意力模块

空间注意力分支会生成一个2D空间注意力图F2∈R1×W×H,用来强化或者抑制不同空间位置的特征信息.和通道注意力模块一样,空间注意力模块也同时使用最大池化和平均池化.送入空间注意力模块的是原始特征图与通道注意力图的融合结果,经过两种池化后分别得到两个融合通道信息的2D特征图.这两个特征图以两种方式获取通道维度的特征信息,之后再进行concat连接和卷积操作,最终得到可以确定目标位置的空间注意力图.整个计算过程可以表示成公式(3):

F2=σ(f3×3(AvgPool(F⊙F1);MaxPool(F⊙F1)))

(3)

其中σ是sigmoid激活函数.f3×3是卷积核为3×3的卷积操作.

4 实验结果与分析

4.1 实验细节

本文所提出观点均经实验验证其有效性,实验基于Pytorch深度学习框架,在两个显存为8G的NVIDIA GTX1080 GPU上训练.主干网络Resnet_101采用在ImageNet预训练的权重.实验采用Stochastic Gradient Descent(SGD)优化器,动量为0.9,初始学习率是0.001,权重衰减率为0.0005.本文提出网络架构分别在两个公共数据集PASCAL VOC和MS COCO上训练和验证网络的有效性.

实验用了两种分辨率的图片作为输入,分别是320pixel×320pixel和512pixel×512pixel.和SSD一样,我们对图片也做了翻转,镜像等数据增强操作,采用DSSD的纵横比设置,每个用以预测的特征图每个像素位置都设置8个先验框,纵横比为[1.6,2,3].网络最终的预测框通过非极大值抑制来解决多框重叠的问题.实验中采用难例挖掘处理正负样本不平衡的问题,损失函数和DSSD一样.

4.2 PASCAL VOC 2007,2012

我们在VOC 07+12 trainval用两块显存8G的NVIDIA GTX1080 GPU训练DSSDA.DSSDA320 batch size是10,共训练120k轮;DSSDA512 batch size是6,共训练120k轮.训练时在第80k和100k轮的时候学习率从原始的0.001降低到0.0001和0.00001.模型在VOC 2007 test上的测试结果如表2所示.和其他的检测器相比,DSSDA的mAP没有特别大的涨幅,但是具体类别有很大提高,比如船(5.4%),自行车(1%)等.根据我们分析,这是注意力模块在特征图上聚焦了某些难以识别或定位的物体,对检测器性能提升起到了积极作用.图5是在VOC测试集上选取的部分结果图,其中第1-第3行分别代表输入原始图片、DSSD检测结果图以及DSSDA检测结果图.由图5前4列可知,和原始的DSSD相比,DSSDA能检测到很多DSSD无法检测的目标,并且在某些类别的定位定位更精准;最后一列是二者置信度的比较,在定位相同的情况下,DSSDA具有更高的置信度.综上分析可知,相较DSSD,本文所提DSSDA算法在定位和分类精度都有很大提升.

图5 DSSDA和DSSD检测结果对比图(VOC)Fig.5 DSSDA vs DSSD on VOC

4.3 MS COCO

相对PASCAL VOC数据集来说,MS COCO数据集包含更多种类的物体(80类),也有更多的生活场景,在目标检测领域,MS COCO数据集的检测难度大.我们在COCO 2017 train数据集上训练DSSDA,验证在COCO 2017 val进行.总共训练400k轮,前280k轮以初试学习率0.001训练,之后在360k轮学习率为0.0001,直到训练结束.实验中,DSSDA320的batch size是8,DSSDA512的batch size是4.在MS COCO数据集上的测试结果如表3所示.表中结果表明相对其他检测器来说,DSSDA在检测精度上并没有太大提升.分析原因可能是由于为了减少计算量在这部分省去了最后一个特征图,并且没有上采样,因此检测器的特征提取部分少了更深层的语义信息及大目标位置信息.导致最终检测结果不尽如人意.

图6 DSSDA和DSSD检测结果对比图(COCO)Fig.6 DSSDA vs DSSD on COCO

图6是DSSDA和DSSD在COCO2017测试集上的部分结果图,其中第1-第3行分别代表输入原始图片、DSSD检测结果图以及DSSDA检测结果图.由图6前4列可以看出,相对DSSD来说,融合注意力机制的检测器更能把“目光”锁定在一些容易被忽略的物体上(无论大小目标),因此可以定位到被DSSD忽略的目标;而图6最后一列表明在COCO数据集上DSSDA可以做到同样定位的情况下分类置信度更高.

表2 PASCAL VOC 2012测试结果Table 2 PASCAL VOC 2012 test detection results

表3 COCO测试结果Table 3 COCO test-dev detection results

4.4 消融实验

实验中,考虑多种嵌入注意力模块的方式,包括空间注意力模块的组合,嵌入方式等.考虑了仅使用空间注意力,以及合并两种注意力,并对其嵌入位置进行研究.几种实验设置分别是反卷积+结合通道和空间的注意力模块,反卷积后嵌入空间注意力模块,空间注意力模块嵌入在反卷积前.在PASCAL VOC数据集上进行实验证实空间注意力和通道注意力并用的方式最佳.注意力模块和特征融合位置分析是出于注意力模块对加强融合前后特征强化作用力度的考虑.表4是几种方式的比较结果,其中,运行时间是在单张NVIDIA GTX1080 GPU上计算的.由表4可以看出,在本文所提出的网络架构中,注意力模块对融合后的特征更具有表征力.

表4 注意力模块嵌入方式的比较(VOC)Table 4 Ablation study on PASCAL VOC2007 test dataset

5 结 论

本文设计了一种新的检测算法,带有注意力模块的反卷积一阶检测器,简称为DSSDA.其具体实现方案是在原有DSSD模型经反卷积融合特征后,再在每一个融合过的特征层后嵌入注意力模块.利用注意力模块可以把“注意”放在重点目标并抑制无用信息的特点,来提升网络对多尺度目标检测的准确率.注意力模块和检测器结合,分别从通道和空间来获取目标的内容和位置,可以有效提升检测器的分类和定位性能.分析VOC和COCO数据集,可以发现人、车、船等类别容易产生多尺度问题,即不同图片中同一目标尺度变化较大.而融合了注意力模块的检测器可以提高目标定位精度,因此一定程度上解决了多尺度检测的问题.在PASCAL VOC和MS COCO数据集上所做的大量实验验证了本文所提新型检测器的有效性.此外根据所做的消融实验,证实了文章所用连接方式效果最好.

猜你喜欢

池化检测器卷积
基于高斯函数的池化算法
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
卷积神经网络中的自适应加权池化
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
用于手写汉字识别的文本分割方法
用于录井专用气相色谱仪的FID检测器
高效液相色谱法应用中常见问题与处理