基于改进YOLOv5s的铸坯表面缺陷检测系统
2023-11-25邓能辉周秉国张志杰吴昆鹏
邓能辉,周秉国,张志杰,石 杰,吴昆鹏
(1.北京科技大学国家板带生产先进装备工程技术研究中心,北京 100083;2.北京科技大学设计研究院有限公司,北京 100083;3.六安钢铁控股集团有限公司,安徽六安 237400)
0 引言
铸坯在生产过程中因工艺及原料影响会产生不同程度缺陷,严重的缺陷不仅会影响后续生产,还影响最终产品的耐腐蚀性和耐磨性。针对表面温度1 000 ℃左右的铸坯表面缺陷检测,传统人工目视检测方法[1]不能完全反映金属表面质量情况,同时因实时性不足,无法适应生产的高效率运行,并且受到质检人员主观经验因素差异的影响,缺乏缺陷判定的一致性与科学性。
随着对高质量铸坯需求的增加,基于机器视觉的表面检测系统在钢铁行业得到广泛的应用。传统经典的机器视觉方法主要包括:SIFT[2]、LBP[3-4]、Gabor 滤波器[5]和Haar[6]等,对于铸坯表面检测,这些方法仅对背景相对干净的缺陷图像检测效果较好。然而实际的铸坯生产过程中,由于现场灰尘铁屑干扰、铸坯背景复杂和缺陷辨识度低等因素影响,使得传统经典的机器视觉方法在实时性和准确率上均无法满足实际需求。
与传统机器视觉方法相比,深度学习方法具有检测能力和可扩展性强的优点。深度学习方法经历了由二阶段到一阶段的发展过程。经典的二阶段方法主要是Faster-RCNN系列[7-9],该方法具有检测精度高的优势,然而参数量庞大且运行速度慢也是其非常显著的缺点。针对这些问题,一阶段方法SSD[10]和YOLO系列[11-13]被提出,这些方法有运行速度快的优点,能够满足智慧工厂的实时表面质量检测需求,但是检测精度又有所损失。而实际铸坯生产过程中,铸坯表面缺陷检测存在2个难点:由于冷却氧化的影响,铸坯表面图像的背景复杂,大大增加检测的难度;高准确度与实时性相互矛盾,铸坯的上下表面共需4~8个相机来采集图像,且需要进行实时处理,然而准确度越高的方法速度越慢,设计能够进行大量缺陷图像的实时兼高准确度的检测方法具有较大难度。YOLOv5s[14-15]作为YOLO系列改进方法的典型代表网络,速度上优势明显,模型体积小,灵活性高,能够解决上述难点,是个较好的检测方法,但是仍需在检测速度和准确度上进一步提高。因此本文提出了一种基于改进YOLOv5s的铸坯表面缺陷检测方法,实时有效完成铸坯表面缺陷的检测,降低铸坯产品质量问题产生的经济损失。
1 铸坯表面检测系统
基于机器视觉的铸坯表面检测系统结构如图1所示,主要分为图像采集部分和数据处理部分。
图像采集部分包括激光光源和CCD(charge coupled device)线阵相机。图像采集原理为光源发出的光照射到运行态的铸坯表面,并反射到CCD成像靶面,接收到的光强通过灰度呈现出来,光强越大,灰度值越高,光强越小,灰度值越低。由于铸坯表面的缺陷区域和无缺陷区域对光反射的性质不同,有无缺陷的图像灰度会存在差异,因此通过对CCD相机采集到的灰度图像进行处理分析,可以检测铸坯表面是否存在缺陷。
数据处理单元由服务器和图形工作站组成,形成并行计算机系统。由CCD相机获取到铸坯图像通过以太网传输到并行计算机系统,存储后进行图像处理及分析。相机采集的原始铸坯表面图像如图2所示,图像大小为4 096 pixel×1 024 pixel。
(a)具有划伤缺陷的铸坯图像
2 缺陷检测模型
2.1 改进YOLOv5s方法
从图2可以可明显观察到图像中背景较为复杂,存在大量的氧化铁皮干扰,缺陷隐藏在复杂的背景中,增大了缺陷检测的难度。而冷轧带钢表面图像的背景则更为干净,易于进行缺陷检测,因此采用CycleGAN[16]将铸坯复杂背景迁移为冷轧带钢图像的图像域再作为缺陷检测模型的输入图像。由于背景迁移部分增加了网络的参数和计算量,因此利用Ghost卷积[17]和GhostBottleneck[18]重新构建原始YOLOv5的特征提取骨架,重点改善其中的标准卷积和C3结构,实现网络的轻量化。此外为了弥补轻量化过程可能带来的检测准确度损失,在YOLOv5s模型的颈部模块中嵌入SE注意力机制。改进YOLOv5s的整体网络结构如图3所示。
图3 改进YOLOv5s的网络结构
2.2 CycleGAN网络
CycleGAN的重要应用在于其具备域迁移能力,并且其对于训练数据的要求可以是不成对的样本,训练所需的输入图像和输出图像没有严格的对应关系,极大地降低了跨域迁移所需的数据采集难度。本文综合考虑背景及缺陷的特性,采用冷轧带钢的样本集作为目标域进行图像的跨域转换。
CycleGAN的网络结构如图4所示,在域迁移的过程中,铸坯域图像A和冷轧域图像B互相转化,A→B和B→A的过程各需要一组生成器GA2B和GB2A,以及一组鉴别器DA和DB。生成器和鉴别器的作用如下:
(a)铸坯域A→冷轧域B的转化网络
GA2B的作用为将真实铸坯图像转化为冷轧域图像(假的)或者将生成的铸坯图像转化为冷轧图像。
GB2A的作用为将真实冷轧图像转化为铸坯域图像(假的)或者将生成的冷轧图像转化为铸坯图像。
DA的作用为鉴别真实铸坯图像或者生成的铸坯图像。
DB的作用为鉴别真实冷轧图像或者生成的冷轧图像。
CycleGAN的损失函数Loss主要由2部分组成,表达式如(1)所示。
Loss=LossGAN+Losscycle
(1)
式中:LossGAN为鉴别器的损失函数;Losscycle为生成器的损失函数。
A→B和B→A的生成器损失函数如式(2)和式(3)所示。LossGAN如式(4)所示,是式(2)和式(3)的加和。
LGAN(GA2B,DB,A,B)
=Eb~B[logDB(b)]+Ea~A[log(1-DB(GA2B(a)))]
(2)
式中:LGAN(GA2B,DB,A,B)为A→B的生成器损失函数;E为最大似然估计;a和b分别属于数据集A和数据集B。
LGAN(GB2A,DA,B,A)=Ea~A[logDA(a)]+
Eb~B[log(1-DA(GB2A(b)))]
(3)
式中LGAN(GB2A,DA,B,A)表示B→A的生成器损失函数。
LossGAN=LGAN(GA2B,DB,A,B)+
LGAN(GB2A,DA,B,A)
(4)
GA2B和GB2A的损失函数相加的和Losscycle如式(5)所示。
Losscycle=Ea~A[‖GB2A(GA2B(a))-a‖1]+
Eb~B[‖GA2B(GB2A(B))-B‖1]
(5)
本文中改进YOLOv5在训练过程中需提前进行整体CycleGAN模型的训练,在训练YOLOv5目标检测网络部分时采用CycleGAN模型中A→B的参数进行改进YOLOv5模型中跨域转换部分的参数初始化,并且这部分参数在目标检测部分训练时进行冻结操作,不进行参数的迭代更新。
2.3 网络结构轻量化
YOLOv5s网络中特征提取层和颈部层共有8个C3模块和若干个传统卷积Conv,每个C3模块又由标准卷积Conv和Bottleneck组成,并且采用了残差结构增强网络提取能力,各模块的组成结构如图5所示。
(a)标准卷积Conv (b)Bottleneck (c)C3
为了轻量化YOLOv5s模型达到提升检测效率的目的,本文采用Ghost卷积优化标准卷积结构。Ghost能够利用更少的参数生成更丰富的特征,其原理示意图如图6所示。
图6 Ghost原理示意图
Ghost的计算过程:假设输入特征图为X∈Rh×w×c。Y′为输出的m个特征图。f′为大小为k×k的卷积核,f′∈Rh×w×m。输入和输出关系如式(6)所示。
Y′ =X×f′
(6)
为了获得n-m个特征图,利用卷积核大小为d×d的线性卷积层对Y′进行s-1次线性运算,s=n/m。
然后将输出的Y′与通过线性计算得到的特征图进行拼接,获得n个特征图。其线性计算如式(7)所示。
yij=Φij(yi′),∀i=1,…,m;j=1,…,s
(7)
式中:yi′为Y′的第i个特征;Φij为第i个特征图进行第j个线性计算,最终获得n个特征Y=[y11,y12,…,yms]。
采用GhostBottleneck与Ghost的组合替换原始的C3结构,GhostBottleneck的网络结构如图7所示,采用级联的Ghost结构和残差结构组合而成,分为stride=1 Bottleneck结构和stride=2 Bottleneck结构,stride=2 Bottleneck结构是增加深度卷积DWConv(Depthwise Convolution)得到的,由于添加深度卷积增加计算量较少却能够有效提高准确度,因此本文主要采用stride=2 Bottleneck结构替换Bottleneck。
(a)Stirde=1 Bottleneck (b)Stirde=2 Bottleneck
2.4 SE注意力机制
轻量化YOLOv5s网络结构在大幅度降低参数量和计算量的同时,也不可避免地影响到模型检测的准确度。为了弥补模型参数降低带来的特征损失,在YOLOv5s的颈部引入SE注意力机制[18]提升模型分辨缺陷的能力。SE注意力机制网络结构如图8所示,先通过全局池化得到1×1×C维度的权重,然后经过2个全连接层进行注意力权重的学习,最后与原始特征进行加权乘积运算得到新的特征。
图8 SE注意力机制结构图
从图3可以看到在YOLOv5s输出头处增加了2个注意力机制特征抽取模块,可以有效提升模型检测的准确度。
3 实验
3.1 实验数据集
铸坯表面缺陷数据集共有4 671张图片,包含纵裂、结疤、揭痕、渣皮、划伤、切割瘤共6个类别,以8∶2的比例将数据集划分为训练集3 736张图片,验证集935张图片,数据集分布情况见表1,其中各缺陷类别典型样本图像如图9所示。
表1 各类样本数据集 张
图9 铸坯典型缺陷图像
为进行CycleGAN网络域迁移的训练,挑选了与铸坯数据集同等数量的冷轧表面缺陷样本,冷轧样本未区分具体缺陷类别,部分参考图像如图10所示。
图10 冷轧参考缺陷图像
3.2 实验结果及分析
直接进行相机原始数据的处理,不仅需要占用较多的计算资源,还会因为数据下采样影响检测精度,因此,在输入模型前需要对图像进行预处理,将原始铸坯表面图像沿宽度方向上以1 024 pixel进行图像裁剪,裁剪步长为768 pixel,每张图像会被裁剪为5张1 024 pixel×1 024pixel大小的子图,相邻子图之间存在一定区域的重合,可以防止缺陷信息的丢失。裁剪后的子图会最终根据具体模型的需求尺寸再进行Resize后作为模型输入。
3.2.1 CycleGAN域迁移效果分析
域迁移过程主要目的是通过转换铸坯图像域,一方面使得图像灰度分布更加均匀进而提升缺陷展示效果,另一方面能够起到一定的背景抑制作用,降低后续目标检测过程中出现缺陷误报的概率,提升检测的准确率。
如图11所示,图11(a)是原始铸坯图像,图11(b)为经过铸坯到冷轧生成器的域迁移结果,即具有冷轧样本域的铸坯图像,图11(c)为再次转换还原的铸坯图像。实验结果表明,无论铸坯图像的背景复杂、过暗或过曝,通过CycleGAN域转换后的图像中缺陷形貌均更为清晰,背景灰度也相对均匀,为目标检测模型抽取有效特征提供了良好的图像基础。
图11 域迁移转换结果
3.2.2 改进YOLOv5s效果分析
模型训练过程batch size设置为16,初始学习率为0.01,学习率采用余弦退火方式调整,输入图像大小为640 pixel×640 pixel,epochs为300轮。
为了验证本文改进YOLOv5s网络各模块对于总体检测指标的影响,通过消融实验来测试不同模块的效果。
如表2所示,表中“√”表示YOLOv5s网络中填加了该模块,反之“-”表示未填加该模块。
表2 消融实验结果
表2中FLOPs(floating point operations)表示浮点运算次数,mAP表示均值平均精度。
利用CycleGAN域迁移后,YOLOv5s的检测准确度提高了3.6%,但计算量却大大增加,而经过Ghost和GhostBottleneck轻量化网络后,计算量明显降低,同时准确度下降5.1%。经过添加SE注意力模块后,改进的YOLOv5s相比原始YOLOv5s的检测准确度提高了2.9%,整体改进后计算量降低2.5 FLOPs。
将本文的缺陷检测方法与其他改进YOLOv5s的轻量化检测方法进行比较,如表3所示。
表3 不同缺陷检测模型的实验结果对比
本文计算量较大,这主要是由于添加CycleGAN模块引入了较多计算。但本文方法在满足实时检测的基础上,缺陷检测准确度方面相比其他模型提升超过7.5%,检测效果得到明显改善。
图12为本文模型在铸坯图像上的检测效果。图12(a)~图12(c)中Hs、Jh、Lw分别表示划伤、接痕和裂纹,数字表示置信度。从图中能够发现在复杂背景下具备对不明显缺陷的检出能力,同时无显著的误报情况。
(a)划伤
4 结束语
本文为解决铸坯表面缺陷检测面临的背景氧化铁皮干扰、噪声较多的问题,提出采用CycleGAN模块进行域转换,降低铸坯背景中复杂噪声引起的缺陷误报,为目标检测模型提供了稳定的数据源。
通过进行YOLOv5s的轻量化,在对缺陷检测准确率影响不大的情况下降低了模型计算量,提升了缺陷检测效率。
本文中虽然合理地整合了CycleGAN和YOLOv5s模型,但在计算量上相对其他轻量型模型还存在需要改进的地方,可以在2个模型的融合的策略上进行研究改进。