双向特征融合与注意力机制结合的目标检测

2021-11-27 00:48赵文清杨盼盼
智能系统学报 2021年6期
关键词:双向卷积像素

赵文清,杨盼盼

(1.华北电力大学 控制与计算机工程学院,河北 保定 071003;2.复杂能源系统智能计算教育部工程研究中心,河北 保定 071003)

目标检测是计算机视觉领域的重要研究方向。现阶段的目标检测方法主要有2 种:一种是基于分类的两阶段法,另一种是基于回归的单阶段法。2014 年Girshick 等[1]首次提出R-CNN(region convolutional neural networ,R-CNN)使用选择性搜索[2]生成的区域建议。该算法相比传统算法得到了很大的提升,但是不能满足实时性要求。在2015 年,Girshick 等[3-4]在R-CNN 和SPPNet(spatial pyramid pooling net)网络的基础上提出了Fast-RCNN 网络。Fast R-CNN比R-CNN 快,但是这个网络还是不能实现端到端的训练,因此He 等[5]就端到端的问题提出了解决方法,提出了Faster-RCNN 网络。Faster-RCNN 将区域建议阶段和分类阶段结合到一个模型中,允许端到端学习。从R-CNN 到Faster-RCNN 的发展过程,都是先得到候选框,对候选框做处理之后再进入分类器做处理,这种类型的方法统称为两阶段目标检测法。两阶段方法不能满足实时性要求,基于回归的单阶段检测法应运而生。在单阶段检测方法中最具代表性的是YOLO[6-7]系列和SSD[8]系列。YOLO 算法检测速度快,但是容易出漏检。为了改善YOLO 算法中的缺陷,Liu 等[8]提出SSD 算法,SSD 使用多尺度特征进行分类和回归任务,但是其效果仍有待提高。为了提高目标检测的准确率,DSSD[9]将反卷积技术应用于SSD的所有特征图,以获得放大的特征图。但是,由于将反卷积模块应用于所有特征图,因此存在模型复杂度增加和速度降低的局限性。此外,针对尺度较小的目标在检测中存在的问题,相关学者提出了一系列改进算法。Singh 等[10]提出SNIP(scale normalization for image pyramids)算法,该算法主要思想是对特征图进行不同倍数采样,通过实验给出相对最优的检测小目标的特征图尺寸,最后通过Soft-NMS 融合不同分辨率下的检测结果。Wen等[11]通过融合多尺度和反卷积获得了更高的准确性。Li 等[12]使用生成对抗网络(GAN)[13]和低分辨率特征作为GAN 的输入来生成高分辨率特征。但是这些方法在检测中仍然存在不能有效提取目标特征的缺陷。

特征金字塔网络(feature pyramid networks,FPN) 将高层特征图进行上采样,然后与浅层特征进行加法合并操作,得到新的表达能力更强的特征图。但是FPN[14]在融合之前,不同的特征之间存在的语义信息差距较大,直接进行融合会降低多尺度特征的表达能力;其次,在融合过程中,信息自高层向低层进行传播时会丢失一些信息,而且FPN 在进行特征提取时,忽略了高层信息与低层信息之间的关系,导致检测的精确度有所降低。

本文提出了双向特征融合与注意力机制结合的目标检测方法。该方法首先对SSD 模型深层特征层进行双线性插值放大与浅层特征层进行特征融合,然后将得到的特征通过降采样的方式与深层信息进行融合,这样可以充分结合深层和浅层信息以提升浅层特征网络对小目标的表达能力,同时,引入通道注意力机制SeNet 结构对特征融合后的特征图进行更新,提取出更有利于检测特征的通道。最后,针对目标检测中小目标漏检的情况,优化了正负样本的判定策略,使得筛选出的框的数量增加,进一步提高小目标检测的精度。

1 相关技术和理论

SSD 对目标进行分类和回归的过程:首先,输入大小为300 像素×300 像素的图片,然后使用卷积神经网络提取同卷积层中目标的特征,本文采用的是VGG 作为特征提取网络;其次,提取到的特征根据不同特征层anchor 的数目,对anchor 进行分类,利用边界框回归对其进行位置调整,得到最终的建议框;然后,再使用非极大抑制算法对这些建议框进行筛选,得到检测结果。

特征金字塔网络(feature pyramid networks,FPN)对高层特征图进行上采样,然后与浅层特征进行加法合并操作,得到新的表达能力更强的特征图,这种多尺度的特征图在面对不同尺寸的物体时,具有更好的鲁棒性[15-17]。此外,这种特征金字塔结构是一种通用的特征提取结构,可以应用到不同的网络框架中,例如Faster-RCNN、SSD等。针对小目标的检测,可以检测出更加丰富的特征,进而提升其准确度。

2 基于改进SSD 算法的目标检测

本模型采用VGG16 作为骨干网络,使用双向特征网络完成特征提取,首先,从骨干网络中提取出Conv3_3、Conv4_3、Conv5_3、FC7、Conv8_2和Conv9_2 特征图,然后分两个部分进行双向特征融合,如图1 所示。

2.1 双向特征融合过程

2.1.1 自顶向下特征融合

图1 中自顶向下的特征融合分为6 个步骤:

图1 双向特征融合与注意力机制结合的模型Fig.1 Target model based on the combination of bidirectional feature fusion and an attention mechanism

1)对256 通道的特征图Conv9_2 使用1×1 卷积升维成512 通道的特征图P1;

2)对P1进行2 倍上采样后与Conv8_2 进行融合,对融合结果使用一个3×3 的卷积层消除上采样过程中的混叠效应,使用SeNet 对消除混叠效应后的特征图进行通道更新得到特征图P2;

3)对1024 通道的特征图FC7 使用1×1 卷积降维成512 通道,对P2进行2 倍上采样后与降维后的FC7 进行融合,使用3×3 卷积层消除混叠效应,接着,使用SeNet 进行通道更新,得到特征图P3;

4)由于特征图Conv5_3 通道数为512,并且特征图尺寸与P3大小一致,因此直接对Conv5_3和P3进行相加融合,对融合结果同样使用3×3 的卷积和SeNet 得到特征图P4;

5)对P4进行2 倍上采样,由于Conv4_3 特征图尺寸为38×38 比较大,因此在进行P4与Conv4_3的特征融合时需要先对P4进行归一化,接着使用3×3 的卷积和SeNet 得到特征图P5;

6)对P5进行2 倍上采样,Conv3_3 特征图尺寸为75×75,先对P4进行归一化,再与Conv3_3特征相加融合,接着使用3×3 的卷积和SeNet 得到特征图P6。

2.1.2 自底向上特征融合

图1 中自底向上的特征融合分为5 个步骤:

1)将自顶向下融合中步骤6)中的P6作为起始特征图B1,然后,对B1进行2 倍降采样,接着对降采样后的特征图进行归一化,对Conv4_3、P5和归一化后的特征图进行相加融合,对融合后的结果使用3×3 的卷积和SeNet 得到特征图B2;

2)对B2进行2 倍降采样,由于Conv4_3 特征图尺寸为38×38,比较大,因此,在B2与Conv5_3、P4融合时,需要先对B2进行L2归一化,接着使用3×3 的卷积和SeNet 得到特征图B3;

3)由于特征图Conv5_3 通道数为512,并且特征图尺寸与B3大小一致,因此直接对B3与FC7、P3进行相加融合,对融合后的结果同样使用3×3 的卷积和SeNet 得到特征图B4;

4) 对B4进行2 倍降采样,然后与Conv8_2、P2进行相加融合,对融合后的结果同样使用3×3 的卷积和SeNet 得到特征图B5;

5) 对B5进行2 倍降采样,然后与Conv9_2、P1进行相加融合,对融合后的结果同样使用3×3 的卷积和SeNet 得到特征图B6。

2.1.3 双向特征融合模块

文献[18-22]中提出了不同的特征融合的方法可以增强语义信息的表达能力,本文提出的双向特征融合机制首先将深层特征层进行双线性插值放大与浅层特征层进行特征融合,然后将得到的特征通过降采样的方式与深层信息进行融合,这样可以充分结合深层和浅层信息进行特征提取,进而提升浅层特征网络对目标语义信息的表达能力。双向特征融合过程细节如图2 所示,图1中的自顶向下的方式进行特征融合如图(a)所示,自底向上的方式进行特征融合如图(b)所示,图中以Conv8_2 和Conv9_2 为例进行特征融合的表示。如图2 所示,首先,将SSD 提取到的高层特征Conv9_2 使用双线性插值的方法与SSD 提取的原始特征Conv8_2 通过自顶向下的方式进行融合得到P3;然后将B4通过降采样的方式与P2进行融合。在进行自底向上的特征融合过程中,为了得到表征能力更强的特征,同时融合了SSD 提取的原始Conv8_2 特征。为了防止出现梯度爆炸问题,在进行双向特征融合中,在自顶向下和自底向上都加入了BN 层,经过ReLU 激活函数和SeNet 注意力机制,得到最终的B5特征,最后送入检测层。

图2 双向特征融合过程Fig.2 Bidirectional features fusion process

2.1.4 注意力机制模块

注意力机制是一种资源分配的策略,广泛应用在计算机视觉各个方向[23-24]。注意力机制让神经网络更多地去关注与特征相关的细节信息,这样可以加快信息的处理时间,进而一定程度上提高计算机处理信息的效率,最终提高特征的表达能力。本文选用的是SeNet 注意力机制,该机制通过学习通道之间的关系,然后对卷积得到的特征图进行相应地处理,最终得到一个与通道数相同维度的向量,并且将此向量作为一个权重数,加到相应的通道上。注意力机制模型如图3 所示。

图3 注意力机制模块Fig.3 Attention mechanism module

首先,对输入的特征图进行全局池化,再连接两个全连接层,第一个全连接层神经元个数是c/16,第二个全连接层神经元个数为c。然后,再接一个Sigmod 层输出1×1×c,得到各个通道对应的权重系数,最后与输入的特征图元素相乘。

2.2 目标位置与类别预测层

首先,将提取到的特征层输入到预测层,然后,根据不同特征层anchor 的数目和类别,对anchor 进行分类,利用边界框回归对其进行位置的调整,得到最终的建议框。

2.2.1 对anchor 进行的改进

在网络模型划分正负样本阶段,anchor 和真实框的交并比(intersection over union,IoU)值作为正负样本划分的依据。低于通常使用的阈值作为负样本,高于通常使用的阈值作为正样本。当IoU 低于通常使用的阈值时存在两种情况。第1 种情况,anchor 大于真实框。但是,anchor 中的上下文信息在目标检测中也有很大的作用,通过上下文信息可以有效地检测目标的信息,进而改善目标的漏检情况。第2 种情况,anchor 小于真实框,但是这些anchor 包含被检测目标更多的局部特征。针对这两种情况,本文提出了一种改进的正负样本判定策略,保留低于IoU 阈值但与目标相关的anchor 作为正样本。将式(1)用于正负样本的判断中:

式中:SP代表先验框集合;ST代表真实框集合;SP∩ST代表先验框和真实框的交集;min(SP,ST)代表先验框和真实框中面积较小的一个。由经验可得a的值为0.9。第一种情况下若a>0.9,表示anchor 覆盖住90%以上的真实目标,就判断为正样本。第2 种情况下,表示anchor 有90%以上和目标真实框覆盖,就判定为正样本。

2.2.2 损失函数

网络的损失函数由两部分组成,分别是置信度损失和位置损失,如式(2)~(5)所示:

式中:t为输入图像;Lf表示置信度损失;Ll表示位置损失;i表示属于正样本的个数;j表示属于负样本的个数;x表示所选框的横坐标;y表示所选框的纵坐标;w表示所选框的宽;h表示所选框的高;m是框的位置的集合;N为匹配成功的先验框个数。

2.3 非极大抑制算法

非极大抑制算法实现步骤:首先根据设定的目标框的置信度阈值排列候选框列表,然后选取置信度最高的框添加到输出列表,并将其从候选框列表中删除。最后计算置信度最高的框与候选框列表中的所有框的IoU 值,删除大于阈值的候选框。重复上述过程,直到候选框列表为空。

3 实验以及结果分析

3.1 实验设备以及参数设置

本实验GPU 使用的是NVIDIA GeForce GTX 1080Ti。Batch-size 设置的是16,防止模型过拟合和模型收敛,先将学习率设置为0.001,训练8 万次,再将学习率降低10 倍设置为0.0001 训练2 万次,最后再降低10 倍设置为0.00001 训练2 万次,共12 万次。实验中的深度学习框架使用的是pytorch1.1。

VOC 数据集有20 类,包括训练集、验证集和测试集。为了防止过拟合,本文采用VOC2007+VOC2012 数据集进行训练,然后再采用VOC2007测试集进行测试。

3.2 实验评价指标

本文实验采用平均准确率(average precision,AP)、召回率(average recall,AR)和所有类别的均值平均精度mAP (mean average precision)作为精度评价指标;f/s(frame per second)作为速度评价指标,代表每秒内可以处理的图片数量。其中,AP代表正确检测为正占全部检测为正的比例[25]。

3.3 实验结果及对比

通过改进SSD 模型,本文模型在VOC2007 和VOC2012 训练集上训练,在不同尺度上的平均准确率和召回率值如表1 所示。

表1 不同尺度的检测结果Table 1 Test results of different scales

由表1 可知,在本文所提出的算法中,当输入尺寸大小为300 像素×300 像素时,平均准确率为80.6%,召回率为90.2%,速度为33 f/s;当输入大小为321 像素×321 像素时,平均准确率为81.5%,召回率为91.7%,速度为30 f/s,当输入大小为512 像素×512 像素时,平均准确率为82.5%,召回率为93.5%,速度为12 f/s。

为了进一步验证本文算法的有效性,进行了消融实验,其结果如表2 所示。

表2 不同方法对精度的影响Table 2 Influence of different improvement methods on accuracy

由表2 可知,本文所改进的方法中,在双向特征融合的基础上加入注意力机制可以使平均准确率提高2.2%,anchor 的改进可以使平均准确率提高0.4%,整体的平均准确率可以提高3.1%。

本文模型在VOC2007 和VOC2012 训练集上训练,在VOC 2007 测试集上的结果与主流算法Faster-RCNN、YOLOV2、DSSD321 等实验结果对比如表3 所示。

表3 VOC2007 测试结果对比Table 3 Comparison of test results of VOC2007

由表3 可知,输入图像尺寸为300 像素×300像素时,本文提出的模型平均准确率较YOLOV2、SSD300、DSSD321 分别提高了6.9%、3.1%、1.1%。同时,SSD 模型每秒检测46 张图像,而本文改进后SSD 模型每秒检测33 张图像,相比于SSD 模型,改进模型的检测速度略有下降,这是由于改进双向特征融合时模型计算量有所增加,从而影响模型的检测速度。

VOC2007 具有20 类目标,其中每一类别目标与主流的目标检测算法的AP 的对比结果如表4所示。

表4 VOC2007 测试结果详细比较Table 4 Detailed comparison of test results of VOC2007 m AP/%

由表4 可知本文算法平均精度有一定的提高,尤其对小目标的提升更为显著。

为了验证本文算法的有效性,对原始SSD 算法和本文算法的目标检测结果进行了可视化展示,如图4、5 所示。本文算法检测框和目标贴合得更为紧密,同时对小目标的漏检和误检情况有一定程度的改善。

图4 SSD 检测效果Fig.4 SSD detection results

图5 改进的SSD 检测效果Fig.5 Improved SSD detection results

4 结束语

针对SSD 目标检测中存在的问题,提出了双向特征融合和注意力机制结合的目标检测方法。与传统的特征金字塔不同,该方法引入双向融合特征金字塔,充分考虑高层与低层信息之间的关系,进一步得到了语义信息更丰富的多尺度特征图。同时,在自顶向下和自底向上的双向融合中加入了通道注意力机制,提高了特征融合的效率。最后,针对目标的漏检情况,本文提出了一种改进的正负样本判定策略,提取到被检测目标更多的局部特征。经过实验对比,本文所提出的算法模型相较于传统SSD 算法,平均准确率方面提高3.1%,表明了本文所提算法的有效性。

猜你喜欢
双向卷积像素
双向度的成长与自我实现
像素前线之“幻影”2000
基于3D-Winograd的快速卷积算法设计及FPGA实现
“像素”仙人掌
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
ÉVOLUTIONDIGAE Style de vie tactile
一种软开关的交错并联Buck/Boost双向DC/DC变换器
高像素不是全部
一种工作频率可变的双向DC-DC变换器