当前位置:首页 期刊杂志

复杂环境下的冰箱金属表面缺陷检测

时间:2024-05-04

袁 野,谭晓阳

(1.南京航空航天大学计算机科学与技术学院,南京 211106;2.模式分析与机器智能工业和信息化部重点实验室(南京航空航天大学),南京 211106;3.软件新技术与产业化协同创新中心,南京 211106)

0 引言

金属制品是人类社会中重要的工具用品。在实际使用时,金属制品表面常要求光滑无痕,一批产品的质量也会以表面缺陷占比来衡量。以冰箱为例,表面的缺陷一般表现为划痕、凹痕、擦痕等,当冰箱表面出现缺陷时,该产品将被直接淘汰,当一条生产线中表面缺陷率过高时,也将极大地影响产品的整体质量。因此,冰箱表面的缺陷信息需要得到准确的检测。

实际生产中如果采用人工检测的方法,人力物力将被极大地浪费,所以需要用到自动化的检测系统,应用机器视觉技术快速准确地获得缺陷的位置。在早期的工作中,缺陷检测常常应用到红外、电磁、激光超声等技术,对设备与环境的要求较高,且难以准确定位缺陷的位置,提取进一步的信息,所以在实际生产中实用价值不高。随着深度学习的快速发展,缺陷检测开始大范围地使用深度学习技术,本次研究就是基于冰箱金属表面的缺陷图像进行缺陷识别。

然而,冰箱表面实际上是金属面,有受光照影响大、缺陷特征不明显、形状多样且密集的特点,且实际生产环境非常复杂,光照与拍摄设备的质量难以得到保证,所以检测时难以定位以及分类,容易造成误检和漏检,检测难度较大。现有的主流目标检测网络都是效果非常好的网络模型,但是在金属表面缺陷的检测中效果也不佳,所以基于金属表面缺陷的特殊性质,需要对网络做出针对性的改进。

针对金属表面特点需要设计出针对性的网络结构和数据处理算法,本文从已有的神经网络模型中选取合适的模型,加以改进设计出了Metal-YOLOv3 模型。在YOLOv3(You Only Look Once version 3)算法原损失函数、先验框(anchor)尺寸与非极大值抑制算法等方面进行改进,在保证了检测速度的前提下大大提升了检测精度。

该模型能对复杂情况下的冰箱金属表面缺陷进行精确的检测,提取出产品上的缺陷信息,同时也具有较快的检测速度,而且对反光、灰暗的拍摄环境也具有良好的鲁棒性,能在实际生产中应用。

本文的主要贡献如下:

1)针对金属表面检测调整设计了Metal-YOLOv3 算法,算法高效简单,准确性较高;

2)在与现有的检测算法模型对比时,本文算法的准确性是最高的;

3)本文算法采用的基础结构是YOLOv3,检测与训练速度比区域卷积神经网络(Regional Convolutional Neural Network,R-CNN)[1-4]系列的模型快,抗干扰性强。

1 相关工作

计算机视觉在生活与工业方面都有应用,其中目标检测是非常热门的应用领域。传统的目标检测是基于目标的纹理特征、颜色对比等光学特性设计对应的算法,但这样的算法依赖的是人为总结的特征,在稍微复杂的应用场景中效果与检测速度经常不尽人意,而且当使用的需求有变化时,需要时刻调整算法参数,非常浪费人力资源,所以目标检测算法在设计之初并未受到重视。

随着深度学习的迅速发展,基于深度学习的目标检测算法在准确性、检测速度等指标都已满足应用需求,成功地替代了基于光学特性的传统方法,成为了目标检测算法的主流。在众多基于深度学习的目标检测算法中,以R-CNN 系列网络为主要代表,此外还有单阶段多边框目标检测算法(Single Shot multibox Detector,SSD)[5]、YOLO[6]、YOLOv3[7]等经典算法。

1.1 主流深度学习目标检测算法

Faster R-CNN Faster R-CNN 模型分为两个部分:第1 部分就是直接用普通分类网络的卷积层来提取共享特征,后接一个感兴趣区域池化层[2],在第1部分的最后一张特征图上提取针对各个感兴趣区域(Region of Interest,RoI)的特征图,然后将所有RoI 的特征图都交由第2 部分来处理。第2 部分是一个区域候选网络(Region Proposal Network,RPN)[3],使用RPN 卷积网络替代R-CNN 与Fast R-CNN 的选择性搜索[8]模块,将RPN 集成到检测网络中,得到一个统一的检测网络,用来对每一个RoI 进行分类和回归。由此得到每个RoI 的类别和归回结果。其中第1 部分的基础分类网络计算是所有RoI共享的,只需要进行一次前向计算即可得到所有RoI 所对应的特征图。

YOLO 与R-CNN 系列的网络模型不同,YOLO 训练和检测均是在一个单独网络中进行。R-CNN采用分离的模块求取候选框,训练过程因此也是分成多个模块。在Faster R-CNN中,尽管RPN 与R-CNN 共享卷积层,但是R-CNN 将检测过程分为两部分:先得到候选框,再进行分类回归,需要反复训练RPN 和R-CNN。YOLO 将物体检测分类问题与回归问题作为同一个回归问题进行求解,输入图像经过一次推断,便能得到图像中所有物体的位置和其所属类别及相应的置信概率,大大提升了检测的速度。

SSD SSD 算法结合了YOLO 与Faster R-CNN 的特点,在单独的网络中一次性回归出物体的位置与类别,具有很快的检测速度。与YOLO 不同的是SSD 提取了不同尺度的特征图来做检测,用较大尺寸的特征图来识别小物体,小尺寸的特征图则用来检测大物体。此外,SSD 借鉴了Faster R-CNN,采用了不同尺度与长宽比的anchors,可以更大限度地匹配目标形状,减少训练难度。

YOLOv3 YOLOv3 算法是YOLO 系列的较新成果,相比YOLO,引入了多尺度融合的特征提取方式,采用类似FPN[9]的上采样和融合方法,将不同尺度的特征图融合起来,然后在不同尺度上划分不同的anchors 尺寸,进行检测分类。在网络结构上,借鉴了残差网络(Residual Net,ResNet)[10]的思想,在网络中加入了残差模块,用来代替池化层与全连接层。

1.2 金属表面缺陷检测领域

目前针对金属表面缺陷检测的研究主要是基于激光超声技术[11-14]、磁场技术[15-16]、红外处理技术[17]、图像处理技术[18-20]和神经网络识别技术[21-22]。

文献[11-13]将激光超声技术应用在金属表面缺陷检测中;文献[14]总结了激光超声技术作用于缺陷检测的机理;文献[15]基于交变磁场研究了金属表面缺陷的磁场特性;文献[16]使用磁记忆方法进行金属表面缺陷识别;文献[17]将红外技术引入缺陷识别中,取得了不错的成果;文献[18]结合多种光照条件与图像处理技术,提供了金属表面缺陷新的识别思路;文献[19]使用了多种光照技术、3D 成像技术金属表面的灰度变换,深度研究了钢材表面缺陷的光学特征与内在规律;文献[20]针对凹痕缺陷与擦伤缺陷采用灰度差分与小波变换算法,提取出了不同的特征信息;文献[21]将陶瓷球表面的直方图等特征提取出来,结合反向传播(Back Propagation,BP)神经网络进行了缺陷识别,能为金属表面缺陷检测提供新的切入点;文献[22]将BP神经网络引入到钢材表面缺陷检测中,取得了不错的效果。

目前业内在金属表面缺陷检测中经常使用的是结合磁场、激光等技术实现的识别,对硬件与工作环境有着较高要求。本文使用的Metal-YOLOv3 网络模型简化了对检测设备的要求,且能在复杂的环境下成功地识别出冰箱金属表面缺陷,实现了对金属表面缺陷的有效检测。

2 Metal-YOLOv3

本章对Metal-YOLOv3 在金属表面缺陷检测上的应用方法进行了详细介绍,展示了Metal-YOLOv3 的网络结构与实现细节。

实验使用的数据集是车间中的冰箱表面划痕图像。在对划痕图像的观察与标注过程中,本研究发现金属表面缺陷特征多样且不明显,常有重叠或难以辨认的情况,会使得人工标注时出现标注的错漏,所以首先需要剔除错漏的标注。在检测模型的训练过程中,需要克服金属表面缺陷特征不明显、缺陷重叠以及金属表面反光等影响检测精度的情况;同时也需要保证模型的检测速度、鲁棒性能满足实用要求。

基于数据集的特征及实用性需求,本文在YOLOv3 模型的基础上,结合了最新提出的完整交并比(Complete-IoU,CIoU)损失函数[23]设计了Metal-YOLOv3算法。

2.1 Metal-YOLOv3网络结构

如图1,Metal-YOLOv3网络结构分为两个部分:

第一部分是Darknet-53 为主体的卷积层,用于提取图像的特征。

第二部分是采样与输出结构,对图像特征分3 次进行上采样与输出,在3 种尺寸的特征图上按照置信度提取候选区域,与anchors 组成的预测值进行比较得出相应的检测框与置信度,然后按照非极大值抑制(Non-Maximum Suppression,NMS)算法[24]剔除不符要求的候选框,最后按照CIoU 损失的计算方式来计算损失。

图1 Metal-YOLOv3 模型结构Fig.1 Structure of Metal-YOLOv3 model

2.2 引入新损失函数

衡量检测框精确度的指标一般是交并比(Intersectionover-Union,IoU),IoU 的定义如式(1),指检测框与目标框的重叠面积与总面积的比值:

YOLOv3模型在不同尺度上的特征图用anchors提取检测框,然后与真实目标框计算损失,原损失函数如式(2),

其中:Lxy表示检测框与目标框中心点距离的损失,Lwh表示检测框与目标框高宽的损失,Lconf与Lclass表示置信度损失与类别损失。

可以看出,边框的位置损失与尺寸损失是分开计算的,无法像IoU 那样直接反映检测框与目标框的重合度信息。金属表面缺陷检测对边框的准确度要求很高,但对缺陷的分类没有要求,而且检测目标的尺寸、形状与位置分布都非常复杂,所以原损失函数不适合本任务。

本文直接从IoU 信息中提取预测值和真实值的损失,但是直接用IoU 值计算损失有一定问题,当预测框和真实框没有重合部分时,IoU 值简单地等于0,无法反映出更多的信息。为了解决这一问题,文献[23]提出了CIoU-Loss。在IoU 的基础上加入了针对检测框尺寸与位置两个惩罚项,给出的损失函数设计如式(3):

其中:Mconf为每个检测框的置信度,Ldis是基于检测框与目标框位置差异计算的惩罚项,Lsize是基于检测框与目标框尺寸差异计算的惩罚项,能帮助模型迅速收敛,直接反映出边框的准确度。同时,CIoU 损失与置信度损失之间的权重也需要灵活调整,以充分适应金属表面缺陷的特征,本文最终采用的损失函数如式(4):

在实验中,可以发现引入的损失函数与权重调整能明显提升模型检测的精确度。

2.3 改进anchors 大小与网格数目

在YOLOv3 网络结构中,卷积特征图有3 个尺度的输出,每个尺度下的图像划分为若干网格,在每个网格中用3 个anchors 来进行检测。显然,处于不同分布下的数据中,目标框的尺寸是满足一定分布的,所以检测过程中的anchors 的尺寸如果能更好地契合目标框尺寸的分布,对目标检测的是非常有益的。本研究采用YOLOv2[25]中的方法,使用K-means 聚类算法来获得合适的anchors值。

2.4 改进非极大值抑制算法

为了避免领域内边界框重叠导致重复检测的现象,YOLOv3 采取了NMS 算法来选取领域中分数较高的检测框,能有效提升识别的精度。在可视对象类(Visual Object Classes,VOC)数据集与一般数据类(Common Objects in COntext,COCO)数据集上,采用的NMS 算法阈值为0.5;但与VOC 和COCO 数据集不同,金属表面缺陷常有重叠连贯的现象,特征也更加不明显,所以在目标附近产生的检测框会较多,若算法阈值太大会有明显的重叠率,所以在本模型中采用的算法阈值为0.35。经过实验表明,该阈值设定明显减少了检测框重叠现象,有效地提升了检测精度。

3 实现细节

3.1 扩充训练样本

本文所用的数据是某冰箱制造企业提供的冰箱表面缺陷样本,但人工采集缺陷样本的成本较高,所以样本数量较少。在深度卷积神经网络的训练过程中,若样本数量不充足,便会影响模型的训练效果,无法达到正常的训练目标。针对本样本集的图像特征,本研究发现对图像垂直翻转、图像水平翻转、图像旋转、随机填充与尺度变换等数据扩充方式并不会影响样本特性,所以本文采用了上述的样本扩充方式,将样本集数倍扩充,提升了样本的多样性。通过这一操作,能有效地提升识别精度,也能避免过拟合现象的出现。

3.2 样本标记

本实验采用标记工具在各缺陷四周标记出目标框的四个顶点,转换为4 个二维坐标并按格式记录到文档中,能用于模型训练与边框绘制中。

3.3 训练过程

本次模型训练过程中,原始数据共有750 张带缺陷样本与750张无缺陷样本,样本集按照8∶1∶1的比例被划分为训练集、验证集与测试集。在整个训练过程中,每次提取训练样本都以随机参数进行数据扩充,将样本数提升了约800 倍。因为本数据集与COCO 数据集的识别特征相似,所以本文选取了COCO 数据集训练出的模型来进行迁移学习。训练初期,设定初始学习率为0.001,将COCO 预训练模型的最后两层冻结训练9 000轮。获得充分训练后解冻最后两层,然后设置初始学习率为0.000 1,训练30 000 轮。在整个训练过程中,当损失连续3 000 轮未降低时,令学习率降低至原来的3/10,连续10 000轮未降低时,提前结束训练。

Metal-YOLOv3网络在3个卷积层输出特征图与对应的检测框,与训练数据比对计算相应的损失,负反馈调整网络的参数,最终达到学习训练的目的。

经过充分的训练,用测试集对模型性能进行验证,可以发现Metal-YOLOv3 能有效地识别冰箱金属表面缺陷,验证了该模型的有效性。

4 实验分析

本章用冰箱金属表面缺陷样本集对Metal-YOLOv3 模型的性能进行了详细的验证分析。

4.1 模型检测效果对比试验

本节使用同样的样本集,在当前主流的几种目标检测算法上进行相同的训练,对比各模型所得到的效果。本文选取了Metal-YOLOv3 的基础模型YOLOv3、SSD 模型和Faster RCNN 模型与本文的Metal-YOLOv3 模型进行实验对比。基于相同的冰箱金属表面缺陷样本集,在3 种不同的模型上各自训练至少30 000轮,然后在同样的测试集上进行检测,对比检测效果。如图2,可以发现Metal-YOLOv3 模型的检测效果比YOLOv3、Faster R-CNN模型更好。

图2 不同网络模型的检测结果Fig.2 Detection results of different network models

4.2 模型检测效果对比试验

为了综合评价模型性能,在检测精度外,也要考虑到检测速度,本文选取了业内用于目标检测任务的主流网络模型YOLOv3[7]、Faster R-CNN[3]及SSD[4],同本文的Metal-YOLOv3模型在相同的冰箱金属表面缺陷样本集对比检测精度和检测速度,并选取平均精确度(Average Precision,AP)和每秒帧数(Frame Per Second,FPS)衡量算法精度和速度。经过实验,得到各检测算法在金属表面缺陷验证数据集与测试数据集上的性能对比(如表1)。从表1中可以看出,Metal-YOLOv3的检测精度略优于Faster R-CNN,是检测精度最高的模型,而且检测速度远胜于Faster R-CNN,算法性能最优。

表1 不同检测算法性能对比Tab.1 Performance comparison of different detection algorithms

4.3 损失权重设置对比试验

Metal-YOLOv3 模型的损失函数主要由置信度损失和CIoU 损失两部分组成,鉴于金属表面检测任务的特殊性,灵活地调整这两部分的权重才能最有效地满足实际检测需求。本文将损失函数设置为式(4),调整两部分权重的比值,对比训练后模型的检测结果。

从表2 可以看出,λ1/λ2为10 时模型的检测精度最高,能显著提升网络模型的性能,可以证明损失权重的设置对Metal-YOLOv3网络模型的检测精度具有非常重要的作用。

表2 不同损失权重下检测精度对比Tab.2 Accuracy comparison under different loss weights

4.4 鲁棒性对比试验

金属表面的光学特性非常多样,所以在实际的缺陷检测过程中,检测图像常有局部反光、明暗程度不一等特殊现象。

为了验证本算法在实际检测过程中的实用性,需要进行进一步的鲁棒性实验。本实验选取了这类特殊的场景进行验证,经过对检测结果(如图3)的对比,Metal-YOLOv3 网络模型在强烈反光与光线过暗的情况下表现亦优于YOLOv3 与Faster R-CNN 模型,可以说明Metal-YOLOv3 网络模型具有更好的鲁棒性,实用价值与泛化性能优于YOLOv3 与Faster RCNN模型。

图3 检测模型的鲁棒性对比Fig.3 Robust comparison of detection models

5 结语

本文针对冰箱金属表面的缺陷检测问题设计了Metal-YOLOv3 网络模型,有效便捷地实现了缺陷检测功能。为了算法的实用性与便捷性,提升时间效率,本文采用了YOLOv3的基础框架,保证了检测速度;同时针对金属表面纹理特征不明显、光学特性多样、缺陷特征模糊、形状多样且重叠度高的特点,本文采用了CIoU 损失函数并改进了非极大值抑制算法,弥补了YOLOv3模型anchors数量较少、二范数损失不准确的缺点。最终的实验结果表明本文的模型不仅有较好的检测速度,在检测精度上也优于现有的主流目标检测算法。鉴于本模型良好的泛化性能与实用性,可应用于实际的生产过程中。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!