2. 浙江广厦建设职业技术大学, 东阳 322100
2. Zhejiang Guangsha Vocational and Technical University of Construction, Dongyang 322100, China
X光安检是我国广泛应用的安检技术手段, 应用于各个重要领域. 使用人工智能技术辅助一线安检员进行X光安检判图, 有效的降低漏报问题. X光安检违禁品检测实际上是对违禁品的定位和分类. 即用目标检测的方式检测是否有违禁品, 并在安检图片上标出违禁品的位置及类别.
传统的安检图像处理算法对安检违禁品检测做出很多贡献. 苏冰山等[1]提出了一种新型X光图像民航违禁品分类方法, 对X光图像提取Contourlet变换后图像的共生矩阵、Tamura纹理特征和直方图特征, 最后将这3种特征的特征向量串联起来得到联合特征向量. 刘颖等[2]提出了一种基于有偏彩色纹理字典的X光安检图像检测, 此算法是根据被检测物体的颜色分布构建色彩权值矩阵, 提取多通道图像的局部纹理特征, 结合词袋模型生成多通道优化的图像字典. 王宇等[3]提出了基于计算机视觉的X射线图像异物分类研究, 该算法主要是利用Tamura纹理特征和随机森林[4]对X射线异物进行自动识别分类. 以上传统算法特征捕捉能力较差, 检测模型缺少泛化能力, 无法应用于海量数据集.
随着深度学习的发展, 深度学习在安检图像处理算法得到了广泛应用. 张友康等[5]提出了使用X光安检图像多尺度违禁品检测网络, 对SSD网络[6]进行改进, 增加了小卷积非对称模块、空洞多视野卷积模块以及多尺度特征图融合策略分别用于小尺度违禁品检测、违禁品遮挡以及背景干扰情况下违禁品的检测. 马喆等[7]提出了一种改进的YOLOv3网络检测算法, 对基础网络进行改进, 引入多维输入图和多分辨率输入图, 增加了输入样本的多样性, 有效解决了模型的适应性差的问题. 苏志刚等[8]提出了基于语义分割的多目标违禁品识别算法, 在编码阶段设计使用空洞空间金字塔卷积模块(ASPC), 同时引入注意力机制, 对ASPC模块的特征提取过程进行监督, 进一步提升模块的特征提取能力. Cui等[9]提出了一种使用RetinaNet自动检测货物X射线图像中枪支的方法, 该方法提供了更精确的对象定位和更快的检测速度. 然而以上基于深度学习的算法检出率并不是很高, 存在漏检及误检的情况.
针对以上问题, 本文基于深度学习的方法, 提出了改进的Cascade RCNN[10]. 在网络结构上, 原有的Cascade RCNN网络在ROI Align[11]之后的特征并没有做任何改动, 而是直接进入后续的分类和回归, 网络往往关注的是局部特征, 其他特征就会受到抑制, 从而不能得到有效鲁棒的特征. 为了得到更加有效鲁棒的特征, 在ROI Align之后添加批特征擦除(BFE)模块[12], 通过随机擦除同一批次特征, 迫使网络强化其他特征的表达. 在损失函数上, 原有的损失函数在位置回归损失上缺少DIoU损失[13], 通过权重融合的方式将位置回归损失与DIoU损失进行融合, 相当于为原网络增加了重叠面积和中心点距离损失, 这样使得目标检测结果更加精确.
1 Cascade RCNN设计与分析 1.1 Cascade RCNN网络结构及原理Cascade RCNN网络主要由特征提取网络ResNet101[14]、特征金字塔网络(feature pyramid network, FPN)[15]、RPN (region proposal network)[16]网络层以及级联检测器组成. 特征提取网络ResNet101用于提取图片特征, 将原图经过Conv1、Conv2、Conv3、Conv4以及Conv5卷积操作以及不同层次的特征融合得到不同尺度的特征图P2、P3、P4以及P5. 然后将P2、P3、P4以及P5不同尺度的特征图输入到RPN中用于得到候选目标区域, 将所得的候选目标区域做ROI Align操作后, 得到7×7大小的ROI特征图. 如图1 Cascade RCNN网络结构图.
在检测阶段, 与Faster RCNN不同的是, Cascade RCNN使用级联检测器的方式进行检测, 由3个检测器分别设置不同的阈值进行检测. 每个检测器包括了ROI Align、全连接层、分类得分C和边框回归位置坐标B组成. 检测时通过前一阶段检测器输出的边框回归B对候选目标区域进行重采样, 逐步提升IoU阈值训练得到新的分类得分C和边框回归B, 最终提升样本质量和网络训练效果.
1.2 Cascade RCNN网络的RPN结构RPN网络主要用于生成候选目标区域, 首先通过RPN生成一堆anchor box[17], 对其进行设置阈值过滤后通过Softmax[18] 分类器判断该anchors中的目标属于目标或者背景; 同时, 另一分支边框细回归(bounding box regression[19])修正anchor box, 用于生成较为准确的proposal.
1.3 Cascade RCNN网络的级联检测器Cascade RCNN主要的改进是在Faster RCNN网络的基础上加入了级联检测器, 级联各个检测模型, 设置不同的IoU[20]阈值界定样本去训练模型, 让每一个阶段的检测都专注于检测IoU在某一个范围内的proposal, 上一个检测模型的输出作为下一个检测模型的输入, 越往后检测模型的IoU阈值越不断提升, 反而也能使RPN网络输出更准确的候选目标区域, 从而减少假正样本出现的次数, 提高网络的精确度.
2 改进的X光安检图像检测模型
针对Cascade RCNN网络对X光违禁品检测存在检测率低下的问题, 本文提出了改进的Cascade RCNN网络违禁品检测算法如图2所示. 改进的Cascade RCNN将ResNet101网络输出的特征图自浅层至深层融合为特征金字塔并输出到RPN网络. 经过RPN进行候选区域的选取后, 将映射到原图的ROI与P2、P3、P4以及P5通过ROI Align层统一尺寸后融合. 然后将统一尺寸后的ROI特征图后引入一个BFE模块, 进行随机擦除同一批次的特征. 输入到全连接层FC进行分类和回归. 通过前一个阶段的检测器输出的边框回归对候选框目标区域进行重采样并逐步提升IoU阈值, 最终训练得到新的分类得分和边框回归.
如图2所示, 改进的Cascade RCNN网络主要包括ResNet101特征提取网络、FPN特征融合金字塔、RPN网络层以及级联检测器组成. 与原始的Cascade RCNN的区别是, 该网络主要在ROI Align得到的ROI特征图后添加了BFE模块进行批特征擦除. BFE模块通过随机擦除同一批ROI特征图的相同区域, 随机丢弃同一批次特征, 防止出现过拟合, 从而使训练达到更好的效果.
2.1 批特征擦除BFE是通过随机擦除同一批次某个区域图像中所学习到的特征. 与DropBlock算法类似的都是丢弃空间相关性, 通过有效的随机丢弃局部语义信息, 激励网络学到更加鲁棒有效的特征. 与DropBlock不同的是BFE模块是使用批量处理, 将FPN层得到的ROI特征张量T, 经过批处理BFE模块后随机丢弃张量T的某个区域, 将该区域内所有单位清零, 迫使网络增强剩余区域的特征学习.
BFE的本质是为了不让网络太关注那些太显而易见的全局特征. 通常CNN网络在卷积后往往会将焦点集中在某个局部位置的学习, 而其他位置则会受到抑制. 通过引入BFE模块对同一批次某个区域的所有特征进行随机丢弃, 也就是说它在同一批次图像中禁用了与其语义部分相关的所有特征, 迫使网络学习其他的特征.
BFE模块结构图如图3所示, 将ROI Align映射后的特征图采用特征擦除的方式进行随机擦除. 通过随机产生通道数与ROI特征图相同、改变宽度缩放比例和高度缩放比例以及随机改变擦除位置, 生成一个包含0与1的掩码张量, 将ROI特征图与该掩码张量相乘, 从而消除了掩码张量为0位置上的ROI特征, 保留了掩码张量为1的ROI特征, 强迫网络学习其它区域的特征, 强化剩余特征的表达, 加快网络的收敛速度. 同时, 采用这种擦除的训练方式去迭代训练, 网络具有更好的鲁棒性. 实验表明, 当掩码张量的宽度和高度缩放比例系数不同时, 训练出来的模型精度也有所差异. 本文中由实验结果证明, 宽度和高度缩放比例系数为0.18和0.18时可以达到最好的效果.
算法1. BFE算法
输入: 输入张量T, 大小为B×C×H×W; 擦除高的缩放比例
输出: 输出张量T';
1) 初始化H, W: H,W←T.size()[-2:]; /*, 其中, H和W分别为特征图的高和宽*/;
2)初始化H', W': H'←round(
3)计算Sy, Sx: Sy←random.randint(0, H–H'), Sx←random.randint(0, W–W'); /*Sy和Sx分别为擦除的起始y坐标和起始x坐标, random.randint为随机产生整数*/;
4) 初始化Mask: Mask←T.new_ones(T.size()); /*Mask为与T大小相同, 值为1的张量*/;
5) 计算Mask: Mask[:, :, Sx:Sx+W', Sy:Sy+H'] ←0; /*将Mask中需要擦除的位置置为0, 不需要擦除的位置置为1*/;
6) 计算T': T'←T*Mask; /*T'为擦除后的特征图*/.
2.2 SD loss损失函数
本文主要针对Cascade RCNN边框损失函数进行改进. Cascade RCNN的损失函数主要由两部分组成, 分别是分类误差、坐标回归误差. 其公式如式(1), 式(2)所示.
$ L = {L_{\rm cls}} + {L_{\rm loc}} $ | (1) |
$ {L_{\rm loc}}({t^u}, v) = \sum\nolimits_{i \in \{ x, y, w, h\} } {smoot{h_{{L_1}}}(t_i^u - {v_i})} $ | (2) |
其中,
基于IoU系列的检测算法损失函数一般可以定义为
$ L_{\rm D I o U}=1-I o U+\frac{\rho^{2}\left(b, b^{\rm g t}\right)}{c^{2}} $ | (3) |
$ L_{\rm S D}=\alpha {{smooth }}_{L_{1}}+\beta L_{\rm DIoU} $ | (4) |
其中,
为了分析和评估本文提出的算法的性能. 本节在X光数据集上进行对比实验.
实验环境配置: CPU为Intel(R) Core(TM) i7-4790K CPU; 主频为4.00 GHz;内存为8 GB; 系统为Linux 4.4.0-130-generic x86_64位; GPU为NVIDIA Corporation GM204 [GeForce GTX 970].
数据集: 在构建数据集上, 从公开数据集中采集了3 600张X光安检图像, 数据集中包括需要检测10种类别的违禁品, 包括刀具、剪刀、打火机、打火机油、压力容器罐、弹弓、手铐、指甲油、充电宝、烟花爆竹. 使用了3 240张作为训练集, 360张作为验证集. 如图4所示数据集样本.
3.2 消融实验 3.2.1 BFE不同宽高比缩放比例系数的对比实验
本节实验采用mmdetection工具进行实验, 特征提取网络backbone使用ResNet101, 使用ImageNet的预训练模型, 学习率设置为0.001 25, Batchsize设置为2, 训练50个epoch.采用Cascade RCNN+ResNet101+BFE进行实验发现, 使用BFE模块进行训练的过程中, 采用不同的宽高缩放比例, 即
如表1所示, 当设置BFE模块的宽高缩放比例系数为0.15和0.15时, 验证X光数据集的mAP为0.845 6, 当宽高缩放比例系数为0.18和0.18时, mAP增长了1.15%, 当宽高缩放比例系数超过0.18和0.18时, 验证X光数据集的mAP在不断减小. 说明宽高缩放比例系数的大小对BFE模块是一个重要的因素, 同时也影响整个改进的Cascade RCNN网络的精度.
3.2.2 SD loss不同权重比例系数的对比实验采用Cascade RCNN+ResNet101+SD loss进行实验发现, 使用SD loss损失函数进行训练时, 不同的权重比例系数会影响实验结果. 当采用不同的权重比例系数时, 得到如表2所示结果.
如表2所示, 当使用SD loss损失函数权重比例系数设置为0.5:1时, 验证X光数据集的mAP为0.845 8, 当权重比例系数为1:1时, mAP增长了2.95%, 说明权重比例系数的大小对SD loss损失函数是一个重要的因素, 同时也影响整个改进的Cascade RCNN网络的精度.
3.2.3 不同模型的对比实验在实验的过程中, 分别加入BFE模块以及SD loss损失函数不同模型进行对比实验, 使用mAP作为评价标准. 实验结果如表3所示.
如表3所示, 当使用Cascade RCNN+ResNet101进行训练时, 验证X光数据集的mAP值为0.845 3. 加入BFE模块后mAP为0.857 1, 加入后增长了0.011 8. 说明加入BFE模块后准确率有一定的提高, 再加入SD loss损失后mAP值为0.876 4, 相比原算法提升了0.031 1. 说明改进的损失函数和改进的网络结构对X光安检检测的准确率有一定的提升.
3.2.4 不同算法的对比实验在实验的过程中, 分别将改进的Cascade RCNN算法与其它目标检测算法进行对比实验, 使用mAP作为评价标准. 实验结果如表4所示.
如表4所示, 当使用改进的Cascade RCNN算法进行训练时, 验证X光数据集的mAP值为0.876 4. 当使用Faster RCNN和Mask RCNN这些双阶段算法进行训练时, 验证X光数据集的mAP值分别为0.802 8和0.817 3.同时, 也对比了单阶段RetinaNet检测算法, 说明改进的Cascade RCNN算法比同类型的双阶段检测算法以及单阶段检测算法的精度更高.
4 结论与展望
本文基于Cascade RCNN网络, 在网络结构上, 引入一个BFE批特征擦除模块, 通过随机擦除同一批次中的相同区域, 迫使网络学习其他区域的特征, 加强其他区域特征的学习, 增强了模型的鲁棒性. 同时, 验证了当BFE中宽高缩放比例系数为0.18和0.18时, 可以达到最好的效果. 提出一个加权SD loss损失函数, 该损失函数将Smooth L1 loss与DIoU loss进行加权融合, 通过调整权重比例系数, 使边界检测结果更加准确. 测试性能与原算法相比, 改进的Cascade RCNN网络的mAP增长了3.11%, 精度得到了提升. 最后, 将改进的算法与同类型的双阶段检测算法和单阶段检测算法进行对比, 改进的算法比其它目标算法的精度更高.
[1] |
苏冰山, 陈继光, 陈雨. 基于联合特征的X光图像违禁品分类方法. 数字技术与应用, 2019, 37(5): 76-77. |
[2] |
刘颖, 王伊琳, 王倩, 等. 基于有偏彩色纹理字典的X光安检图像检测. 西安邮电大学学报, 2017, 22(6): 35-39. |
[3] |
王宇, 邹文辉, 杨晓敏, 等. 基于计算机视觉的X射线图像异物分类研究. 液晶与显示, 2017, 32(4): 287-293. |
[4] |
李永丽, 王浩, 金喜子. 基于随机森林优化的自组织神经网络算法. 吉林大学学报(理学版), 2021, 59(2): 351-358. |
[5] |
张友康, 苏志刚, 张海刚, 等. X光安检图像多尺度违禁品检测. 信号处理, 2020, 36(7): 1096-1106. |
[6] |
谢淋东, 仲志丹, 乔栋豪, 等. 多尺度卷积特征融合的SSD手势识别算法. 计算机技术与发展, 2021, 31(3): 100-105. DOI:10.3969/j.issn.1673-629X.2021.03.017 |
[7] |
马喆, 丁军航, 谭虹. 基于神经网络的违禁品检测研究. 青岛大学学报(工程技术版), 2020, 35(2): 30-36. |
[8] |
苏志刚, 姚少卿. 基于语义分割的多目标违禁品识别算法. 信号处理, 2020, 36(11): 1940-1946. |
[9] |
Cui YQ, Oztan B. Automated firearms detection in cargo X-ray images using RetinaNet. Proceedings of SPIE 10999 Anomaly Detection and Imaging with X-rays (ADIX) IV. Baltimore: SPIE, 2019. 109990P.
|
[10] |
Cai ZW, Vasconcelos N. Cascade R-CNN: Delving into high quality object detection. Proceedings of the 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 6154–6162.
|
[11] |
Teichmann M, Weber M, Zöllner M, et al. Multinet: Real-time joint semantic reasoning for autonomous driving. 2018 IEEE Intelligent Vehicles Symposium (IV). Changshu: IEEE, 2018. 1013–1020.
|
[12] |
Dai ZZ, Chen MQ, Gu XD, et al. Batch dropblock network for person re-identification and beyond. Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 3690–3700.
|
[13] |
Zheng ZH, Wang P, Liu W, et al. Distance-IoU loss: Faster and better learning for bounding box regression. Proceedings of the AAAI Conference on Artificial Intelligence, 2020, 34(7): 12993-13000. DOI:10.1609/aaai.v34i07.6999 |
[14] |
Kim SW, Kook HK, Sun JY, et al. Parallel feature pyramid network for object detection. Proceedings of the 15th European Conference on Computer Vision. Munich: Springer, 2018. 239–256.
|
[15] |
Xu H, Yao LW, Li ZG, et al. Auto-FPN: Automatic network architecture adaptation for object detection beyond classification. Proceedings of the 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 6648–6657.
|
[16] |
田桂丰, 单志龙, 廖祝华, 等. 基于Faster R-CNN深度学习的网络入侵检测模型. 南京理工大学学报, 2021, 45(1): 56-62. |
[17] |
万卓, 叶明, 刘凯. 基于改进YOLOv4的电机端盖缺陷检测. 计算机系统应用, 2021, 30(3): 79-87. DOI:10.15888/j.cnki.csa.007808 |
[18] |
Munkhdalai L, Ryu KH, Namsrai OE, et al. A partially interpretable adaptive softmax regression for credit scoring. Applied Sciences, 2021, 11(7): 3227. DOI:10.3390/app11073227 |
[19] |
陈兆凡, 赵春阳, 李博. 一种改进IoU损失的边框回归损失函数. 计算机应用研究, 2020, 37(S2): 293-296. |
[20] |
赵艳芹, 何东来, 朱子寒. 煤矿井下集成学习的安全帽佩戴检测算法. 黑龙江科技大学学报, 2021, 31(2): 240-246. DOI:10.3969/j.issn.2095-7262.2021.02.018 |