APP下载

结合异常检测的X射线安检图像识别方法

2021-10-08杨子固李海芳刘剑超王飞龙

科学技术与工程 2021年26期
关键词:危险品X射线头部

杨子固, 李海芳, 刘剑超, 王飞龙, 李 钢

(1.太原理工大学信息与计算机学院, 晋中 030600; 2.太原理工大学大数据学院, 晋中 030600; 3. 太原理工大学软件学院, 晋中 030600)

安检是保护社会公共安全的一道重要防线,由于行业的特殊性,其不仅具有较高的准确性要求,同时也具有严苛的实时性需求。在安检领域,一般使用X射线安检机对包裹进行扫描,生成伪彩色透视图像[1],并通过人工对该图像的观察,识别包裹中是否存在危险品。然而,人工检查受各种不确定因素的影响较大,安检质量难以得到保证,容易发生漏检和误检[2],进而影响公共安全。

近几年随着深度学习技术的发展,其在计算机视觉领域的应用[3-4]越来越广泛,利用深度学习方法对X射线安检图像进行分类和危险品检测逐渐成为该领域的研究热点和难点。深度学习中的目标检测方法不仅能自动识别出X射线安检图像中的危险品类别,还可以定位危险品在图像中的位置。当其从图像中检测到一个或多个危险品时,即可认为该图像属于异常图像;反之,则为正常图像。因此,将目标检测方法用于X射线安检图像的自动识别,对于提高安检水平具有重要研究价值和社会意义。

目标检测方法可分为两种,一种是传统的基于滑动窗口的方法,一种是基于区域选择的检测方法[5]。传统的基于滑动窗口的检测方法是一种密集采样法,其主要思路是使用一个检测框从图像中裁剪出不同大小的图像块,使用方向梯度直方图(histogram of oriented gradient,HOG)等算子[6]或卷积神经网络[7]对裁剪出的图像块提取特征,再通过支持向量机等分类器进行分类。这类方法需要大量时间对图像块重复提取特征,计算成本较大。基于区域选择的方法首先从图像中选取兴趣区域(region of interest,RoI),再进行特征提取和分类,这样避免了基于滑动窗口的目标检测方法密集采样的过程,减少了计算量。Girshick等[8]提出一种多阶段的目标检测模型R-CNN(regions with CNN features),该模型首先使用选择性搜索从图像中提取兴趣区域,然后通过卷积神经网络对兴趣区域进行特征提取,最后使用训练的分类器和回归器分别预测其类别和位置,取得了较好的效果。在其更进一步的工作中,Girshick[9]提出了Fast R-CNN,通过对整个图像进行卷积,避免了R-CNN重复提取特征的过程,并引入兴趣区域池化(RoIPooling),使得后续的分类和回归可以处理任意大小的输入。Ren等[10]考虑到选择性搜索算法运行速度慢的问题,提出了Faster R-CNN,该模型通过区域建议生成网络(region of proposal network,RPN)生成兴趣区域,大大提高了模型性能和运行速度。

Akcay等[11-12]详尽地探索了目标检测方法在X射线安检图像自动检测领域的应用,其通过实验证明基于区域选择的目标检测算法与基于滑动窗口的目标检测算法相比,具有更强的适用性。Gaus等[13]等考虑X射线安检图像中电子产品、液体等物体潜在的危险性,提出了一种双重卷积神经网络,该网络利用Faster R-CNN等目标检测方法检测图像中潜在的危险品,并对检测到的潜在危险品,使用一个子网络进行异常检测,将其分类为正常或者异常。实验结果表明,尽管检测精度有所提高,但误报率同样较高。康佳楠等[14]针对安检X射线图像检测中的违禁品尺度差异问题,对Faster R-CNN网络进行改进,提出一种基于多通道区域建议网络,提高了识别精度。张震等[15]针对传统的SSD(single shot multiBox detector)算法在检测小目标容易漏检且检测精度不高的问题,提出了一种改进SSD的算法,提高了X射线安检图像中小目标的检测精度。何彦辉等[16]考虑不同厂商、不同X射线机产生的图像之间的差异,以Faster R-CNN为基础,提出了一种基于上下文的透射率自适应域对齐算法,一定程度上解决了目标检测算法在不同于训练域数据的测试域中精度下降的问题。

然而,以上将目标检测方法应用到X射线安检图像的自动识别技术依然存在精度不高、速度欠佳等缺陷,无法大规模投入行业应用。目标检测方法是一种全监督方法,在训练时需要将异常图像和图像中所包含危险品的标注图像共同输入到网络中,但在实际安检场景中,不仅需要对异常图像进行检测,还需要有效区分正常图像和异常图像。此类目标检测方法的训练域和测试域存在数据分布不一致的问题。这导致其无法有效学习到正常图像的特征,容易将正常图像识别为带危险品的异常图像,发生误检。通常,误检率是指模型对正常图像数据集进行识别时发生误检的图像数量占所有正常图像的比例。本文研究通过实验测试得知,Faster R-CNN经过对2 405张包含异常图像的数据集训练后,对正常图像的误检率达到了27.83%。而在实际安检过程中,绝大多数X射线安检图像都属于正常图像,在这样的应用背景下,目标检测方法对于正常图像的正确识别,即对正常图像和异常图像的正确分类,无疑是非常重要的环节。Faster R-CNN的显然无法满足实际的安检需求。

1 Faster R-CNN

Faster R-CNN是Ren等[10]提出来的两阶段目标检测网络,其结构如图1所示。该网络主要由骨干网络、区域建议生成网络(region of proposal network,RPN)、兴趣区域池化层(RoIPooling)、分类和回归头部4部分组成。

图1 Faster R-CNN结构图Fig.1 The structure of Faster R-CNN

Faster R-CNN采用网络VGG16[17]作为骨干网络,后被性能更强的ResNet50[18]取代,ResNet50由4组残差块组成,分别命名为{res2, res3, res4, res5},残差块的结构如图2所示。在残差块中,由于引入了跳跃连接,直接将输入与输出相加,缓解了深度神经网络的退化问题,使神经网络可以达到更深的层数,提高整个模型的特征拟合能力。Faster R-CNN前向传播的过程中,预处理后的图片经过骨干网络后,将res4残差块输出的1 024维的特征图输入到后续的RPN网络中,用于进一步的特征提取。

图2 残差块结构Fig.2 The structure of residual block

RPN是一个包含两个分支的全卷积神经网络,用于生成区域建议。该网络通过卷积层,生成一组具有不同比例和大小的锚框,并预测每个锚框所包含潜在对象的边界框坐标以及表示该区域是前景还是背景的概率分数,并基于此,计算出不同大小、不同形状的区域建议。

由于后续的分类和回归头部需要固定大小的输入特征向量,RPN计算输出的区域建议首先经过RoIPooling,将不同形状、不同大小的区域固定为14×14大小的特征图。然后将该特征图输入到res5残差块,增强特征图中的语义信息,并输出7×7大小的特征向量。随后,该特征向量被输入到分类和回归头部,分类区域建议中的目标,并做进一步的边框回归。

2 前置预分类头部的X射线图像检测网络

为了解决Faster R-CNN训练域和测试域数据分布不一致的问题,提出一种前置预分类头部的X射线安检图像检测网络(pre-classification Faster R-CNN,PC-Faster R-CNN),其整体结构如图3所示。首先针对Faster R-CNN无法学习到正常图像的特征的缺点,新增了一个共享backbone的预分类头部(pre-classification module,PCM),在训练时,该头部可以同时接受无标注的正常图像和有标注的异常图像,学习正常图像和异常图像的特征差异,对正常图像进行区分。同时,使用RoIAlign[19]替代Faster R-CNN中原始的RoIPooling层,解决RoIPooling对兴趣区域池化时引入的量化误差,提高Faster R-CNN的检测性能。

c为危险品类别数量;d为维度图3 PC-Faster R-CNN结构图Fig.3 PC-Faster R-CNN structure diagram

在进行检测时,新模型首先通过预分类头部完成对正常图像和异常图像的二分类。当预分类头部检测到异常图像时,再将骨干网络提取的特征输入到后续的RPN网络中,对图像中的危险品的类别和位置进行识别。

2.1 预分类头部

为了解决Faster R-CNN训练集和测试集数据分布不一致的问题,在骨干网络后新增一个预分类头部,学习正常图像的特征,实现对正常图像和异常图像的二分类。在卷积神经网络中,浅层卷积层提取的特征一般为较低级的轮廓特征,分辨率较高,但与任务相关的语义信息较少;而深层卷积层提取的特征分辨率较低,但语义信息较为丰富[20]。这使得预分类头部可以共享骨干网络中较浅层卷积层提取的轮廓特征。同时,由于图像分类和目标检测属于不同的任务,Faster R-CNN的骨干网络提取的特征图无法直接用于图像分类。因此在预分类头部中新增一组残差块res6,进一步提取与分类任务相关的高级语义信息。预分类头部的结构如表1所示。为了减少计算量,首先通过一个1×1卷积层对骨干网络输出的特征图进行降维,经过res6后,产生1 024维的特征图。该特征图经全局平均池化后,输出1 024维的特征向量。最后,通过全连接层进行预测分类,输出2维的特征向量,表示正常/异常图像的概率。

表1 预分类头部的结构Table 1 The structure of pre-classification module

2.2 RoIAlign

在RPN网络中,会计算不同大小、不同形状的区域建议,其坐标值一般为浮点数,无法直接求得该坐标处的特征值。由于分类和回归头部需要固定大小的输入,Girshick等[9]受SPP-Net[21]启发,引入了RoIPooling,将RPN输出的区域建议池化为固定尺寸的特征图。RoIPooling首先将区域建议的浮点数坐标量化为整数坐标,并将量化后的区域建议平均分割为k×k单元,每个单元的坐标同样为浮点数。接着,RoIPooling再次对每个单元的坐标进行量化,并对每个单元区域做最大池化。因此,在RoIPooling的过程中,引入了两次量化误差,使得RPN计算区域建议产生错位。

为了避免RoIPooling引入了量化误差,He等[19]提出了RoIAlign。RoIAlign在操作的过程中,取消了对区域建议和区域建议分割而成的单元坐标的量化,而是使用双线性直插法直接计算浮点数坐标处的值,避免了RoIPooling导致的区域建议发生错位。RoIAlign的伪代码如下所示。

“重写文学史”虽然在文学史上有着重要意义,但是在一定历史条件之下不可避免带有局限性。有学者重新评价了十七年文学的代表作之一——柳青的《创业史》,然而这篇文章主要缺点便在于把历史过于简单化。它试图从创业史的整体结构和小说内容出发,对人物的设置以阶级分析的眼光看待,从而得出了《创业史》是以狭隘的阶级分析理论配置各式人物,作品的情节展开与人物之间的矛盾线索便被安排在阶级、阶层等矛盾基础上,使得一切都好似精心安排。

算法 RoIAlign

3 实验

为了测试本文研究中所提模型的有效性,主要开展了以下两方面的实验:异常检测实验和威胁品检测实验。通过异常检测实验测试新模型对于正常图像和异常图像的识别性能;通过威胁品检测试验测试新模型对异常图像进行目标检测的性能。

所用数据集来自公开数据集,共包含以下两种图像:不包含危险品的正常图像5 540张,包含危险品的异常图像3 006张。在异常图像中,共包含以下5类危险品:铁壳打火机、黑钉打火机、刀具、电池电容以及剪刀,如表2所示。在训练时,按照8∶2的比例随机划分训练集和测试集。

表2 5类危险品X射线成像示例Table 2 Examples of five types of dangerous goods X-ray imaging

实验平台的操作系统为 Ubuntu18.04,CPU为AMD R9-3900X,GPU为单张RTX 2080ti。实验环境为python3.8,深度学习框架采用pytorch1.6。在训练PC-Faster R-CNN时,采用两阶段训练法。首先对原始的Faster R-CNN进行训练,并保存其训练的权重文件,待Faster R-CNN训练完毕后,固定Faster R-CNN其他部分的权重,以单独对预分类头部进行训练。

对于异常检测实验,采用以下指标进行评价:准确率Accuracy、精确率Precision、召回率Recall和假阳性(false positive,FP)。其中,假阳性即为模型对正常图像的误检率。计算方式如下:

(1)

(2)

(3)

式中:TP(true positive)为真阳性;TN(true negative)为真阴性;FN(false negative)为假阴性。

对于威胁检测实验,采用mAP (mean average precision)[22]作为评价指标。mAP表示多个类别之间的检测平均精度,是目标检测领域衡量模型检测精度的常用指标,计算方式如下:

(4)

式(4)中:c为数据集中危险品的类别数;APc为模型对每个类别的平均检测精度。

3.1 异常检测实验

在异常检测领域中,误检一般定义为将正常图像识别为异常图像。本实验对PC-Faster R-CNN的正常图像识别能力进行测试,即测试新模型对于正常图像和异常图像的分类性能,并与原始的Faster R-CNN进行对比,验证本模型的有效性。由于Faster R-CNN属于目标检测模型,将其用于图像级的分类任务时,本实验规定如下:当Faster R-CNN在图像中检测到危险品时,无论数量多少,都将其视为带危险品的异常图像;当其无法在输入图像中检测到任意一个危险品时,即视为正常图像。结果如表3所示。

表3 异常检测实验结果Table 3 Anomaly detection experiment results

由表3可以看出,Faster R-CNN由于在训练域和测试域数据分布不一致的问题,容易将正常图像识别为异常图像,这导致Faster R-CNN的准确率较低,误检率较高。而本文模型与原始的Faster R-CNN相比,在对正常图像和异常图像进行分类时,准确率提高了10.61%,精确率提高了18.25%,误检率减少了24.03%。可见,在真实的安检场景中,由于绝大多数包裹都不包括危险品,将Faster R-CNN直接用于X射线安检过程中,会导致较高的误检率,无法满足实际需求。在新增预分类头部后,误报率有较大的下降,同时提升检测的准确率和精确率。

3.2 威胁检测实验

为了验证RoIAlign对于Faster R-CNN的有效性,首先将新模型与原始的Faster R-CNN进行比较,并与另一种的经典的目标检测算法YOLOv3[23]进行对比开展实验。训练超参数设置如下:初始学习率为0.02,batchsize为8,权重衰减为0.000 5。实验结果如表4所示。

表4 不同模型的检测准确率Table 4 Average accuracy of different models

从表4可以看出,Faster R-CNN 与YOLOv3性能相近,对各类危险品的检测精度均比较低。而本文模型与Faster R-CNN相比,mAP由48.30%提高至57.33%。对比原始的Faster R-CNN,新模型由于引入了RoIAlign,避免了RoIPooling引入的量化误差,使得检测性能获得较大幅度提升。

3.3 检测效率实验

为了测试本文模型的检测效率,首先测试了PC-Faster R-CNN分别检测单张正常图像与异常图像时的平均用时,并与Faster R-CNN进行比较。同时为了模拟真实的安检场景,随机从数据集中选取50张正常图像和50张危险图像,分别使用本文模型和Faster R-CNN进行检测,计算二者的总检测时间,共开展了5次模拟实验。实验结果分别如表5和表6所示。

表5 单张图像检测平均用时Table 5 Average time spent for single image detection

表6 5次模拟实验检测用时Table 6 Time for the five simulated experiments

实验结果表明,对于正常图像,本文模型由于加入了预分类头部,极大地提高了检测速度;对于单张图像的检测时间,由原来的0.184 3 s缩短至0.011 3 s。而对于异常图像,本文模型与原始的Faster R-CNN相比,在前向传播的过程中,由于增加了预分类头部中的计算,时间成本仅增加了0.001 7s。在5次真实场景模拟实验中,Faster R-CNN检测100张X射线安检图像的平均用时为18.32 s,本文模型的平均用时为10.16 s,效率提高了44.54%。

4 结论

针对Faster R-CNN训练域和测试域数据分布不一致而导致误检率过高的问题,提出了一种结合异常检测的X射线安检图像检测模型PC-Faster R-CNN。通过实验可以得出如下结论。

(1)本文模型在Faster R-CNN的骨干网络后新增一个预分类头部,学习正常图像的特征,有效克服了Faster R-CNN训练域和测试域数据分布的差异性问题。

(2)RoIAlign的引入,降低了RoIPooling导致的量化误差,提升了模型的检测性能。

(3)与YOLOV3、Faster R-CNN等传统神经网络相比,新模型在提高检测性能的同时,有效降低了误检率,同时大幅度提升了运行效率。

猜你喜欢

危险品X射线头部
实验室X射线管安全改造
自动驾驶走向L4 企业头部效应显现
火箭的头部为什么是圆钝形?
浅析X射线计算机断层成像的基本原理
基于虚拟观测值的X射线单脉冲星星光组合导航
是谁让危险品企业埋伏居民区?
一种新型危险品液罐车安全阀
准单色X射线机替代241Am放射源的测厚应用研究
蚝壳巧制作
敲打孩子头部会引起癫痫吗?