【技术实现步骤摘要】
一种基于改进Pix2Pix的复合材料涂层缺陷数据集扩增方法
[0001]本专利技术涉及深度学习领域,具体为一种基于改进
Pix2Pix
的复合材料涂层缺陷数据集扩增方法
。
技术介绍
[0002]复合材料涂层是发动机推进剂与绝热防护层粘接的关键功能材料
。
在使用图像处理方法检测发动机复合材料涂层缺陷时,会因为样本的数量不足导致检测和识别的效果不佳
。
生成对抗网络是一种强大的深度学习模型,利用生成对抗网络的生成器网络,结合先进的图像处理技术和复合材料涂层缺陷的特征,能够生成高度逼真且具有复合材料涂层缺陷特征的图片样本
。
该方法可以用于生成大量不同类型和严重程度的复合材料涂层缺陷样本图片,为复合材料涂层缺陷的检测和评估提供可靠的数据支持,且可以用于优化和改进其他缺陷检测算法和技术
。
技术实现思路
[0003](
一
)
解决的技术问题
[0004]针对现有技术的不足,本专利技术提供了一种基于改进 ...
【技术保护点】
【技术特征摘要】
1.
一种基于改进
Pix2Pix
的复合材料涂层缺陷数据集扩增方法,其特征在于,包括以下步骤:
S1、
基于条件生成对抗网络获得语义分割样本:
S11、
数据预处理:
S111、
语义分割图片制作:创建
″0″
、
″1″
、
″2″
三个文件夹,分别代表无缺陷图片
、
漏涂缺陷
、
过量涂覆三种情况;人工筛选获取到的原始图片,确定其缺陷类型后放置在对应的文件夹下;本发明使用的无缺陷图片共
450
张
、
漏涂缺陷图片
486
张
、
过量涂覆
443
张;使用
Labelme
工具对原始图片中的缺陷进行标注;使用
Labelme
标注后的文件为
json
格式的文件
。
使用
Python
中的
json
库对
json
文件进行解析,并使用
OpenCV
库绘制语义分割图片;
S112、
标签转化为独热编码:将标签转换为独热编码可以提供一种统一的表示方式,使生成器和判别器网络能够更好地协同工作,提高生成对抗网络的性能;标签转换为独热编号后,可以更方便参与卷积或反卷积;
S113、
图片的张量化及归一化:使用
PyTorch
里的
ToTensor
以及
Normalize
方法将每一张输入的灰度图片转换到
‑1~1之间;
S114、
自定义数据集类:自定义一个继承
Dataset
类的数据集类,用于处理自己的数据集,在类中,定义了获取文件数量
、
获取索引值
、
获取标签值
、
获取图片路径值等成员,用于对图片进行灵活处理;
S115、
数据集制作:在
S114
所述的自定义数据集类基础上加载语义分割图片,设置批量值
BATCH_SIZE
大小为
16
,开启随机读取和重复读取;
S12、
生成器设计:
S121、
创建随机噪声:定义一个长度为
500
的噪声,该噪声遵循正态分布;该噪声是生成器的输入,噪声数据经过一系列的全连接层以及反卷积层操作后,变换为1×
256
×
256
的灰度图,即形成目标图片;
S122、
改变标签数据形状:标签经过独热编码之后,将成为长度为4的张量,经过数层全连接层神经网络之后,将该向量的形状转化为
(128
,4,
4)
;
S123、
改变输入噪声形状:输入噪声的原始形状为长度
500
且服从正态分布的随机张量,将该张量经过数层全连接层神经网络之后,将该向量的形状转化为
(128
,4,
4)
;
S124、
合并标签与噪声:将改变形状后的输入噪声与标签进行通道维度上的合并,即变成
(256
,4,
4)
形状的数据;
S125、
反卷积与批标准化:对合并后的数据进行反卷积操作,为了将其形成最后的目标图片大小,并且获取到真正有用的缺陷特征信息,,每一次反卷积都是使用
leaky_relu
函数进行激活,最终形成
(1
,
256
,
256)
形状的数据,即一张灰度图;
S13、
判别器设计
S131、
改变标签数据形状:判别器接受到的数据有两个,一个数生成的图片,另一个数独热编码后的标签,为了能生成器对两者进行判断,需要先将标签通过全连接神经网络转换为1×
256
×
256
大小的形状,再将其展平为
(1
,
256
,
256)
形状;
S132、
合并标签与生成的图片:将形状为
(1
,
256
,
256)
的标签与形状为
(1
,
256
,
256)
;
S133、
设计卷积层:设计6个卷积层,依次将合并后的形状通道数增加,宽和高减小,每一次反卷积都是使用
leaky_relu
函数进行激活;最终形成形状为
(256
,2,
2)
的张量;
S134、
批标准化:对形状为
(256
,2,
2)
的张量进行批标准化处理;
S135、
全连接层:使用全连接层,将
(256
,2,
2)
连接到单位1的张量上,再使用
sigmoid
进行激活;
S14、
学习速率的设置:将生成器的学习速率设置为
0.001
,将判别器的学习速率设置为
0.0001
;这样的好处是削弱判别器的能力,使得生成器在早期阶段具有抗衡判别器的能力;
S15、
配置模型训练参数
S151、
设备选择:为了使得深度学习的代码具有更好的兼容性,先对硬件设备的
GPU
可用性进行判断,如果
GPU
不可使用,则设备选择为
CPU
;
S152、
损失函数:因为判别器最后的输出结果是0~1的概率值,属于二分类问题,选择
BCELoss
作为训练的损失函数;
S153、
优化器选择:生成器和判别器的优化器均选择
Adam
,除学习速率如
S41
中所述,
Adam
的其他参数均为默认值;
S16、
模型的保存:一个训练完成的神经网络,包含结构和权重两个部分;当训练完成之后,所有的信息都保存在了
model
中,但此时只在内存里;通过
save
方法,将网络的框架以及权重全都保存到
″
CGAN_model.pth
″
文件中;在需要调用时,只需要加载
pth
文件即可;
S2、
基于改进的
Pix2Pix
生成缺陷图片:
S21、
数据预处理
S211、
阈值分割:通过所述
S1
中的方法,可以获得训练过程中得到的图片,通过手动采集质量较好
、
具有缺陷特征的图片,放置在
″
Pix2PixData
″
数据集中,先使用基于
OpenCV
的阈值分割
、
中值滤波和高斯滤波技术对生成的图片进行初步处理,去除低亮度的像素值
、
椒盐噪声以及高斯噪声;共获得生成的漏涂缺陷图片
1600
张,生成的过量涂覆缺陷图片
1500
张
。S212、
语义分割:使用
Labelme
工具对去除噪声之后的缺陷图片进行语义分割,使用
OpenCV
库绘制的语义分割图片将作为
Pix2 Pix
的标签输入进行缺陷图片的生成;
S213、
建立两个变量
imgs_path
和
annos_path
,并通过
glob
方法将原始缺陷图...
【专利技术属性】
技术研发人员:高瀚君,陶鑫瑞,吴琼,陈晓满,袁松梅,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。