改进Faster R-CNN模型的汽车喷油器阀座瑕疵检测算法

2020-02-14 06:10朱宗洪李春贵李炜黄伟坚
广西科技大学学报 2020年1期
关键词:深度学习

朱宗洪 李春贵 李炜 黄伟坚

摘要:为完成喷油器阀座常见的瑕疵识别,对深度检测模型进行研究,提出基于Faster R-CNN模型的喷油器阀座瑕疵识别改进方法。首先,对常规生产下的喷油器阀座瑕疵图像进行采集、处理,构造出相关数据集;其次,在FasterR-CNN模型上对候选框和特征网络进行改进,获得比原有模型更高的精确度。实验结果表明:改进的FasterR-CNN模型在喷油器阀座瑕疵识别中精确度得到加强,识别精确度可达71.79%,相比原有模型精确度提升了近3.9%。说明该深度学习方法能够有效实现喷油器阀座瑕疵的识别,为后续自动一体化检测研究提供了基础。

关键词:汽车喷油器阀座;瑕疵识别;Faster R-CNN;深度学习

中图分类号:U464.136;TP391.41DOI:10.16375/j.cnki.cn45-1395/t.2020.01.001

0引言

随着视觉检测技术的快速发展,制造业自动化生产线上使用机器视觉来检测目标产品瑕疵的软件和应用越来越多,生产效率也得到很大的提高,在瑕疵检测中使用机器代替人已经成为一种不可避免的趋势。实际上,如何更好地将工业生产与机器视觉检测技术相结合是一个十分困难的问题,目前喷油嘴阀座(如图1)的检测还是通过手动实现,在人丁检查中,工作人员需要在精神高度集中、连续的单纯作业环境下工作(如图2),人眼容易疲劳,无法保证检测合格率。本文在机器视觉技术的基础上,研究深度学习方法在阀座瑕疵检测中的应用。

深度学习是机器学习的一个分支,是近些年来机器学习领域取得的重大突破和研究热点之一。在检测算法的不断改进下,Girshick等提出了R-CNN算法,该算法将“深度学习”和传统的“计算机视觉”知识进行了结合。接着He等提出了目标检测算法SPP-Net,方法的提出解决了候选框缩放成统一大小而导致物体变形的问题,Girshic通过对R-CNN和SPP-Net的缺点做进一步改进,通过引入多任务损失函数和RoI Pooling提出了FastR-CNN,虽然该算法在计算速度上得到了提高,但还不能满足端对端的测试。因此,Ren等提出了FasterR-CNN,随后在保证一定精度的前提下,为了能提高检测速度,又出现了YOLO、SSD等算法。Fatser R-CNN算法在物体检测中,相对其他算法能达到更好效果。虽然Faster R-CNN算法能获得很好的检测性能,但是在汽车喷油器阀座的应用中,仍然存在许多的问题:①喷油器阀座图像中的目标尺寸相对较小,不能精准的完成识别和定位;②瑕疵种类并不单一存在,往往一张图像上存在多类尺度不一的瑕疵,并且在检测过程中会受到光照等因素的影响,所以会出现漏检、误检的发生。针对以上问题,本文在Faster R-CNN算法基础上,对锚框大小和数量进行改进,并在改变特征提取网络的同时引入ResNet、Inception模块,通过一系列的改进,让汽车喷油器阀座的检测更精准,以满足工业检测的基本要求。

1数据集構建

1.1数据采集

在喷油器阀座检测中,由于喷油器阀座瑕疵较小,不能通过肉眼识别,因此,需要对喷油器阀座图像进行放大;同时还要克服其他外部光源的干扰,根据焦距等参数的调整与设定来获取清晰的瑕疵图像,保证采集的图像质量。在检测中,图像的精度也直接影响到最后判别瑕疵的结果。CCD工业相机性能优良,有较好的彩色还原度和光源预校准功能,本身包含有输入输出单元和感光单元。通过放大镜头与所选相机接口及芯片尺寸进行匹配,实现图像的放大及精准度的控制;通过选取合适的光源、工装,完成遮光装置设计,该装置在解决外部光源干扰的同时,也有效克服了自身光源发散的问题,使拍摄图片更加清晰,得到高质量的图像信息;最后,对图像采集卡进行二次开发,并通过相机与电机的配合完成图像的拍摄及存储。采集环境和流程图如图3所示。

1.2图像数据处理

由于摄像头拍摄的图像通常是彩色图像,颜色信息比较丰富,冗余的信息会增加后续图像处理的难度,因此,在实际生产中需要提出有效的方法对图像进行预处理,该操作能弱化或消除图像中无关信息,恢复对检测目标有用的真实信息。目前收集的2100张图片还不能完成样本数据集的模型训练,图片数量直接影响到检测与识别的结果。为了能够提高检测模型的泛化能力,一般采用数据增强方式来避免数据不足,如图4所示。该方法能有效提高目标识别率,常常通过灰度转化(图4(a)),饱和度加强(图4(b)),饱和度减弱(图4(c)),翻转(图4(e)、图4(f))等方法进行数据集扩充,提高目标命中率,处理之后数据库得到7500张图片。与此同时,原始采集的图片分辨率为5678x2948像素,像素太高不仅会占内存空间,还不利于后期的模型训练,因此,在训练前会将图像进行压缩。接着将样本打乱,提取其中的20%(1500)做测试集,80%(6000)做训练集,之后使用Labellmg标记训练图像的缺陷类别及位置,标注目标完成后,将每一张标注图片保存为XML文件,作为训练样本。

2Fastel R-CNN算法

Faster R-CNN主要包含3个部分:特征提取层、RPN(Region ProposalNetwork)层、FastR-CNN层。Fatser R-CNN特征提取层使用的是VGG16网络模型,通过conv+ReLU+Pooling层提取Image的特征图,它被认为是卷积神经网络中分类性能较优秀的网络模型。Faster R-CNN网络结构如图5所示,通过结构可以了解整个检测过程:似设一张任意大小P×Q的图像,缩放至固定大小MxN,然后将MxN图像送入CNN网络;而CNN网络中包含了13个Conv层+13个ReLU层+4个Pooling层;而RPN网络首先经过3x3卷积,分别生成PositiveAnchors和对应Bounding Box Regression偏移量,然后计算出Proposals;而ROI Pooling层则利用Proposals从FeatureMaps中提取Proposal Feattire送入后续全连接和SoftMax网络作Classification。所以可以概括为Faster R-CNN在Fast RCNN的基础上,用RPN(region proposal network)网络取代了选择性搜索,通过有效区域合并、去除冗余等方法对目标位置进行调整,从而生成高质量的区域建议框,并且通过共享特征提取网络,有效降低了区域检测的时间,获得更精确的结果。最后由Fast RCNN对区域特征进行学习,完成物体的分类和边框的回归。

候选区域(RPN)是一个全卷积神经网络,训练时使用非极大值抑制方法,通过窗口中目标/非目标分类概率获取候选区域,按照一定比例随机选取正/负样本进行训练,正负样本以Iou(Intersection overUnion)作为判别依据。IoU是一种边界窗口回归(BoundingBox Regression,BBox)和真实目标窗口重合度的指标。通过实验发现,LoU的取值能在很大程度上影响检测效果。如果设置太大则会使检测不准确,造成大量的误检产生;设置太小检测就会不完整,存在漏检;因此,针对汽车喷油器阀座对LoU进行设置,如果检测到的边界框与瑕疵真值框之间的LoU重叠率大于0.7,则表示预测类别正确,为正样本;如果在检测到的边界框与地面真值框之间的LoU重叠率小于0.3,则表示预测类别错误,为负样本。RPN网络使用BBox生成Rol时,其回归损失函数如式(1):

Lreg对整个模型的鲁棒性产生至关重要的影响。其中函数SmoothL1,如式(2):

RPN网络的识别是典型的二分类过程,其分类损失函数定义如式(3):

最后得到RPN网络对单个图像样本的损失函数如式(4):

3基于Faster R-CNN的改进实现

3.1锚框数量与大小进行改变

锚窗是RPN网络操作中很重要的一个参数,对后续候选框生成数量与大小会产生决定性的影响。在原始Faster R-CNN中RPN使用3种不同尺寸及比例(1:1,1:2,2:1),组合成9种不同大小的锚框,并以此预测包含目标的窗口位置。似设对于一个长为H,宽为W的特征图,将会生成H*W*9个候选框,最后通过非极大值抑制算法剔除多余的候選区域。但在喷油器阀座的瑕疵检测中,它不同于平常的行人、车辆检测,喷油器阀座的瑕疵较小且种类较多,用现有的算法模型检测会存在漏检,因此针对该对象的特性对锚框进行改进,长宽比变为0.5,1,2,4,缩放比例变为4,8,16,生成的候选窗口也由原来的9个变为现在的12个。改进的锚窗使Faster R-CNN模型检测效果更好,对尺寸较小的喷油器阀座有着更精准的检测率,通过计算可以发现改进的锚窗尺寸与瑕疵尺寸大小接近。实现步骤如下:

Step 1对anchor进行初始化:

anchor base=16,anchor middle=(7.5,7.5),Size=16*16,ratio=[0.5,1,2,4],anchor base为初始值,anchor middle为初始化中心,size为面积,ratio为长宽比。

Step 2计算初始化时在不同长宽比下anchor对应的面积如式(5):

Size1,2,3,4=size/atlio=[512,256,128,6] (5)

Step 3对anchor进行开根号计算,可以得到不同的宽、高,如式(6):

Step 4由anchor的中心以及不同的宽和高计算出anchors ratio,具体如式(7)、式(8):

x_left=x1-(w1-1)/2=-3.5,y_left=y1-(h1-1)/2=2(7)

x_right=x1+(w1-1)/2=18.5,y_right=y1+(h1-1)/2=13(8)

anchors={[-3.5,2,18.5,13],[0,0,15,15],[2.5,-3,12.5,18],[4,-8,11,23]}。

Step 5利用3种不同的stales[4,8,16]分别去扩大anchors,扩大的方法是先计算出来上一步的anchor的中心以及宽高,使宽高分别乘以scale,然后再利用中心和新的宽wi、高hi计算出最终所要的anchors,如式(9)、式(10)所示:

最后得到不同尺寸大小的anchors,如式(11)所示:

anchors1,2,3,,…,12={[-37,-15,54,32]…[-55,-247,72,264]} (11)

对比发现改进后的候选框大小更接近实际瑕疵区域大小,具体通过实验进一步验证。

3.2改进特征提取网络

虽然vGG-16是卷积神经网络中分类性能优秀的模型,但该模型在图像的特征提取上损失较大,不够充分,影响最后的目标检测效果,导致对小目标的识别率不够精确。随着网络模型的不断改进,出现了Inception、ResNet等较深的网络模型,不断加深网络层数可以提高性能;因此,结合Inception和ResNet等网络的优点,在特征提取网络上做改进,对网络的深度、宽度同时进行改进,能更有效地对特征进行提取。因为在网络中前3层卷积网络能很好地提取特征,因此,通过这一特性对vGG16网络进行改进,改进后的网络如图6所示。

将conv4卷积网络模块进行替换,借鉴ResNet50构建深层网络的思想,以及Inception模型拆分-变换-合并的内积策略,同时加深该层网络的深度和宽度,以获得更强的表达能力。增加网络的深度和宽度是提升神经网络性能的最直接方法,由于Inception模块是具有优良局部拓扑结构的网络,会对输入图像执行并行卷积操作,最后再将得到的不同感受野特征进行拼接。因此,在对该网络模块进行设计时,通过融合ResNet跟Inception的特性,在残差模块中使用Inception moclule来替换残差连接中的卷积层而组成新的结构,使节点学习输入输出之间的差值映射,避免输入输出特征的拟合,消除梯度弥散和梯度爆炸,并且加快网络的训练。在替换的模块中,首先,通过1×1卷积对输入进行降维拆分;然后,经过多个3×3的卷积进行转换(为了减少计算量,其中5×5卷积用两个3×3卷积进行替换);接着,沿通道维度串联的方式进行通道合并,进行多尺度的检测;最后,通过一个1×1卷积实现通道一致,完成残差模块跟输出的线性向量的相加,公式如式(12)。在改变网络模块时,可以根据相似高度模块化理念进行设计,让新模块的计算复杂度跟vGG16中的conv4模块相似,这样在增加网络深度和宽度的同时,网络复杂度也得到保持。式中,X(i)和y(i)为输入通道,在实验中输入输出通道数都为512,*为卷积。在该模块中,一般通过修改3×3卷积层的通道数来进行网络模块的设计。这是由于该卷积层独立于输入、输出,更有利于网络的构造。设计模块如图7所示。

vGG16网络跟ResNet50的cony4模块参数数量都是5898k,ResNet50的每个模块大约是983k参数。因此,按照相似模块的搭建原则,将3×3卷积层的通道数设置为172.为了加快收敛,在每层输入前加入批标准化(Batch Normalization,BN)层,有助于对前一层网络输出进行矫正,使其均值规范为0,方差规范为1,再输入到下一层。改进的特征提取网络能够利用不同网络的优势,提高特征利用率,获得更为丰富的输入特征,使得性能进一步加强。

4实验结果与分析

实验硬件平台操作系统为WIN1064位,CPU Intel core(TM)i7-47903.60GHz,16GB内存,2TB希捷硬盘。整个实验基于Tensorflow深度学习框架进行开发,编程语言为pyhton,并采用NVIDIAGeForceGTX1070显卡进行GPU加速训练。本文以制作好的喷油器阀座数据集为训练样本,以端到端的卷积共享方式进行训练,模型使用随机梯度下降算法(SGD)进行权值优化,动量设置为0.9,权重衰减因子为0.05,每步使用的batch size设置为128,初始学习率为0.01000.当批处理次数达到40000次時,学习率调整为0.0001;当批处理次数达到60000次时,停止训练得到模型。

而关于性能评价指标,采用的是平均准确率AP(avelage precision)。其优于accuracy的评价,常作为信息检索评价标准,主要包括两个值:precision和recall,其中precision即为精确率,表示不同类别中,真正属于该类别的样本在被预测为正的样本中比例,公式为:

其中,以毛刺、刮痕、锈斑、白点4类瑕疵为检测目标,根据不同种类瑕疵进行预测,TP(True Positive)表示正确识别出瑕疵目标的样本数量;FN(False Negativa)表示未识别出瑕疵目标的样本数量;FP(FalsePositive)表示错误识别瑕疵目标的样本数量。而recall为召回率,代表正确检测出的目标个数与测试集中所有个数的比值,如式(14)所示:

其中,recall的分母true positives+false negatives,即瑕疵样本总数,而平均准确率的公式为:

由上可知,AP为一个关于precision和recall的积分;也就是对每一个阈值分别求precislon和recall变化情况的乘积,最后所有阈值下的乘积值进行累加。如果想评估一个模型的性能,可以通过precision-recall曲线(性能较好的体现就是在recall增长的同时保持precision在一个较高的水平)。综合所有类别,可以通过平均精确率均值MAP对模型进行评价,它代表模型中所有类别平均准确率的均值,计算公式为:

该实验中N代表所含类别的个数为4,最终检测结果也通过相应曲线和表格来展示。

4.1模型识别结果

实验在Fastei R-CNN网络模型上,通过改进候选框和特征提取网络,生成针对喷油器阀座瑕疵的高质量区域建议框,提取到更有效的特征,实验结果说明了改进算法的效果。首先,对常见的4类瑕疵进行识别,如图8(a)-图8(d)所示,从图中能观察到毛刺跟白点都相对较小,人眼容易忽略,但所提出的算法得到比较好的识别效果。在实际生产中,一个喷油器阀座很多时候会存在多种瑕疵,用常规的Faster R-CNN检测,会有漏检的情况发生如图8(e)、图8(g),而使用改进的算法会得到如图8(f)、图8(h),检测效果得到了提高,具体的测试结果如图8所示。

4.2性能评估

一个良好的评价指标是模型公平比较的重要保证。为了更客观地评价该改进算法的检测性能,将特征网络改进算法Our1,候选框改进算法Our2,综合候选框改进和特征网络改进的算法Our3与算法FasterR-CNN作对比。通常使用积分的方法,求取P-R曲线的面积,获得平均准确率(AP)。针对喷油器阀座常见的瑕疵:毛刺、锈斑、刮痕、白点,测量的结果如图9所示。

由图9(a)可知:对于喷油器阀座毛刺的检测,FasterR-CNN的平均准确率(AP)为0.7745,算法Our1平均准确率为0.7926,算法Our2的平均准确率为0.8038,算法Our3实验平均准确率为0.8185.由此可知,所提小的算法Our1、算法Our2、算法Our3在Faster R-CNN基础上分别提高了1.81%、2.93%、4.4%。

由图9(b)可知:对于喷油器阀座锈斑的检测,Fastei‘R-CNN的平均准确率(AP)为0.6989,算法Our1平均准确率为0.7104,算法Our2的平均准确率为0.7037,算法Our3实验平均准确率为0.7197.由此可知,本文所提出的算法Our1、算法Our2、算法Our3在Faster R-CNN基础上分别提高了1.15%、0.48%、2.08g/0.

由图9(c)可知:对于喷油器阀座刮痕的检测,FasterR -CNN的平均准确率(AP)为0.6242,算法Our1平均准确率为0.6430,算法Our2的平均准确率为0.6357,算法Our3平均准确率为0.6819,可得出,所提出的算法Our1、算法Our2、算法Our3在Faster R-CNN基础上分别提高了1.88%、1.15%、5.77%。

由图9(d)可知:对于喷油器阀座白点的检测,Faster‘R-CNN的平均准确率(AP)为0.6177,算法Our1平均准确率为0.6268,算法Our2的平均准确率为0.6402,算法Our3平均准确率为0.6516.由此可知,本文所提出的算法Our1、算法Our2、算法Our3在FasterR—CNN基础上分别提高了0.91%、2.25%、3.39%。

通过目标检测算法中先进的FasterR—CNN算法进行对比,所提出的算法在检测性能上有明显提高,在喷油器阀座瑕疵中,通过比较不同瑕疵种类在不同算法下的准确率,最后得到均值平均检测率(MAP),如表1所示。

根据上述喷油器阀座目标检测准确率数据可看出,候选框改进算法、提取网络算法在原有算法模型上有相应的提高,而综合二者的算法在原模型上也得到了显著提高,在原模型上大约提升了4个百分点的平均准确率,毛刺的检测准确率相对其他瑕疵检测准确率要高。这是由于在瑕疵样本中,毛刺的数量相对较多,因此检测准确率较高。通过改进算法与现有算法模型一一做对比,分别得出改进模型的有效性,在考虑时间跟准确率这两个评判标准时,所提出的算法为了追求较高检测精度,会造成时间成本的增加。这是由于在喷油器阀座生产场景下,检测精确度较低会失去检测意义。因此,为了实现高精确的检测,以牺牲少量时间作为代价,这是在工业生产中可以接受的,所提出的算法已在生产线初步应用,检测模型图如图10所示。通过与自动设备相结合,基本实现工业上的无接触检测,在节约大量人力成本的同时,有效提高了工业生产效率和经济效益。

5结论

本文以喷油器阀座图像数据为研究对象,将深度学习中的目标检测方法应用到喷油器内部缺陷检测领域中,并且在基于FasterR-CNN检测模型上进行改进,分别对喷油器阀座中常见的毛刺、刮痕、白点、锈斑4类对象进行实验测试。实验结果表明,算法Our1 MAP为69.32%,算法Our2MAP为69.58%,算法Our3MAP为71.79%。总的均值平均准确率比现有的Faster R-CNN算法分别提升了大约1.4%、1.7%、3.9%。由于在喷油器阀座瑕疵中,其他样本数量相对毛刺较少,在后期的工作中需要在样本及算法模型上进行改进,使得模型准确率进一步得到提升。实验中网络的加深会造成时间的浪费,出现内存不足、响应慢等问题。为了更好的应用于工业场景,在以后的研究中,可以将网络替换成轻量级网络进行训练,在降低模型大小的同时,也能保持模型性能,更好地满足工业上阀座检测要求。技术的投入能更好地保证检测的可靠性和精准性,对提高自动化生产水平、喷油器生产具有很大的实际意义。

猜你喜欢
深度学习
有体验的学习才是有意义的学习
电子商务中基于深度学习的虚假交易识别研究
MOOC与翻转课堂融合的深度学习场域建构
大数据技术在反恐怖主义中的应用展望
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现