1.本发明涉及缺陷检测领域,具体涉及一种基于深度学习的铺粉缺陷检测方法。
背景技术:2.深度学习(deep learning,dl)是机器学习的一个新的研究方向,其动机在于建立、模拟人脑,进而进行分析学习,它模仿人脑的机制来解释数据,例如图像,声音和文本,已经广泛应用到计算机视觉、语音识别以及自然语言处理等方面。
3.现阶段,常采用选区激光熔化技术进行增材的制造,选区激光熔化(selective laser melting,slm)技术是增材制造中最具发展前景的一种技术,利用高能束激光直接熔化金属粉末,可形成几乎完全致密的高性能金属零件,可以加工传统方法无法加工或者难以加工的复杂零件,在航天航空、个性化生物制造及复杂模具镶块等方面具有广阔的应用前景。但在选区激光熔化的铺粉加工过程中粉末床表面常常出现供粉不足、翘曲、粉末杂质、凹凸形直线缺陷等各种缺陷,目前,缺乏有效的检测手段来检测上述铺粉缺陷。
技术实现要素:4.有鉴于此,本发明的目的是克服现有技术中的缺陷,提供基于深度学习的铺粉缺陷检测方法,能够快速检测加工过程中的铺粉缺陷,检测准确率高,提高了加工制品质量。
5.本发明的基于深度学习的铺粉缺陷检测方法,包括如下步骤:
6.s1.采集铺粉图像,并对铺粉图像进行透视变换,得到变换后的铺粉图像;
7.s2.对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像;
8.s3.将标注后的铺粉图像输入到深度学习网络模型进行网络模型的训练,得到训练好的网络模型;
9.s4.将待测铺粉图像输入到训练好的网络模型,输出待测铺粉图像的缺陷。
10.进一步,对铺粉图像进行透视变换,得到变换后的铺粉图像,具体包括:
11.s11.从铺粉图像中选定目标区域,并计算目标区域的最小外接矩形;
12.s12.计算所述最小外接矩形的四个顶点;
13.s13.基于所述四个顶点使用透视变换公式对铺粉图像进行透视变换,得到变换后的铺粉图像;所述透视变换公式为:
[0014][0015][0016][0017]
t3=[a
31 a
32
];
[0018][0019]
其中,t1表示图像线性变换,t2表示图像透视变换,t3表示图像平移,u,v,w为原始图像像素点的齐次坐标,x,y,z为经过透视变换后的图像像素的齐次坐标且z=1,则点(x,y)就是原图像对应的像素点的二维平面坐标经过变换后的物理二维平面坐标。
[0020]
进一步,对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像,具体包括:
[0021]
s21.划分缺陷类型;所述缺陷类型包括供粉不足、翘曲、粉末杂质、凹形直线缺陷以及凸形直线缺陷;
[0022]
s22.确定变换后的铺粉图像所属的缺陷类型,并对所属的缺陷类型进行标注,得到标注后的铺粉图像。
[0023]
进一步,所述步骤s3,具体包括:
[0024]
s31.将标注后的铺粉图像作为训练集,并存储所述训练集;
[0025]
s32.读取所述训练集;
[0026]
s33.对所述训练集进行缺陷分类,得到分类后的训练集;
[0027]
s34.按照划分比例将分类后的训练集划分为预处理集、验证集以及测试集;
[0028]
s35.将预处理集的数据格式转换为目标格式;
[0029]
s36.构建深度学习网络模型,并为网络模型设置超参数;所述超参数包括批处理尺寸、学习率以及运行环境;
[0030]
s37.将数据格式为目标格式的预处理集输入到深度学习网络模型进行网络模型训练,在训练过程中不断调整网络模型的参数,使得网络模型的输出结果达到预期效果;
[0031]
s38.将验证集输入到训练后的网络模型中,对训练后的网络模型的训练效果进行评估,得到评估结果;
[0032]
s39.将评估结果满足预设结果的网络模型作为训练好的网络模型。
[0033]
进一步,步骤s38中,对训练后的网络模型的训练效果进行评估时,将精确率以及召回率作为评估指标。
[0034]
进一步,根据如下公式确定精确率precision:
[0035][0036]
其中,tp为属于某类的样本被预测为某类;fp为不属于某类的样本被预测为某类;
[0037]
根据如下公式确定召回率recall:
[0038][0039]
其中,fn为属于某类的样本没有被预测为某类。
[0040]
本发明的有益效果是:本发明公开的一种基于深度学习的铺粉缺陷检测方法,通过获取铺粉缺陷图像,应用透视变换技术对获取的图像进行矫正,利用labeltool分割标注工具标记矫正图像中的各种铺粉缺陷,将标记的铺粉缺陷输入到深度学习模型中进行训
练,得到训练模型,并使用训练好的模型对其他的铺粉缺陷图像进行预测,从而达到检测铺粉缺陷类别、位置和大小的目的。
附图说明
[0041]
下面结合附图和实施例对本发明作进一步描述:
[0042]
图1为本发明的方法流程示意图;
[0043]
图2为本发明的具有多个隐藏层的深度神经网络图;
[0044]
图3为本发明的卷积神经网络结构图。
具体实施方式
[0045]
以下结合说明书附图对本发明做出进一步的说明,如图所示:
[0046]
根据选区激光熔化设备在加工过程中粉末床出现的各种铺粉缺陷,结合nuc-150选区激光熔化设备提出了基于深度学习的铺粉缺陷检测方法,包括如下步骤:
[0047]
s1.采集铺粉图像,并对铺粉图像进行透视变换,得到变换后的铺粉图像;
[0048]
s2.对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像;
[0049]
s3.将标注后的铺粉图像输入到深度学习网络模型进行网络模型的训练,得到训练好的网络模型;
[0050]
s4.将待测铺粉图像输入到训练好的网络模型,输出待测铺粉图像的缺陷。
[0051]
本实施例中,步骤s1中,搭建采集图像的装置支撑结构,使用工业相机采集激光扫描粉末床之后的粉末床图像,将粉末床图像作为铺粉图像,并将铺粉图像存储到特定的文件路径当中。
[0052]
本实施例中,步骤s1中,对铺粉图像进行透视变换,得到变换后的铺粉图像,具体包括:
[0053]
s11.从铺粉图像中选定目标区域,并计算目标区域的最小外接矩形;其中,所述目标区域包括铺粉加工过程中若干加工零件所在的区域;
[0054]
s12.计算所述最小外接矩形的四个顶点;其中,所述最小外接矩形以及四个顶点的计算均采用现有的图像处理技术,在此不再赘述;
[0055]
s13.基于所述四个顶点使用透视变换公式对铺粉图像进行透视变换,得到变换后的铺粉图像;所述透视变换公式为:
[0056][0057][0058][0059]
t3=[a
31 a
32
];
[0060][0061]
其中,t1表示图像线性变换,t2表示图像透视变换,t3表示图像平移,u,v,w为原始图像像素点的齐次坐标,x,y,z为经过透视变换后的图像像素的齐次坐标且z=1,则点(x,y)就是原图像对应的像素点的二维平面坐标经过变换后的物理二维平面坐标。其中,所述矩阵t1、t2、t3中各元素以及元素a
33
的值可根据实际工况条件进行设置。
[0062]
本实施例中,步骤s2中,对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像,具体包括:
[0063]
s21.划分缺陷类型;所述缺陷类型包括供粉不足、翘曲、粉末杂质、凹形直线缺陷以及凸形直线缺陷;
[0064]
s22.确定变换后的铺粉图像所属的缺陷类型,并对所属的缺陷类型进行标注,得到标注后的铺粉图像。
[0065]
其中,采用labeltool分割标注工具,对透视变换后的铺粉图像中存在的供粉不足、翘曲、粉末杂质、凹形直线缺陷和凸形直线缺陷等5种缺陷进行标注,通过对变换后的铺粉图像进行标准,可以提高后续最终的检测效果,图像标注的越准,学习效果越好,检测效果也就越好。
[0066]
本实施例中,所述步骤s3,具体包括:
[0067]
s31.将标注后的铺粉图像作为训练集,并存储所述训练集;其中,为铺粉图像和含有标注的图像设置文件夹,使用read_dl_dataset_segmentation()算子通过文件路径获取图像和其对应的标签,使用get_dict_tuple()算子将训练集中的类别以字典的形式储存,便于后期的训练和评估过程数据的读取;
[0068]
s32.读取所述训练集;其中,使用read_de_model()读取训练集并获取网络句柄,所述句柄在可在训练集、设置网络参数、训练网络、应用网络检测时使用。
[0069]
s33.对所述训练集进行缺陷分类,得到分类后的训练集;其中,使用set_dl_model_param()算子指定分类的种类;
[0070]
s34.按照划分比例将分类后的训练集划分为预处理集、验证集以及测试集;其中,使用split_dl_dataset()算子将训练集分割为预处理、验证、测试数据集共3部分,其中,预处理集占70%,验证集和测试集各占了15%;
[0071]
s35.将预处理集的数据格式转换为目标格式;其中,使用create_dl_preprocess_param_from_model()算子和preprocess_dl_dataset()算子按照神经网络的实际工况将图像公式转换为.hdict格式,便于神经网络的读取和训练;
[0072]
s36.构建深度学习网络模型,并为网络模型设置超参数;所述超参数包括批处理尺寸(batch_size)、学习率(learning_rate)以及运行环境(runtime_init);其中,深度学习是机器学习研究中的一个新领域,其思想主要来源于连接主义。主要模拟人类大脑的思维方式构建神经网络来分析解释图像、声音和文本等数据。深度学习的概念来源于对人工神经网络的研究,深度学习的结构包含多个隐藏层的多层感知器,通过组合低层特征,形成
更加抽象的高层特征,进而表示属性的特征。
[0073]
如图2所示,提供了一个具有多个隐藏层的深度神经网络图,包括:输入层、隐藏层和输出层三部分。本实施例中,将卷积神经网络(convolutional neural networks,cnn)作为深度学习技术的一种实现方式;
[0074]
如图3所示,提供了一个卷积神经网络结构图,包括:卷积层、激活层、池化层、全连接层四部分组成。
[0075]
所述卷积层主要就是提取图片每个小部分里具有的特征。本方法选取尺寸为3*3的图像,每一个像素点里都存储着图像的信息。然后定义一个卷积核(相当于权重),用来从图像中提取一定的特征。卷积核与数字矩阵对应位相乘再相加,得到卷积层输出结果。
[0076]
卷积运算是指一个卷积核在图像每一像素进行一系列的操作,其数学定义的连续形式为:
[0077][0078]
其离散形式为:
[0079][0080]
其中,为f和g的卷积。
[0081]
所述池化层,池化又叫下采样(dwon sampling),与之相对的是上采样(up sampling)。卷积得到的特征图一般需要一个池化层以降低数据量。和卷积一样,池化也有一个滑动的核,可以称之为滑动窗口,滑动窗口的大小为2*2,步幅为2,每滑动到一个区域,则取最大值作为输出,这样的操作称为max pooling。还可以采用输出均值的方式,称为mean pooling。
[0082]
所述全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来。由于其全相连的特性,一般全连接层的参数也是最多的。全连接层表示公式为:
[0083]
a1=w
11
*x1+w
12
*x2+w
13
*x3+b1
[0084]
a2=w
21
*x1+w
22
*x2+w
23
*x3+b2
[0085]
a3=w
31
*x1+w
32
*x2+w
33
*x3+b1
[0086]
其矩阵形式为:
[0087][0088]
其中,x1、x2、x3为全连接层的输入,a1、a2、a3为输出。
[0089]
本实施例中,根据实际情况将batch_size设为32、将learning_rate设为0.001。并使用create_dl_train_paeam()算子来创建深度学习的训练参数;
[0090]
s37.将数据格式为目标格式的预处理集输入到深度学习网络模型进行网络模型训练,在训练过程中不断调整网络模型的参数,使得网络模型的输出结果达到预期效果;也
即是,使用train_dl_model()算子进行网络训练,在训练的过程中需要不断调整epoch、batch_size和learning_rate的值,直到训练结果满意为止;
[0091]
s38.将验证集输入到训练后的网络模型中,对训练后的网络模型的训练效果进行评估,得到评估结果;具体地,模型完成训练之后,为了将网络更好地用于实际检测当中,需要使用验证集来评估验证网络的性能。其中,使用read_dl_model()算子来读取训练后的.hdl模型,用以预测部署使用;使用set_dl_model_param()算子设置评估所需的超参数,使用evaluate_dl_model()算子评估网络的性能,评估结果存储在evaluationresult中。对训练后的网络模型的训练效果进行评估时,将精确率以及召回率作为评估指标。可以使用dev_display_segmentation_evaluation()算子显示精确率、召回率。其中,通过使用混淆矩阵更加直观地展现网络的性能,所述的混淆矩阵是显示真实值和预测结果的一个矩阵表,是直观显示网络判断结果的工具,所述混淆矩阵表如表1所示:
[0092]
表1
[0093][0094]
表中,tp为属于某类的样本被预测为某类;fp为不属于某类的样本被预测为某类;fn为属于某类的样本没有被预测为某类;tn为不属于某类的样本没有被预测为某类。
[0095]
所述精确率(precision)指所有被识别为正样本的图像中正确识别的比例,根据如下公式确定精确率precision:
[0096][0097]
所述召回率(recall)是指被正确识别出来的正样本数量占全部样本的比例,根据如下公式确定召回率recall:
[0098][0099]
s39.将评估结果满足预设结果的网络模型作为训练好的网络模型。
[0100]
本实施例中,步骤s4中,将待测铺粉图像输入到训练好的网络模型,输出待测铺粉图像的缺陷。具体地,首先使用set_dl_model_param()算子设置参数,为网络做好准备,使用gen_dl_samples_from_images()算子为预测的每一张图像创建一个dlsample数据字典,存储单张预测图像的信息。使用preprocess_dl_samples()算子对图像进行预处理,并将预处理的结果存储在dlpreprocessparam中,以供预测时使用。使用apply_dl_model()算子对图像进行实际检测,预测结果保存在dlresultbatch中,将预测结果反馈给上位机并写入到数据库中。本发明经过实验证明检测一张缺陷图像的平均时间为0.24秒,检测的准确率为97.5%,完全可以满足加工要求。
[0101]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技
术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
技术特征:1.一种基于深度学习的铺粉缺陷检测方法,其特征在于:包括如下步骤:s1.采集铺粉图像,并对铺粉图像进行透视变换,得到变换后的铺粉图像;s2.对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像;s3.将标注后的铺粉图像输入到深度学习网络模型进行网络模型的训练,得到训练好的网络模型;s4.将待测铺粉图像输入到训练好的网络模型,输出待测铺粉图像的缺陷。2.根据权利要求1所述的基于深度学习的铺粉缺陷检测方法,其特征在于:对铺粉图像进行透视变换,得到变换后的铺粉图像,具体包括:s11.从铺粉图像中选定目标区域,并计算目标区域的最小外接矩形;s12.计算所述最小外接矩形的四个顶点;s13.基于所述四个顶点使用透视变换公式对铺粉图像进行透视变换,得到变换后的铺粉图像;所述透视变换公式为:粉图像;所述透视变换公式为:粉图像;所述透视变换公式为:t3=[a
31 a
32
];其中,t1表示图像线性变换,t2表示图像透视变换,t3表示图像平移,u,v,w为原始图像像素点的齐次坐标,x,y,z为经过透视变换后的图像像素的齐次坐标且z=1,则点(x,y)就是原图像对应的像素点的二维平面坐标经过变换后的物理二维平面坐标。3.根据权利要求1所述的基于深度学习的铺粉缺陷检测方法,其特征在于:对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像,具体包括:s21.划分缺陷类型;所述缺陷类型包括供粉不足、翘曲、粉末杂质、凹形直线缺陷以及凸形直线缺陷;s22.确定变换后的铺粉图像所属的缺陷类型,并对所属的缺陷类型进行标注,得到标注后的铺粉图像。4.根据权利要求1所述的基于深度学习的铺粉缺陷检测方法,其特征在于:所述步骤s3,具体包括:s31.将标注后的铺粉图像作为训练集,并存储所述训练集;s32.读取所述训练集;s33.对所述训练集进行缺陷分类,得到分类后的训练集;
s34.按照划分比例将分类后的训练集划分为预处理集、验证集以及测试集;s35.将预处理集的数据格式转换为目标格式;s36.构建深度学习网络模型,并为网络模型设置超参数;所述超参数包括批处理尺寸、学习率以及运行环境;s37.将数据格式为目标格式的预处理集输入到深度学习网络模型进行网络模型训练,在训练过程中不断调整网络模型的参数,使得网络模型的输出结果达到预期效果;s38.将验证集输入到训练后的网络模型中,对训练后的网络模型的训练效果进行评估,得到评估结果;s39.将评估结果满足预设结果的网络模型作为训练好的网络模型。5.根据权利要求4所述的基于深度学习的铺粉缺陷检测方法,其特征在于:步骤s38中,对训练后的网络模型的训练效果进行评估时,将精确率以及召回率作为评估指标。6.根据权利要求5所述的基于深度学习的铺粉缺陷检测方法,其特征在于:根据如下公式确定精确率precision:其中,tp为属于某类的样本被预测为某类;fp为不属于某类的样本被预测为某类;根据如下公式确定召回率recall:其中,fn为属于某类的样本没有被预测为某类。
技术总结本发明公开了一种基于深度学习的铺粉缺陷检测方法,包括步骤:S1.采集铺粉图像,并对铺粉图像进行透视变换,得到变换后的铺粉图像;S2.对变换后的铺粉图像进行缺陷标注,得到标注后的铺粉图像;S3.将标注后的铺粉图像输入到深度学习网络模型进行网络模型的训练,得到训练好的网络模型;S4.将待测铺粉图像输入到训练好的网络模型,输出待测铺粉图像的缺陷。本发明能够快速检测加工过程中的铺粉缺陷,检测准确率高,提高了加工制品质量。提高了加工制品质量。提高了加工制品质量。
技术研发人员:白培康 李忠华 刘立鑫 刘斌 赵占勇
受保护的技术使用者:中北大学
技术研发日:2022.05.10
技术公布日:2022/7/5