APP下载

基于深度学习的子弹缺陷检测方法

2019-09-18利照坚江秀娟朱铮涛袁浩期

组合机床与自动化加工技术 2019年9期
关键词:凹坑子弹准确率

利照坚,江秀娟,朱铮涛,袁浩期

(广东工业大学 机电工程学院,广州 510006)

0 引言

子弹对于一个国家来说,意义非常重大,无论是在日常的安保治安还是国防军事上,都是必须用到的,因此消耗量也非常大。目前,常用机器视觉来替代人工视觉来检测子弹缺陷[1],使用机器视觉检测方法可以大大提高生产效率和生产自动化程度[2]。

在对子弹图像的缺陷检测中,通常会使用常规的图像处理算法,如基于灰度的图像分割,基于形状特征检测缺陷等等。然后再利用机器学习的分类方法,如支持向量机(Support Vector Machine,SVM)[3],随机森林(Random Forest,RF)[4]等。虽然经过机器学习的方法后,性能与准确率在一定程度上有了提升,但也难以达到用于生产线上的理想效果。

近年来的深度学习发展突飞猛进,在学术界中有许多新的成果。因此,针对子弹缺陷检测在准确度、召回率与漏识别率等效果不理想等一系列问题上,本文采用深度学习的方法来展开研究实验。使用Faster Region Convolutional Neural Network(Faster RCNN)[5]网络模型与Visual Group Network 16(VGG16)[6]网络和Residual Networl 50(ResNet50)[7]网络相结合,提出一种新的研究方法,采集子弹图像作为数据集,使用Faster RCNN网络进行训练,对缺陷目标精准快速地标识出来,提高子弹缺陷检测的准确度与速度。

1 Faster RCNN的子弹缺陷研究

Faster RCNN主要由区域建议网络(Region Proposal Networks,RPN )和Fast RCNN[8]网络组成。

Faster RCNN作为CNN网络其中一种目标检测方法,首先使用卷积神经网络提取输入图像的特征图(feature map)[11],其卷积层参数由后续RPN层和Region of interest(ROI) Pooling层所共享使用,并在分类层(Classification)分类,过程如图1所示。

图1 Faster RCNN流程图

卷积层(Conv Layer)由卷积 (Conv),池化(Pooling),激活(Relu)所组成。本文使用VGG16网络和ResNet50网络代替Faster RCNN的基础卷积神经网络(CNN)来提取特征。原始图像大小为P*Q,经过缩放后变成M*N大小的图像,然后使用卷积神经网络提取输入图像的feature map,并在后续RPN层和全连接层中共享使用feature map[9]。 经过卷积操作后,原始图像大小由P*Q变成(M/16)*(N/16),则feature map为(M/16)*(N/16)*512,表示特征图的大小为(M/16)*(N/16),数量为512[10]。

RPN网络主要用于生成区域建议,首先生成数目较多的锚点参考框(anchor box),然后对其进行裁剪过滤,再通过softmax判断其锚点(anchor)是属于前景(foreground)还是背景(background),即是否为要识别的目标。同时,另一个分支bounding box regression修正anchor box,形成较精确的提议区域(proposal)。RPN网络流程如图2所示。

图2 RPN流程图

锚点生成层(Anchor Generation Layer)主要生成一组参考框,一个anchor能生成9个anchor box,一张图像一共生成(M/16)*(N/16)*9个anchor box。生成的anchor box如图3所示。

图3 生成的anchor box

在RPN网络生成参考框anchor box后,需要通过softmax[11]来判断anchor是属于foreground还是属于background。softmax分类作为一个初步的2分类来筛选anchor box。其中在softmax分类前后都有reshape操作,方便softmax操作,如图4所示。

Bounding box regression主要用于修正anchor box,使得foreground anchor box跟ground truth box更加接近[12]。如图5所示白色框为ground truth box,灰色为提取的foreground anchor box,即便灰色的框被分类器识别为子弹缺陷的位置,但是由于灰色的框定位不准,这张图并未正确地检测出子弹缺陷位置。

图5 ground truth box和foreground anchor box

如图5设定foreground anchor box的左上角的x,y坐标为Ox,Oy,ground truth box的左上角的x,y坐标为Tx,Ty,foreground anchor box的宽度和高度分别为Ow,Oh,ground truth box的宽度和高度分别为Tw,Th,然后用于回归的系数如下:

(1)

(2)

(3)

(4)

通过回归系数调整后的边框传到下一层再进行筛选。

Proposal Layer主要是对预测框进行foreground score筛选和使用非最大值抑制(Non-Maximum Suppression,NMS),按照重叠的边框高分数来进行排序,挑选出最高分数的边框。其中,NMS是将IoU大于某个阈值时,才使得预选框得分,其余的得分设置为零。如图6所示,IoU用两个bounding box的交集与两个bounding box并集的比值来表示。

图6 示意图

RoI Pooling主要是把RPN层的proposal box和Conv Layer最后生成的feature map作为输入,遍历所有的proposal box,形成大小固定的输出proposal feature map,然后再用全连接操作来进行目标识别和定位[13]。

Classification层首先对proposal feature map做全连接操作,然后分别进行softmax和bounding box regression的操作[14]。

2 图像采集与数据集整理

本次子弹的图像使用TCCAGE远心笼来采集。TCCAGE远心笼是一台由远心镜头和反光镜片组成的检测系统,可以对检测物件侧面采集4个正交视图。检测物侧面360°,每隔90°采集一张图像,一个检测物采集4张图像,并把4张侧视图在一张图像中展示出来,保证覆盖整个检测物体的侧柱面,如图7所示。

图7 子弹侧视图

TCCAGE远心笼内部安装6个大小相等的反光镜,并按照图6所示的位置上摆放,让4个视角的光路都完全相同。4个视角每隔90°等间距分布,并稍微有重叠的部分,保证能够完全覆盖检测物体的侧面,如图8所示。

图8 远心笼采集子弹侧视图

子弹缺陷类型主要分为两种,一种是凹坑,另一种是污渍,如图9所示。

(a) 凹坑缺陷

(b) 污渍缺陷 图9 子弹缺陷的种类

图像采集后,对8000张图像人工做标记,把缺陷的类型和缺陷的位置标记出来,并把数据保存在XML文件中,在训练的时候使用。

3 模型训练与测试

3.1 Faster RCNN模型训练

Faster RCNN模型的训练流程可以分为4个步骤,分别为:①训练RPN网络,②训练Fast RCNN网络,③调优RPN网络,④调优Fast RCNN网络。其中第1步和第2步的网络没有共享卷积层,第3步和第4步共享卷积层。

(1)训练RPN网络

训练RPN网络前,首先使用ImageNet模型参数进行初始化,再进行训练。训练完成后,得到region proposals。

(2)训练Fast RCNN网络

训练Fast RCNN网络需要用到上一步所得到的region proposals,并且在训练前,也需要ImageNet模型参数进行初始化。

(3)调优RPN网络

由于RPN网络跟Fast RCNN网络共享卷积层,所以只需要对剩余的层进行调优。在调优RPN网络前,使用第2步训练好的Fast RCNN网络参数对其进行初始化。

(4)调优Fast RCNN网络

由于共享卷积层,Fast RCNN网络也只需要对剩余的层进行调优。其中调优所用到的region proposals由第3步RPN网络调优后得到,如图10所示。

图10 Faster RCNN模型训练流程

RPN网络主要生成region proposals,然后通过softmax判断其anchor是属于foreground还是background,并且用bounding box regression来修正anchor box,生成更为精确的proposal。

所以RPN 网络的损失函数L(pi,ti)由classification loss和bounding box regression loss组成。Fast RCNN网络训练方式和RPN网络基本一致,也是训练softmax来做二分类和bounding box regression修正anchor box。

(5)

3.2 Faster RCNN的改进

由于原始图像在输入的时候,经过卷积层的处理,在深层卷积层的特征图所得到的图像信息损失严重。比如使用VGG16卷积网络时,在最后一层中,原始图像大小由P*Q变成(M/16)*(N/16),大幅度损失图像信息。因此,本文通过扩大卷积层最后所提取的feature map,保留更多的图像信息,提高图像识别的质量。

以VGG16为例,首先在卷积层Conv1后增加一个Max Pooling层,直接提取该层的feature map,而对卷积层Conv3直接提取该feature map,然后在Conv5后面增加一个反卷积层,对卷积层Conv5做反卷积操作得到feature map。最后把处理后的三个feature map做一个局部响应归一化(Local Response Normalization)。采用LRN通过对局部的feature map创建竞争机制,使得特征点响应值比较大的可以得到更大的数值,从而增强模型的泛化能力。LRN的具体计算公式如下:

(6)

本实验以准确率(Precision),召回率(Recall),平均准确度(mean Average Precision,mAP),漏识别率作为最后的评估。

准确率为分类正确的正样本数与分类后判别为正样本个数的比值。

(7)

其中,NTP表示分类正确的正样本个数,NFP表示负样本分类为正样本的个数。

召回率为分类正确的正样本数与真正的正样本数的比值。

(8)

其中,NTP表示分类正确的正样本个数,NFP表示负样本分类为正样本的个数,NFN表示正样本分类为负样本的个数。

mAP为在准确率-召回率曲线上的准确率对召回率上的积分。

(9)

漏识别率为未能识别出个体的总数与测试集中存在的样品个体总数的比值。

改进前与改进后的Faster RCNN的准确率-召回率曲线对比图如图11所示。

(a) 在VGG16下的效果

(b) 在ResNet下的效果 图11 准确率-召回率曲线对比图

4 实验结果分析

本文的实验平台使用的是Ubuntu 16.04操作系统,PyTorch深度学习框架,计算机内存为32GB,GPU为Nvidia GeForce GTX 1080 Ti。

一共使用6000张图像进行训练,1000张图像作为测试集,其中3000张训练图为凹坑图像,3000张为污渍图像,500张测试图为凹坑图像,500张测试图为污渍图像。学习率为0.001,权重衰减为0.001,然后经过迭代训练和调优网络,得到最终的模型。模型一共迭代训练16000次,其中RPN网络训练迭代4000次,Fast RCNN网络训练迭代4000次,RPN网络调优迭代4000次,Fast RCNN网络调优迭代4000次。

实验分别采用VGG16和ResNet50的2种不同网络和Faster RCNN相结合对数据集进行训练,设定IoU为70%,然后根据准确率、召回率、漏识别率和mAP来对测试结果来评估模型。实验所获得的结果如表1~表3所示。

表1 使用VGG16的Faster RCNN实验结果

表2 使用ResNet50的Faster RCNN实验结果

表3 VGG16和ResNet50的训练时间和识别时间

由表1~表3的实验测试结果可以看出,使用改进的Faster RCNN网络训练之后,对测试数据集的测试效果都比较理想,相比原始的Faster RCNN网络,准确率、召回率和mAP都有一定的提高,而漏识别率也有一定程度的降低。对于相同类别的测试,ResNet50的准确率、召回率和mAP都比VGG16的要高,而ResNet50的漏识别率则比VGG16的要低,可见使用ResNet50的Faster RCNN网络模型比使用VGG16要好,对于图像的训练效果更好,测试的结果也是更为准确。改进后的网络在训练时间也比原始的有一定的降低,而ResNet50的训练时间比VGG16的训练时间要长,而识别时间没有明显的区别。由此可见,在使用网络层数更深的卷积网络来训练Faster RCNN网络,虽然会增加训练时长,但可以提高网络对图像的识别能力,能更加准确地找出图像中的目标区域。

对于使用相同的模型,测试数据集中不同的检测类别的测试效果也有一定的差别。凹坑的检测准确率与召回率都比污渍的要低,而漏识别率则反而要高。这其中的原因可能是凹坑的图像特征并不特别明显,在做卷积操作时并没有很好地提取图像的特征,导致在训练的时候所使用的feature map效果不够理想,对测试的效果也有一定的影响。

如图12所示,采用改进Faster RCNN方法后的部分检测效果。

(a) 凹坑缺陷

(b) 凹坑缺陷

(c) 污渍缺陷

(d) 污渍缺陷 图12 子弹检测效果图

5 结束语

本文针对子弹缺陷检测中由于使用常规图像处理算法的检测效果不理想,提出了使用了改进的深度学习网络Faster RCNN的研究方法,对子弹缺陷的图像进行训练与测试,得到了较好的效果,无论是准确率、召回率、mAP还是检测速度都能达到工业生产检测环节所需要的指标。

由于深度学习的不断发展,有更多性能比Faster RCNN更好的深度学习神经网络如YOLO、SSD等等,将进一步提升目标识别的准确率、召回率和mAP。因此,尝试使用网络层次更深,结构更合理的深度学习网络,不断提升子弹缺陷检测的性能,是接下来的研究方向。

DOI:10.1109/CVPR.2016.90.

DOI:10.1007/978-3-319-10590-1_53.

猜你喜欢

凹坑子弹准确率
深沟球轴承外圈表面凹坑缺陷分析
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
含有不同间距凹坑缺陷的发酵罐应力分析与计算
三颗子弹
子弹VS防弹
Karma:让子弹飞一会儿
基于ANSYS对某含有凹坑缺陷发酵罐的静力分析
高速公路车牌识别标识站准确率验证法