周光辉,卢文壮,张其真,丁鹏,吴泊鋆
(南京航空航天大学 机电学院,江苏 南京 210016)
钛合金磨削时滑擦过程占比较大,强烈的摩擦导致急剧的弹性、塑性变形,加上钛合金的热导性差,使得磨削区的温度很高。当温度超过临界值就会在零件表面形成烧伤,烧伤严重影响零件的金相组织、表面颜色、残余应力、硬度等,同时降低服役零件的疲劳寿命和应力腐蚀性能[1]。鉴于磨削烧伤的严重危害性,如何快速准确地识别烧伤一直是生产现场关注的重点。
目前磨削烧伤检验通常采用酸洗法,其本质是根据不同金相组织对酸蚀敏感性不同而呈现出的表面特征作出烧伤判断[2]。该方法会对被测零件的表面形成破坏,且检测效率低下,只能用于批量零件的抽样检查。2018年Stresstech曲轴磨削烧伤检测仪在沃尔沃正式投入使用。该检测仪相比传统检测方法实现了定量测量,有效提高了检测效率和准确率,并且真正实现了无损检测[3]。然而航空航天用钛合金材料的磁性微乎其微,基于磁弹法的磨削烧伤检测法不能有效适用。现阶段已有的烧伤识别方法大多基于人工检验,由于人工检验难以量化标准,容易造成误检、漏检等情况,这些局限性决定了人工检验无法高效地应用在磨削烧伤的识别上,因此急需一种准确快速的识别方法。
随着计算机技术的不断发展,人工智能技术也开始被应用于工业检测中。在磨削烧伤等工业缺陷检测领域,传统的机器视觉通过手工提取特征(颜色、面积、角度及形状等),然后采用基于规则的方法或者基于学习的分类器(SVM[4],决策[5],KNN[6]等)可以有效地对产品缺陷进行识别。相比传统基于颜色的烧伤检测手段,利用基于机器视觉的图像检测法具有高效率、高精度、重复性好和无损检测等优点。而基于手工提取的特征单一且不易扩展,不能适用于多任务。
在传统图像识别过程中,需要手工提取特征,费时费力。鉴于此,本文基于深度学习搭建深度卷积网络[7](convolution neural network, CNN)作为特征提取器,通过训练网络,让网络自动进行复杂的特征提取,但实际操作过程中,钛合金烧伤图像较难获得,带有标签的烧伤图像较少,导致不能充分训练深层网络模型,图像识别准确率较低。为了进一步提高识别准确率,本文提出一种基于迁移学习的钛合金烧伤图像识别方法,针对钛合金磨削烧伤数据集进行研究,利用以卷积神经网络为主的人工智能技术并利用迁移学习方法构造一个分类识别模型,根据钛合金烧伤图像,该网络可识别出无烧伤、轻度烧伤、中度烧伤、重度烧伤4种情况。
因钛合金磨削烧伤整体图像数据不足以及样本不均衡会导致样本少的种类分类性能很差,甚至无法预测。因此,欲采用基于深度学习的方法进行TC4钛合金磨削烧伤的图像识别,首先需获取足够多的烧伤图像。本文首先通过钛合金磨削试验进行试错以获取不同程度的烧伤试样,然后利用事先设计好的图像采集模块进行烧伤图像的采集,最后进行图像预处理以及标签的制定,完成烧伤数据集的制作。
通常情况下,通过控制其他工艺参数不变,单纯依靠增加切深的磨削试验方法获得烧伤数据。然而,该方法不易稳定获取不同程度的磨削烧伤。本文基于Trail - and-Error方法,采用控制工件进给速度不变,逐级改变切深与砂轮线速度的试验方法,寻找磨削烧伤的工艺参数阈值组合,以获取不同程度的磨削烧伤试样。
本文实验使用的试件材料为TC4钛合金,其几何尺寸为20mm×20mm×25mm。试件通过虎钳固定在工作台上。由于钛合金在磨削加工时极易粘附砂轮,容易导致砂轮变钝失效,实验中每磨削5次后对砂轮修整1次。同时,为更快获得烧伤表面,试验采用干磨,详细磨削试验条件见表1。
表1 磨削试验条件
首先按表2参数进行钛合金磨削试验。试验过程中保持工件进给速度vw为1.4 m/min,同时逐级改变砂轮线速度vs和磨削深度ap。为降低随机因素以及未知参数对烧伤的影响,每组磨削工艺参数重复进行3次,每次试验后将工件利用丙酮清洗,并采用体式显微镜进行观察。如果3次试验均获得相同程度的磨削烧伤,则认为该组磨削工艺参数为磨削烧伤阈值参数组合。由于磨削深度和砂轮线速度的增加在一定范围内会显著提高磨削温度,提高磨削烧伤产生的概率。因此,若3次试验均未出现烧伤,则适当提高砂轮线速度和磨削深度,反之则适当降低。图1分别为无烧伤、轻度烧伤、中度烧伤和重度烧伤下的显微图像。从图中可以看出,当出现轻度烧伤时,工件表面产生了条纹状的淡黄色烧伤;随着烧伤程度的加剧,工件表面纹理逐渐粗糙,颜色加深;当产生重度烧伤时,工件表面形成了蓝紫色烧伤(本刊黑白印刷,相关疑问请咨询作者)。
表2 磨削试验参数
图1 不同程度烧伤试样显微图像
基于烧伤试错的方法共进行了30组试验,其中确定有8组可以作为磨削烧伤阈值参数组合。在此基础上,分别对每组参数组合进行10次试验,共获得80件烧伤试样。
训练集由两部分组成:用于视觉对象识别软件研究的大型可视化数据库ImageNet[8]和钛合金磨削烧伤图像数据集。ImageNet是美国斯坦福的计算机科学家,模拟人类识别系统建立的图像识别数据库。它有1 400多万幅图片,其中有超过百万的图片有明确的类别标注。
钛合金磨削烧伤数据集是将上述的80件烧伤试样经过工业相机图像采集之后确定类别标签获得的,确定烧伤标签即完成钛合金磨削烧伤程度的分类。利用图像采集模块获得的钛合金磨削烧伤图像如图2所示,可以看到随着切深与砂轮线速度的提高,表面烧伤逐渐加剧。利用HXS-1000AK型显微硬度计测量烧伤工件表面硬度h,发现随着钛合金磨削烧伤程度的提高,工件表面硬度呈上升趋势。因此,本文借鉴GB/T17879—1999的齿轮磨削表面烧伤的分类标准,按照钛合金磨削烧伤色的深浅同时辅以烧伤表面显微硬度,将钛合金的磨削烧伤分为4类,分别为:无烧伤,用“0”表示;轻度烧伤,用“1”表示;中度烧伤,用“2”表示;重度烧伤,用“3”表示。各类烧伤对应的烧伤色分别为:银灰色、淡黄色、黄褐色、蓝紫色;对应的表面显微硬度范围为:h<345 HV、345 HV≤h<400 HV、400 HV≤h<450 HV、h≥450 HV。最后采用独热码(one-hot)对确定的烧伤标签进行编码。具体编码如表3所示。
表3 烧伤类型图像编码
图2 钛合金磨削烧伤图像
为加快模型的收敛速度,提高模型预测准确率与稳定性,需要对待检测图像进行一系列的预处理。经工业相机拍摄获得原始图像数据格式为Bayer,其后缀为.raw。在制作烧伤图像数据集时首先通过调用开源计算机视觉库OpenCV将原始图像改为后缀名为.png的RGB图像。RGB代表了红、绿、蓝3个颜色通道,每个通道的强度值在0~255范围内。因为获得的原始图像大小不一,所以对所有图像进行缩放至224×224的统一大小,最终获得各类烧伤图片共4 708张。表4是对钛合金磨削烧伤图像数据集的划分。
表4 钛合金磨削烧伤图像数据集划分
目前深度学习是最热门的人工智能技术之一。深度学习来源于人工神经网络,神经网络的每一层都将输入进行非线性变换。通过足够多的变换,即使非常复杂的特征也能够被提取[9-10]。因此,本文利用深度学习不需要人工设计非常复杂的特征提取器,来处理钛合金烧伤图像,而让神经网络本身去学习钛合金烧伤图像的特征。
因为本文中的烧伤图像均是基于磨削试错实验获得的,带有标签的烧伤图像较少,图像数量达不到深度学习所需要的数量级,导致不能充分训练深层网络模型,图像识别准确率较低。为了解决这个问题,本文引入了迁移学习方法。
迁移学习是一种将源域知识运用到目标域上的方法。通过学习不同域之间不变的特征表达,可以实现对不同域的数据进行分类。因此,迁移学习也被称为领域适应[11]。一般而言,迁移学习主要用于解决目标域数据集不足情况下的知识学习或实现源域向纵深域的知识转移[12]。所以,本文利用迁移学习方法将已训练好的网络模型,通过提取权重、偏置及超参数等运用到钛合金烧伤图像数据集上,实现烧伤图像分类识别的任务。
想要进行迁移学习,首先要选取一个具有强大特征提取能力的网络模型。目前,已经存在大量优秀的卷积神经网络,主要有GoogLeNet[13]和ResNet[14],其余网络基本上都是基于这些网络的改进。对于钛合金烧伤图像分类任务,主要难点在于图像自身复杂烧伤特征和图像之间细微的差异。因此,本文对比了这些网络,并认为GoogLeNet和ResNet50有强大的特征提取能力,能够处理钛合金烧伤图像。所以选取这两个代表性的网络进行迁移学习。
本文按照表3划分的数据集进行训练,将图像分为无烧伤、轻度烧伤、中度烧伤、重度烧伤4类。在测试时把4个类别的图片打乱在一起统一测试,一次性加载128张图片进行类别预测。
网络使用的优化器是Adam[15]。Adam中的默认参数为:learning rate是0.001;Beta1是0.9;Beta2是0.999;Epsilon一般取1×10-8,但是GoogLeNet网络的Epsilon取1.0,本文对比了1×10-8和1.0这两个值,发现结果并没有什么太大的差异,最终Epsilon值取GoogLeNet网络默认的1.0。网络选择使用最多的ReLU[16]来作为激活函数。
本文共训练了4个网络,分别是迁移学习预加载参数GoogLeNet网络、迁移学习预加载参数ResNet网络、随机初始化GoogLeNet网络和ResNet网络。在迁移学习训练时只对最后的特征识别网络层进行参数训练,其余的网络层均保留ImageNet数据集训练后的参数。在训练时均训练至10 000步。
本文模型所使用的硬件是:AMD Ryzen 7 3700X CPU、NVIDA GTX2080TI GPU显存11G。使用Tensorflow2.1 GPU版本作为深度学习框架进行训练和测试。数据预处理由python和OpenCV编写的脚本实现。
对于多类别分类任务,往往需要从多个角度对模型进行性能评估。为方便实验结果分析,本节将对准确率(accuracy)、精确率(precision)、召回率(recall)、F1-score进行简单介绍。
分类任务下预测结果与正确标签存在4种不同的组合,构成混淆矩阵,如表5和表6所示。根据混淆矩阵,进行如下定义:
1)准确率:所有预测正确样本占总样本的比例;
2)精确率:真正例占所有预测为正的比例;
3)召回率:真正例占正样本的比例;
4)F1-score:精确率和召回率的调和平均值。
表5 二分类问题的混淆矩阵
表6 性能指标公式
速率(speed rate)即每秒钟所能预测的图像帧数,单位fps。
本文使用准确率、F1-score和速率作为对模型的评价指标。
首先以准确率和速率来评价4个网络模型。本文分别训练了上文2.2中的4个网络,均训练至10 000步,并将参数文件保存用于测试,其结果如表7所示。
表7 4种网络模型准确率和速率对比
从表7可以明显看出经过迁移学习后的网络准确率比未迁移学习的网络准确率高了5个百分点左右。这一点充分说明了在钛合金磨削烧伤图片数据集较小时,使用迁移学习方法提高模型准确率的正确性。同时还可以看出GoogLeNet的准确率略高于ResNet,这一点说明了GoogLeNet在钛合金分类识别上对烧伤特征强大的提取和识别能力。而GoogLeNet识别速率高于ResNet则说明了GoogLeNet使用的网络参数较少,计算量相对于ResNet也要少一点,这些都体现了GoogLeNet网络良好性能。
接下来,再以不同烧伤程度图片的F1-score来对4个网络进行评价,其结果如图3所示。
图3 4种网络模型在F1-score上的对比
从图3中可以发现,预加载GoogLeNet网络除了在轻度烧伤的识别上略显不足,在其他类型上的烧伤均达到可观的识别性能,尤其对中度烧伤的识别,其F1-score达到了0.99。
轻度烧伤的F1-score明显偏低,分类效果最差。分析原因可能有两点,首先钛合金磨削轻度烧伤表面颜色、纹理不明显;其次由于无烧伤的钛合金表面出现加工振纹等噪声信息,从而使得轻度烧伤与无烧伤在图像表现上极为相似。
本文提出了一种基于迁移学习的钛合金烧伤图像识别方法,搭建了深层卷积网络模型。该模型以较高的准确率识别出了无烧伤、轻度烧伤、中度烧伤、重度烧伤钛合金图像。基于实验试错法获得了钛合金磨削烧伤试样,并通过图像采集获得了钛合金烧伤图像数据集。通过该数据集训练了迁移学习预加载参数GoogLeNet网络、迁移学习预加载参数ResNet网络、随机初始化GoogLeNet网络和ResNet网络。迁移学习预加载参数GoogLeNet网络模型更适合钛合金烧伤图像的分类识别,分类准确率达到了97.71%,在中度烧伤图片上F1-score更是达到了99%。使用该网络可以每秒钟预测约30张图片,为以后的在线检测磨削烧伤提供了强有力的支持。