多通道区域建议的多尺度X光安检图像检测

2022-01-22 07:46康佳楠
计算机工程与应用 2022年1期
关键词:违禁品卷积特征

康佳楠,张 良

中国民航大学电子信息与自动化学院,天津 300300

交通运输工具的飞速发展使人们出行越来越方便,每天都有大量的人选择飞机、火车、地铁、汽车等交通工具,在运输过程中一些匕首、枪支、弹药等违禁品可能藏匿于行李中,而维护公共场所的安全显得尤为重要。目前,在火车站、飞机场、地铁站等都设置了X光安检机用来检测违禁品。但是,检测到的X光图片需要安检员用肉眼进行识别,在有限的时间内检查紧凑、杂乱和高度变化的行李会给安检员带来巨大的压力,出现误检、漏检的情况,所以急需一种技术能够快速、准确地自动检测到旅客行李内的违禁品。而随着大数据和人工智能时代的到来,目标检测已然成为计算机视觉领域中的研究热点,现广泛应用于智能交通、行人检测[1-2]、人脸识别[3-4]、视频监控[5]、医学诊断[6]、军事国防[7]等领域。所以将目标检测应用到智能安检中已是大势所趋,既可减轻安检人员的任务,又可提高安检的精确度和效率。

目标检测的传统算法一般分为三个阶段:首先在图像上选择候选区域,然后利用HOG、SIFT等手工提取特征[8]的方法进行特征提取,最后用训练的分类器进行分类。基于深度学习的目标检测算法主要分为两大类:一类是基于候选区域的两阶段算法,包括RCNN、SPP-Net、Fast RCNN 和Fster RCNN 等;另一类是一阶段的目标检测算法,包括YOLO 系列、SSD、RetinaNet、FCOS 等。2014年,Girshick等人[9]提出了RCNN算法,首先用选择性搜索算法(selective search)生成候选区域,然后在每个候选区域上都运行卷积运算,再将输出送入支持向量机(SVM)进行分类,送入线性回归器进行回归,最后再进行定位。接着,He 等人[10]提出SPP-Net,引入空间金字塔池化层,可以对任意大小的候选框进行处理,但是只对原图进行一次卷积,节省了时间,提高了速度。2015 年,Girshick 等人[11]结合RCNN 和SPP-Net 的缺点,提出了Fast RCNN,该算法先进行特征提取,再对整个图像进行一次卷积,把支持向量机换成softmax层,但是依然用选择性搜索区域算法生成候选区域,因此还是比较耗时,运行速度慢,而且无法实现端到端的测试。所以,2015 年Ren 等人[12]在Fast RCNN 的基础上提出了Faster RCNN,引入region proposal 网络(RPN)生成候选区域。2016年,提出了YOLO系列算法,包括YOLO、YOLOV2、YOLOV3,YOLO 算法在检测速度上得到了很大的提高,但是在精度上有所欠缺。所以,2016 年,Liu 等人[13]又提出了SSD 网络,该网络可以在多个分辨率的特征图上进行检测,在一定程度上解决了多尺度问题,同时也提高了速度,但是对于一些小目标对应于特征图中很小的区域,还是无法得到充分训练。2018年,Facebook AI团队提出了RetinaNet;随后,2019年,阿德莱德大学团队又提出了全卷积网络FCO,该网络是逐像素预测,类似于语义分割,使得检测精度进一步提高。

针对安检中X光图像的检测,Cha等人[14]提出一种可以产生中间的过程序列的方法,即采用仿射变换和交叉溶解相结合,但是在一定程度上会使图像失真。董浩等人[15]提出了多视角X射线图像分析算法,但是对复杂多变的行李检测效果不好。Riffo 等人[16]提出自适应隐式形状模型(adapted implicit shape model,AISM),但是违禁品的姿态各异,难以分辨,Riffo 等人[17]又提出主动视觉方法,利用Q-learning 算法预测违禁品的下一最佳视角。

但是,把目标检测用到智能安检中也存在很多难点,比如X光图片中违禁品有各种类别,多种形状,尺度不一,所以在检测中具有一定的难度。Faster RCNN本身是基于单层次特征提取的目标检测算法,对小目标不敏感,可能会出现漏检的情况,本文通过多层特征提取和多通道区域建议,对Faster RCNN 进行了改进,以改善其在多尺度目标检测方面的性能。主要做出以下三点贡献:

(1)对Faster RCNN 的网络结构进行改进,由原来的只从最后一个卷积层提取特征变为从三层提取,利用高层的语义信息和低层的精确定位的细节信息提高小目标的精确度,从而完成多尺度检测。

(2)提出一种基于多通道区域建议网络,依据大小不同的违禁品实例构建多通道RPN,使各通道RPN 都有合适的锚框与多层提取的特征图一一对应,也使每个RPN分支基于有效感受野生成候选区域,再通过非极大值抑制算法得到合适的候选区域,然后各通道的候选区域通过感兴趣池化区域(ROI pooling)后进行通道融合,送入后续检测网络。

(3)通过在多通道上引入多分支膨胀卷积模块[18],增大了各个尺度目标的感受野,更有利于多尺度目标的检测。

1 Faster RCNN网络模型

Faster RCNN 网络主要由特征提取网络[19]、候选区域生成网络RPN和感兴趣区域池化层(ROI pooling)三部分组成。其中采用经典的VGG16作为特征提取网络的基本骨架。该网络包括13个卷积层、13个激励层和3个池化层,卷积层均采用较小的3×3 的卷积核,既可以减少参数,又可以增加网络的实时性,同时还进行较多的非线性映射,增加网络的拟合和表达能力[20]。

输入的图片经过特征提取网络提取出特征并生成特征图,送入RPN 网络生成候选区域。RPN 是一个全卷积网络,包含一个3×3的卷积层和两个全连接层。该网络与检测网络共享VGG16 提取的特征,特征图先经过3×3 的滑动窗口得到512 维的特征向量[21],并送入两个全连接层,其中一个全连接层有2k个1×1的卷积核,完成分类,判别是前景还是背景;另一个全连接层有4k个1×1的卷积核,对候选区域完成坐标位置的回归。然后利用非极大值抑制算法抑制掉无用的框,生成正锚框和对应边框偏移量,然后计算出建议。

下一步将提取的候选区域建议和特征图送入到感兴趣区域池化层,将不同大小的区域处理为统一大小7×7的感兴趣区域特征池化图。最后再将池化图转化为4 096维的向量并送入两个全连接层,一个经过softmax完成最终的分类并算出分类得分,另一个利用边框回归获得位置偏移量,输出最终的目标检测框[20]。具体的Faster RCNN网络结构如图1所示。

图1 Faster RCNN网络结构Fig.1 Faster RCNN network structure

2 改进的X光安检图像检测模型

针对Faster RCNN 网络对多尺度违禁品检测存在缺陷的问题,本文联合多层特征提取设计多通道区域建议网络并增加膨胀卷积模块分别提取出不同尺寸目标的特征图,然后通过具有膨胀卷积模块的多通道RPN增强各个尺度的特征,完成多尺度违禁品的检测。改进后的具体结构如图2所示。

图2 Faster RCNN改进Fig.2 Improvement of Faster RCNN

2.1 多通道RPN网络MCRPN

提取图像特征的方法很多,比如传统方法尺度不变特征变化SIFT,可提取物体的局部特征,包括边缘细节信息等,对小目标也具有一定适应性,但是对于边缘光滑的目标却无法精确地提取到特征,而且实时性不高。又如方向梯度直方图HOG,通过计算和统计图像局部区域的梯度直方图来构成特征,比较适合人体检测。但是二者都是依靠先验知识设计特征图,而深度学习是一种自学习的特征表达方法,在深度卷积网络中,一般低层卷积提取的浅层特征分辨率较高,纹理、边缘等细节信息较丰富,适合小目标的检测,例如X 光图片中的小剪刀、小扳手等;而高层卷积提取的深层特征分辨率较低但是语义信息较丰富,感受野大,可以提取出物体的轮廓[21],适合大目标的检测,例如X光图片中的手枪、刀等。所以本文通过改进Faster RCNN网络,提出多通道区域建议网络。

采用VGG16 结构作为特征提取网络,对于5 个卷积模块,Conv5_3 后的特征分辨率低但语义信息丰富,对大目标检测效果更好;Conv4_3 和Conv3_3 后的特征分辨率高,细节信息丰富,检测小目标更加精确。所以分别提取Conv5_3、Conv4_3和Conv3_3后的特征,然后将不同大小的特征图送入多通道RPN 网络中。3 个路径的RPN 分别根据不同的目标设置不同的锚点规格,从Conv5_3层提取的特征经过RPN1,设置步长为16,锚框参数为16、32、64;从Conv4_3 层提取的特征经过RPN2,设置步长为8,锚框参数为8、16、32;从Conv3_3层提取的特征经过RPN3,设置步长为4,锚框参数为4、8、16。由于每个RPN路径面向不同尺度的违禁品进行训练,所以不同的RPN的损失函数也是独立的。

在深度学习中有众多损失函数,如均方误差(又称MSE,L2损失),具体如式(1):

该损失函数比较适合训练数据中含有比较多的异常值,因为它会给予异常值较大权重,但模型为了尽力减小这些异常值造成的误差,会使模型整体效果下降,因此对于一般的训练数据是不适用的。又如平均绝对误差(又称MAE,L1损失),计算方法如式(2):

L1 损失函数虽然对异常值有很好的鲁棒性,但是在极值点处有很大的跃变,不利于收敛,所以也不适合RPN的训练。

本文的训练数据没有很多异常值,而且数据集中几乎每张图像中都存在违禁品,因此,RPN使用平滑L1损失函数(smooth L1 loss),如式(3)。这个函数克服了L1 和L2 的缺点,采用了稍微缓和一点的绝对损失函数f(x)=|x|,它随着误差线性增长,既避免了像平方函数那样成平方增长对误差较大的损失惩罚过高的问题,又使得损失函数保持连续可导。因为该函数在0 处不存在导数,可能会影响收敛,所以设计成分段函数,在0处使用平方函数,让曲线更加平滑。

RPN 损失主要包括分类损失(cls loss)和回归损失(Bbox regression loss)。分类损失的公式为式(4):

R是smooth L1函数。

2.2 膨胀卷积模块DCM

感受野的值可以用来大致判断每一层的抽象程度,神经元感受野的值越大表示其能接触到的原始图像范围越大,则它可能蕴含着更为全面,语义层次更高的特征;反而感受野的值越小,表示其能接触到的原始图像范围越小,则也可能意味着所包含的特征只是一些边缘的,局部的信息。所以,为了增大图像的感受野又不增加模型的计算量,引入膨胀卷积[22],设计了一种多分支的增大感受野的模块。

膨胀卷积是一种下采样方式,而传统的神经网络中一般采用池化层来减小图片的大小,会造成图片信息以及结构的丢失,甚至小物体信息无法重建。膨胀卷积则不做池化损失,并且是在普通卷积的基础上保持相同的卷积核,并增加了一个扩张率(dilation rate),在卷积核元素中间填充0元素。它与普通卷积相比,卷积核大小是一样的,在神经网络中的参数也是保持不变的,但是却比普通卷积的感受野大,使得每个卷积输出都包含较大范围的信息。普通卷积的感受野和层数呈线性关系增长,比如在步长为1 的情况下,4 层4×4 的卷积加起来,感受野才达到13,而膨胀卷积的感受野则是呈指数级增长的。又比如一个膨胀系数为2的3×3的卷积核与一个普通的5×5的卷积核感受野相同,但膨胀卷积的参数量只有9个,是5×5卷积核参数量的36%。由此可见,膨胀卷积可以增大感受野却不增加参数量,更有利于计算。具体计算方式如下。

假设原来卷积核为k,扩张率为d,则新的卷积核的大小为式(8):

如图3为普通卷积和膨胀卷积对应的感受野。

图3 普通卷积和膨胀卷积对应的感受野Fig.3 Receptive fields corresponding to ordinary convolution and dilated convolution

在第二和第三条RPN通道上增加多分支结构的膨胀卷积模块。首先,经过1×1的卷积在不改变输出宽度和高度的同时,实现各个通道信息的融合以及通道数的降维。其次,感受野是由不同大小的卷积核所决定的,通过设置多种尺寸的卷积核和不同的膨胀系数来获得不同目标的感受野,设置了膨胀系数分别为1、3、5的1×1、3×3和5×5的膨胀卷积来增大感受野。然后,加入旁路剪枝,以确保更多的原始特征信息。最后,利用Concat函数和1×1卷积核将各个分支充分融合到一起,并将网络通道数降低到512维,即通过减少卷积核通道数和参数,降低计算量。三条支路融合到一起通道数增加为1 028 维,最后通过1×1 卷积降低到512 维,模型的收敛速度更快,性能更好。同时,多分支的结构可以增加网络的宽度,各分支通过不同的感受野大小实现对不同尺度目标更好的适应性,利于多尺度检测,使模型的性能更好,本文通过增大神经元的感受野,增强小尺度违禁品的检测。具体模块如图4所示。

图4 膨胀卷积模块Fig.4 Dilated convolution module

3 实验

3.1 实验环境和数据集

所用工作站配置了NVIDIA GeForce GTX 1080TI GPU 显卡,操作系统是Ubuntu16.04,使用Pytorch 深度学习框架和Python语言编写程序。

实验在自制的X 光违禁品SIXray_OD 数据集上进行,用于二分类的公开数据集SIXray 有1 059 231 幅X光图像,在SIXray 数据集基础上选出8 718 幅全部包含违禁品的图像并通过Labeling 手动打上标签,组成了SIXray_OD 数据集。标注的信息包括违禁品的类别和位置,用标注框左上角的坐标和右下角的坐标来表示违禁品的位置,用输出的检测框和标注框的交并比来判定匹配分数,从而确定精确度。SIXray_OD 数据集包含5类违禁品:Gun、Knife、Wrench、Pliers、Scissors,加上背景一共6 类,其中Gun 有2 936 幅,Knife 有156 幅,Wrench 有2 266 幅,Pliers 有3 951 幅,Scissors 有1 159幅。如图5为数据集SIXray_OD中的部分样本。

图5 数据集SIXray_ODFig.5 Data set SIXray_OD

3.2 实验分析和结果讨论

3.2.1 不同模型对比实验

为验证Faster RCNN 在X 光违禁品检测性能上的优越性,首先将Faster RCNN网络与目前国际上较为流行的几种目标检测网络在相同设备和工作环境下进行实验对比。模型衡量指标用平均精度均值mAP(mean average precision)表示,表1 为SSD、YOLOV3、Faster RCNN这3种目标检测网络分别在SIXray_OD数据集上的检测精度。

表1 不同模型的检测精度Table 1 Detection accuracy of different models

从实验结果可以看出,Faster RCNN的检测精度较YOLOV3 高了14.07 个百分点,较SSD 高了6.52 个百分点,明显Faster RCNN 的检测性能更好,大大降低了安检中的漏检率。

3.2.2 单支路实验

为验证浅层特征更有利于小目标的检测,分别进行提取不同层特征的单支路实验。从SIXray_OD 数据集中找出全部包含小目标的图像,如图6所示,一共2 040张,组成新的小目标测试集。然后利用SIXray_OD中的原训练集训练,新的小目标测试集进行测试。同时将每层卷积层提取的特征图进行可视化,如图7 所示。表2是分别从Conv5_3、Conv4_3、Conv3_3 提取的基于单层次的单支路实验。

图6 包含小目标的测试集Fig.6 Test set with small targets

图7 原图和每层卷积提取的特征可视化Fig.7 Visualization of features extracted from original image and each layer of convolution

表2 单支路对小违禁品的检测Table 2 Single branch detection of small targets

实验结果中也可以看出,从Conv4_3和Conv3_3提取的特征对小违禁品的检测精度高于从Conv5_3 提取的特征。这是因为对于小目标来说,只需要经过Conv4_3或Conv3_3 卷积后,提取的特征就很充分了,反而多加卷积层会使效果变差。从可视化的特征图也可以看出对于小剪刀,经过几层卷积,轮廓较明显,越到后面,尤其是Conv5_3 之后,小剪刀的特征变得模糊不清,几乎消失。也显示出低层卷积提取的浅层特征更有利于小目标的检测,而高层卷积提取的特征在一定程度上可能忽略了边缘、细节等信息,使得检测结果不如浅层特征。

3.2.3 多通道RPN融合实验

如表3是多通道RPN融合实验,分别提取各个层的特征,然后不同通道通过不同RPN网络和ROI pooling,再将支路用Concat函数和1×1卷积进行通道融合,最后送入全连接层完成最终的分类和位置回归。

表3 多通道RPN融合实验Table 3 Multi-channel RPN fusion experiment

通过不同通道的融合实验显示,只有将Conv5_3、Conv4_3 和Conv3_3 三条支路融合后并在SIXray_OD数据集上进行实验,检测效果达到最好。这是因为对于大目标,前面几层卷积提取的特征不够充分,对于小目标,后面的卷积会使特征变模糊或消失。所以,多层提取的多通道RPN改进算法比原网络单层特征提取的算法更有利于多尺度违禁品的检测。

3.2.4 增加DCM实验

如表4是增加了DCM后的检测结果。为增大感受野,使小目标的边缘、细节信息更清晰,分别在多通道上增加膨胀卷积模块DCM。其中RPN1 对应锚框参数设置为16、32、64,RPN2 锚框参数为8、16、32,RPN3 锚框参数为4、8、16。

表4 增加膨胀卷积结果Table 4 Results of increasing expansion convolution

实验结果显示,根据不同支路引入DCM 后结果不同,也说明只有在适合的支路引入扩张率合适的DCM才能增大图像的感受野,提高对小目标的检测,从而提高多尺度违禁品的检测性能;同时,在解决部分遮挡问题上也有一定的提高。如图8为检测结果。

图8 检测结果对比Fig.8 Comparison of test results

3.2.5 参数设置实验

在实验中,参数的设置也很重要。初始学习率lr设置为0.001,学习率衰减因子lr_decay设置为0.1,权重衰减因子weight_decay设置为0.000 5,迭代次数为14。表5实验结果也显示,学习率设置过大、过小对算法性能的影响都不好,只有设置最利于模型的参数,实验效果才能达到最佳。

表5 参数设置Table 5 Parameter settings

4 结论

为改善X光图像中不同违禁品检测的性能,本文在Faster RCNN基础上引入多层提取和多通道区域建议,融合图像高低层的不同信息,提取不同目标的特征,并且每个独立的RPN 通道都设置不同规格的锚框参数,分别经过ROI pooling,三条支路再进行通道融合,后利用非极大值抑制算法剔除掉分数较小的检测框。同时,在多通道上引入多分支的膨胀卷积模块也增大了感受野,利于小目标的检测。改进算法在SIXray_OD数据集上的实验结果表明,分层提取的信息使图像特征更加全面,多通道RPN 也使各个目标检测更加准确。该算法有效改善了对小违禁品的检测性能,提高了多尺度检测。但同时速度也有所下降,并且随着网络的增大,GPU占用率也增加了,网络参数变多,需要的数据量也增多,但不会影响模型在实际中的应用。现实生活中由于旅客的行李很杂,不同违禁品互相遮挡,同类违禁品自遮挡,模型在解决这个问题上还不是很成熟,所以在安检的过程中,会出现漏检的情况。下一步的工作是在改进网络的基础上解决违禁品被遮挡的问题,以进一步提高违禁品检测的准确度。

猜你喜欢
违禁品卷积特征
根据方程特征选解法
离散型随机变量的分布列与数字特征
基于3D-Winograd的快速卷积算法设计及FPGA实现
论盗窃违禁品行为的定性与量刑
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
贪污罪的特殊对象研究
基于傅里叶域卷积表示的目标跟踪算法
违禁品在这里