基于CNN的FDM型3D打印故障诊断方法

2022-10-30 12:59:32卫诚琨周俊张嘉
农业装备与车辆工程 2022年2期
关键词:机位故障诊断卷积

卫诚琨,周俊,张嘉

(201620 上海市 上海工程技术大学 机械与汽车工程学院)

0 引言

热熔堆积(FDM)型3D 打印是目前最成熟、应用最广的增材制造技术之一,其原理是热塑性丝状材料由供丝机构送至热熔喷头,并在喷头中加热和熔化成半液态,然后被挤压出来,驱使打印机头按照读取的G-code 代码路径移动,打印材料随路径挤出后凝固联结,经层层堆积完成产品的制作[1]。

FDM 型3D 打印进程中,会因打印参数设置、打印设备调校、车间环境状况等原因发生故障,如成型进程中的产品表面会产生无法消除的缺陷(如图1 所示),甚至造成打印设备的损坏。因此需及时发现故障以避免继续打印造成进一步的损失。

图1 FDM 型3D 打印中的故障产品Fig.1 Faulty products in FDM type 3D printing

卷积神经网络(Convolutional Neural Network,CNN)是目前广泛使用的图像识别方法,可通过计算图像对于各指定类别的匹配概率对图像进行分类[2-3]。FDM 型3D 打印发生故障时,其缺陷可通过监测打印过程中产品的表面特征图像,运用CNN 对图像进行识别、分类等,及时判断打印的故障并识别故障类型[4-6]。

1 FDM 型3D 打印的故障分类

FDM 型3D 打印进程中的缺陷主要表现在4个区域:(1)打印层,即零件已完成部分与正在成型部分的交界处;(2)打印件外壁,即打印件四周外壳;(3)打印件的起始层(4)打印件的顶层[7]。打印中进行故障诊断时,需对打印进程中可能出现的故障进行分类。现将常见的打印故障归纳为表1 中的19 种类别。

表1 FDM 型3D 打印故障类别Tab.1 FDM type 3D printing failure categories

打印故障有多种,在每次打印进程中,复数项的打印故障可能同时发生。观测打印进程是否发生故障,需对正在成型中的打印件上表面、侧表面进行监视。上表面的监测需要俯视机位的摄像模块。但是表面故障一旦产生,即会漫布于整个打印件外壁,不存在局部完好的情况,因此对被测表面添加一个侧视机位的摄像模块。产品的已成型部分不会在后续打印进程中发生改变,故侧视机位摄像模块只需监测已成型与未成型交接部分,即观察打印层的外壁状况。

2 基于CNN 的打印故障诊断系统

CNN 是一种前馈神经网络,由一个或多个卷积层和池化层以及顶层的全连接层组成[8]。卷积层使神经网络能够识别图形中在不同区域反复出现且尺寸更小的图样,提升识别速度;池化层是对图像进行二次采样,在不影响识别性能的前提下减少数据运算量。因此,相比较其他深度、前馈神经网络,CNN 需要考量的参数更少,效率更高,从而广泛地应用于图像识别的领域中[9]。

本文基于CNN 对成型中零部件表面特征图像进行分类,从而进行打印故障诊断。对每种故障均有一个专用CNN对其进行“发生”与“未发生”的二元分类,独立进行判断。与采用单CNN 多元分类相比,多CNN 二元分类对故障诊断系统按故障类型进行模块化处理,可更便捷地进行后续故障识别能力的升级,每个CNN 在训练时更容易获得泛化性,不易陷入过拟合。需要的图像数据量更低,可减小图像数据的采集规模[10]。

2.1 CNN 模型的建立

CNN 由众多被称为层的计算模块前后连接而成。第一层为输入层,最后一层为输出层,中间为隐藏层。数据由输入层输入,经由隐藏层,层层传递计算,最后得到输出层的结果。本系统中打印故障的诊断CNN,其输入层为256×256×1的三维矩阵,其中256 为打印件图像的长宽像素,1 为图像通道数。输出层为二维向量[o1,o2]。其中,o1为该打印件图像,表示打印进程中已发生相应故障的概率;o2为打印进程正常的概率。

隐藏层除最后两层外,每层又可分为3 个子层:卷积层、激活层、池化层,数据由三维矩阵的形式,经过3 层计算后,输出另一个三维矩阵,该输出矩阵又将作为下一层中卷积层的输入,如此传递,直至输出层输出结果。对于分类问题,隐藏层最后一层为Softmax 层,以对输出数据进行正则化,使其输出向量的每个元素值均在0 到1 之间,从而可以指代对应结果的概率。

卷积层由核和偏置的两种三维矩阵组成。核与偏执的通道数与输入矩阵的通道数相同,输入矩阵与核进行卷积运算后与偏执进行和运算。经由ReLU 激活函数,在池化层进行池化计算,以提升模型的鲁棒性。卷积层中,核与偏执均为需要学习的参数;池化层中所定义的池化计算是在CNN 模型建立时已经确定的,无需要进行学习的参数。

2.2 故障诊断系统的构成

故障诊断系统如图2 所示,由图像采集的摄像系统、图像信息传递和故障诊断信息收集的中控系统、图像分析及判断是否发生故障的CNN计算系统组成。

图2 故障诊断系统的组成Fig.2 Composition of fault diagnosis system

2.2.1 摄像系统

摄像系统包含两个CMOS 摄像模块和光源系统。本文采用的图像数据设置为256×256 像素的单通道灰度图片。每笔图片数据均为256 维方型矩阵,矩阵元素为对应像素的8 位灰度值,其区间为0 至28-1=255。故摄像模块采用常见的30 W 像素、640×480 分辨率的CMOS 摄像模块。

两个摄像模块分别设于俯视机位和侧视机位。俯视机位的摄像模块固定于打印机正上方,在不影响打印热端走行机构的前提下,完整覆盖打印范围的俯视向图像采集。侧视机位的摄像模块固定于打印机侧面,其高度略高于打印平台归零时所处的高度,使该摄像模块能在整个打印进程中始终捕捉打印层附近的外壁图像,如图3 所示。

图3 俯视机位与侧视机位Fig.3 Top view camera position and side view camera position

光源对图像数据采集的效果至关重要,调整光源的亮度、色温及位置,保证灰度图像数据中打印件轮廓清晰,故障特征分明。

2.2.2 中控系统

中控系统由另一块独立的单板计算机构成。其功能如下:(1)根据事先设定的采样间隔时间,控制摄像系统的采样。产品在打印中因故障而产生的缺陷,在发生故障后的一小段时间内对其整体结构及打印设备的影响有限,故在打印进程中无需进行实时拍摄,只需每隔一段时间对成型中产品图像进行采样;(2)接收摄像系统采样的单通道图像数据,并按照俯视组和测试组分别传递至CNN 计算系统中,作为相应CNN 的输入;(3)接收CNN 计算系统反馈的故障识别结果,根据该结果将打印进程是否发生故障及故障类型的警报信息传递至远端监控设备。

2.2.3 CNN 计算系统

CNN 计算系统由性能相对强劲的单板计算机独自或并联构成,内置19 个已经训练完毕,即结构与参数符合打印件故障识别的CNN。这19 个CNN 分为俯视组与测试组,依据其对应打印故障的识别方位进行分组。两组分别接收由中控系统传递来的对应机位摄像模块采集的图像信息。各组内,每笔图像信息均需输入组内所有的CNN,每个收到图像信息的CNN 均会执行前向计算,从而各自进行对应故障诊断。

3 基于CNN 的故障识别训练

为使CNN 达到上述故障识别能力,需对CNN 进行训练。CNN 采用监督式学习进行训练。监督式学习是指神经网络模型通过拟合大量含标签样本获取最优权重参数,从而获取预测能力的训练方式。打印故障识别的CNN 训练流程(如图4 所示):(1)建立具备卷积层和池化层的结构相同、参数不同的神经网络函数集;(2)以交叉熵作为损失函数,以此定义不同参数下的CNN 识别故障类型的性能表现;(3)收集一定数量规模的打印进程故障数据,以[打印进程图像 -故障类型]的方式进行标识,形成数据组,取其中70%的数据组作为训练集,剩余30%的数据组作为测试集;(4)以CNN 的一组随机参数作为初始值,评估其在训练集上的识别性能,得到损失函数值,并以该值梯度下降法对参数进行更新;(5)评估新参数下的CNN 在训练集上的识别性能并再次更新。如此反复,直至损失函数收敛,得到具有最佳故障识别性能的CNN;(6)评估此训练完毕的CNN 在测试集上的故障识别性能。

图4 基于CNN 的故障识别训练流程Fig.4 CNN-based fault recognition training process

3.1 CNN 训练

CNN 的训练中分为超参数的设定和参数的训练,其中超参数应在参数训练前设定。在训练集中随机挑选20%的数据作为验证集,在验证集上进行快速训练,评估并确定最佳的超参数。超参数设定完毕后,再用训练集余下的80%数据进行参数的训练。模型中,网络层数、核卷积步幅、学习率为超参数,卷积层核与偏置为参数。

参数训练通过监督式学习的方法。训练时,用Xavier 法设定卷积层和核与偏置的初始值。用交叉熵函数评估当前参数在训练集上的识别性能。使用批训练的方式,即利用计算机并行计算的特性,同时计算当前参数下多组输入值的输出值,并计算批中损失函数的均值:

式中:N——批中所包含的数据笔数;t——正确解标签;y——在该组参数下得到的实际解。

得到损失函数值后,以该值为依据,采用梯度下降法对参数进行更新

式中:x——当前参数;x'——更新后参数;η——学习率。评估新参数下的CNN 在训练集上的识别性能,并再次更新,如此反复,直至损失函数收敛,得到具有最佳故障识别性能的CNN。

3.2 数据采集与标识

进行训练数据采集时,机位设置与故障诊断设置一致,即俯视机位和侧视机位。根据故障发生的阶段特性,在打印进程的1%阶段、50%阶段和90%阶段拍摄3 次图像,即一次打印采集6笔图像数据。

对每种故障类型,采集发生故障与未发生故障图像各500 张。为使打印件本身的形状及尺寸不对CNN 的故障识别产生影响、CNN 专注于故障本身的图像表征,每次打印时选择形状尺寸不同的打印模型。出于对操作性的考虑,打印模型如图5 所示,选用方高柱、锥柱混合体、球体和一次成型桁架4 种。

图5 训练数据采集所用的模型Fig.5 Model used for training data collection

正常打印时,发生故障的打印次数很少,为了尽可能多地收集发生故障的图像数据,可以对打印模型的Gcode 代码做出调整,诱发各种故障以便加快采集进程[11-13]。

为获取真实的实验数据,增加算法的说服性,本文根据图5 中的方高柱和球体模型,选取表面有棱角或凸起的粗糙面图片进行实验验证,共有500 组数据集。其中,400 组数据集作为训练集,剩余100 组数据集作为测试集。所有图像的尺寸归一化为2 000×1 000 像素。部分样本图像如图6 所示。

图6 部分样本图像Fig.6 Partial image of samples

3.3 识别结果

实验平台选择Linux Ubuntu16.04 系统,Python 版本是3.6,PyTorch 版本是1.1.0,搭载了Intel Xeon E5-2643 CPU,96GB DRAM 和 Nvidia Quadro P2000 GPU。训练模型是基于卷积神经网络进行改进得到一个能够针对热熔堆积型3D 打印故障识别的新卷积神经网络模型。

整个预测过程如下:输入训练数据集或者验证数据集中的每张图片到模型内,经过网络层预测,在最后一层网络层即Softmax 层输出属于该图片的一维向量,由于训练及预测之前需进行打标签,将数据集图片分为3 类,即无故障、有故障、具体故障,确定该向量中的每一位数值对应于数据集中的3 类,输出值是一个包含3 个数值的一维向量,此一维向量中的3 个数值一一对应为上述的3 类,因此在这3 个数值中选取最大的,计算出属于哪一类的概率,则此模型预测该图片属于此类。故CNN模型的输出准确率即为本文3.1小节所介绍的,CNN 框架中最后一层Softmax 所输出的值。

表2 为采用支持向量机(Support Vector Machine,SVM)和深度置信网络(Deep neural network,DBN)两种诊断方法与本文所建立的CNN 模型在学习速率为0.01 时的准确率对比。

表2 实验效果数据Tab.2 Experimental data

通过对比测试可以发现,基于CNN 的故障诊断模型不论是训练集的准确性还是测试集的准确性都具有非常好的识别率,相比于SVM 和DBN 两种方法具有更好的分类性能。其中 DBN的分类模型实验数据结果最差,训练集准确率与测试集准确率仅为72.43%与73.35%。这表明CNN 在特征提取方面具有非常强大的优势。

4 结论

本文提出的基于CNN 图像识别的3D 打印故障诊断系统,相对于SVM 以及DBN 模型具有更优的分类性能,结合CNN 网络的优势,可以直接从3D 打印件自适应提取特征信息,降低了人工故障特征提取的不确定性,实现了不同打印阶段的故障分类。可广泛地适用于FDM 型3D 打印设备。借助相对成熟的CNN 图像识别技术,可实现诊断系统的快速部署,对提升FDM 型3D 打印的效率、减少相关资源浪费及能源损耗有一定助益。

猜你喜欢
机位故障诊断卷积
#你会分享爬楼机位吗?#
摄影之友(2023年5期)2023-05-17 23:19:17
附着全钢升降脚手架不同步升降性能研究
工业建筑(2022年3期)2022-08-01 07:49:20
附着式升降脚手架机位排布优化方法及应用
建筑机械化(2022年2期)2022-03-06 12:48:52
基于3D-Winograd的快速卷积算法设计及FPGA实现
机位容量因其数量影响的仿真运行及量化关系研究
从滤波器理解卷积
电子制作(2019年11期)2019-07-04 00:34:38
基于傅里叶域卷积表示的目标跟踪算法
因果图定性分析法及其在故障诊断中的应用
一种基于卷积神经网络的性别识别方法
电视技术(2014年19期)2014-03-11 15:38:20
基于LCD和排列熵的滚动轴承故障诊断