黄汉成,赵卫东,夏 冰
(1.安徽工业大学电气与信息工程学院,安徽马鞍山243032;2.马鞍山钢铁股份有限公司设备管理部,安徽马鞍山243000)
在汽车仪表盘指针的实际生产过程中,由于生产线上机器作业及空气中偶有污染物等,指针上难免会产生各种类型的缺陷,如沾上黑点状、毛发状异物等,及时发现指针表面的缺陷已成为指针产品质量控制过程中的重要环节。传统的目标检测方法分为三个步骤:区域选择,特征提取,分类器。其中,区域选择常用的方法为滑窗,滑窗的选择往往没有针对性、复杂度较高;特征提取的方法有尺度不变特征变换(SIFT)[1]、方向梯度直方图(HOG)[2]等,但是这些方法的特征鲁棒性较差;分类器则以支持向量机(SVM)[3]、AdaBoost等为主流方案,但是采用这些方案易出现欠拟合的情况,且分类精度低。近年来,Yann等[4]提出的卷积神经网络(CNN)在计算机视觉领域取得了不错的效果,为了提升分类的准确度,模型的复杂度逐渐提高,深度也越来越深[5-6],常见的网络如深度残差网络(ResNet)的层数已达152层。现实中,深度学习更多地将应用在移动端和嵌入式端,其庞大的模型若被直接应用会面临内存不足、响应速度慢等问题。为了解决这一问题,Howard等[7]提出MobileNet,MobileNet的设计思想,直接设计一个小模型进行训练,不仅可保持模型的性能,还可提升模型的速度。由于指针表面缺陷极其细微,考虑到检测精度,用分辨率为5 472×3 648的Balser相机采集图片,若不对图片进行任何处理直接输入RFCN 进行检测,则计算量非常大,检测精度也不高。为此,提出一种融合MobileNet 与ResNet 的网络及SSD(single shot-multibox detector)与RFCN(region-based fully convelutional networks)模型的指针缺陷检测算法,采用SSD算法分辨出烫印和未烫印的指针,将烫印的指针输入RFCN模型再次进行微小缺陷的检测。
MobileNet v2采用深度可分离卷积[8](depthwise separable convolution)作为基本单元,针对每个输入通道采用不同的卷积核,相比标准卷积,其计算量和参数量大大减少;同时引入shortcut结构,通过1×1的卷积操作来增加feature map(特征图)的通道数,在逐点卷积结束之后改用linear激活函数。
SSD算法可以直接回归出物体的类别和位置,且使用了许多候选区域作为RoI(region of interest)。此外,SSD采用多尺度特征图,用不同的特征图对不同尺寸的候选框进行回归,其基本架构如图1。
图1 SSD基本架构Fig.1 Basic architecture of SSD
对于每个预测框,首先根据类别置信度的排序来确定每个预测框所属类别;然后过滤掉置信度较低的预测框,对留下的预测框降序排列,使用非极大值抑制(NMS)[9]算法确定最后的检测结果。置信度误差采用softmax损失函数,定义如下式
为了预测目标的边界框位置,采用回归的方法预测边界框的位置信息,位置误差采用smooth L1 损失函数,定义如下式:
迭代损失函数定义如下式
该损失函数定义为置信度误差(confidence loss)与位置误差(locatization loss)的加权和。其中:N 是先验框的正样本数量;c 为类别置信度预测值;α 为加权参数,取值范围(0,1]。
夏季,天气炎热。中午,她从吴玉梅家里回到自己家后,生了满肚子的气,饭也不做,一头倒在床上,只顾想她的心事。
一味增加神经网络的深度,可能会出现训练集准确率下降的问题,即“退化问题”[10],对此,He等[11]提出了一种全新的网络,即深度残差网络(ResNet),允许加深网络。其核心思想分为identity mapping(恒等映射),residual mapping(残差映射)两部分。若输出y=F(x)+α,那么第一部分即为x,第二部分即为y-x,所以称F(x)为残差。只要y=0,就构成了一个恒等映射F(x)=x,这样拟合残差会更容易,即使网络深度增加,性能也不会降低,整个网络会处于最优状态。
SPP[12],Faster R-CNN 等方法在RoI 池化之后,后面的网络结构就失去了平移不变性。RFCN 提出了position sensitive score map(位置敏感得分图),把目标的位置信息融入RoI pooling(RoI池化层)[13-14],从而可对目标的平移准确响应。RFCN 的基础网络去掉了ResNet-101 的average pooling layer(平均池化层)和fully connection layer(全连接层),在网络的最后接上一个1×1×1 024的全卷积层[15]。其网络结构如图2。
图2 RFCN网络结构Fig.2 Network architecture of RFCN
RFCN通过规则网格将每个RoI矩形划分为k×k个区间。RFCN的最后一个卷积层为每个类别生成k2通道的得分图。在第(i,j)个区间(0≤i,j≤k-1)定义一个位置敏感的RoI池化响应操作:
为得到预测目标的所属类别,分类损失使用交叉熵损失,定义如下式:
其中:sc(θ)是一个函数,定义为(11)式;θ 为函数的参数;rc(θ)为对每一类所有相对空间位置的分数的平均池化;c 为分类的个数。
为了得到预测目标的边界框的位置,回归损失使用smooth L1损失,定义为下式:
其中:t 为预测边框的参数化坐标;t*为坐标向量;x 为函数的参数。
其中:tx,y,w,h为预测边框的参数化坐标;t*为坐标向量,若c*=0,说明RoI的真实标签为背景;λ 为加权参数,取值范围(0,1];Lcls(sc*)为分类损失函数;Lreg(t,t*)为边界框回归损失函数。
实验平台:CPU 为Intel Core i7-6800K@3.400 GHz,GPU 为NVIDIA GTX1080Ti,内存为16 GB,操作系统为Ubuntu16.04、深度学习框架为Tensorflow-gpu,CUDA9.0。图片采集用Basler ace Gige acA5472-5gm面阵工业相机,分辨率为5 472×3 648,帧率为5 f/s。
使用LabelImg对现场采集的指针图片进行标注,标注类别为烫印指针(normal)和未烫印指针(abnormal),现场采集584张照片,其中烫印的指针有558张,未烫印的指针有26张。训练集中属于(烫印)normal类别的有500张,属于(未烫印)abnormal类别的有20张;测试集中属于normal类别的有58张,属于abnormal类别的有6张。未烫印指针和烫印指针的标注如图3。
图3 未烫印指针和烫印指针的标注Fig.3 Marking of no stamping pointer and stamping pointer
相机拍摄的分辨率为5 472×3 648,SSD的输入尺寸不宜过大,否则会造成内存溢出而训练终止。为保证训练过程的稳定性,训练之前先将采集照片的尺寸重新设定,宽度为450、高度为300,然后输入神经网络进行训练。训练完成后随机选取部分图片作为测试,测试图片中的指针均以不同的角度摆放,选取的烫印与未烫印指针的检测结果分别如图4,5。由图4,5 可以看出,对于摆放不同位置的烫印和未烫印指针,采用SSD-MobileNet算法均可被检测出,且置信度为99%,说明以MobileNet作为SSD算法的特征提取网络具有较高的准确性。
图4 烫印指针的检测结果Fig.4 Detection results of stamping pointer
图5 未烫印指针的检测结果Fig.5 Detection results of no stamping pointer
测试完成后,记录检测烫印和未烫印指针的平均边框精度、置信度、准确率、召回率、漏检率等评价指标,如表1。
由表1可知,无论是烫印还是未烫印的指针都没有被漏检,召回率均为100%。类别为烫印的边框精度为97%,类别为未烫印的边框精度为90%,由此说明SSD-MobileNet 算法具有较高的检测精度,对SSD-MobileNet算法检测的边框进行裁剪,将其作为RFCN的输入,进行指针表面微小缺陷的检测。
表1 SSD-MobileNet算法的实验数据Tab.1 Experimental data of SSD-MobileNet algorithm
将SSD算法输出类别为烫印(normal)的图片进行裁剪,对这558张裁剪后的图片进行二次标注,标注的缺陷类别如图6。由图6可看出:第一类缺陷为边缘不平整或有缺口,记为gap;第二类缺陷为毛发状异物,记为hair;第三类缺陷为黑点状异物,记为stain;第四类缺陷为白光区域,记为light。
图6 4种缺陷的标注Fig.6 Marking of four kinds of defects
采取随机缩放、翻转、裁剪的方法增强数据,从中随机选取4种缺陷的检测结果,如图7。由图7可看出:gap类型缺陷置信度较低,为92%;而hair,stain,light等类型缺陷置信度较高,均为99%,说明以ResNet作为RFCN的特征提取网络具有较高的准确性。随机选取指针表面缺陷的检测结果,如图8。其中:图8(a)为指针表面无缺陷,图8(b)为指针表面一种类型缺陷;图8(c),(d)为指针表面多种类型缺陷。由图8 可看出,采用RFCN-ResNet算法可检测出指针表面多种类型的缺陷。
图7 4种缺陷检测结果Fig.7 Detection results of four kinds of defects
图8 指针表面缺陷的检测结果Fig.8 Detection results of pointer surface defect
检测完成后,记录指针表面缺陷的检测平均边框精度、置信度、准确率、召回率、漏检率等评价指标,如表2。
由表2可知:边缘缺口(gap)类型缺陷检出的准确率偏低,为91%,因人为标注时,部分gap 类型缺陷可能被误判为stain 类型缺陷,导致部分gap 类型缺陷被检测为stain类型缺陷;stain类型缺陷漏检率偏高,为4%,因标注时不同标注者对黑点大小的判断不一致,部分微小的黑点未被标出,导致部分黑点未被检出。由此说明采用RFCN-ResNet算法可将指针表面微小缺陷准确检测,且可准确定位。
表2 RFCN-ResNet算法的实验数据Tab.2 Experimental data of RFCN-ResNet algorithm
综上分析表明:采用RFCN-ResNet算法可检测指针表面stain,hair,gap,light等四类缺陷,准确率分别为94%,95%,91%,93%,因RFCN-ResNet算法中采用敏感位置得分图可提高检测准确率;采用RFCN-ResNet算法仅极少数微小缺陷未被检出,因为置信度低而被过滤掉。现场要求指针表面缺陷检测的准确率在80%以上,故RFCN-ResNet算法的检测准确率可满足现场生产要求。
设计一种融合SSD和RFCN的指针缺陷检测算法。SSD-MobileNet算法采用多尺度特征图和深度可分离卷积,可直接回归出物体的类别和位置,进而检测出指针是否烫印。将烫印的指针检出后进行裁剪送入RFCN-ResNet 算法进行二次检测,RFCN-ResNet 算法采用敏感位置得分图可将指针表面细小的缺陷检测出。实验结果表明,采用SSD-MobileNet和RFCN-ResNet融合的指针缺陷检测算法可精准识别指针表面微小缺陷,具有较高的精度、置信度、准确率及召回率。