基于改进CycleGAN的钢材表面缺陷图像数据增强方法

未命名 10-19 阅读:145 评论:0

基于改进cyclegan的钢材表面缺陷图像数据增强方法
技术领域
1.本发明涉及一种数据增强方法,尤其涉及一种基于改进cyclegan的钢材表面缺陷数据图像增强方法,属于图像数据增强技术领域。


背景技术:

2.目标检测作为计算视觉领域中的经典任务之一,近些年来已飞速发展,基于深度学习的缺陷检测技术相较于基于纹理特征、颜色特征、haar特征分类器、自适应聚类等传统算法可以随着数据集的数量提升来增加检测精度,降低漏检、误检率。大量的数据样本是保证缺陷检测精度的前提,数据集是深度学习领域至关重要的部分,但这一条件在实际应用场景中往往难以实现。在钢厂采集钢材表面图像数据较为困难并且成本极高,因安全生产因素,很难获得含缺陷的图像数据,而含多类缺陷的钢材表面图像数据则是少之又少。钢材表面缺陷种类多样,包括裂纹、夹杂、氧化、点蚀、斑块、划痕等,相对少见的钢材表面缺陷增加了样本采集的难度。在图像采集过程中,往往存在多种不可控的物理因素,导致图像质量受损,进而影响高层视觉任务应用过程中信息的获取与利用,尤其光照因素较为常见且难以避免,如阴天、夜晚等场景。因此,在小样本数据的前提下进行数据增强成为了提高网络性能的有效手段,为此需要高效且鲁棒的方法对钢材表面缺陷数据进行数据增强。
3.为了低成本获取足够数量的钢材表面缺陷数据图像,早期工作中会采用传统的样本扩增方法。传统的样本扩增方法包括翻转、旋转、裁剪、变形缩放、添加噪声等,但是这些方法得到的缺陷图像很难模拟真实场景下的钢材表面缺陷图像的诸多细节,并且效果过于单一化。生成对抗网络(gan)是基于多维噪声来学习生成样本,相比之下gan网络生成的图片多样性强,但通过随机噪声生成的图像存在模糊的问题,从而导致模型泛化能力下降,在真实数据上的表现效果较差。


技术实现要素:

4.针对上述问题,本发明提出一种基于改进cyclegan的钢材表面缺陷图像生成方法,可以高效且鲁棒地对现有钢材表面缺陷数据集进行样本扩增和数据增强,增加训练样本的多样性,进而提高目标检测网络的泛化性能和鲁棒性,为最终建立钢材表面缺陷自动检测与分级系统奠定技术基础。
5.本发明把人工智能技术和传统方法相结合,解决现有钢材表面缺陷数据较少的问题,并且生成的含有多类缺陷的数据集更能解决现实中的问题。本发明图像增强方法的基本思想是:首先,通过传统算法对现有钢材表面缺陷数据集进行样本扩增,将其扩增数倍;然后,将初始数据集和扩增后的图像输入改进后的cyclegan网络模型,实现不同种类缺陷图像的风格迁移,以此生成同一图像上含有双类缺陷的数据集;最后,通过迭代运行,在双类缺陷数据集的基础上生成含有三类缺陷的数据集,以此类推,可以生成最多同时含有六类缺陷的数据集。本发明可以高效且鲁棒地对单类钢材表面缺陷数据集进行增强并形成多类钢材表面缺陷数据集,最终生成的图像数据集多样性强且质量高。
6.基于改进cyclegan的钢材表面缺陷图像数据增强方法包括如下步骤:(1)获取单类钢材表面缺陷图像;(2)采用传统算法进行样本扩增;(3)图像预处理;(4)建立单类钢材表面缺陷图像数据集;(5)搭建cyclegan网络结构模型;(6)改进cyclegan网络结构模型;(7)生成双类缺陷的钢材表面图像数据;(8)生成多类缺陷的钢材表面图像数据。
7.本发明方法的有益技术效果:(1)在将单类钢材表面缺陷图像数据输入cyclegan网络之前,首先通过传统的样本扩增方式将原始数据进行扩充,再经过预处理得到高质量的单类钢材表面缺陷数据集,以此消除无关信息,为模型增加泛化能力;(2)提出改进的cyclegan网络,通过引入权重解调机制解决生成图像的伪影问题,利用cam和sam以串行顺序组合形式的注意力机制引导网络更好的学习钢材表面缺陷图像中的感兴趣信息,在循环一致性损失的基础上引入形状一致性损失,解决cyclegan在进行图像风格迁移时生成的图像可能存在图像扭曲的问题;(3)采用改进的cyclegan网络,通过迭代运行有效生成含有双类及多类缺陷的高质量缺陷检测数据集,增加了数据样本的多样性,从而有效提升了缺陷检测与分级模型的检测精度和泛化性能。
附图说明
8.图1是本发明基于改进cyclegan的钢材表面缺陷图像数据增强方法的流程图;图2是本发明cyclegan网络结构的示意图;图3是本发明经wd改进后的网络结构图;图4是本发明改进后的生成器与判别器的结构示意图;图5是本发明最终生成的钢材表面缺陷图像的效果图。
实施方式
9.结合附图1-5,说明本发明的步骤和具体操作。
10.本发明针对钢材表面缺陷图像进行数据增强,将钢材表面缺陷图像生成看作图像风格迁移任务的一种变形,充分运用cyclegan网络,实现不同种类钢材表面缺陷特征之间的风格迁移,从而达到数据增强的目的。
11.本发明基于改进cyclegan的钢材表面缺陷图像数据增强方法包括如下步骤:(1)获取单类钢材表面缺陷图像;(2)采用传统算法进行样本扩增;(3)图像预处理;(4)建立单类钢材表面缺陷图像数据集;(5)搭建cyclegan网络结构模型;
(6)改进cyclegan网络结构模型;(7)生成双类缺陷的钢材表面图像数据;(8)生成多类缺陷的钢材表面图像数据。
12.本发明基于改进cyclegan的钢材表面缺陷图像数据增强方法的具体操作过程如下:1. 获取单类钢材表面缺陷图像本发明原始的钢材表面缺陷图像数据集为获取的公开数据集或通过拍摄采集钢材表面缺陷图像数据的方式建立数据集。
13.2. 采用传统算法进行样本扩增1)原始数据集的每一张图片旋转90度,原始数据集扩增一倍;2)原始数据集的每一张图片旋转180度,原始数据集再扩增一倍;3)对原始数据集、旋转90度扩增数据集、旋转180度扩增数据集的每一张图片分别进行模糊处理、增加亮度、昏暗处理、翻转、添加噪声,最终完成原始数据集的15倍扩增。
14.3. 图像预处理1)灰度化处理:进行图像灰度化处理,采用加权平均法对彩色数据集进行灰度化处理,加权平均法灰度化处理的公式如下:f(x,y)=ar(x,y)+bg(x,y)+cb(x,y)式中:a,b,c为图像rgb三个通道的权重,x,y为图像各像素点的坐标;由于人眼对绿色的敏感最高,对蓝色敏感最低,因此a,b,c三个参数的取值分别为0.299、0.587、0.114;2)降噪滤波:采用空间域滤波器双边滤波对数据集进行滤波来消除无关信息,并通过腐蚀膨胀消除噪声;3)对比度增强:进行对比度增强来将灰度等级放大到最大,使得图像中的细节看起来更加清晰,至此完成图像预处理。
15.4. 建立钢材表面缺陷数据集1)缺陷种类划分:将获取的钢材表面缺陷数据按照种类的不同划分为裂纹、夹杂、斑块、点蚀、氧化和划痕共六类;2)划分数据集:将扩增后并且预处理好的图像数据划分为训练集、测试集、验证集,比例为8:1:1;3)图像标注:利用labelme图像标注工具对图像进行标注,裂纹的标签为cr、夹杂的标签为in、斑块的标签为pa、点蚀的标签为ps、氧化的标签为rs、划痕的标签为sc,标注完成后将生成的json格式数据保存,并将生成的json格式数据转换成神经网络能够识别的txt格式数据;4)数据读取:利用python软件中的pytorch库的torch.utils.data函数进行数据集读取。
16.5. 搭建cyclegan网络结构模型1)配置环境:从github上下载cyclegan的官方源码,然后使用anaconda建立虚拟环境,根据cyclegan源码的需求文件,安装torch》=1.4.0、torchvision》=0.5.0、dominate》=2.4.0、visdom》=0.1.8.8、wandb、cuda、pytorch;
2)数据输入:将搭建好的数据集输入cyclegan网络结构模型,将源域数据a和目标域数据b之间的图像特征进行风格迁移,具体步骤包括:

选择cr中的图像作为源域a,其余五类图像作为目标域b,将cr的特征映射到其余五类缺陷中;

选择in中的图像作为源域a,其余五类图像作为目标域b,将in的特征映射到其余五类缺陷中;

选择pa中的图像作为源域a,其余五类图像作为目标域b,将pa的特征映射到其余五类缺陷中;

选择ps中的图像作为源域a,其余五类图像作为目标域b,将ps的特征映射到其余五类缺陷中;

选择rs中的图像作为源域a,其余五类图像作为目标域b,将rs的特征映射到其余五类缺陷中;

选择sc中的图像作为源域a,其余五类图像作为目标域b,将sc的特征映射到其余五类缺陷中;3)配置超参数:调整学习率来保证模型的有效容限,修改损失函数来优化模型的输出、调整批样本数量来适应自身硬件容量,以免显存爆炸、调整迭代次数来避免模型欠拟合或者过拟合,在运行程序前设置好最优的超参数组合;4)运行程序,进行图像风格迁移,得到训练后的权重,加载权重进行测试,最终生成图像,得到三十种含双类缺陷的数据,分别为cr2in、cr2pa、cr2ps、cr2rs、cr2sc、in2cr、in2pa、in2ps、in2rs、in2sc、pa2cr、pa2in、pa2ps、pa2rs、pa2sc、ps2cr、ps2in、ps2pa、ps2rs、ps2sc、rs2cr、rs2in、rs2pa、rs2ps、rs2sc、sc2cr、sc2in、sc2pa、sc2ps、sc2rs。
17.6. 改进cyclegan网络结构模型具体对cyclegan网络结构模型在三处改进。
18.1)引入权重解调(weight demodulation, wd)机制针对生成图像存在伪影的问题,引入stylegan2的权重解调机制,对特征图的一系列操作改为对权重的操作,在保留完全可控性的同时消除了伪影。改进后的cyclegan生成器如图3所示,在特征提取部分resblock结构中的激活函数前后的两个卷积层中分别加入w1、w2,并通过残差连接实现特征融合传递。wd运算可表示为:
19.式中:i表示输入卷积权重w的通道索引;j、k为该通道的二维遍历索引;ε为一个防止分母为零的小值。
20.2)添加通道注意力(cam)与空间注意力(sam)注意力机制(attention mechanism)是人们在机器学习模型中嵌入的一种特殊结构,用来自动学习和计算输入数据对输出数据的贡献大,它效仿了动物视觉系统的图像处理能力,即首先对视觉任务全局进行扫描以得到重点区域,紧接着对该区域执行相应的图像处理算法。
21.本发明在cyclegan原始生成器与判别器的基础上引入通道注意力(cam)与空间注意力(sam)。图像经由生成器和判别器获取到多通道的视觉特征图f后,cam在通道维度c学习并获取每一层特征图的重要程度作为权重值,乘回原视觉特征图f得到关于通道维度c的加权特征f

,得到通道加权特征f

后,sam则在h、w维度获得二维空间注意力加权权重f
′′
,改进后的生成器与判别器结构如图4所示。
22.cam过程可表示为:f

=σ(mlp(avgpool(f))+mlp(maxpool(f)))=cam(f)uf, f∈rc其中σ( )表示sigmoid运算,mlp( )表示全连接神经元层,avgpool( )和maxpool( )分别为平均池化与最大池化操作。
23.sam可表示为:f
′′
=σ(concat[avgpool(f

),maxpool(f

)])=sam(f

)uf

, f

∈rh×w其中concat[

,

]表示对两个特征矩阵进行拼接。
[0024]
3)引入形状一致性损失针对cyclegan中的循环一致性在几何变换方面存在内在模糊性的问题,引入形状一致性损失。生成器的学习过程由循环一致性损失、判别损失和形状一致性损失进行监督。
[0025]
引入形状一致性损失的具体操作过程如下:

给源域图像a和目标域图像b添加分割标签,源域图像a中的样本xa对应的标签为ya,目标域图像b中的样本xb对应的标签为yb;

添加分割网络,分割网络的两个分割器均采用u-net结构;

将xa输入生成器gb生成假样本x
ab
,将x
ab
输入分割网络生成x
ab

,将x
ab

和ya求交叉熵损失得到形状一致性损失l
shape
,形状一致性损失函数:
[0026]
式中,:表示一个像素所属的类别;n:一张图像中的像素总数;

把形状一致性损失l
shape
引入总损失l,总损失函数:l(ga,gb,da,db,sa,sb)=l
gan
(ga,da)+l
gan
(gb,db)+λl
cyc
(ga,gb)+γl
shape
(sa,sb,ga,gb)式中,λ为对抗性损失和循环一致性损失的权重比,γ为形状一致性损失和对抗性损失与循环一致性损失的权重比;

把判别器由ls-gan结构改成u-net结构,判别像素的真假。
[0027]
7. 生成含双类缺陷的钢材表面图像1)获取钢材表面缺陷数据信息,包括图像大小、数量以及通道数,本发明图像分辨率大小为200
×
200,每类缺陷数量为4500张,通道数为1;2)设定学习率、批样本数量、迭代次数、图像通道数、图片裁剪尺寸和学习率动量最优的超参数组合,具体为:学习率lr=0.0002,批样本数量batchsize=1,迭代次数epoch=200、图像通道数channels=1、图片裁剪尺寸cropsize=256
×
256、学习率动量momentum=
0.937;3)将钢材表面缺陷数据集输入设置好超参数的改进cyclegan模型进行不同种类缺陷图像的风格迁移,本发明使用的配置为cpu:intel core i7-12700h;cpu主频:2.69ghz;内存:16g;gpu:nvidia geforce rtx 3060;显存:gddr6 6g;深度学习框架为pytorch,开发环境为pytoch1.12.1,python3.8,cuda11.3;4)训练完成后将输出的权重文件载入改进后的cyclegan网络,生成同时含有双类缺陷的钢材表面缺陷图像,最终效果如图5所示。
[0028]
8. 生成含多类缺陷的钢材表面图像1)将生成的同时含有双类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有三类缺陷的钢材表面图像;2)将生成的同时含有三类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有四类缺陷的钢材表面图像;3)将生成的同时含有四类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有五类缺陷的钢材表面图像;4)将生成的同时含有五类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有六类缺陷的钢材表面图像。

技术特征:
1.基于改进cyclegan的钢材表面缺陷图像数据增强方法,用于对现有钢材表面缺陷数据集进行样本扩增和数据增强,包括如下步骤:(1)获取单类钢材表面缺陷图像;(2)采用传统算法进行样本扩增;(3)图像预处理;(4)建立单类钢材表面缺陷图像数据集;(5)搭建cyclegan网络结构模型;(6)改进cyclegan网络结构模型;(7)生成双类缺陷的钢材表面图像数据;(8)生成多类缺陷的钢材表面图像数据。2.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:方法步骤(1)中获取单类钢材表面缺陷图像原始的钢材表面缺陷图像数据集为获取的公开数据集或通过拍摄采集钢材表面缺陷图像数据的方式建立数据集。3.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(2)采用传统算法进行样本扩增的具体步骤为:1)原始数据集的每一张图片旋转90度,原始数据集扩增一倍;2)原始数据集的每一张图片旋转180度,原始数据集再扩增一倍;3)对原始数据集、旋转90度扩增数据集、旋转180度扩增数据集的每一张图片分别进行模糊处理、增加亮度、昏暗处理、翻转、添加噪声,最终完成原始数据集的15倍扩增。4.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(3)图像预处理的具体步骤为:1)灰度化处理;2)降噪滤波;3)对比度增强。5.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(4)建立单类钢材表面缺陷图像数据集的具体步骤为:1)缺陷种类划分;2)划分数据集;3)图像标注;4)数据读取。6.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(5)搭建cyclegan网络结构模型的具体步骤为:1)配置环境;2)数据输入;3)配置超参数;4)运行程序,进行图像风格迁移,得到训练后的权重,加载权重进行测试,最终生成图像,得到含双类缺陷的数据。7.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(6)cyclegan网络结构模型进行了三处改进,具体包括:
1)引入权重解调(weight demodulation, wd)机制,在特征提取部分resblock结构中的激活函数前后的两个卷积层中分别加入w1、w2,并通过残差连接实现特征融合传递,wd运算可表示为:,式中:i表示输入卷积权重w的通道索引,j、k为该通道的二维遍历索引,ε为一个防止分母为零的小值;2)添加通道注意力(cam)与空间注意力(sam),图像经由生成器和判别器获取到多通道的视觉特征图f后,cam在通道维度c学习并获取每一层特征图的重要程度作为权重值,乘回原视觉特征图f得到关于通道维度c的加权特征f

,得到通道加权特征f

后,sam则在h、w维度获得二维空间注意力加权权重f
′′
,cam过程可表示为:f

=σ(mlp(avgpool(f))+mlp(maxpool(f)))=cam(f)uf, f∈rc,其中,σ( )表示sigmoid运算,mlp( )表示全连接神经元层,avgpool( )和maxpool( )分别为平均池化与最大池化操作;sam可表示为:f
′′
=σ(concat[avgpool(f

),maxpool(f

)])=sam(f

)uf

, f

∈r
h
×
w
,其中,concat[
·
,
·
]表示对两个特征矩阵进行拼接;3)引入形状一致性损失,具体操作过程:

给源域图像a和目标域图像b添加分割标签,源域图像a中的样本x
a
对应的标签为y
a
,目标域图像b中的样本x
b
对应的标签为y
b


添加分割网络,分割网络的两个分割器均采用u-net结构;

将x
a
输入生成器g
b
生成假样本x
ab
,将x
ab
输入分割网络生成x
ab

,将x
ab

和y
a
求交叉熵损失得到形状一致性损失l
shape
,形状一致性损失函数:,式中,:表示一个像素所属的类别;n:一张图像中的像素总数;

把形状一致性损失l
shape
引入总损失l,总损失函数:l(g
a
,g
b
,d
a
,d
b
,s
a
,s
b
)=l
gan
(g
a
,d
a
)+l
gan
(g
b
,d
b
)+λl
cyc
(g
a
,g
b
)+γl
shape
(s
a
,s
b
,g
a
,g
b
),式中,λ为对抗性损失和循环一致性损失的权重比,γ为形状一致性损失和对抗性损失与循环一致性损失的权重比;

把判别器由ls-gan结构改成u-net结构,判别像素的真假。8.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(7)生成含双类缺陷的钢材表面图像的具体步骤为:1)获取钢材表面缺陷数据信息,包括图像大小、数量以及通道数;2)设定学习率、批样本数量、迭代次数、图像通道数、图片裁剪尺寸和学习率动量最优的超参数组合;3)将钢材表面缺陷数据集输入设置好超参数的改进cyclegan模型进行不同种类缺陷图像的风格迁移;4)训练完成后将输出的权重文件载入改进后的cyclegan网络,生成同时含有双类缺陷的钢材表面缺陷图像。
9.如权利要求1所述的基于改进cyclegan的钢材表面缺陷图像数据增强方法,其特征在于:步骤(8)生成含多类缺陷的钢材表面图像的具体步骤为:1)将生成的同时含有双类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有三类缺陷的钢材表面图像;2)将生成的同时含有三类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有四类缺陷的钢材表面图像;3)将生成的同时含有四类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有五类缺陷的钢材表面图像;4)将生成的同时含有五类缺陷的钢材表面缺陷图像输入改进后的cyclegan网络,训练完成后将输出的权重文件载入改进后的cyclegan网络,得到同时含有六类缺陷的钢材表面图像。

技术总结
基于改进CycleGAN的钢材表面缺陷图像数据增强方法,用于对现有钢材表面缺陷数据集进行样本扩增和数据增强,包括如下步骤:(1)获取单类钢材表面缺陷图像;(2)采用传统算法进行样本扩增;(3)图像预处理;(4)建立单类钢材表面缺陷图像数据集;(5)搭建CycleGAN网络结构模型;(6)改进CycleGAN网络结构模型;(7)生成双类缺陷的钢材表面图像数据;(8)生成多类缺陷的钢材表面图像数据。该方法可以高效且鲁棒地对现有钢材表面缺陷数据集进行样本扩增和数据增强,增加训练样本的多样性,进而提高目标检测网络的泛化性能和鲁棒性,为最终建立钢材表面缺陷自动检测与分级系统奠定技术基础。材表面缺陷自动检测与分级系统奠定技术基础。材表面缺陷自动检测与分级系统奠定技术基础。


技术研发人员:张付祥 徐兆洋
受保护的技术使用者:河北科技大学
技术研发日:2023.07.21
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐