APP下载

基于深度学习的X光地铁危险物品检测算法

2021-11-24都昌平薛翔天章品正於文雪王世杰

中国体视学与图像分析 2021年3期
关键词:池化注意力卷积

程 林, 柏 杨, 都昌平,薛翔天,章品正,於文雪,王世杰,陈 阳,

(1.东南大学 财务处, 南京 210096;2.东南大学 网络空间安全学院,南京 210096;3.东南大学 计算机科学与工程学院,南京 210096)

0 引言

地铁安检[1]极大地影响着社会安全,智能安检可以节省大量人力,提高效率。智能安检属于图像领域中的目标检测[2]任务,而目标检测可以看作分类与回归两个经典问题。首先对位置进行精确定位,然后对定位目标分类。目前的目标检测分为传统方法目标检测与深度学习[3]方法目标检测。而对于安检任务,由于场景复杂性更高及实时性要求更高,相对于普通检测任务提出了更高的要求。

传统目标检测方法主要分为滑动窗口、特征提取和分类器分类三个步骤。给定一张图像,首先使用滑动窗口对图像遍历,筛选出候选框,再使用传统计算机视觉方法如基于颜色、基于形状、基于纹理的方法对候选框中信息进行特征提取。最后使用已经训练好的分类器对目标进行分类,在分类时若是单目标分类只需判断检测框内有无目标,若是多目标分类则需进一步判断目标所属类别。若检测目标同时存在多个重叠检测框,则需要使用算法进行检测框消除,留下一个最精确的检测框。传统的目标检测算法有两大缺点,首先使用滑动窗口筛选候选框的过程非常耗时,其次手工设计的特征只能用特征场景,鲁棒性差。

随着深度学习迅速发展,在计算机视觉方向的创新层出不穷,目标检测方向的发展也日新月异。基于深度学习的目标检测方法主要分为一阶段目标检测算法与二阶段目标检测算法。二阶段目标检测算法在第一阶段生成候选框,第二阶段对候选框内目标进行分类与回归。一阶段目标检测算法则直接在特征图上进行检测。2014年,Ross B.Girshick等[4]设计了R-CNN二阶段目标检测框架,使用卷积神经网络提取特征代替传统目标检测中手工设计特征,将深度学习方法应用到目标检测中;随后,Fast R-CNN[5]框架被开发出来,相较于R-CNN,Fast R-CNN把边框回归融入了神经网络内部,使得特征提取和分类回归任务都由神经网络完成,但候选框生成依然使用传统方法。因此,Faster R-CNN[6]应运而生,提出RPN网络,将生成候选框过程也交给神经网络,使整个过程成为一个多任务模型,极大提高了检测效率。虽然Faster R-CNN在检测精度有一定优势,但并不能解决实时性问题。2016年,Joseph Redmon等[7]提出YOLO v1一阶段目标检测框架,利用整张图作为输入,直接在图像上输出目标类别及位置;接着,YOLO v2[8]更改了特征提取网络并使用Anchor Box帮助检测,在提升速度的前提下提升了精度;然后,YOLO v3[9]使用更先进的特征提取网络和引入多尺度特征融合结构,提高小目标检测精度。最近,YOLO v4[10]和YOLO v5[11]又相继推出,在总结之前网络的结构特点的基础上,又做了进一步的改进。由于地铁安检对实时性要求较高,本文使用检测速度较高的一阶段目标检测算法作为基本模型进行研究。

1 相关工作

1.1 YOLO v5算法

YOLO系列算法直接对原图像进行特征提取,然后在特征图上分类回归。不使用区域生成算法生成候选框,因此减少了大量时间,使得检测速度加快。如图1所示,YOLO v5由特征提取网络与特征图检测网络两大网络构成。其主要的Backbone结构包括Focus结构、CPS结构、Neck结构。其中Focus结构通过添加切片操作,来提高特征提取的能力,CPS主要借鉴了YOLOv4中的CPSNet的设计思路,但与YOLOv4不同的是,这里采用了两种CPS结构分别用在不同的网络位置中。

图1 Yolo v5网络结构示意图

YOLO v5的一个基本组成单位为res unit,每个res unit是由一个残差结构和两个CBL模块组成,每个CBL模块则由一个卷积层(Convention layer)、一个批标准化层(Batch Normalization layer)和一个激活函数层(Activation layer)组成。网络对于输入416×416×3的图像,经过五次下采样后的特征图大小分别为208×208,104×104,52×52,26×26,13×13。在对图像提取特征之后,第三、第四和第五层的特征图会用来进行检测,每个特征图会预测3个检测框图,则一共会产生(76×76+38×38+19×19)×3=21 774个检测框。每个检测框预测的是目标类别及其置信度,检测框的位置信息。为融合不同尺度特征信息,使用特征金字塔进行多尺度预测。

1.2 注意力机制

注意力机制[10-11]的命名借鉴了人类视觉的选择性注意力机制,人类在看见一张图像时,会快速扫描整张图像,然后关注其感兴趣的某一部分,也就是通常所指的注意力焦点。接着对这部分区域投入更多的注意力来提取更多的细节信息,抑制其他无用信息。

深度学习的注意力机制与人类的选择性注意力机制类似,也是从众多信息中提取对当前任务更有帮助的信息,将不同的特征分配权值,然后关注权值较高的特征。按照注意力机制的形式分类,可以分为软注意力机制和硬注意力机制。当注意力机制用于图像描述任务中时,注意力机制模块所要处理的信息包含明确的项序列S={S1,S2,…,St},硬注意力机制是选择某些输入信息,对其进行进一步处理,而软注意力机制则是将输入信息根据权值加权输入到神经网络中。这样可以分离出重要信息,并避免这些信息受到不重要信息的干扰,从而提高准确性。随着不同信息之间相互作用的复杂度的降低,学习就变得越有效。硬注意力机制有时会损失一些重要信息,因此,现在通常使用软注意力机制。

在卷积神经网络中,核心计算是卷积算子,通过卷积核在特征图中学习到新的特征。从根本上说,卷积操作是对空间上和通道间的局部信息进行特征融合。对于卷积操作,很多改进工作是提高感受野,融合更多的空间信息,而对于通道上的信息则默认全部等量融合,使得很多无用的通道信息融入到特征图中。Hu Jie等[14]提出的挤压与激励模型(Squeeze-and-Excitation Net, SENet)关注通道间的关系,学习通道间的相关性,计算通道的重要程度,这种算法是作用在通道上的软注意力机制。Woo等[16]提出的通道与空间注意力模块(Convolutional Block Attention Module, CBAM)则同时关注通道与空间,最后计算得到权重。

1.3 Focal Loss算法

Focal Loss损失函数的提出是为了解决一阶段目标检测算法中正负样本和难易样本不均衡的问题。在一张图像上,目标部分称为正样本,其余部分称为负样本;对于易于分类的样本称为易样本,其余称为难样本。一张图像的特点是负样本和易样本多,造成严重的不均衡。对于二阶段目标检测任务,可以在生成候选框阶段,通过非最大值抑制过滤大部分负样本和易样本,而一阶段目标检测任务没有候选框生成阶段,无法直接过滤。Focal Loss的主要作用就是通过降低负样本和易样本的权重并提高正样本的权重来提升检测精度。Focal Loss损失函数是在交叉熵损失函数基础上做的修改,对于交叉熵损失函数,以二分类为例:

(1)

式中,p′代表输出,从公式中可以看出,对于普通的交叉熵损失函数,负样本输出概率越小损失越小,在大量简单样本中训练更迭可能无法达到最优解。

为解决正负样本不平衡的问题,首先引入第一个平衡因子α,即:

(2)

加入平衡因子后,可以较好平衡正负样本,但是对于难易样本的平衡没有帮助,此时引入第二个平衡因子γ,最终公式为:

(3)

在引入平衡因子α和平衡因子γ后,图像中的负样本和易样本权重得到了降低,正负样本和难易样本同时得到了平衡。实验表明,α和γ分别取0.25和2时效果最好。

2 本文方法

2.1 加入通道注意力机制的改进网络

由于Yolo v5特殊的网络结构,较小的卷积核及不需要生成候选区域(ROI),YOLO v5实时性检测效率较高。为了在不增加整体网络的深度的前提下提升检测精度,只对原来网络的残差结构进行修改,在上层特征传递下来时,通过对上层特征进行筛选,使得融合之后的残差信息降低训练损失,提升检测精度。根据Hu等[12]提出的挤压与激励模型,通道注意力机制的计算量部分都在全连接层中,会对整体的检测速度有些许影响。

一张图片通常由(R, G, B)三个通道表示出来,经过卷积的不同卷积核后,会生成一张新的通道特征图(H,W,C),C即为新的通道值,在数值上等于卷积核的数值。经过一系列卷积操作得到的特征图,通常认为每个通道都是同等重要的,但是每个通道的重要性不同,因此每个通道需要各自的重要性权值。重要性权值乘以通道原来的值,得到最终的特征图。新的特征图更关注目标任务的区域,更容易检测目标物体。

全局平均池化由Chen Q[13]等提出,是一种特殊的池化层,对整张特征图进行池化,最终得到一个值。通道注意力模块通过对特征图各个通道间的相关性进行建模,以提高对重要特征的表达能力。首先,将上层特征经过全局池化,得到通道级的全局特征;其次,使用两个全连接层和Sigmoid激活函数对通道间的相关性进行建模;最后,将原来通道信息与建模后得到的权重相乘得到最终特征图。通道注意力模块可以让模型关注信息量大的通道特征,抑制不重要的通道特征。

图2 基于残差结构的通道注意力机制示意图

2.2 加入通道和空间注意力机制的改进网络

通道注意力机制在通道维度上对特征进行了筛选加权,提升了其检测性能。根据Woo等[14]在CBAM中所提出的观点,除了全局平均池化外,全局最大池化同样也能对特征的筛选起到帮助,因此引入的通道注意力机制需要同时考虑两种池化操作。根据 Zagoruyko等的研究发现,沿着通道方向使用池化操作可以突出有效区域中的信息。除此之外,Woo 等认为,特征在空间上的关系同样可以用来进行建模,用以补充通道注意力机制无法较好获取的位置关系信息。在此基础上,进一步加入空间注意力机制,整个注意力模块同时对通道以及空间的特征信息进行筛选。为了达到最佳的筛选效果,并且为了获得最佳的注意力模块组合顺序。不同的注意力机制模块都能提升分类的准确率,但性能最佳的组合顺序是 CBAM 中通道注意力模块直接连接空间注意力模块的方法。首先,这是由于 CBAM 模型在通道注意力模块中加入了全局最大池化操作,它能在一定程度上弥补全局平均池化所丢失的信息。其次,生成的二维空间注意力图使用卷积核大小为7的卷积层进行编码,较大的卷积核对于保留重要空间区域有良好的帮助。

在经过残差网络结构的输出之后,经过全局平均池化和全局最大池化两种操作之后,合并送入全连接层中;经过特征加权和激活函数之后,送入空间注意力模块中;继续进行全局平均池化和全局最大池化操作,把两者的输出叠加得到特征因子;然后经过卷积层把特征编码;最后对不同的特征加权。这样的改动不仅可以在分类网络中提供帮助,还能在检测网络中使得网络更快寻找到目标所在位置。通道注意力与空间注意力机制模块示意如图3所示。

图3 基于残差结构的通道注意力机制及空间注意力机制示意图

3 实验训练及详细设置

3.1 数据采集与预处理

实验所用数据为地铁安检机自采集数据,经由后续处理制作而成。将通过安检机的影像投影在终端中并保存下来,然后使用传统图像处理方法将视频处理为图片,最后通过裁剪等操作把图片处理为适合深度学习图像。使用LabelImg软件对图片进行标注,对需要检测的物品制作标签。数据集包含8种物品,其中包括3种危险物品与5种生活中常见的非危险物品。物品种类及包含数量如图4所示。

图4 数据集中每个类别目标数统计

为了保证模型的鲁棒性,需要对数据进行一定的数据增强。对于检测任务来说,不能直接对图像进行旋转、平移、翻转等传统数据增强方法。因为,在对图像进行操作时,目标的位置会进行变动,即目标的边界框会发生改变。本实验在对图像进行数据增强时,同时使用算法对目标边界进行修改,使图像在进行旋转、平移、反转等操作时,目标一直保存在框中。具体设置如表1所示。

表1 训练时采用的数据增强

3.2 实验结果与分析

目标检测常用评价指标为mAP(mean Average Precision)值,对于普通的二分类任务,可以将预测分为四种情况:True Positive(TP):实际为正例且被分类器划分为正例的实例数;False Positive(FN):实际为负例但被分类器划分为正例的实例数;True Negative(TN):实际为负例且被分类器划分为负例的实例数;False Negative(FN):实际为正例但被划分为负例的实例数。P为Precision代表准确率,R为Recall代表召回率,

(4)

(5)

对于Precision和Recall,当IoU(Intersection over Union)阈值选取不同值时,会得到不同的Precision和Recall值,以Precision和Recall值为纵轴和横轴可以得到一条R-P曲线,R-P曲线与两条坐标轴围成的面积即为AP值,对于目标检测任务,往往是多目标检测,将每一类AP值加一起取平均值即为最终的mAP值。

(6)

使用mAP评价指标可以对整体模型进行客观评价。

本实验提出算法模型共三种,为方便统计,Yolo-F为在原模型的基础上结合Focal Loss的模型,Yolo-F-AS为在Yolo-F的基础上添加通道注意力机制的模型,Yolo-F-AC为在Yolo-F的基础上添加通道与空间注意力机制的模型。三种模型的具体指标汇总如表2所示。

表2 三种模型的具体汇总

本实验不使用预训练模型,即所有模型从头进行训练。设置所有训练迭代轮数为2000轮,网络的输入尺寸固定为416×416,初始学习率设置为0.001,权重衰减设置为0.005,优化方法为Adam。本实验使用显卡为GTX 1080Ti,Batchsize设为16,当模型的各项损失及mAP没有显著变化时,停止训练并寻找性能最佳的训练轮数。预训练虽然能够帮助加速模型收敛,但由于没有适用加入注意力机制的预训练模型,所以本实验均不使用预训练模型以保证实验的公平性。同时,为了使模型在不同分辨率下具有强鲁棒性,采用多尺度训练方法,每经过10次迭代以32为间隔从320~608这10个输入大小选择一个新的尺寸作为网络的输入进行训练。实验结果表明,在加入Focal Loss损失函数和注意力机制之后,模型相较于之前都有了较大的提升。其中,同时加入通道注意力和空间注意力机制,比只加入通道注意力机制的效果要好,由于Focal Loss损失函数是在损失函数上做的改进,相较于改进之前参数量并没有增加,而添加注意力机制之后参数量增加有限,仍然是实时的目标检测算法。在提高检测精度的前提下保证了检测的实时性,达到了较好的平衡,因此,在对精度和实时性要求较高的安检项目中得到了广泛应用。

表3 三种模型分别在验证集上的mAP值

从图5可以看出,在改进之前模型会将背包拉链错误的检测为其他物品,在加入通道注意力机制之后,没有将拉链错误检测但是将拉扣错误检测为特征相似的剪刀,在加入通道与空间注意力机制之后,物品全部正确识别,没有出现错误检测。

图5 三种模型检测效果图

4 结论

本文提出一种将注意力机制、Focal Loss与YOLO V5结合的地铁安检算法,以较小的速度损失换来检测精度的提升。其主要思想是在保持一阶段目标检测快速检测的前提下,通过改进特征提取网络中残差结构,提取更完善的特征信息,并传递到下面的网络结构中。同等条件下,精度比传统的YOLO V4和YOLO V5算法有了改善。但是本实验只考虑了软注意力机制,没有对硬注意力机制过多关注,这是下一步工作准备解决的问题。

猜你喜欢

池化注意力卷积
基于Sobel算子的池化算法设计
让注意力“飞”回来
卷积神经网络中的自适应加权池化
设施蔬菜病害识别中的CNN池化选择
基于3D-Winograd的快速卷积算法设计及FPGA实现
从滤波器理解卷积
基于卷积神经网络和池化算法的表情识别研究
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things