深度学习在手机数据接口缺陷检测中的应用

2021-06-29 06:36刘亚东罗印升曹阳阳
计算机与现代化 2021年6期
关键词:脏污特征提取卷积

刘亚东,罗印升,曹阳阳,宋 伟

(江苏理工学院电气信息工程学院,江苏 常州 213001)

0 引 言

手机数据接口是手机最常用的零部件之一,在工厂进行手机数据接口组装过程中,受工厂环境以及组装设备不稳定的影响,组装完成后的手机数据接口表面可能存在脏污以及表面划伤等缺陷。虽然目前人工检测的灵活度很高,但是传统的利用人工进行缺陷检测的方法费时费力,不符合自动化检测的趋势,因此选择一种高效的、高准确率的自动化检测算法成为必然。

目前传统的机器视觉在进行缺陷检测时,常常根据缺陷的特征去设计相应的特征模板,而对缺陷的准确描述则成为检测准确率提升的关键。如黎明等人[1]通过设计一种新的图像频域滤波器进行表面纹理的增强,再使用图像分割的方法将表面缺陷纹理分割出来,进而实现对表面纹理的缺陷检测。毛锋等人[2]提出了Top-Hat变换序列的分析方法,通过结合开运算与Top-Hat变换,获取最佳结构元素尺寸和最佳分割阈值,从而实现对缺陷的检测。骆腾斌等人[3]在进行轴承套端面的缺陷检测时,通过Canny算子进行边缘检测,再通过最小二乘法提取轴承套端面圆形轮廓区域,然后使用Otsu算法选取最佳阈值进行分割,最后通过连通域的特征进行缺陷检测。然而,在对高复杂度背景和形态各异的缺陷进行检测时,传统的机器视觉检测方法很难完成[4-7]。

在使用传统机器视觉进行手机数据接口的缺陷检测时,因手机数据接口表面存在的缺陷特征样式各异,不能找到统一的特征模板,后续的检测需要不断地去调整检测程序。此外,一些缺陷往往不能被准确描述,这也加大了检测的难度。而深度学习进行特征提取是一个自学习的过程,不需要人为设定特征,能解决传统机器视觉存在的自适应能力不足的问题。并且在相同类型的缺陷检测时,可以进行迁移学习,方便后续的程序开发。目前深度学习已被广泛应用于工业领域的缺陷检测,得益于Faster R-CNN[8]强大的检测性能,工业领域已经有很多基于Faster R-CNN的成功案例,如兰州交通大学的常海涛等人[9]在进行工业CT图像缺陷检测时,通过使用Faster R-CNN神经网络模型以及更改锚框(anchor)的尺寸并使用ZF网络[10]为特征提取网络,最后检测准确率达到96%。彭煜等人[11]在进行刨花板表面缺陷检测时,通过使用Faster R-CNN的检测模型,再选用ResNet101[12]作为主干特征提取网络,其检测最后的平均准确率为93.37%。此外,冯太锐等人[13]将深度可分离卷积运用到化妆品塑料瓶的缺陷检测,其检测准确率高达97%。He等人[14]提出了Mask R-CNN算法,算法中采用RoIAlign的池化操作解决了目前RoIPooling操作中2次量化造成的区域不匹配问题,从而提高检测模型的准确性。

针对手机数据接口的缺陷检测问题,本文使用了Faster R-CNN目标检测算法,为了解决小样本缺陷过多的情况,将Faster R-CNN算法中的RoIPooling替换为RoIAlign,特征提取网络使用ResNet50融合特征金字塔网络[15-16](Feature Pyramid Networks, FPN)的结构,在对手机数据接口的缺陷检测中达到了良好的检测效果。

1 手机数据接口缺陷检测算法

1.1 Faster R-CNN模型结构

Faster R-CNN的整体架构如图1所示,Faster R-CNN算法主要是在Fast R-CNN[17]的基础上,使用了区域生成网络(Region Proposal Network, RPN)替代Selective Search[18-19]方法进行检测框的提取,极大地提高了检测框的生成速度。由图1可以看到,原始图像输入到网络模型中,经过卷积神经网络进行特征提取,获取的原始图像的特征图(Feature Map)被用作共享,RPN网络生成候选框,随后将生成的候选框投影到特征图上获得相应的特征矩阵,然后将特征矩阵通过RoIPooling层缩放成7×7大小的特征图,最后通过全连接层得到最后的预测概率以及边界框的回归。Faster R-CNN因具有较高的检测精度以及相对较快的检测速度,已经被用于各种领域的缺陷检测[20-23]。

图1 Faster R-CNN的整体结构

1.2 基于Faster R-CNN结构的改进

1.2.1 ResNet50融合特征金字塔(FPN)

特征金字塔通过将深层的语义信息传至底层,以解决浅层语义信息不足的情况,从而获取高分辨率且具有强语义信息的特征,这种结构很好地解决了针对小目标的检测。如图2(a)部分所示,自底向上以步长为2的卷积进行不断的特征浓缩,浅层图片信息反映的是图像的边缘等信息,而在进行不断的特征提取之后,高层图片信息则反映的是图像的整体轮廓信息等;如图2(b)部分所示,自上而下通过2倍上采样再将特征图放大;如图2(c)部分所示,通过侧边将具有高语义信息的高层特征与低语义信息的低层特征进行融合,融合后的特征图使得小瑕疵样本信息能更好表达。

图2 特征金字塔网络结构

本文中特征提取网络使用ResNet50融合FPN的结构。手机数据接口表面存在的缺陷分为脏污和划伤2类,其中根据对数据样本进行统计发现小瑕疵样本占比68.8%,在进行特征提取时,小型缺陷样本在进行不断的卷积操作后,小型瑕疵缺陷极有可能会丢失,这严重影响了模型对小瑕疵样本的检测效果,因此引用了ResNet50融合FPN的网络设计思路。

如图3所示,图3中A的部分Stage1~Stage5分别对应了ResNet50网络的Conv1~Conv5的5个卷积块,从Stage1到Stage5是ResNet50进行的前馈计算的过程,特征图在计算过程中会不断缩小,将ResNet50的Stage2~Stage5中每个Stage的最后一层的特征图通过侧边进行提取,对提取之后的特征图进行一次1×1的卷积,以此进行通道的融合并降低通道维度。

如图3的B部分所示,从上到下开始将Stage5获取的特征图F5进行一次上采样,特征图扩大为原来的2倍,再与相邻层获取的特征图进行融合得到F4,重复此过程即可得到相邻层融合后的特征图,然后将融合后的特征图F2~F5分别进行一次3×3的卷积,此卷积的目的是消除混叠效应,随后得到特征映射集{P2,P3,P4,P5}。

图3 改进后的Faster R-CNN整体结构

1.2.2 RoIAlign替换RoIPooling

在Faster R-CNN中,RoIPooling的作用是将生成的候选框映射产生固定尺寸的特征图,而在进行RoIPooling操作的时候,对映射到特征图上的浮点数进行了取整操作,此时进行了一次量化操作,然后在本次量化操作的基础上将边界区域平均分割成了K× K个区域,此时则进行了第二次量化操作,以上2次量化操作使得候选框已经与之前模型回归出的位置发生了一定的偏移,这就影响了检测的准确率。RoIAlign在候选框映射到特征图过程中没有进行取整操作,然后在未取整操作的基础上将边界框分割成K × K个区域,再将每个区域根据采样点的个数进行平分,每一个区域取其中心点的数值,此数值则使用双线性插值方法计算得出。RoIAlign对于小目标的检测效果尤为明显,手机数据接口中小目标占比68.8%,使用RoIAlign替代RoIPooling则显得更加合理。

2 实 验

2.1 图像预处理

通过对手机数据接口组装生产线收集的瑕疵品进行拍照,共收集了457张长宽为960×540的缺陷样本图片,在数据增强的时候,考虑到一些缺陷特别小,进行高斯模糊等数据增强的方式有可能将缺陷损伤,因此在进行数据增强的时候只选用了旋转180°、水平镜像翻转以及局部区域切割的增强方式,如图4所示,通过上述3种增强方式将数据集扩充到了2130张,根据手机数据接口的缺陷类型,将缺陷分为脏污和划伤2类。最后通过数据标注软件LabelImg将扩充后的数据集分别标注并保存为xml格式的标注数据文件,然后随机抽取70%的图像数据作为训练集,10%的图像数据作为验证集,剩余20%的图像数据作为测试集。

(a) 旋转180° (b) 水平镜像翻转 (c) 局部区域切割图4 数据增强

2.2 实验平台与训练结果

本实验使用的是Windows 64位操作系统,CPU为AMD 3500X,16 GB内存,显卡为RTX 2060 Super,深度学习框架为Pytorch1.5,图像获取设备为工业相机PMS-0130B14CDC,获取的图像长宽为960×540。

本次训练使用的训练集为1704张缺陷图像,使用COCO数据集的预训练模型进行迁移学习,迭代次数为100,权重衰减率设置为0.0005,动量设置为0.9,初始学习率设置为0.005,学习率下降策略采用等间隔调整学习率,每迭代10次对学习率进行一次调整,调整倍数设置为0.33。图5为训练过程中学习率与loss收敛的关系图。

最终使用426张测试集图像进行预测,预测结果如图6所示。由预测结果可看出,无论是长条状的划伤还是小脏污点,都能很准确地检测出来。

图5 不同学习率下的loss图

图6 改进后的网络检测结果

2.3 模型性能评估

为了对结果进行评价,对2类缺陷的平均精度(Average Precision, AP)进行了计算,并使用所有类别的平均精度(mean Average Precision, mAP)作为最终评价指标,AP的计算公式如下:

(1)

公式(1)中,P为Precision,R为Recall,具体Precision与Recall的计算公式如下:

(2)

(3)

公式(2)中,TP为True Positive,表示正确预测到的正样本数;FP为False Positive,表示预测成正样本的负样本数;公式(3)中,FN为False Negative,表示预测成负样本到的正样本数。

通过以上公式将获取的Precision和Recall分别作为坐标轴的纵坐标与横坐标,通过选取不同的阈值对应不同的Precision与Recall值来画线,绘制出的P-R曲线以下的面积即为每一类对应的AP值。对以上获取的各类AP值求平均得mAP值,其计算公式如下:

(4)

其中,N为缺陷类别数。

通过计算得到2类缺陷的AP值,并对mAP进行了计算,划伤的AP值达到了89.67%,脏污的AP值达到了92.66%,mAP为91.17%,结果如图7所示。

图7 划伤与脏污的P-R曲线

2.4 实验对比分析

特征提取网络使用ResNet50融合FPN结构,再使用RoIAlign与RoIPooling对mAP的检测结果进行对比,为了保证结果的准确性,在实验时使用相同的训练集、验证集、测试集。表1为二者对mAP的影响。

表1 使用RoIAlign与RoIPooling对mAP的影响

为了使最终检测结果能更好展示,本文在实验中对特征提取网络分别使用VGG16、ResNet50以及ResNet50融合FPN结构,对使用各个网络的mAP进行对比,选择不同特征提取网络对手机数据接口检测的检测效果如表2所示。

表2 各种特征提取网络的检测效果

通过表2的实验结果可以得出,VGG16因参数量过大导致其速度偏慢,此外,VGG16和ResNet50并未利用到浅层网络,这将使得小型缺陷目标在特征提取后丢失,mAP不高。

因此改进Faster R-CNN中特征提取网络选择ResNet50融合FPN结构,RoIPooling为RoIAlign,最后的mAP达到了91.17%,相比只使用ResNet50为特征提取网络,在检测速度略微提升的情况下mAP提高了2.58个百分点。因检测目标上的小型划伤和脏污占比较高,使用ResNet50融合FPN的网络结构能有效检测出小型缺陷样本。文中使用RoIAlign替代RoIPooling,对模型整体性能有略微的提升。这使得手机数据接口缺陷检测能达到相对最优的检测效果。

3 结束语

本文基于Faster R-CNN网络架构,再集成ResNet50融合FPN的结构作为特征提取网络,实现了对手机数据接口缺陷的高准确率检测。首先在收集数据集的基础上,采用数据增强的方式扩充了数据集,选用Faster R-CNN检测算法,使用RoIAlign替代了RoIPooling,并使用了ResNet50融合FPN的结构代替VGG作为特征提取网络。最后对426张测试集进行验证,针对脏污缺陷的AP值为92.66%,划伤缺陷的AP值为89.67%,mAP达到了91.17%,检测速度达到4.76 FPS,能够满足企业生产线的速度要求。

猜你喜欢
脏污特征提取卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
老旧物件巧变新
基于渗透性能的道床脏污评估标准研究
铁路运煤专线道床脏污率标定试验线的建设及应用
从滤波器理解卷积
基于Daubechies(dbN)的飞行器音频特征提取
基于傅里叶域卷积表示的目标跟踪算法
Bagging RCSP脑电特征提取算法
基于MED和循环域解调的多故障特征提取
一种基于卷积神经网络的性别识别方法