APP下载

多头自注意力机制的Faster R-CNN 目标检测算法

2024-04-02文靖杰李金龙

现代电子技术 2024年7期
关键词:置信度边界注意力

文靖杰,王 勇,李金龙,张 渝

(西南交通大学物理科学与技术学院,四川成都 610031)

0 引 言

Faster R-CNN 是一种基于深度卷积神经网络的目标检测算法[1-4],其核心思想是通过提取图像特征、提出候选框和进行二次分类等步骤,从而实现高效的目标检测。Faster R-CNN 主要用于对图像和视频中的物体进行快速而准确的识别,并能够对检测结果进行框定和分类。但是随着图像样本的数量和种类越来越多,对模型的精度要求也越来越高,所以如何提升检测的精度成为了关键研究问题[5-7]。

Faster R-CNN 目标检测网络是通过预训练的卷积网络来提取输入图像的特征图,尽管卷积层可以有效地提取图像中的局部信息,但卷积核的局部性会使得全局特性无法被充分捕捉,这会导致一些信息的丢失,进而造成精度下降。其次,Faster R-CNN 采用的ROI Pooling(Region of Interest Pooling)算法使用最近邻插值来对感兴趣区域内的特征进行量化,这同样会导致部分信息的丢失以及空间对齐的不准确。最后,在算法后处理方面,Faster R-CNN 使用传统非极大抑制来强制删除重复的检测框进而导致漏检。

针对以上不足,本文做出三处改进来提高Faster RCNN 目标检测网络的检测精度:

1)在Faster R-CNN 中嵌入基于现有的改进注意力模型来获取更多的图像信息而提高网络的检测精度。该改进的注意力模型基于CBAM 注意力机制[8],采用CBAM改进是因为它集成了SE-Net[9]对通道信息关注的优点和ECA-Net[10]对空间信息关注的优点,但CBAM 中的共享全连接层的降维操作会导致一些区域的细节信息被忽略而造成局部信息的丢失,所以本文采用一维卷积替代共享全连接层并且为了使其提供更丰富的特征表达能力,引入多头机制。

2)采用ROI Align(Region of Interest Align)算法[11]更精确地定位ROI 区域内的样本点,减少原图的信息丢失,提高特征图的质量。

3)引入Soft-NMS(Soft Non-Maximum Suppression)算法[12],减少漏检、误检情况,提高检测精度。

1 相关工作

1.1 Faster R-CNN 模型

Faster R-CNN 目标检测模型的详细网络结构如图1所示,主要包含4 个步骤:

图1 Faster R-CNN 结构图

1)将输入图片等比例调整尺寸,然后输入到主干特征提取网络中来获取图像的特征图,用于后续的区域生成网络(RPN)层的分类与回归。

2)将步骤1)生成的特征图作为RPN 的输入,使用固定大小的滑窗窗口在特征图上进行滑窗操作,以每个位置作为中心点生成多个不同尺寸和比例的锚框(Anchor)。上面的分支使用Softmax 分类对锚框进行正负样本分类,将每个锚框判断为可能包含目标的积极(Positive)分类或不包含目标的消极(Negative)分类;下面的分支用于进行边界框回归(Bounding Box Regression),该回归操作计算出预测的边界框与真实目标边界框之间的偏移量,以获取更准确的候选框(Proposal)位置。在模型测试过程中,对于部分存在重叠可能性的候选框,使用非极大值抑制(NMS)算法筛选这些框,选择最有代表性的框输出并作为感兴趣区域(ROI);在模型的训练过程中,使用Smooth_L1_Loss 函数平衡较小差异和较大差异之间的影响,计算建议框与真实框之间的差异从而调整建议框的位置。接着,通过尺度映射函数(im_info)确定每个锚框在原始图像中的位置,并进一步判断其是否超出了原始图像的边界。当锚框严重超出边界时,这些锚框就基本不包含目标信息,是无效的且需要被剔除。再利用边界框回归来修正被剔除的锚框并得到最终的建议框。

3)将步骤2)输入的建议框划分为相等大小的网格,然后在每个网格内进行池化操作,将网格内的特征信息聚合为固定大小的输出,用于后续的分类和边界框回归。

4)将步骤3)得到的特征图输入到全连接层和Softmax 分类器,以计算建议框包含目标的概率。全连接层将特征图转换为一维向量,并通过Softmax 分类器输出每个类别的概率分布,确定建议框中是否包含目标。同时,利用边界框回归根据建议框与其对应的真实框之间的差异,对建议框的位置进行微调,使得最终的目标检测框更加精确。

1.2 NMS 算法

NMS 是一种常用的目标检测算法,用于在多个重叠的检测框中选择最佳的结果。它通过交并比(IoU)筛选和消除冗余的边界框,从而得到最终的目标检测结果,具体可以分为以下7 步:

1)输入:首先,给定一系列可能包含目标的边界框,每个边界框都有一个置信度分数和位置信息,这些边界框可以是通过目标检测模型生成的候选框。

2)根据置信度排序:将输入的边界框按照置信度分数进行降序排序,得到排好序的边界框列表。

3)选择最高置信度边界框:从排好序的边界框列表中选择置信度最高的边界框M,并将其添加到最终的输出结果列表中。

4)计算重叠区域:对于剩余的边界框bi,计算它们与已选择的边界框M 之间的交并比。

5)消除重叠边界框:对于与已选择的边界框M 重叠超过一定阈值的边界框bi,将它们从候选列表中删除。

6)重复步骤3)~步骤5),直到所有的边界框都被处理完毕。

7)输出结果:输出最终的非极大值抑制结果列表,其中只包含具有最高置信度且没有明显重叠的边界框。

1.3 ROI Pooling 算法

ROI Pooling 算法首先通过坐标变换将ROI 映射到特征图上的对应位置,然后将映射后的区域划分为固定大小的子区域,并对每个子区域进行最大池化操作,最后将子区域内的特征进行压缩,以生成固定大小的特征图。整个步骤可用图2~图5 表示。

图2 输入的特征图

假设特征图的大小为8×8,有一个ROI,输出大小为2×2。

1)输入固定大小的特征图,如图2 所示。

2)候选区域投影,大小为5×7,如图3 所示。

图3 候选区域投影

3)因输出大小为2×2,故将其划分为2×2 个部分,如图4 所示。

4)对每个部分做最大池化,结果如图5 所示。

图5 最大池化结果

2 本文算法

2.1 多头注意力模块

本文使用的多头注意力模块[13]基于CBAM 注意力机制。

1)在通道注意力模块中,首先对输入的特征图进行全局最大值池化和全局平均池化操作,这两种池化操作分别用于捕捉特征图中的最显著特征和平均特征;接着通过共享的全连接层将池化后的结果作为输入,进行融合特征映射的空间信息;然后通过一个全连接层进行特征的映射和降维,降维后的特征向量被送入第二个全连接层学习不同通道之间的相互关联性;最终通过使用Sigmoid 非线性激活函数将全连接层的输出限制在0~1 之间,以生成每个通道的权重。根据论文ECANet 中提出的观点,在深度卷积神经网络中,针对特征图的某一通道,其与邻域通道特征的关联性更强,因此计算通道注意力时,若对所有通道进行拟合会有信息冗余。通过共享全连接层进行降维操作还可能会导致一些区域的细节信息被抹平或忽略,造成局部信息的丢失。其次,共享全连接层在建模通道之间的相关性时没有考虑它们在特征图上的位置关系,因此无法直接捕捉到远距离区域之间的空间相关性,从而导致精度下降。

综上所述,本文采用一维卷积代替共享全连接层来实现权重计算的任务。一维卷积在保持更多局部信息的同时,具备一定的感受野,可以捕捉到更广泛的空间相关性。

2)为了使其提供更丰富的特征表达能力,对其引入多头机制,从而可以分别对特征的不同部分进行重要性的加权。该多头注意力模块首先将特征图分成两部分然后分别进入具有相同结构的通道注意力模块和空间注意力模块中,最后将他们的输出特征进行加权求和。MHEAM 的结构如图6 所示。

图6 MHEAM 的结构图

图6 中:Mc∈RC×1×1代表经过空间压缩后的通道注意力模块,Ms∈R1×H×W代表经过通道压缩后的空间注意力模块,C、H和W分别代表特征图的通道数、高和宽;“⊕”代表相加操作;“Ⓢ”代表Sigmoid 非线性激活函数;“⊗”代表逐元素乘法。

改进的卷积注意力机制中的每个分支结构相同,具体可表示为:

式中:F∈RC×H×W表示每个分支输入特征图;F″ ∈RC×H×W表示每个分支的输出。最后再将每个分支的输出特征图加权求和得到最终输出。

对于通道注意力模块Mc∈RC×1×1,输入进来的特征层通过基于宽和高的全局最大池化和全局平均池化操作分别生成两个不同空间的上下文描述,记为facvg和;然后分别通过卷积核大小为k的一维卷积来计算权重,其大小等于聚合的通道信息数目;最后将得到的权重相加合并,使用Sigmoid 非线性激活函数将特征图中不同通道的重要性进行动态调整后输出最终的通道注意力特征图,具体的通道部分计算公式如下:

式中:表示使用长度为k的一维卷积,k的大小由输入特征图通道数大小自适应决定。k的计算公式如下:

式中:|·|odd表示取最近的奇数;C表示通道数。

对于空间注意力模块Ms∈R1×H×W,首先把从通道注意力模块生成的特征图作为本模块的输入,并沿特征图的通道方向使用通道全局最大值和均值池化操作对通道信息进行压缩,得到的结果分别记为∈R1×H×W和∈R1×H×W;然后将和拼接在一起得到一个双通道的特征图;为了保持前后维度一致,方便进行特征融合,再使用7×7 大小的标准卷积核f7×7将双通道的信息进行融合和压缩,转化为单个通道的特征表示;最后经过Sigmoid 非线性激活函数输出最终的空间注意力Ms∈R1×H×W。具体空间部分计算公式如下:

2.2 Soft-NMS 算法

在传统NMS 算法中,当剩余框bi与置信度最高的M相交且IoU 在预设值时,就会将bi强制删除导致目标漏检,并且NMS 阈值不易确定,设置小了会漏检,设置过高又容易增大误检。因此,本文引入Soft-NMS 算法来替代NMS 算法。

NMS 算法可以写成如下评分函数:

式中:Si为每个框被分类器计算得到的分数,i为除得分最大的M 框以外的剩余框按照得分从高到低排列的序号;Nt为预设的重叠阈值。相较于传统NMS 算法,Soft-NMS 算法则通过使用衰减函数来降低重叠边界框的置信度而不是直接删除它们,一定程度上解决了漏检问题,评分函数如下:

根据式(7)可知,如果IoU 越大,则对Si的影响就越大,Si的值就会变小,对应框的得分也会相应降低,这样就可以防止直接删除这些框引起的漏检情况,从而提高检测精度。

2.3 ROI Align 算法

传统的ROI Pooling 使用最近邻插值对ROI 区域内的特征进行量化,这会导致部分信息的丢失和空间对齐不准确。与之相比,本文采用的ROI Align 算法使用双线性插值的方式,在特征图上更精确地定位ROI 区域内的样本点,一定程度上减少了原图的信息丢失,提高了特征图的质量。ROI Align 的步骤表示如图7~图10所示。

图7 特征图划分

1)对1.3 节步骤2)中获取的特征图转换成2×2 相同规模的范围,此过程不做任何量化处理。特征图划分如图7 所示。

2)将这4 个模块内部进行同样的处理,再细分成4 个规模相同的区域,如图8 所示。

图8 特征图再划分(一)

3)对于每一个最小的区域确定其中心点(图中用“×”表示),然后使用双线性插值法得到这个“×”号所在位置的值作为最小格子区域的值,如图9 所示。

图9 特征图再划分(二)

4)分别取各个小区域的最大值,可得4 个小区域的4 个值,作为最终的特征图输出结果,如图10 所示。

图10 特征图最终结果

2.4 改进后的Faster R-CNN 模型

图11 为本文提出的改进后的Faster R-CNN 目标检测模型。该模型首先将主干特征提取网络VGG-16[14]替换成参数量更少且性能更好的ResNet-50[15];接着通过前向传播直接将多头注意力模块接在最后一个Identity Block 之后,并进行模型训练;然后将ROI Pooling 算法替换为ROI Align 算法;最后在测试部分使用Soft-NMS替代传统的非极大抑制NMS。

由图2可知,实体煤和支架控顶作用明显,顶板下沉量小,受充实率的影响小。充填体控顶作用受充实率影响明显,顶板下沉量随着充实率的增大而降低,当充实率为 60%,70%,80%,90%,95%,100%时,待充区工作 面 顶 板 下 沉 量 分 别 为 1m,0.78m,0.55m,0.33m,0.20m,0.11m。充实率受材料特性、工艺等因素影响,一般充实率达到90%以上可以满足工作面所能承受顶板下沉量的要求。

图11 改进后的Faster R-CNN 结构图

3 实验结果与分析

实验环境配置如表1 所示。

表1 实验环境配置

3.1 数据集和评价标准

实验所用的数据集为PACAL VOC2007 和PACAL VOC2012 的混合数据,包含20 个小类别。使用VOC2007 和VOC2012 的Train+Val(16 551)上训练,然后使用VOC2007 的Test(4 952)测试。PACAL VOC 数据集如表2 所示。

表2 PACAL VOC 数据集详细介绍

本文通过对改进的Faster R-CNN 目标检测模型进行客观评价和主观评价两个方面的评估来检验改进效果。在客观评价结果方面,使用平均正确率(AP)对每个类别的检测结果进行验证,并通过计算平均类别AP(mAP)来确定模型整体性能,即将所有类别的AP 相加并除以总类别数,AP 由精确度(Precision)和召回率(Recall)构成的曲线面积确定;对于主观评价结果,通过对比改进前后的Faster R-CNN 处理后的图片来评估模型的性能,具体就是比较目标框的定位精确度和是否存在漏检和误检。

式中:TP 指检测器输出的结果中正确的个数;FP 指检测器输出的结果中错误的个数;FN 指Ground Truth 中未被找出的个数,FN 大小等于Ground Truth 总数减去TP。

3.2 客观评价结果

为了检验改进后的Faster R-CNN 目标检测网络的性能提升,分别将其嵌入主干神经网络为VGG-16 和ResNet-50 的Faster R-CNN 网络之中,各类别的AP 和代表整个Faster R-CNN 网络性能的mAP 如表3 所示。FR、FR*、FR**、FR***分别表示原始的,加入ROI Align 算法,加入ROI Align 和Soft-NMS 算法,同时加入ROI Align、Soft-NMS 和多头注意力模型的基于VGG-16 主干神经网络的Faster R-CNN 目标检测算法;FR′、FR″分别表示原始的,同时加入ROI Align、Soft-NMS 和多头注意力模型的基于ResNet-50 主干神经网络的Faster R-CNN 的目标检测算法。表中“+”表示改进算法与原算法相比的增长数,“-”表示改进算法与原算法相比的减少数。VGG-16 的Faster R-CNN 改进前后的精度对比如表3 所示。

首先由代表整体Faster R-CNN 的性能指标mAP 可知,基于VGG-16 的Faster R-CNN 加入ROI Align 算法后,mAP 值提高了0.66%。验证了ROI Align 算法相比于ROI Pooling 算法能够减少部分原图信息的丢失,具有更精确的特征对齐和提高检测精度的能力,是更有效的特征提取方法;模型加入ROI Align 和Soft-NMS 算法后,mAP 值提高了1.31%。说明Soft-NMS 相比于传统的NMS,通过降低重叠框的置信度来更好地保留重叠框而不是直接强制删除,这减少了漏检情况,提高了检测精度;模型同时加入ROI Align、Soft-NMS 和多头注意力机制后,mAP 值提高了3.26%。这验证了本文提出的多头注意力模型的有效性,它能够对感兴趣区域特征进行增强,降低背景的干扰。其次再由单个检测目标的精度可知,本文的改进方法能提升绝大多数目标类别的检测精度,特别在大目标和纹理比较清晰的图片上提升较多,如植物、沙发、瓶子、奶牛等,最高精度可达10.19%。同时,由基于ResNet-50 的改进前后的Faster R-CNN 性能指标可知,主干神经网络用ResNet-50 替换VGG-16 后整体精度和多数单个检测目标的精度都会得到提升,整体精度提升了4.73%,单个目标检测精度最高提高了10.19%。这是因为ResNet-50 相比于VGG-16 引入了残差连接,可以有效地缓解梯度消失等问题;此外,因为ResNet-50 的卷积层更多,可以扩大模型的感受野,更好地理解图像中的全局信息和上下文关系。最后,为了更科学地体现本文提出的多头注意力模型对Faster RCNN 网络的提升,对Faster R-CNN 引入SE-Net、ECANet、CBAM 注意力机制进行消融实验,如表4 所示。

表4 注意力机制消融实验

3.3 主观评价结果

为了更加直观地体现改进的Faster R-CNN 目标检测算法的有效性,随机选取一些图片放在改进前后的模型中进行检测,结果如图12 所示。

图12 检测结果对比

由检测结果对比图可知:改进后的Faster R-CNN目标检测算法提高了对感兴趣目标的定位准确性和检测精度,并且减少了漏检和误检情况。从第1 行的对比图中可以看出,改进后的算法对感兴趣目标的定位变得更加准确,并且对应的置信度得分也得到了提高;从第2 行的对比图中可以看到,原本没有被检测到的植物和汽车被正常检测,并且人和摩托车的置信度得分也得到了提高,说明改进的算法不仅降低了漏检的概率也提高了检测精度;从第3 行的对比图中可以看到,改进算法降低了误检的概率,使得被识别为汽车的摩托车可以被正确识别,此外被遮挡物体的定位检测精度也得到了提升;从第4 行和第5 行的对比图中也同样可以看出,改进的Faster R-CNN 目标检测算法同样也提高了目标物体的定位和检测精度,并且有效地降低了漏检和误检概率。

4 结 论

本文提出了一种改进的Faster R-CNN 目标检测网络。首先,改进的网络嵌入了一种不用降维且在保持更多局部信息的同时可以捕捉到更广泛的空间相关性的多头注意力机制;其次,使用能够减少原图信息丢失的ROI Align 算法替代ROI Pooling 算法;最后,使用能减少漏检、误检的Soft-NMS 算法替代传统NMS 算法。实验结果表明,改进后的Faster R-CNN 目标检测算法使得其中单个目标类的检测平均精度最高提升了10.19%,而mAP 得到了4.73%的提升,有效地减少了漏检和误检的发生,并提高了感兴趣目标框的定位精度。

注:本文通讯作者为王勇。

猜你喜欢

置信度边界注意力
让注意力“飞”回来
硼铝复合材料硼含量置信度临界安全分析研究
拓展阅读的边界
论中立的帮助行为之可罚边界
正负关联规则两级置信度阈值设置方法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
置信度条件下轴承寿命的可靠度分析
“伪翻译”:“翻译”之边界行走者
思考新边界