基于YOLO的铝型材料表面小缺陷检测
2022-07-14沈希忠
沈希忠,吴 迪
(上海应用技术大学 电气与电子工程学院,上海 201418)
铝型材料通常指铝合金材料,它是一种对表面处理要求比较高的材料。如果铝型材料的表面没有被处理好,或者因为某些外界原因其表面产生了缺陷,那么它的各种属性将会被严重影响,小到外观、形状,大到性能、使用寿命。随着生产的不断发展,各类型铝型材料的需求量也越来越大,铝型材料表面的缺陷检测也变得更加重要。早期的表面缺陷检测任务多依赖于机器视觉的检测方法,Yang等[1]提出一种使用平稳小波变换的表面缺陷检测的方法,该法采用Sobel算子分割图像,再用索引以及非线性滤波去噪,提取出物体表面的缺陷特征。Li等[2]结合离散Curvelet变换和纹理分析提出了一种图像裂纹缺陷的检测方法。Xie等[3]利用Shearlet变换优化了磁瓦表面的缺陷特征提取方法。随着技术的发展,深度学习的检测方法已得到了广泛的应用。自从Krizhevsky等[4]初步解决了激活函数以及过拟合问题,开启了深度学习的新时代之后,卷积神经网络已经被应用到各种图像处理领域中,包括缺陷检测领域。Park等[5]提出一种利用卷积神经网络对零件表面缺陷进行检测的方法,Cha[6]等利用卷积神经网络检测混凝土表面的裂纹,这些都是比较典型的卷积神经网络在表面缺陷检测上应用的案例。姚明海等[7]还提出了一种基于卷积神经网络的自适应加权池化算法,加强了表面特征提取工作的精密度,提高了缺陷检测的准确率以及速度。
表面缺陷检测任务的核心是特征的提取,早期表面缺陷检测方法的本质是用算法进行特征提取,这种方法能够轻松识别种类较少、形状固定和干扰较少的物体表面缺陷。而目前深度学习的检测方法是通过训练深度神经网络模型去提取缺陷特征,这就在提取精度上提升了多个档次,它已经能够轻松地检测出表面特征较为明显、相对面积较大的缺陷,然而它在小缺陷检测任务中的表现却并不优秀。小缺陷虽不起眼,但往往不可忽视,例如在航空业以及工业中所使用的铝型材料表面的斑点、漏洞等隐蔽性小缺陷,随着时间的推移很可能由小变大,最终酿成灾祸。因此,小缺陷检测在物体表面缺陷检测,尤其是铝型材料的表面缺陷检测任务中尤为重要。
1 缺陷检测方法与小缺陷检测分析
物体表面的缺陷检测是当今工业生产及检修的重要项目,它的核心是特征提取,根据特征提取方法的不同,目前的检测方法主要分为传统检测方法和现代检测方法两种。物体表面缺陷检测领域面临着很多困难,例如反光表面的缺陷检测、小缺陷的检测以及未给定缺陷的识别等,其中的小缺陷检测就是一个重大难点。
1.1 传统缺陷检测方法
机器视觉检测法是被广泛使用的传统缺陷检测法,该方法利用边缘检测[8]等算法提取出物体表面的特征,再通过像素对比法选择出缺陷特征,进而判断缺陷的种类。该方法虽然已发展为利用支持向量机等数学分类的方法对缺陷特征进行选择以及分类,但是它仍然有很大的限制性,而且可靠度较低。
传统缺陷检测方法在物体表面轮廓缺陷的检测任务中表现较为优秀,这是因为轮廓缺陷的检测任务不需要进行复杂的分类处理,仅仅使用一个标准的“模具轮廓”对所需检测的样本进行重叠对比,通过重叠率这一数值即可表现出表面轮廓缺陷的大小程度,甚至再通过一些标记比对还能够显示出表面轮廓缺陷的位置。然而,用传统缺陷检测方法去进行其他表面缺陷的检测就略显不足,有时甚至检测不出裂纹、凹坑等一些细节上的缺陷。因此,传统缺陷检测方法已逐渐不能满足当前的需求。
1.2 现代缺陷检测方法
现代缺陷检测法通常指的是现代人工智能的检测方法,也就是深度学习的检测方法。物体表面缺陷的检测属于图像的处理领域,因此普遍使用卷积神经网络及其变体的各种神经网络模型。蒋美仙等[9]提出基于Deeplab-V3模型的焊缝缺陷检测方法,用Deeplab-V3网络池化分割出焊缝特征,实现对焊缝缺陷的检测。Kim等[10]通过一种基于残差卷积自编码器的深度学习检测方法对印制电路板表面的缺陷进行了检测。胡嘉成等[11]通过一种基于卷积神经网络的方法对连铸胚表面的缺陷进行了高准确度的检测。
虽然现代检测方法较传统方法取得了明显的进步,识别率以及识别速度都有了很大的改善,但是对于不同的实际应用和任务需求,还有很大的改进和优化空间。
1.3 小缺陷检测分析
1.3.1 小缺陷的定义
在目标检测任务中,当所要检测目标的尺寸相对整个原样本图像的尺寸较小时,将这些检测目标定义为小目标。这个“较小”在不同领域中的定义也各不相同。例如,在交通识别领域中通常将自身长度在整幅图中的占比小于20%的目标定义为小目标;而COCO数据集则将小于32×32的目标定义为小目标;还有国际组织SPIE,它对小目标的定义是在256×256的原始图像中所占面积小于80个像素的目标,从广义的角度来说就是自身面积占比小于一幅图像0.12%的目标。
因此,在不同的领域中小目标的定义也各不相同。在缺陷检测领域中,小缺陷即是小目标,因为小缺陷不同于广义小目标的特殊性,结合小缺陷检测的要求,这里将在640×640的图像中所占面积小于50个像素的目标(即占原样本图像面积小于0.012%的目标)定义为小缺陷。
1.3.2 小缺陷的特征及分类
小缺陷具有模糊度高、所占面积小、携带信息量少以及易与物体表面其他特征混淆等特点。根据特征的不同,小缺陷可以被分为3种类型:与原物体表面特征相似的小缺陷、与原物体表面特征差异较大的小缺陷以及多重小缺陷组合形成的缺陷。前两种类型仍然属于小目标的范畴,第3种类型虽然本质上是小目标的集合,但是在检测的时候根据情况可能会将其视为一个整体。这里所说的与原物体表面特征相似或相异的“表面特征”指的是原物体表面的各种属性,如颜色、形状和纹理等,图1为3种类型的小缺陷样例图,分别是两个斑点类型的缺陷以及一个漆泡类型的缺陷。
图1 小缺陷的分类样例图Fig.1 Sample diagram of small defect classification
1.3.3 小缺陷检测困难的原因
小缺陷的检测被视为缺陷检测领域中的一个难点,从小缺陷的自身角度分析,小缺陷很难通过常见的特征提取算法进行处理,因为提取困难,所以人工智能对其特征的学习也就变得困难。而且小缺陷的样本比较难获取,在一些常见的表面缺陷数据集中小缺陷所占的比重是最小的,数据量的缺乏也加大了人工智能学习的难度。从当前的技术条件分析,目前没有任何一个特征提取算法能够完全攻克小缺陷的特征提取难关。受制于目前制式化的网络模型,深度学习法对小缺陷的检测效果也不尽如人意。对小缺陷检测效果较好的网络模型大多过于庞大,大大降低了检测的实时性,导致其不具有实际的应用性。小缺陷会给生产生活以及工程研究带来不同程度的影响,特别是对精密工程以及航空工程的影响较大,因此在工程研究中往往十分重视小缺陷的检测。
2 YOLO模型的改进与训练
根据缺陷检测的方法与难点,笔者使用YOLO模型作为基础网络对其进行改进。YOLO是目标检测任务中使用较广泛的网络模型之一,它在缺陷检测任务中的表现也比较优秀。YOLO的最新一代网络模型是YOLO-v5[12],相较于前几代网络YOLO-v4[13]和YOLO-v3[14],YOLO-v5有了很大的改进。
YOLO-v5根据深度和宽度分成了4个网络结构:YOLO-v5s,YOLO-v5m,YOLO-v5l,YOLO-v5x。第1个YOLO-v5s是其中深度、宽度以及网络体积最小的网络,后面3个网络结构都以此为基础加深、加宽和加大规模,这就保证了YOLO-v5在应用方面的灵活度。YOLO-v5加入了自适应初始锚框(Anchor box)的计算,不同于YOLO-v3以及YOLO-v4根据训练集的不同还要使用独立的程序去计算初始锚框,YOLO-v5将其嵌入到了基本框架的代码中。每当训练开始进行,YOLO-v5就可以直接通过这一嵌入代码计算出所使用的各种数据集的最佳锚框值,如果自动计算出的结果不理想,可以直接关闭其功能,使用另外的独立程序进行计算。正确的锚框设定是目标检测任务的关键所在,在锚框上的改进减少了捕捉目标所需的时间,增加了目标检测任务成功的概率。自适应图片缩放也是YOLO-v5的一个重要改进功能,通常在目标检测算法中,不同分辨率的图片会被统一缩放并且填充黑边,变成同一个标准尺度后再被送到检测网络中,YOLO-v5对其进行了改进,实现了自适应填充黑边的功能,这种自适应图片缩放能够根据图片的属性不同,计算出填充黑边最少的缩放尺度,间接地提升了网络的检测速度。在YOLO-v5的主干(Backbone)中,还增加了切片卷积(Focus)结构,这是前两代所没有的结构,它的作用是将样本图像进行切片操作,切成1/4大小的特征图后再进行卷积操作,得到最终的特征图,这让所获得的特征图的特征损失变少。
总体来说,YOLO-v5虽然在性能上并不是最好的,但是它在灵活度、检测速度以及模型的尺寸上具有明显的优势,最小的YOLO-v5s模型尺寸仅有14.8 M,证明其具有较高的可移植性,让以后在通讯受阻的场景或条件下用机器人携带移动设备进行缺陷检测并整修的设想成为可能。
根据YOLO-v5的这些优点,笔者提出了一种基于YOLO-v5的尺度扩张网络模型,并将该模型用于物体表面缺陷的检测任务,主要贡献如下:1) 提出一种新的基于YOLO-v5的多尺度物体表面缺陷检测模型,该模型在原有YOLO-v5模型上扩张了一个特征提取以及检测尺度,使其能够提取并检测更小的缺陷,弥补缺陷检测尺度的不足,同时为了进一步解决小缺陷检测的难点,该模型还优化了锚框的计算方法;2) 运用Net2Net[15]以及迁移学习的方法,对训练网络的权重及其他参数进行多重迁移化处理,使得短期训练的程度更加充分;3) 在铝型材料表面缺陷数据集上的实验表明,所提出的模型在小缺陷检测上的P—R曲线,在各种缺陷检测上的AP、mAP以及检测速度评价指标上均达到了较好的效果。
2.1 改进的YOLO模型
为了设计预测结果更精确、检测范围更广的缺陷检测模型,经过试改进,最终敲定通过增加提取和识别尺度以及改进自适应锚框的计算来扩大原本网络的检测范围,提升网络对小缺陷的检测效果,网络改进之后的整体结构如图2所示。
图2 改进的YOLO-v5结构图Fig.2 Improved YOLO-v5 structure diagram
2.1.1 主干网络
如图2所示,改进的YOLO-v5模型结构主要分成Backbone,Neck和Head 3部分。其中主干网络Backbone中包括了新增的Focus结构、CSPNet、CBL和SPP[16](图3,4)。
图3 模型模块介绍1Fig.3 Model module introduction 1
图4 模型模块介绍2Fig.4 Model module introduction 2
切片卷积结构(Focus)先对输入其中的640×640×3对象图片进行切片操作,让其成为320×320×12的特征图,然后再将其进行一次卷积,使其变为320×320×32的特征图。该结构减少了特征提取的损失,降低了计算量,提升了速度。
CSPNet(Cross stage partial network)全称是跨阶段局部网络,它将梯度变化集成到了特征图之中,其中包含有残差组件[17],在保证速度以及准确率的前提下减少了模型的参数量,解决了梯度重复问题,减小了模型的尺寸。
CBL原本指Conv-BN-Leaky Relu,因为YOLO-v5的网络模型仍在不断更新整改中,原本在这一结构中被使用的Leaky Relu激活函数因为YOLO-v5版本的变换被多次替换成其他激活函数,为了方便绘图,仍使用CBL指代这一结构卷积层+BN层+激活函数,这是YOLO中的一个基本下采样组件。
最后的SPP(Spatial pyramid pooling)空间金字塔池化通过不同内核大小的池化(Pooling)层提取出不同尺度的特征,然后将这些特征叠加融合,这就使得多尺度特征提取得到了进一步的融合。
为了提高模型的训练速度,提升模型的检测精度,笔者在模型的主干网络中加入一系列预先处理模块,这些模块位于模型的输入之前,其功能是对将要输入模型的数据图片进行预先处理,例如进行图像增强[18]、滤波去噪和形态学变换等操作。
2.1.2 特征金字塔多尺度预测层
颈部(Neck)以及最后的头部(Head)组合成了特征金字塔多尺度预测层。颈部中使用了改进的路径聚合网络(PANet)结构,使用张量拼接代替了原本的叠加,让特征进行堆叠。颈部的作用是特征融合,它通过形成特征金字塔结构,使得模型可以进行多尺度的目标检测。在最后的头部检测层进行最终的检测工作。头部检测层的功能是在模型所获取的最后的特征图中使用预设的锚框(Anchor box)将类别、框(Box)坐标以及置信度都整合到最终的输出结果中去,从而生成带有类别、置信度以及框的输出结果,每个尺度不同的头部用于检测大小不同的物体。
2.1.3 多尺度扩张
原本的YOLO-v5基础模型能够在3个尺度上进行检测,检测尺度比较均衡。如果输入640×640的图片,最后所得到的检测尺度就是80×80,40×40,20×20,即图2中的y2,y3,y4,也就是说对于一张待检测的图片,最小能够检测出其中的1/(80×80),1/(40×40)以及1/(20×20)的目标。
因为在缺陷中存在极小目标,表面缺陷检测任务对小目标的检测有需求,所以笔者在颈部中让模型多进行了一次上采样和张量拼接,也就是多提取了一层特征和多进行了一次张量拼接,这就扩充了特征维的数据量,进一步加强了模型对小目标检测的准确度。
经过改进后的模型增加了一个检测尺度,即如图2所示的y1,检测尺度为160×160,对于一张待检测的图片,最小能够检测出其中的1/(160×160)的目标。
2.1.4 改进自适应锚框计算
目标检测任务通常使用边界框(Bounding box)来表达所检测目标的位置。边界框通常是矩形,其位置通过对角两点的坐标确定。而锚框(Anchor box)就是判断待检测图像中的某片区域内是否含有目标的工具,它可以被理解为一种“网”,不同类型的目标能够被不同形状大小的“网”所捕捉。
通常情况下缺陷检测任务是在大的特征图中去检测小缺陷,因此在大的特征图中通常将锚框设置得比较小,然而这却又增加了检测时间,所以锚框的设置是缺陷检测任务的一个重点。
YOLO-v5具有自适应锚框计算的功能,在训练还未开始时,模型会对目标数据集中所有标注的信息进行确认,并且计算内置的9种预设锚框对这些信息的BPR(Best possible recall),当计算出来的BPR小于0.98时,就会通过K均值聚类算法(K-means)算法[19]以及遗传学习算法[20]对这些信息进行分析,然后重新计算适合于目标数据集的锚框。
为了解决小缺陷检测难的问题,除了扩张模型的检测尺度,在锚框的计算上也进行了改进。对于小缺陷,在所计算出的所有锚框中很可能只有很少部分与小缺陷的真实大小相匹配,这就导致了正负样本的不平衡,并且与小缺陷尺寸相近的锚框较少也大大降低了网络的检测性能,从而造成小缺陷特征的丢失。因为初始中心点的选取很容易影响K-means算法的聚类效果,所以引入了K-means++算法对初始聚类中心进行计算,以此来弥补自适应锚框计算的不足,然而这样的改进还不完全,因为不管是K-means算法还是K-means++算法,它们的聚类对于小目标的效果是很差的,其计算出的锚框往往会比最适合的锚框更大一些。通过实验发现:在进行小目标的检测任务时,可以通过对计算出的锚框加入尺度放缩的方法来减小这一问题带来的影响。具体的操作是对计算出的所有锚框的尺寸进行放缩,将最小的锚框放缩到和标注信息中最小的真实框相近的大小,其余的锚框根据这一放缩比例进行线性放缩,这样就可以在一定程度上减小聚类所产生的锚框大小与最适锚框大小相差过大所产生的一系列影响。
2.2 迁移训练
深度神经网络通常情况下是建立在大量样本训练以及“深度”训练的基础上的,因为这样所得到的模型的各项指标会更加优秀。由于没有大量的样本以及时间进行训练,为了缩短实验周期,提高短期训练网络所得预测结果的准确度,提升短期训练所得模型的性能,笔者在模型训练的过程中使用了迁移学习以及Net2Net的训练方法,为了方便叙述将这两种方法统称为迁移训练的方法。
迁移学习其实就是知识迁移,在机器学习中,它指的是将一个预训练的模型重新使用在另一个任务中。在深度学习领域对数据的标注通常会耗费大量的人力以及时间成本,因此迁移学习的方法广受欢迎。
迁移学习包括基于实例的迁移、基于特征的迁移以及基于共享参数的迁移。基于实例的迁移就是从大数据的预训练模型中寻找和目标任务模型相接近的预训练模型,进而进行更有效的权重分配,建立更可靠的模型;基于特征的迁移就是将预训练模型的特征空间映射到目标任务模型的特征空间中去,利用这些特征进行知识迁移;基于共享参数的迁移是找到预训练模型和目标任务模型之间的共同参数或者先验分布,将之处理之后再进行知识迁移。
笔者所用到的迁移学习流程:1) 选择预训练源模型,选用开发者们在大型数据集上训练过的预训练模型;2) 重新使用模型,将第1步的预训练模型作为下一个深度学习任务的起点,直接取其相应的结构参数以及权重进行下一个任务的训练;3) 调整模型,根据目标数据集的具体属性对模型进行微调,让模型适应新的目标检测任务。
通过迁移学习的方法可以将预训练模型“迁移”到当前的训练问题中,将已经获取的模型参数(也可理解为模型学到的“知识”)通过某种方式分享给新模型,即让自己的模型学习到新的“知识”,从而优化模型的学习效率,不用像训练大多数网络那样从零学习。
除了运用迁移学习的训练方法,笔者还使用了Net2Net的训练方法,该方法是Chen等[15]提出的,其目的是加速训练出一个更大的网络,其基本思想是以小网络的训练为基础去训练更大的网络,这就使得在小网络中训练完成的权重能够被运用到后续所要训练的更大的网络中去,从而达到加速训练更大的网络的目的。
Net2Net主要分为Net2WiderNet和Net2DeeperNet两种转换模式,前者通过等效模型去拓宽网络,后者则通过等效模型去加深网络。利用Net2Net的方法去训练一个更大的神经网络,可以更快速地训练网络并且提升网络的识别性能。
YOLO-v5的4个网络结构YOLO-v5s,YOLO-vm,YOLO-v5l和YOLO-v5x具有不断加深加宽,不断递进的关系,使得Net2Net在YOLO-v5的训练中能够达到到很好的效果。
运用迁移训练的方法能够降低模型对训练数据量的需求,减轻训练过程中硬件设备的劣势所带来的影响,减少训练大网络所需的时间,极大地缩短实验周期,图5为迁移训练过程示意图。
图5 迁移训练过程Fig.5 Migration training process
3 铝型材料的表面缺陷检测实验
3.1 实验环境
实验平台在Win10系统上进行,CPU为Intel core i5-10400F,GPU为NVIDIA GeForce RTX3070,深度学习环境安装CUDA及cuDNN图形加速,深度学习框架PyTorch,编译语言为Python 3.8集成工具opencv等扩展库。
3.2 铝型材料表面缺陷数据集制作
3.2.1 数据说明
铝型材料图像数据的原样本来自阿里云,原样本一共有5 000张未被处理过的60系列铝型材料原始样本图片,这些原始样本图片分辨率大多为1 000~2 000,包含了有缺陷、多缺陷以及无缺陷的铝型材料图片,其中单缺陷的样本有4 000张,多缺陷的样本有400张,无缺陷的样本有600张。
3.2.2 缺陷分类
对原样本的单缺陷数据进行分类筛选,根据缺陷类型的不同将其分为8部分,去掉其中不常见的3种缺陷,最终得到了5种类型的缺陷图片,分别是斑点(Spot)、擦花(Scratch)、碰伤(Bruise)、漆泡(Bubble)和喷流(Jet)缺陷,图6为每种缺陷的具体样式。分类筛选过后,每种类型的缺陷图片各有500张,根据缺陷的大小再进行检测类别分类,斑点类型的缺陷属于小缺陷,其余的缺陷类型中,碰伤以及漆泡根据其自身的大小以及形态分类成近似小缺陷和普通缺陷,而擦花和喷流则属于普通缺陷。
图6 缺陷分类Fig.6 Defect classification
3.2.3 数据集的制作
首先,将分类好的5种类型的缺陷图片进行处理,通过旋转、裁剪和拼接等图像处理方法,将原始的样本图片进行优化并且扩充样本的数量,将每种样本扩充至700张;然后,对属于小缺陷以及可能属于近似小缺陷的3种类型的缺陷(斑点、碰伤和漆泡)进行额外的扩充,使用无缺陷的相似样本进一步对其进行裁剪、旋转和拼接,将其扩充至每种类型800张,提高了数据的鲁棒性;最后,使用labelImg标注软件标注好缺陷的位置以及种类,形成自制的铝型材料表面缺陷数据集。
3.3 训练参数及数据预处理
基本参数采用余弦退火策略动态调整学习率,初始学习率设定为0.01,衰减设定为0.000 5,最大迭代数设置为4 000次。在训练之前,模型会对图像进行预处理,首先通过归一化将图像变成640×640×3,然后通过色彩增强、对比度增强等图像增强方法以及空间形态学操作、空间滤波等滤波方法对图像进行进一步处理,提高了图像的鲁棒性,保证了训练的效率。
3.4 LOSS分析
YOLO-v5使用GIOU Loss作为边界框(Bounding box)的损失函数。GIOU Loss较其他方法具有更快的收敛和更好的性能,它提高了预测框的描绘速度以及精度,并且加入了Box相交尺度的度量,避免了其他方法有时会产生两个Box不相交的情况。损失函数值越小,说明此时的检测效果越好。LGIOU和IIOU的计算式分别为
(1)
(2)
式中:A表示预测框(Prediction box);B表示真实框(Ground truth box);C表示含有预测框A与真实框B的最小区域;IIOU表示预测框A与真实框B的交并比。
图7为模型在训练时的损失曲线图,由图7可知:在前400次迭代中损失函数值较大,并且下降迅速;当迭代数达到800次以后,虽然损失值仍在明显下降,但是下降的速度变缓;直到迭代数达到1 800次以后,损失值开始缓慢下降;当迭代数达到3 500次时,损失值很小并趋于平稳,此时模型达到了较好的识别效果。
图7 损失曲线图Fig.7 Loss curve
3.5 评价指标
采用被广泛认可使用的P—R曲线、AP、mAP以及FPS评价指标作为模型性能评价的量化指标。P—R曲线就是以精确率(Precision)作为纵坐标,召回率(Recall)作为横坐标的二维曲线。P—R曲线所围成的面积就是AP(Average precision),AP越高表示网络对这一目标的检测效果越好。mAP(Mean average precision)即平均AP,它是对多个验证集所求的平均AP,反映了网络对任务总体的检测效果。FPS(Frame per second)是检测速度评价指标,表示每秒内模型可以检测的样本图片数量。
针对每一种铝型材料缺陷,计算精确度P和召回率R,画出P—R曲线,计算P—R曲线的面积可以得到平均精度AP。mAP是指所有铝型材料缺陷的平均精度。具体计算式分别为
(3)
(4)
(5)
(6)
式中:TP表示检测出的铝型材料缺陷中判断正确的数目;FP表示判断错误数目;FN表示没有检测出的铝型材料缺陷的数目。
3.6 结果分析
根据3.5节所提到的评价指标,对改进模型进行评价。精确率与召回率反映了目标检测模型正确检测目标的能力。图8为笔者改进模型对斑点(小缺陷)进行检测的P—R曲线,由图8可知:训练完的铝型材料表面缺陷检测模型对小缺陷的精确率和召回率都比较高。
图8 小缺陷目标检测的P—R曲线Fig.8 P-R curve of dirty spot small target detection
为了验证改进模型的可行性,将其与原模型以及未经过迁移训练的改进模型进行实验对比。图9为近似小缺陷的实际检测效果对比图,由图9可知:改进模型优于原模型,原模型将某些较明显的近似小缺陷(漆泡)视为整体缺陷,没有对其进行分开检测,并且检测准确率也较低。图10为小缺陷检测的实际检测效果对比图,由图10可知:改进模型的优势更加明显,原模型除了准确率较低以外甚至还漏检了一个斑点小缺陷,这就证明了改进模型在小目标检测上的可行性。表1,2为经过迁移训练的原模型、改进模型以及未经过迁移训练的改进模型在同一个检测任务下的AP、mAP以及FPS的对比。根据对比可知:针对正常缺陷的识别率,改进模型基本不比原模型差,仅在对喷流缺陷的检测上比原模型略差,这是因为改进模型的重点偏向了小缺陷的检测,从而降低了对大面积缺陷检测的识别率。改进模型的mAP比原模型高8.08%,进行迁移训练的mAP比未进行迁移训练的mAP高2.49%,这就说明了改进模型及其训练方法在检测精度上达到了较好的效果,进一步证明了改进模型的可行性。改进模型检测速度略低,这是因为改进模型扩张了特征提取和检测的尺度,从而导致计算量增加。
表1 不同模型的AP对比Table 1 Comparison of AP value under different models
表2 不同模型的mAP与FPS对比Table 2 Comparison of mAP and FPS valueunder different models
图9 近似小缺陷检测效果对比Fig.9 Comparison of approximate small defect detection effect
图10 小缺陷检测效果对比Fig.10 Comparison of dirty spot defect detection effect
4 结 论
在物体表面缺陷检测的任务中普遍存在小缺陷识别不清甚至检测不出的问题。为解决这些问题,笔者提出了一种基于YOLO-v5的多尺度物体表面缺陷检测模型。该模型不仅扩张了原本模型的特征提取和检测尺度,而且改进了自适应锚框的计算方法,很大程度上提升了网络对小目标的检测性能。此外,笔者还引入了迁移学习以及Net2Net的训练思路,通过对预训练权重以及训练参数进行知识迁移,再通过将小网络迁移训练到大网络进行知识继承,不仅缩短了实验周期,而且提升了短期训练所得到的模型性能。实验结果表明:笔者所提出的改进模型对铝型材料表面的小缺陷检测效果以及评价指标较好;改进模型仅在对喷流缺陷的检测效果上略差于改进之前;改进模型的检测速度较改进之前也没有特别明显的下降。因此,笔者所提出的改进方案以及训练方法对小目标检测以及短期训练具有一定的借鉴意义。实验也反映了改进模型的不足,比如在擦花(Scratch)缺陷的检测上AP较低,后续会进一步优化网络模型的结构,增强特征的提取,加强模型对大面积轻度缺陷的检测。