APP下载

基于深度学习的风机塔筒焊缝外部缺陷检测

2021-07-07忍,孙

上海电机学院学报 2021年3期
关键词:算子灰度风机

吴 忍,孙 渊

(上海电机学院机械学院,上海201306)

风机塔筒就是风力发电机的塔杆,主要起支撑和吸收风电机组振动的作用,为确保风机发电量的稳定可靠,风机塔筒要将风力发电机组支撑于60~100 m的高空。风机塔筒的结构型式主要有圆筒式、桁架式等,按照材料类型又可分为纯钢式、混凝土式等。目前,钢制圆筒式塔架在国内外风电企业中应用最为广泛。

风机塔筒的焊缝主要包括单节塔筒的内外纵缝,两节塔筒组对后的内外环缝以及法兰盘和筒节的拼接焊缝。目前我国的塔筒生产中主要采用风电塔筒大型焊机对塔筒进行自动化焊接,但是对于塔筒焊缝的无损检测依然是完全依赖人工,检测内容包括外部和内部缺陷检测。对于外部缺陷,大多采用磁粉检测(MT)、渗透检测(PT)和涡流检测(ET),但是由于风机塔筒体积庞大且焊缝分布不平,操作起来十分不便,效率不高[1]。随着计算机技术和图像处理技术的飞速发展,在目标检测领域中,先后出现了数字图像处理技术、机器学习和深度学习3种常用的检测方法。数字图像处理技术也就是传统图像处理技术,采集图像时易受外界环境的噪声干扰,泛化能力不强。机器学习在一定程度上能够抵抗外界噪声干扰,但是机器学习模型的参数设置和目标特征点都要人为设定,过分依赖经验,因此精确度和效率无法得到保障。深度学习的出现解决了以上两种目标检测方法存在的问题,以卷积神经网络(Convolution Neural Network,CNN)为基础,出现了R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD等多种目标检测算法,不需要人为地进行特征提取。深度学习算法可自动进行特征提取,对目标进行检测和分类,同时具有很高的检测效率和准确性。

本文提出一种基于传统图像处理和CNN的风机塔筒焊缝缺陷检测算法。该算法首先使用传统图像处理算法将工业相机采集到的焊缝图像进行灰度化。然后对焊缝灰度图像进行增强处理,改善图像的视觉效果,清晰化图像,便于计算机对图像进行进一步处理分析。最后将图像作为训练好的CNN的输入,通过CNN判断焊缝外部是否存在缺陷。

1 传统图像处理

焊缝图像的质量将会直接影响缺陷检测的准确度。经过有效传统处理的图像,具有更好的缺陷特征和更高的识别度。本文将对原始焊缝图像进行灰度化和图像增强处理。

1.1 图像灰度化

目前彩色图片颜色空间包括RGB、CMY(K)、HSV和CIE-XYZ颜色空间,主流的颜色空间是RGB三通道彩色图[2]。RGB图像是以三维矩阵的方式存储,训练CNN时,需要对RGB 3种分量进行处理,将会增加网络训练的时间和难度,而且颜色本身容易受到光照等因素的干扰,很难提供准确的关键信息。因此,需要将采集到的彩色图片灰度化,降低图像的矩阵维数。

图像经过灰度化之后,颜色信息丢失,但图像的梯度信息仍然能保留下来。在焊缝的缺陷检测中,为了识别出缺陷,最关键的因素是图像的梯度,也就是图像的边缘信息。目前图像灰度化的方法包括分量法、最大值法、平均值法和加权平均法。

分量法是指将RGB图像中三分量的亮度值分别作为3个灰度图像的灰度值,根据后续的实际需求选取其中1个灰度值。最大值法是将RGB图像中三分量亮度最大的亮度值作为灰度图像的灰度值。平均值法是以RGB图像三分量亮度值的平均值作为灰度图像的灰度值。加权平均法是将三分量以不同的权值进行加权平均[3]。通常情况下,人眼对绿色最敏感,而对蓝色最不敏感,对RGB图像的三分量加权平均得到灰度图像的灰度值为

式中:i,j为图像中某一像素点在图像中的位置坐标[4];R(i,j)为该像素点的红色度值;G(i,j)为该像素点的绿色度值;B(i,j)为该像素点的蓝色度值。

本文采用加权平均法对焊缝图像进行灰度化,焊缝原图像以及灰度化后的灰度图像如图1、图2所示。

图1 焊缝原图

图2 焊缝灰度图像

1.2 图像增强

通过图像增强,图像所含信息的质量和辨识度会得到有效提升,对于实验观察或者进一步的分析处理都十分有利。图像的信息主要是通过某些特征传达出来的,比如图像的边缘、轮廓以及对比度等。通过对这些图像特征的突出和增强,可更好地显示图像的有效信息,提高图像的使用价值。图像增强按照作用域的不同可分为空域内处理和频域内处理。空域内处理是直接对图像进行处理;频域内处理是在图像的某个变换域内,对图像的变换系数进行运算,再通过逆变换获得图像的增强效果[5]。本文采用空域内的图像锐化方法对焊缝灰度图像进行增强处理。

图像锐化主要是指边缘锐化,突出图像中的边缘或纹理,使图像中的各种边界更明显。从数学的角度来看,锐化前的图像相当于是被“积分”了的图像,为了达到锐化的效果,要运用“微分”运算将被“积分”了的图像还原。在图像锐化的过程中,需要运用到各种边缘检测算子,比如Roberts算子、Sobel算子、Prewitt算子和Laplace算子等,其中前3种算子为一阶边缘算子,也属于微分算子,Laplace算子通常作为二阶边缘算子[6]。

对于离散的图像f(x,y),Roberts算子的灰度计算公式为

式中:Ro(i,j)为该像素点增强后的灰度值;f(i,j)、f(i+1,j+1)、f(i,j+1)、f(i+1,j)分 别为该像素点本身、右下方、右方以及正下方像素点的灰度值。

Roberts算子由两个2阶的模板组成[5]:

Sobel算子为两个3×3矩阵[5]

这两个算子分别代表图像的水平和垂直梯度。

Prewitt算子大小与Sobel相同,均为3×3的算子[5]

Laplace算子是一种不依赖于边缘方向的二阶微分算子,是标量而不是矢量。Laplace算子具有旋转不变的性质,在图像处理中经常用来提取图像的边缘,其表达式为

数字图像的近似公式为[5]

在Matlab中基于以上4种算子对焊缝灰度图像锐化后的效果如图3所示。

由图3可见,经过锐化后的焊缝图像中焊缝从背景中凸显出来,更加清晰,且基于Laplace算子锐化后的图像相比其他3种算子的锐化效果更加优秀,不仅焊缝边缘准确清晰,且焊缝内的特征也能有效体现出来。因此,本文选择Laplace算子对焊缝灰度图像进行锐化处理。

图3 图像增强效果

2 CNN结构

CNN和普通的神经网络十分相似,都由大量的神经元组成。CNN是一种前馈神经网络,其神经元可以响应一部分覆盖范围内的周围单元,且CNN的默认输入都是图像,一个CNN包括很多层,它们的输入是三维的,输出也是三维的。CNN通常包含输入层、卷积层、池化层、全连接层和输出层,有些应用于分类问题的CNN还具有Softmax层[7]。本文采用的CNN结构如图4所示。

图4 CNN结构

(1)输入层。输入层是整个神经网络的输入,在进行图像处理的CNN中,输入层代表着输入图像的像素矩阵。三维矩阵可以代表一张图片,三维矩阵的长和宽代表图像的大小,三维矩阵的深度代表图像的色彩深度[8]。本文输入层的图像均为灰度图像,故深度为1。从输入层开始,CNN通过不同的神经网络结构将上一层的三维矩阵转化为下一层的三维矩阵,直至最后的全连接层。

(2)卷积层。卷积层是CNN中最重要的部分,和传统的全连接层不同,卷积层每个节点上的输入只是上一层神经网络的一小块。卷积层的目标就是通过对神经网络中的每一个小块进行深入分析,进而得到图像抽象程度更高的特征,卷积层会增加原始节点的深度。

卷积层由很多个特征映射组成,每一个特征映射都包含一个卷积核,不同的特征映射所包含的卷积核也是不同的,其所能抽取的特征类型也不同。卷积核大小要根据图像的大小来确定,卷积核过大,会产生过拟合,太小则很难完全提取图像的有效特征[9]。

经过卷积后图像的WF(宽)和HF(高)分别为

式中:W、H为原图像的宽和高;F为卷积核的大小;S为步长;P为边界填充大小[10]。

卷积层中需要训练的参数数量只与卷积核的大小和数量有关,同时,卷积层中同一个特征映射的所有神经元具有相同的卷积核,被称为权值共享[11],这样就可降低需要训练的参数个数和训练难度。

(3)池化层。池化层能在保留卷积层有用数据的同时,降低数据的维度,进而减少CNN的计算量,提高训练速度。即池化层神经网络不会减少矩阵的深度,但它可以缩小矩阵的大小[12]。经过池化操作,可将分辨率较高的图片变为分辨率较低的图片,进一步缩小最后全连接层中的节点个数。同时,池化操作还可防止过度拟合[13]。

(4)全连接层。经过多次卷积层和池化层处理之后,输入的图像信息已被抽象成信息含量更高的特征。随着卷积层和池化层层数的增加,特征映射的数量越来越多,每一个特征映射具有的神经元数量越来越少,直至神经元的数量减少为1[14]。当每个特征平面都只有一个神经元的时候,网络的连接变成了全连接。全连接层的每个节点都与上一层的所有节点相连,汇总提取的特征。

(5)输出层。输出层的神经元个数和网络具体的任务有关,对于本文的焊缝识别来说,输出层的个数为需要检测的焊缝情况种类。

3 CNN的训练和实验

本文采用7层CNN结构,包括3层卷积层、3层池化层和1层全连接层。基于塔筒制造厂采集的300张焊缝图片,由于单张图片过大,而且单张图片既包含焊缝缺陷位置,也包含焊缝正常位置,通过图像分割将300张照片扩展为正常焊缝图片500张,焊缝成形差和焊缝裂纹图片各200张。由于条件的限制,现阶段采集到的样本图片数量较少,将会影响到网络的训练效果。本文对图像添加噪声、变换缺陷所处位置等方法,将正常图片数量扩充至1 200张,其中1 000张用于网络训练,200张用于网络测试。将焊缝成形差的图片和焊缝裂纹的图片分别扩充至600张,各自的500张用于网络训练,100张作为测试集用于网络测试。3种训练样本的图片如图5所示。

图5 焊缝缺陷样本

本文的数据集训练在Win10系统下进行,处理 器 为Intel(R)Core(TM)i7-8550U,显 卡 为GTX 1050,内存32 GB,CNN的训练和测试都是基于Matlab中的Deep Learn Toolbox-master。

CNN在训练过程中对网络的学习率、Batch和迭代次数等进行调试,网络参数的调试对于网络测试的准确率和效率至关重要。学习率是指在优化算法中更新网络权重的幅度大小,学习率可以恒定,也可基于动量或是自适用。过大的学习率可能会导致网络训练永远无法达到要求,过小的学习率则会使网络训练效率变慢,有时还会出现局部最优的情况。Batch是指每次输入CNN的图片数量。在可控的情况下,Batch值的选择越大越好,值越大,模型下降的方向越准,震荡越小,但过大的Batch则会使收敛精度陷入不同的局部值。迭代次数是指模型训练过程中遍历数据集的次数,其会直接影响模型的分类精度[15]。根据CNN的训练情况,最终确定学习率为0.2,Batch值为60,迭代次数为6 000。将测试集图片输入训练好的CNN,测试结果准确率如表1所示。

表1 测试结果

根据测试结果可以看出,本文的CNN对于检测识别风机塔筒焊缝是否存在焊缝成形差和裂纹缺陷具有很高的识别准确率。

4 结 语

目前风机塔筒的焊缝外部缺陷检测主要是通过人工检测,本文提出的基于CNN的检测方法具有耗时短、鲁棒性高的特点,经过实验测试也具有很高的检测准确率。在之后的研究中,需要进一步提高学习样本的数量和样本的多样化,增强样本的采集质量,优化神经网络的结构和参数,从而提高网络的检测准确率。

猜你喜欢

算子灰度风机
与由分数阶Laplace算子生成的热半群相关的微分变换算子的有界性
采用改进导重法的拓扑结构灰度单元过滤技术
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
基于改进的灰色-马尔科夫模型在风机沉降中的应用
Domestication or Foreignization:A Cultural Choice
Arduino小车巡线程序的灰度阈值优化方案
汽轮机轴封风机疏水管线改造
QK空间上的叠加算子
某热电厂风机电机节能技术改造
TS3000系统防喘振控制在 AV80-14风机中的应用