什么是卷积神经网络?如何对卷积神经网络的磨粒图像进行识别?

文|小姜胡侃

编辑|小姜胡侃

引言

目前人工智能的快速发展推动了磨粒分析技术的智能化,卷积神经网络、半监督学习、迁移学习等方法已经被诸多学者研究使用。

本文在研究卷积神经网络的基础上以磨粒图像为研究对象,采用图像增广的方法扩充磨粒图像数据集,再结合迁移学习及Resnet34网络,调整超参数构建磨粒图像识别分类模型。

卷积神经网络

传统的图像分类技术是人工提取图像的某些特征再结合分类模型进行训练,这种方法过于繁琐。卷积神经网络为图像分类技术的发展提供了一种新的思路,简单来说,其方法类似于从感受器输入信号,由神经传导至大脑,大脑处理信息,最后输出结果。

一、卷积神经网络的主要结构

卷积神经网络与传统神经网络相比参数量大幅减少,层的功能与处理的形式也有所不同。卷积神经网络的基本结构由输入层、卷积层、激活层、池化层和全连接层五部分构成。如下图所示。

1.输入层

输入层是网络结构开始的地方,只接收输入分量或图像,在该层中无激活函数及偏置值,在数据输入之前必须进行预处理,将幅度归一化到同样的范围、各个分量间应相互独立、图像的大小统一等,在满足输入的要求后,数据从输入层进入网络。

2.卷积层

卷积层(特征图)是用来获取图像的关键特征并缩小图像的尺寸。通常位于输入层、激励层、池化层之后,一般采用n个卷积核对前一层图像数据进行卷积运算,提取局部特征生成n维卷积层。下图为图像卷积运算过程。

3.激活层

激活函数形成的矩阵或图像叫做激活层,它对线性输入做非线性映射,改变了原来像素值的大小,随之神经元的状态也发生了变化。激活层通常位于卷积层、池化层、全连接层之后。常用的激活函数如下图所示。

4.池化层

为解决随着网络层数的加深,图像数据增多且网络容易出现过拟合的问题,通过取最大值或平均值的方法对前一层矩阵(图像)作池化,压缩数据、减小权值和偏置值参数、增强泛化能力,去除冗余信息,提取最重要的特征。下图为示例的平均池化和最大池化的运算过程。

5.全连接层

全连接层通常位于网络结构的尾部,层数为一层或多层,一般是n 1的列向量结构,且输出网络预测的结果。下图为两层全连接层的结构。

二、卷积神经网络的工作过程

1.输入一张图像;

2.对该图像进行卷积运算;

3.设置激活函数;

4.对图像进行池化;

5.反复执行2、3、4;

6.采用全连接层进行整形和输出;

7.得到网络可能出现的各类输出概率;

8.计算网络预测误差,得到总误差平方和损失函数;

9.利用损失函数对权值求偏导、损失函数对偏置值求偏导,利用优化器更新权值矩阵(即卷积核)、更新偏置值;

10.返回(1),继续迭代,直到达到迭代总次数或终止条件,运算结束。

磨粒图像识别分类数据集

采集机械设备在运转过程中的磨损磨粒,能够在一定程度上实现机械设备在无拆卸的情况下进行磨损故障及磨损状态分析。

本文的研究对象为 NGW11 型行星齿轮箱,通过润滑油磨粒监测系统采集 NGW11 型行星齿轮箱在不同工况下的 磨损磨粒图像,在实时采集的过程中,可通过摄像头看到磨粒的流动不定时的暂停油液的流动,截取还未沉积的单颗磨粒作为此次分类的数据集。

本文根据不同的磨损机理对单颗磨粒进行分类整理,接着研究五种图像增广方法来丰富磨粒图像数据集。

一、磨粒图像数据集分类

两个相互接触的摩擦副发生相对运动后将造成材料的损失,这一过程称为磨损,行星齿轮箱长时间工作于高速重载荷、强冲击的环境下,各个轮齿之间的磨损机理不同,导致磨损的形式及严重程度也不同,从而将不同的磨损类型及磨损颗粒进行分类,大致分为以下:

1.粘着磨损:齿面有很多细微凸峰,轮齿相互啮合时凸峰之间会直接接触,破坏油膜后粘附在一起,当齿面接触点分离时会从接触面带离一部分材料,在高温情况下更容易发生这种材料粘附现象,这时依据磨损的严重程度,产生的大多是正常磨损磨粒及严重滑动磨损磨粒。如下图可见。

2.磨粒磨损:部分齿面有硬质凸体,在高载荷、高转速、多次摩擦下轮、齿相互啮合时硬质凸体对其接触面产生划擦或挤压,造成接触面材料剥离、擦伤等磨损,这时产生的磨粒大多是切削磨粒。

3.疲劳磨损:轮齿相互啮合时齿面在力的作用下相互滑动或滚动,导致齿面出现塑性变形,随着运行时间的增加,逐渐产生裂纹,进而形成点蚀或剥落,这时依据形状、纹理的不同,产生的磨粒有疲劳剥落、层状、球状磨粒。

4.腐蚀磨损:轮齿相互啮合时会受到高温、高湿度、空气的影响,而使材料发生化学反应而导致损耗,这时产生的磨粒依据颜色分为黑色与红色氧化物磨粒。

因本文设计开发的润滑油磨粒监测系统采集的是灰度图像,故在此不研究氧化物磨粒,又因在本文试验中球状磨粒出现的次数较少,故主要研究正常磨损、严重滑动磨损、切削、疲劳剥落及层状磨粒。下表展示了这五种磨粒的特点。

卷积神经网络在使用的过程中为达到高准确率需要大量的数据集,在此通过图像增广的方法来产生关键特征不变但形式不同的图像来扩展数据集的规模,从而有效的解决模型训练数据与测试样本的过拟合问题。

二、磨粒图像数据集增广

本文采用图像二值化变换、灰度变换、旋转变换三种方式对磨粒图像 进行数据集增广。

1.二值化变换

经过二值化变换处理后得到黑白图像,本文处理的过程为:设定阈值为 127,将磨粒图像的每个像素灰度值与127相比较,若小于127,则将该像素灰度值变 为 0,若大于等于 127,则该像素灰度值变成 255。

2.灰度变换

图像的灰度变换是在一定的变换关系下对图像中的每个像素进行处理。本文对于灰度变换的处理过程为:对磨粒图像的每个像素灰度值提高 45,也是一定程度上提升了磨粒图像的亮度。

3.旋转变换本文的旋转变换是在找到图像中心点的基础上,以该点为圆心,将图像顺时针及逆时针旋转 270 度。

卷积神经网络的选择与训练

卷积神经网络最常见的方法有卷积、池化等,深度学习框架是将卷积、池化、激活函数等方法封装为函数从而形成一种库或工具。在实际的工程或科学研究中,大多数学者都是根据自己数据集的特点在深度学习框架上进行二次开发。

目前,Pytorch、Keras、Caffe、TensorFlow 等框架的实现推动了计算机视觉、语言检测、声音识别等的智能发展。

一、pytorch深度学习框架

Pytorch 是以 Torch 为参考重新开发的开源神经网络框架,一经发布就快速扩展到很多学术领域,使用率持续上升,其使用的语言为 Python,而 Torch 使用 的语言为 Lua,Lua 的小众化也是阻碍 Torch 发展的一个主要原因。

Pytorch 采用 命令式编程,具有精简灵活的接口设计,对于搭建及调试网络提供了非常大的便捷,Pytorch 主要包含三大功能模块,如下图所示。

1.张量计算引擎

它的基本对象是 tensor,表现形式是一个 n 维数组,支持9种数据类型,每种数据类型既可在 CPU 上完成代码的实现,也支持 GPU 高速执行代码,GPU 对于复杂且训练次数多的程序节约了训练时间。

Pytorch提供专门的torch.Tensor类, 在这个类中,根据张量数据格式的不同和张量设备的需要,为张量元素的存储准 备了不同的区域,即生成各种类型的张量。

另外,在实际的训练过程中,可通过张量自带的方法或 torch 包中的函数对张量进行四则运算、线性变换、激活函数等。

2.自动求导机制

求导的过程在深度学习领域优化算法中是一个非常关键的步骤,对于复杂的模型来说,手动求导耗时长且准确率难以保证,Pytorch 可以根据函数的正向计算过程自动生成动态图,再根据动态图的创建过程一层一层的进行反向传播。

得出计算每一个节点的梯度值,若在计算的过程中出现分支,则将相同节点的梯度值相加,再继续传播。

在 Pytorch 中完成自动求导机制的核心类是 Function。它最大的特点是不管正向传播还是反向传播都在接收到输入后,则可以返回相对应的输出。

Pytorch 中还包含自动求导的包 torch.autograd , 它 定 义 一 些 自动 微 分 的 函 数 。

如torch.autograd.bakward 和 torch.autograd.grad,torch.autograd.bakward 常用于在已经得出损失函数后反向传播得到梯度torch.autograd.grad 常用于只需要求出当前张量的部分分支节点的梯度。

3.神经网络高级接口

Pytorch 中提供了一些模块或类来更灵活更简洁的创建和训练神经网络。分别有 Torch 模块(包含激活函数及张量的运算等)、torch.nn(包含搭建神经网络 的各种函数及模块。

如平方损失函数、卷积层、全连接层等)、torch.optim 模块 (包含优化程序,可在反向传播的时候更新权重参数)、torch.jit 模块(可以把构建好的动态图转换为静态图)等。

二、迁移学习

本文引入迁移学习的方法来帮助实现在磨粒数据集较少时也能快速的收敛且最大化的提取不同类型磨粒的显著特征,从而训练出一个理想的结果。

迁移学习是指将已经学习好的网络的参数迁移到新的网络中,新的网络就可以识别底层的一些通用特征,便于更快的学习新的高维特征。

  1. 磨粒图像识别分类的结构和参数

本节根据磨粒图像数据集的特点,在Windows10 Intel(R) Core(TM) i5-7400CPU 3GHz_4环境下采用Pytorch框架,提出一种基于迁移学习的ResNet34网络的磨粒图像识别分类方法。具体的流程如下:

(1)磨粒图像数据集划分

对采集到的单颗磨粒图像整理并增广后,采用留出法将磨粒图像数据集进行划分,包括训练集、验证集及测试集。其中训练集用来对搭建的网络模型进行训练,确定模型中的参数;验证集用来验证训练结果、调整参数并优化网络模型。

测试集用来测试网络的性能并展示图像分类的结果。测试集的图像采用试验过程中某一时刻经过图像分割后的磨粒图像。训练集、验证集及测试集数据比例近似为 8:2:1。

2.磨粒图像数据集预处理

因截取的单颗磨粒图像大小不一,在训练前将图像大小统一处理为224 224 3(高度 宽度 3 通道的 RGB)。

3.磨粒识别分类网络模型

首先使用 Pytorch 对 ResNet34 网络进行预训练,将经过预训练学习到的边缘、大小、形状等图像共有的底层特征迁移到磨粒图像识别分类的 ResNet34网络模型的残差网络层作为初始化参数。

再把提取到的特征矩阵作为输入对网络模型进行训练,不加载预训练模型的全连接层和 Softmax 层的权重,将模型最后一层全连接层的节点数改为磨粒数据集分类的类别数。

设置动量=0.5、学习率 lr=0.0001、网络训练次数 epochs=300、批尺寸batch_size=8 等超参数,这些参数的大小影响着网络收敛的速度及准确率的变化。

训练完后,输入验证集的磨粒图像数据对网络参数进行微调,提高模型的分类准确率。最后,输入测试集对模型进行检验,得出某一时刻不同类型的磨粒个数,进一步分析机械设备的磨损状态。磨粒识别分类网络模型训练流程如下图所示。

笔者观点

笔者认为通过该研究,我们可以更准确地识别不同类型的磨粒

进而分析机械设备的磨损程度和健康状态,为设备维护和故障预测提供重要参考。

这一研究对于推动磨粒分析技术的智能化发展具有重要意义,并在工业领域具有广阔的应用前景。

参考文献

[1] 张鄂.铁谱技术及其工业应用[M].西安:西安交通大学出版社,2001。

[2] 姜燕成.核电厂应急柴油发电机轴瓦磨损事故的处理[J].电力安全术,2020。

[3]陈果,左洪福.发动机磨损故障的集成神经网络融合诊断[J].南京航空航天大学学报,2004。

[4]李梦琪,赵凯,宋永欣,等.微流控芯片上油液磨粒电容检测[J].大连海事大学学报,2013。

[5]吕晓军,景敏卿,伍昕,等.基于图像传感器的在线铁谱仪的实验研究[J].摩擦学学报,2002。

展开阅读全文

页面更新:2024-04-29

标签:卷积   神经网络   张量   图像   灰度   磨损   函数   模型   数据   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top