APP下载

基于注意力机制的X光安检图像危险物品检测

2023-12-29郭豆豆李国权黄正文

关键词:危险物品池化注意力

郭豆豆,李国权,,黄正文,吴 建,庞 宇

(1.重庆邮电大学 通信与信息工程学院,重庆 400065;2.重庆邮电大学 光电信息感测与传输技术重点实验室,重庆400065)

0 引 言

在公众运输管理领域,对行李实施X光安检是保障乘客生命财产安全的重要方式,但安检人员以肉眼观察图像来确认危险物品易受人为因素干扰且效率较低。因此,建立实时准确的X光行李安检系统意义十分重大。

X光图像中的目标识别主要基于视觉词袋(bag-of-visual-words,BoVW)模型[1],而随着AlexNet[2]的出现,卷积神经网络(convolutional neural network,CNN)[3]等深度神经网络已经在目标检测、图像分类等方面取得了显著成绩。文献[4]将CNN引入X光行李图像领域,使用迁移学习的方法优化AlexNet结构进行端到端的特征提取和分类,检测准确率达到98.92%。文献[5]探索了CNN在X光行李图像分类和检测任务中的应用,表明CNN比BoVW模型更有效。文献[6]提出一种基于深度特征和最近邻分类器的策略来处理公开GDXray(grima X-ray dataset)[7]上的X光图像识别问题,识别准确率超过95%。为了解决X光图像数据集有限的问题,文献[8]提出了合成复合(synthetically composite,SC)的数据增强方法,分别在Faster R-CNN[9]和RetinaNet[10]架构上进行危险物品检测,研究了真实和合成X光训练图像在检测性能上的差异。

对于目标检测,例如YOLO(you only look once)系列[11]的单阶检测算法,只通过一个阶段就可以直接给出物体的类别概率和位置坐标,推理速度可以达到每秒几十甚至上百帧。其中YOLOv1[12]将一幅图像划分为S×S的网格,目标中心位于某个网格,就用该网格进行预测,但是很难处理聚集的小目标;YOLOv2[13]以Darknet-19作为主干网络,对YOLOv1进行了一系列提升性能的尝试;YOLOv3[14]以Darknet-53为主干网络,在3个特征层上预测,有效地平衡了推理速度和检测精度。YOLOv3借鉴空间金字塔池化(spatial pyramid pooling,SPP)[15]的思想在第1个卷积集加入SPP模块,即YOLOv3-SPP。文献[15]提出的SPP模块源于空间金字塔匹配(spatial pooling matching,SPM)[16],SPM模块的原始方法是将特征图分割成几个相等的d×d块,形成空间金字塔之后再提取词袋特征。SPP模块将SPM集成到CNN中之后使用最大池化操作代替词袋操作。由于SPP模块输出的是1维特征向量,无法应用在全卷积网络中。在YOLOv3的设计中,Redmon只借鉴SPP模块的思想,并将其改进为内核大小为k×k,k∈{1,5,9,13},步距为1的最大池化输出的拼接。这个设计中,相对较大的k×k最大池化可以有效地增加主干特征的感受野,同时整个模块能够融合全局特征和局部特征以实现不同特征的融合,解决输入图像中目标大小差异大的问题。SPP模块的结构如图1所示。

图1 SPP模块Fig.1 SPP module

文献[17-18]在计算机视觉领域中应用注意力机制,为安检提供了新的思路,可以使用CNN提取激活输出节点的图像区域特征,提高对自然图像集的检测性能。由于安检图像中危险物品之间存在大量的噪声和干扰,文献[19]将侧向抑制[17]和对比注意[18]相结合,建立了神经元刺激抑制模型,在反馈传播时可以有效地抑制噪声和非目标干扰。文献[20]利用通道关系提出了压缩和激活(squeeze-and-excitation,SE)块,这些块的堆叠形成了压缩和激励网络(squeeze-and-excitation network,SENet),SENet曾在ILSVRC 2017分类竞赛中获得第1名。卷积注意力模块(convolutional block attention module,CBAM)[21]利用通道注意力和空间注意力来细化提取到的特征,在保证小计算开销的同时实现性能提升。文献[22]提出了有效的通道注意力(efficient channel attention,ECA)模块,在涉及少量参数的情况下,带来了性能的增益。文献[23]将特征提取网络获取的特征映射层与特征金字塔注意力模块进行融合,以获取精细化金字塔网络。

目标检测任务中,CNN提取到的浅层特征保留了对待检测目标至关重要的细节特征[24]。为了解决公共场所人工识别X光图像危险物品效率较低且易漏检的问题,本文将YOLOv3-SPP的网络架构应用于X光图像危险物品检测,提出了一种融合通道和空间注意力信息以增强特征表示能力的目标检测方法。针对单一池化操作会造成语义信息丢失,在一定程度上限制了浅层特征的问题,本文分析了SENet中的SE块后,将最大池化和平均池化并行,提出了多压缩激活(multi-squeeze excitation,MSE)模块,用于产生更精细的注意力,从而提高对目标的检测性能,在没有降维的情况下增强通道注意力的表征能力。考虑到上下文信息对于需要关注的空间位置至关重要,本文在CBAM的空间注意力分支中采用膨胀卷积[25-26]来构建比标准卷积更有效的空间特征图,提出了多融合全局注意力(multi-fusion global attention,MFGA)模块,从而有效利用上下文信息,同时优化输入预测网络的最终特征,使模型选择有意义的特征。通过将MSE模块和MFGA模块融入网络来实现不同尺度的特征融合,进而获得更好的目标检测效果。在SIXray(security inspection X-ray)[27]数据集上的实验结果表明,本文方法相对于YOLOv3-SPP算法具有更好的检测性能。

1 注意力融合网络

本文提出的X光安检图像危险物品检测模型(简称为注意力融合网络)融合了通道和空间注意力,设计了2个模块将网络提取的局部特征与注意力提取的全局特征相融合,从而获取精细化的通道和空间注意力特征,使模型在危险物品检测上的性能获得提高。模型具体框架如图2所示。

图2 注意力融合网络Fig.2 Attention fusion network

输入要检测的X光行李安检图像,经过主干网络获得特征图后将其输入MSE模块,用来增强特征图中的关键信息且抑制背景信息,得到具备通道全局性的语义特征。利用SPP模块进行多尺度特征融合后再经过MSE模块可以使得融合后的局部特征和全局特征精细化,丰富特征图的表征能力,增强获取的多尺度语义信息。

对主干网生成的特征图,3个检测分支分别针对特征图中的小、中、大危险物品进行检测,可以很好地解决目标检测性能差的问题,对于不同尺寸目标的检测,也会获得相应的检测精度和召回率。为了获取目标区域的上下文信息,空间分支通过膨胀卷积扩大感受野,从而细化全局特征和相关局部特征组成的最后特征。串联通道分支和空间分支构成MFGA模块,并将该模块放在每一个检测分支的分类器之前,有效地融合深层特征的通道及空间信息,使多尺度特征具备3维全局性,从而更加关注图像中包含危险物品的目标区域,有效地提高模型对危险物品的检测精度。为了满足实时性,无须在网络的所有位置都添加该模块。

1.1 MSE模块

通用的网络架构是从高分辨率到高语义特征信息的串联结构,也就是说,随着网络深度的增加,空间大小会逐步减少,通道信息的数量会增加。采用MSE模块对丰富的通道信息进行分析,有利于注意力模块之后的卷积层提取到比较精细的通道特征表示。

池化函数不仅可以用来降低特征图的空间大小,同时也可以减少网络参数的数量。平均池化考虑一个区域内的所有特征,使网络可以关注目标的完整语义信息;全局平均池化可以将空间信息相加,更多地保留图像中有利于目标检测的关键信息;最大池化可以获取局部信息,也可以减少由于卷积层参数误差造成的估计均值偏移,更多地保留有利于目标检测的纹理和边缘信息。由此,本文利用全局平均池化和最大池化,将生成的描述符在通道上拼接,通过标准卷积对通道进行降维。这可以有效地保留神经网络提取到的特征图信息,减少背景信息对危险物品检测的干扰。图3为本文提出的MSE模块。

图3 MSE模块Fig.3 MSE module

MSE模块是一个计算单元,建立在将输入U∈RC′×H′×W′映射到特征图X∈RC×H×W(H、W、C分别对应特征图的高度、宽度和通道维度)之上。在下面的符号中,使用V=[v1,v2,…,vC]表示学习到的滤波器内核集,其中,vc代表第c个滤波器的参数。可以将输出写为X=[x1,x2,…,xC],xc∈RH×W,xC的计算式为

(1)

将给定的输入映射到特征图X∈RC×H×W上,分别通过最大池化和全局平均池化压缩输入特征图的空间维度,分别生成C×1×1大小的特征图,其中C表示通道数,将两个描述符在通道方向上进行拼接,生成2C×1×1的特征图,其中,全局平均池化计算公式为

(2)

(2)式中:(i,j)表示特征图上的坐标;xc(i,j)表示输入图像经过映射之后生成的特征图中第c个通道上位置(i,j)处的特征值。为了更好地利用压缩操作输出的聚合信息,先使用标准卷积对拼接后的特征进行通道上的降维,激活操作再经过两个全连接层,旨在完全捕获通道信息的依赖关系,计算公式为

f(z,W)=σ(g(z,W))=σ(W2ReLU(W1z))

(3)

(3)式中,为了避免两个全连接层带来高的模型复杂度,W1和W2的大小分别设置为(C/r)×C和C×(C/r)。超参数r可以降低模型的计算成本,首先将通道特征映射到低维空间,然后将其映射回原来的通道维度,从而可以使通道和权重之间建立起对应关系。

MSE模块的通道权重计算可以表示为

w=σ(gex{w1,w2}([gavg(X);gmax(X)]))

(4)

(4)式中,激活操作先使用标准卷积对拼接后的特征进行通道上的降维。采用Sigmoid函数获取最终的3维注意力图,范围从0到1。将得到的3维注意力图添加到原始输入特征图上以获取细化特征图。

1.2 MFGA模块

数据集中危险物品往往会与其他物品发生重叠,一旦重叠部分将危险物品的关键特征覆盖,在检测过程中很容易出现误检的问题。MFGA模块从增强特征信息和抑制背景信息角度考虑,有效地解决了上述问题。MFGA模块的设计受CBAM启发,其空间注意力分支产生的空间注意力图可以强调有利于危险物品检测的特征,也可以抑制不利于检测的背景特征。在计算生成空间注意力时,为了有效地聚合特征图中的上下文信息,根据文献[26]中提出的混合膨胀卷积(hybrid dilated convolution,HDC)框架,本文使用3个膨胀率大小不同的3×3卷积核来扩大感受野,由此增强空间注意力的表征能力。将通道注意力模块(channel attention module,CAM)和空间注意力模块(spatial attention module,SAM)顺序放置,CAM可以对输入的特征图进行通道处理,利用特征图的通道关系生成通道注意力图,使网络关注这幅图像“是什么”;SAM利用特征图的空间关系生成空间注意力图,使网络关注图像中的有用信息“在哪里”。空间注意力图是通道注意力的补充,在MFGA模块中,输入特征图的大小为C×H×W,先执行CAM可以让网络确定图像中有意义的特征,生成的通道注意力图的维度为C×1×1,与输入特征图相乘之后生成的特征图维度为C×H×W,之后再通过SAM可以更好地确定关键特征在特征图中的位置,生成的空间注意力图的维度为1×H×W,与之前生成的特征图相乘之后得到精细化后的融合特征图。本文MFGA总体结构如图4所示,这个模块基本可以添加到网络的任意位置,具有“即插即用”的特性。

图4 MFGA模块Fig.4 MFGA module

1.3 SAM模块

人类视觉系统可以在目标和背景复杂重叠的情况下,根据目标的特征与环境特点快速确定目标的类别并定位目标的位置。上下文信息来源于对人类视觉系统的模拟,通过捕捉目标和背景以及不同目标之间的相互作用信息来对目标进行处理与识别。图像中背景的全局视图可能会为关键信息的获得提供有用的上下文信息。然而,并非所有的背景信息都是有用的,无意义的背景噪声甚至会降低目标检测性能。因此,有效地识别并利用上下文信息是十分有必要的,可以用膨胀卷积来捕获多尺度上下文信息。

膨胀卷积通过在卷积核中的每个像素之间插入零值来构成,可以在不损失分辨率的情况下聚合多尺度上下文信息、扩大感受野[25]。但是,当前的膨胀卷积框架会出现“网格化”问题:经过一组膨胀率相等的膨胀卷积之后,卷积核的感受野只覆盖棋盘图案的区域,采样的时候,会导致相邻信息的丢失,不利于网络对输入样本的学习。

本文根据HDC框架对SAM进行修改,利用HDC时需要遵守2个原则:①M2≤K,K是卷积核的内核大小,Mn=rn,这里rn指组内的第n个膨胀卷积的膨胀率,Mn指两个非零值之间最大距离;②一个组内,膨胀率之间不能具有公因子,否则,仍然会出现“网格化”问题。当卷积层之间的膨胀率满足以上2个原则之后,感受野可以完全覆盖一个正方形区域。

池化函数可以为注意力模块引入一定程度的迁移不变性,来增强网络对迁移的适应性。首先,本文采用一组膨胀率为r=1,2,5的卷积核,大小为K=3的膨胀卷积对输入的特征图进行操作;其次,将有效的空间特征图输入全局平均池化和最大池化,生成的特征描述符在通道上进行拼接来聚合特征图上的通道信息,可以突出信息区域[28];然后,通过卷积核大小为3,膨胀率为2的膨胀卷积对通道降维,可以对空间中需要强调或者抑制的区域信息进行编码映射,提高空间注意力的表征能力[29];最后,通过Sigmoid函数生成最终的空间注意力图。SAM模块如图5所示。

图5 SAM模块Fig.5 SAM module

SAM模块计算过程表示为

(5)

1.4 CAM模块

CAM的设计与SAM有一定的相似之处。CAM也是一个多头池化注意模块,可以使网络从不同角度关注远程依赖信息,全局平均池化和最大池化的引入可以使网络学习不同的远程依赖信息。CAM通过池化操作来并行压缩特征图的全局空间信息,全局平均池化的作用是聚合信息,最大池化主要用于将生成的通道注意力精细化,从不同的头部得到结果之后,将聚合后的信息输入共享网络以生成通道注意力图,这里的共享网络由多层感知器(multi-layer perceptron,MLP)组成,具有高度的连接性,且包含一个隐藏在输入和输出节点之间的层,在实验中将该层的缩减率固定为16。与CBAM中使用“求和”来合并输出特征量不同,本文使用标准卷积对通道上拼接后的特征进行降维。CAM模块结构如图6所示。

图6 CAM模块Fig.6 CAM module

通道注意力计算过程可以表示为

fMLP(MaxPool(F))]))

(6)

(6)式中,fMLP指的是具有一个隐藏层的多感知器,为了减少参数开销,将缩减率设置为16。

2 实验结果与分析

2.1 数据集

X光安检图像的产生是利用X射线的穿透性、光电灵敏度和荧光效应[30]。目前常用的X光安检图像危险物品检测的数据集有GDXray[7]、OPIXray[31]以及SIXray[27]。GDXray中部分图像包含手枪、飞镖和剃须刀刀片,这些是包含很少背景干扰的灰度图像,且每幅图像中通常只有一个物体,检测比较简单,但是与实际场景有一定差距;OPIXray包含折叠刀、直刀、剪刀、美工刀和多功能小刀,都是刀的不同形状,不利于对其他种类危险物品的检测;SIXray包含1 059 231张X光图像,手工注释6类危险物品:枪、刀、扳手、钳子、剪刀和锤子,共8 929张图像。图7是SIXray数据集中每一类危险物品的样本示例。相对于其他数据集而言,SIXray中危险物品的种类和数量满足网络对数据集的要求,一幅图像除了包含一个危险物品以外,还包含不同种类的多个危险物品,或者相同种类的多个危险物品,所以将其作为本文研究的基准。由于“锤子”只有60个样本,样本数量远远少于其他危险物品,因此,实验中将其去除。

图7 SIXray数据集包含的种类Fig.7 Categories contained in SIXray data set

2.2 实验设置

本文模型基于pytorch开源深度学习库,实验训练使用的是RTX 3090,将batch size设置为16,且初始化学习速率为0.001。模型优化方法采用随机梯度下降(stochastic gradient descent,SGD),动量设置为0.937,权重衰减设置为0.000 5,设置最大训练epoch为110。SIXray数据集中相同的危险物品在图像中的大小各不相同,而YOLOv3-SPP中的3个检测分支可以有效地检测不同尺寸目标的关键特征,由此,本实验选择YOLOv3-SPP作为基准模型,实验中一共训练5个模型。加入注意力机制时,权重文件无法使用,所以在训练时没有使用权重文件,而是直接训练所有的卷积层。

2.3 实验结果分析

实验中采用COCO评价指标,比较了MSE模块和MFGA模块与基准网络不同融合方法的性能,展现了本文提出的注意力融合网络模型在中等目标和大目标上的良好性能。表1是这5个模型在SIXray数据集上的实验结果对比。表1中,“RIoU=0.5:0.95”表示对0.5~0.95之间10个交并比(intersection over union,IoU)RIoU阈值上分别求取平均精度均值(mean average precision,mAP)PmAP,再对每一个RIoU阈值所对应的mAP求平均。由于目标在图像中的尺寸可能不同,实验中对不同大小目标的检测精度都进行了统计分析,表1中“S,M,L”分别表示小目标,中等目标和大目标。实验结果表明,与基准网络YOLOv3-SPP相比,本文提出的注意力融合网络在总体检测精度上提升了1.4百分点,中等目标和大目标均提升了1.7百分点。在召回率(RAR)上,中等目标提升了2.1百分点,大目标提升了2.6百分点,有效地证明了本文的方法在中等目标和大目标检测上具有良好优势。表2是“IoU=0.5”时每个类别的性能。从表2可以看出,本文提出的注意力机制在每个类别上都有一定的性能提升,其中对“刀”的检测性能提升了0.66百分点,“枪”的检测性能提升了0.36百分点,“扳手”的检测性能提升了0.77百分点,“钳子”的检测性能提升了1.76百分点,“剪刀”的检测性能提升了2.3百分点。

表1 在SIXray测试集上本文方法与其他方法的结果对比Tab.1 The results of this method are compared with those of other methods on SIXray test set %

表2 在SIXray测试集上本文方法与其他方法在IoU=0.5的分类结果对比Tab.2 On the SIXray test set the classification results of this method and other methods in IoU=0.5 are compared %

特征融合主要用局部特征来弥补全局特征中缺少的关键特征,是一种深层次的融合。YOLOv3-SPP在单次向前传递中需要117.0 GFLOPS的计算量,而所提出的注意力融合网络的计算量相对于YOLOv3-SPP增加了2.2百分点,但在RIoU=0.5:0.95和RIoU=0.75的检测精度均超过了YOLOv3-SPP。总的来说,在特征融合过程中会存在少许的计算量增加,但是这种计算量的增加并不会对网络整体的识别效率造成太大的影响,同时还提高了对危险物品的检测精度。

2.4 消融研究

2.4.1 MSE模块

实验只保留SE和MSE模块,依然将该模块融入主干网络和SPP模块后,在SIXray数据集上进行测试,一共设计3组实验,结果如表3所示。由表3可知,网络的总体检测精度提升了0.5%,小目标和中等目标稍有下降,但是在大目标上提升了1.5百分点,在中等目标的召回率上提升了0.9百分点,大目标的召回率提升了2.2百分点。这是由于该模块在计算注意力的过程中是将每个通道的像素值求平均和最大之后进行的,对大尺度目标有效,但是对于小尺度的目标来说效果较差。由此可以看出,使用平均池化和最大池化在一定程度上能够提高模型的检测精度。

2.4.2 MFGA模块

在基准网络中只保留CBAM和MFGA模块,依然将该模块分别融入3个检测分支中,在SIXray数据集上进行测试,设计了3组实验,结果如表4所示。由表4可知,在检测精度上,网络的检测性能提高了0.8百分点,中等目标提升了1.6百分点,大目标上提升了0.9百分点;在召回率上,小目标提升了1.1百分点,中等目标上提升了1.9百分点,大目标上提升了1.2百分点。对危险物品检测的召回率的提升,表明了MFGA模块对包含危险物品的图片的检测具有比较好的潜力。

表3 在SIXray测试集上MSE模块与其他方法的结果对比Tab.3 Comparison of results of MSE module and other methods on SIXray test set %

表4 在SIXray测试集上MFGA模块与其他方法的结果对比Tab.4 Comparison of results of MFGA and other methods on SIXray test set %

3 结束语

本文应用基于注意力机制的目标检测模型对X光安检图像危险物品进行检测。为了提高检测性能,本文提出将通道和空间注意力信息融合以提升特征表示能力的目标检测方法。通过以YOLOv3-SPP网络为基础框架,设计了2个不同的注意力模块:MSE和MFGA模块。MSE模块能够有效地利用特征图之间的通道信息,使得浅层特征中包含危险物品的目标区域得到增强;MFGA模块的空间注意力分支中采用膨胀卷积扩大感受野,这样可以有效地利用上下文信息来构建比标准卷积更有效的空间特征图,能够在预测前细化全局特征和相关局部特征组成的最后特征。在公开的SIXray数据集上进行实验表明,本文提出的方法能够有效地提高中等目标和大目标的检测效果。

猜你喜欢

危险物品池化注意力
面向神经网络池化层的灵活高效硬件设计
基于Sobel算子的池化算法设计
南昌市青山湖区危险物品安全生产形势分析与对策
探索陪护参与危险物品管理在青少年非自杀性自伤行为护理中应用价值
让注意力“飞”回来
卷积神经网络中的自适应加权池化
危险物品
基于卷积神经网络和池化算法的表情识别研究
危险物品储存和运输安全
“扬眼”APP:让注意力“变现”