掌桥专利:专业的专利平台
掌桥专利
首页

一种基于自编码器的飞机零件缺陷检测方法

文献发布时间:2024-04-18 20:01:23


一种基于自编码器的飞机零件缺陷检测方法

技术领域

本发明属于目标检测技术领域,具体涉及一种基于自编码器的飞机零件缺陷检测方法。

背景技术

随着信息化与工业化的深度融合,在工业飞机零件缺陷检测的过程中如何使用信息化手段,使得检测方式更加自动化、智能化的研究日趋必要。在飞机制造领域常见的飞机零件有钣金件、锻铸件、特制件、标准件等,常见的缺陷类型有裂纹、汽包、结晶等。这些缺陷的及时识别不仅能有效规避粗加工过程中返工风险,而且还能更有利的保障主产品的质量,因此飞机零件缺陷检测十分必要。

近年来,深度学习在图像分类任务中取得了显著的进步,并快速应用于工业检测,尤其在缺陷检测方面取得较为优越的性能。如基于(CNN)卷积神经网络的VGGNet和YOLO神经网络模型在大型训练集上的准确率可以达到85%,基本上可以满足一些工业场景的使用需求。近年来随着基于Attention机制Transformer模型的提出,缺陷检测的准确率更是可以稳定在90%以上。

然而,这些深度学习方法通常需要大量人为标注的数据,才能训练出性能比较稳定、准确率比较高的模型。但是,很多情况下,人为标注数据成本比较高,常常难以得到大量经过标注的训练样本,这极大的限制了深度学习方法的泛化能力和鲁棒性。为此本申请为解决在传统深度学习方法中使用大量未人为标注数据的情况下,提出一种基于自编码器的飞机零件缺陷检测方法。

发明内容

发明目的

本发明的目的在于针对深度学习算法训练过程受制于大量人工标注数据问题,提出一种基于自编码器飞机零件检测方法。本方法可基于大量带标签的数据,无需再人为手工标注即可开始训练模型,训练出来的模型在鲁棒性和准确率上均有比较好的表现。

技术方案

本发明提出了一种基于自编码器飞机零件缺陷检测方法,具体步骤如下:

步骤一:数据采集。采集飞机零件样品的历史数据,在电子显微镜的PC端存储着大量的飞机零件表面图像数据的正常样本和少量异常样本,收集这些图像数据,作为训练模型时的输入数据;

步骤二:数据预处理

1)二值化处理图像:选定阈值在[0,255]之间,对图像进行二值化处理。

2)过滤图像噪音:使用均值滤波器,设定滤波器的窗口大小为3x3,在二值化后的图像上进行滑动,最后形成去噪二值图像。

3)归一化和标准化:将去噪二值图像进行归一化和标准化处理。

4)数据增强:采用有监督的数据增强策略,在已有的数据基础上进行数据扩展;通过对图像的一些几何变化,如缩放、变形、剪裁、移位、旋转、翻转等,改变图像的数据表现形式,但是并不改变数据标签。

步骤三:建立自编码器神经网络结构,主要由编码器和解码器构成。自编码器是一种无监督的神经网络结构模型,主要用它来学习到输入数据的隐含特征,这个工作让编码器来完成。然后将隐含的特征再还原成原始数据,这个工作让解码器来完成。

(1)建立编码器:将输入的数据记为x,将输入的数据x通过函数转换成数据y,用公式表达为:y=h(x)

(2)建立解码器:将编码器的输出数据y作为解码器的输入数据,通过函数得到重构后的数据r,用公式表达为:

r=f(y)=f(h(x))

(3)定义误差e为原始数据x和重构后的数据r之间的差异,用公式表达为:

网络训练的目的是减少均方误差,即最大化的降低损失函数的值。

步骤四:参数初始化。使用有限制的随机初始化参数策略,具体如下:记前一层的神经元个数为n,下一层的神经元个数为m。本层使用随机化权重矩阵W来表达,取值范围为[-a,a]。其中

步骤五:训练模型

将经过步骤二预处理过的训练集正常样本拉伸为一个一维的向量X,先输入给编码器,经过编码器将输入数据压缩成一个向量H,最后经过解码器运算后,将数据还原成一个向量R。计算R和X之间差异,去更新梯度。

步骤六:评估模型

将一个正常样本的数据拉升为一个向量X

进一步的,还包括步骤七:使用模型

使用训练好的神经网络对新的飞机零件样本进行检测,输出最终的检测结果,判定飞机零件是否有缺陷。

进一步的,在实施步骤一的过程中,考虑到实际业务场景,人工进行数据标注成本过高,所以采用的是一种无监督学习的算法框架,侧重于采集正常样本,正常样本与异常样本的数据量比例为20∶1较为恰当。然后再将正常样本和异常样本按照8∶1∶1的比例划分为训练集、测试集、验证集。

进一步的,在实施步骤二的过程中,对图像数据进行二值化处理的目的在于,提升后续的算法执行速度,便于算法可以快速收敛。对于一些算力充足的企业,可以忽略此步骤。

进一步的,在实施步骤二的过程中,执行数据增强策略,主要是为了获取更多的数据,让算法在最后收敛的时候达到比较好的状态。

进一步的,在步骤三中编码器具体为Encoder。

进一步的,在步骤三解码器具体为Decoder。

进一步的,在实施步骤四的过程中,之所以用前一层的神经元个数和本层的神经元个数来限制本层参数的初始化,主要是为了在训练神经网络的过程中,保持输入信号和梯度的方差在不同层大致相等,避免在深层网络中产生梯度消失或梯度爆炸的问题。

本申请的有益效果在于:

该方法以无监督学习的方式,使用正常样本的飞机零件图片数据,训练出具有高精度与高鲁棒性的自编码器。在训练过程中,编码器主要用来压缩信息,学习到数据中的隐含信息;解码器主要用来解压信息,将隐含信息还原成原始信息。使用该方法不仅解决了传统飞机零件检测人工目测效率低的问题;而且原始数据无需再进行人为标注,规避了使用深度学习手段进行异常检测时人为标注数据成本高的弊端。训练出来的自编码器在准确性与鲁棒性均有比较好的表现。

附图说明

图1为本发明基于对抗式神将网络飞机零件缺陷检测方法的流程图。

具体实施方式

下面结合实施例对本发明作进一步描述。以下所述仅为本发明一部分实施例,非全部实施例。基于本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

具体包括以下步骤:

步骤一:数据采集。采集飞机零件样品的历史数据,在电子显微镜的PC端存储着大量的飞机零件表面的正常样本和少量异常样本,收集这些图像数据,作为训练模型时的输入数据;

步骤二:数据预处理

1、二值化处理图像:选定阈值在[0,255]之间,对图像进行二值化处理。

2、过滤图像噪音:使用均值滤波器,设定滤波器的窗口大小为3x3,在二值化后的图像上进行滑动,最后形成去噪二值图像。比如说一个滤波窗口内的各个像素点分别为[45,98,134,38,204,145,34,83,189],那么经过均值滤波器后,这个区域将会被缩放成一个像素大小为162的像素点。

3、归一化和标准化:将去噪二值图像进行归一化和标准化处理。标准化是指数据按均值中心化后,再按照标准差缩放,数据就会服从均值为0,方差为1的标准正态分布,其值域满足[-1,1]。标准化公式如下:

数据归一化是将数据x按照最小值中心化后,再按照极差(最大值最小值)进行缩放,最终数据会被收敛到[0,1]之间。归一化公式如下:

将去噪二值化图像进行标准化、归一化处理,提高网络模型运行过程中参数的收敛速度,避免因参数矩阵中绝对值偏大对参数优化造成过度影响,有效地映射到激活函数的有效区域,避免过拟合、梯度消失或梯度爆炸;

4数据增强:在实际机生产作业中,实际产生大量损失的零件原始图像只占所有图像的小部分,但因神经网络的特性,很难有足够的数据集构成训练集和验证集。本采用数据增强手段,在不实质增加原始图像数据情况下,让有限的数据产生更多数据价值。采用有监督的数据增强策略,在已有的数据基础上进行数据扩展;通过对图像的一些几何变化,如缩放、变形、剪裁、移位、旋转、翻转等,改变图像的数据表现形式,但是并不改变数据标签。

步骤三:建立自编码器神经网络结构,主要由编码器(Encoder)和解码器(Decoder)构成。自编码器是一种无监督的神经网络结构模型,主要用它来学习到输入数据的隐含特征,这个工作让编码器来完成。将隐含的特征再还原成原始数据,这个工作让解码器来完成。

(1)、建立编码器:将输入的数据记为x,将输入的数据x通过函数转换成数据y,用公式表达为:y=h(x)

(2)、建立解码器:将编码器的输出数据y作为解码器的输入数据,通过函数得到重构后的数据r,用公式表达为:

r=f(y)=f(h(x))

(3)、定义误差e为原始数据x和重构后的数据r之间的差异,用公式表达为:

网络训练的目的是减少均方误差,也就是最大化的降低损失函数的值。

此网络的初始化训练超参数如下:Epoch=300,Batch=32,Lr=0.0001,Sample=600,α=0.01。其中,Epoch是迭代次数;Batch是一次训练的样本数;Lr是Learn Rate学习率;Sample是保存图像结果的次数;α为评估模型时要使用的收敛系数。

步骤四:参数初始化。使用有限制的随机初始化参数策略,具体如下:记前一层的神经元个数为n,下一层的神经元个数为m。本层使用随机化权重矩阵W来表达,取值范围为[-a,a]。其中

步骤五:训练模型

将经过步骤二预处理过的训练集正常样本拉伸为一个一维的向量X,先输入给编码器,经过编码器将输入数据压缩成一个向量H,最后经过解码器运算后,将数据还原成一个向量R。计算R和X之间差异,去更新梯度。

①、卷积核初始化

卷积:对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器)作内积(逐个元素相乘再求和)即卷积。在卷积网络中,滤波矩阵即卷积核作为需要迭代计算的参数矩阵,需对其进行初始化。本发明采用高斯正太分布进行卷积核初始化;

②、损失函数计算本发明神经网络架构中,根据卷积核初始化得到相应的参数矩阵,由此可以计算出对应的迭代损失。本发明采用交叉熵来计算损失;

③、梯度计算迭代更新

卷积神经网络的训练过程中最重要的一步即梯度计算和更新,该过程通过反向传播(Back Propagation,BP)算法实现,在此之前,多层网络架构由输入计算输出时会进行前向传播;

④、激活函数/防过拟合

激活函数(Activation Functions)对网络模型学习、理解复杂和非线性的函数来说具有十分重要的作用。它们将非线性特性引入到神经网络中。当不使用激活函数(即激活函数是f(x)=x),该情况下每一层节点输入都为上层输出的线性函数,很容易验证,且输出都为输入的线性组合,该情况即原始的感知机(Perceptron),网络的逼近能力相当有限;引入非线性激活函数,下层节点输出为上层节点输入的非线性组合,使网络具有更优良的逼近能力。层数比较多的神经网络模型在训练的时候会出现梯度消失(Gradient VanishingProblem)和梯度爆炸(Gradient Exploding Problem)问题。梯度消失问题(靠近输入层权值更新几乎不变)和梯度爆炸问题(靠近输出层权值更新变化巨大)一般会随着网络层数的增加变得越来越明显。

⑤、梯度更新

Adam(Adaptive Moment Estimation)本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

步骤六:评估模型

将一个正常样本的数据拉升为一个向量X

当e<0.01时,认为正常样本经过自编码器后能够被较好的还原,异常样本经过自编码器后不能被还原,判定模型收敛。否则e>0.01时,回到步骤五种继续训练模型。

步骤七:使用模型

使用训练好的神经网络对新的飞机零件样本进行检测,记原始数据为向量X,经过自编码器运算后,输出向量Y,计算两个向量的余弦相似度s,用如下公式进行计算:

s=(X·Y)/(||X||*||Y||)

设定阈值β=0.85,当s>0.98时判定两个向量相似,即认定输入的图片是一个正常样本,对应的零件无缺陷;反之就是一个有缺陷的零件。

本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 手持式动力工具的抛光垫和带有这种抛光垫的动力工具
  • 抛光垫、背衬垫和手持式动力工具
  • 适用于与手持抛光或砂光动力工具可拆卸附接的板状垫板
  • 动力工具附接件、动力工具以及操作动力工具的方法
技术分类

06120116549879