【《基于图片识别神经网络的抽油烟机工况诊断方法分析》8000字】_第1页
【《基于图片识别神经网络的抽油烟机工况诊断方法分析》8000字】_第2页
【《基于图片识别神经网络的抽油烟机工况诊断方法分析》8000字】_第3页
【《基于图片识别神经网络的抽油烟机工况诊断方法分析》8000字】_第4页
【《基于图片识别神经网络的抽油烟机工况诊断方法分析》8000字】_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-4-基于图片识别神经网络的抽油烟机工况诊断方法分析目录TOC\o"1-3"\h\u31248基于图片识别神经网络的抽油烟机工况诊断方法分析 1323491.1示功图数据集制作和预处理 142771.2基于AlexNet神经网络示功图识别方法 3236541.2.1AlexNet模型介绍 440591.2.2AlexNet识别示功图模型搭建 555881.2.3AlexNet识别示功图实验结果 6140981.3基于GoogLeNet神经网络示功图识别方法 7156881.1.1Inception结构介绍 788341.1.2GoogLeNet识别示功图模型搭建 8108051.1.3GoogLeNet识别示功图实验结果 9205261.4在嵌入式环境下的神经网络优化 10157371.4.1深度可分离卷积 10216671.4.2模型压缩 13153501.5实验结果对比和分析 15近年来,随着油田智能化和信息化的建设,大量的生产数据得到采集和研究。如何利用这些数据更好地为油田现代化建设提供动力、发掘数据价值成为了研究人员关注的重点。示功图的数据由载荷和位移坐标构成,在二维图像上不同的工况会显示出不同的图形。示功图的识别可以看作是一个图像分类问题,利用深度学习等技术,解决示功图识别的问题具有很好的应用前景。随着深度学习的发展,深度学习在图像识别等领域已经超过了人类的认知能力。ImageNet[27]大规模视觉识别比赛(ILSVRC)是近年来机器视觉领域的重大比赛,其2014年使用的数据集包含1000个类别的物体,大约120万张图片用于模型的训练。某个方法在识别图片时,如果图片的真实类别不在方法认为的最有可能的5个类别内,则认为识别错误。人类的识别错误率大概为5.1%,ResNet[28]深度学习网络的错误率为1.57%。实践发现,随着深度卷积神经网络深度和宽度的不断增加,可能会导致模型收敛变慢,容易出现梯度弥散[29]等问题,增加了训练难度;同时参数的增加加大了计算负担,让模型难以应用。考虑到模型深度以及示功图数据本身的复杂程度有限,我们分别使用了AlexNet和GoogLeNet两种经典的神经网络对示功图的图片数据进行分类。并针对嵌入式环境下对相关的模型进行了优化改进,使用深度可分离卷积优化了网络结构,使用量化的方法压缩了模型,并对比了实验结果。1.1示功图数据集制作和预处理在本文中使用的抽油机示功图来自油田实际工作生产的抽油机载荷和位移数据,由示功仪采集得到。示功仪采集的数据为位移D和载荷L的二维向量((d1,l1),(d2,l2),...,(dn-1,ln-1),(dn,ln)),通过Python的matplotlib工具包对数据进行批量化的处理,隐藏了坐标轴等信息,实现示功图的可视化。如下图1.1,左边为示功图原始数据,右边为去掉坐标轴后,传入深度学习网络的图像。图1.1单个示功图图片数据制作前后Fig.1.1Beforeandaftermakingsingleindicatordiagrampicturedata在批量转化成图片后,将所有的图片按照各种形状特征划分成了正常、吸入部分漏失、排出部分漏失、供液不足、抽油杆断脱、油井出砂等工况。每种工况的数据均有三百多张图片,并存放在不同的文件夹中。下表1.1为本次训练使用到的数据集的类型、数量、目录以及onehot编码。表1.1示功图数据集Table1.1Indicatordiagramdataset故障类型示功图数量目录onehot编码正常338/data/zc[1,0,0,0,0,0,0,0,0]吸入部分漏失320/data/xrbfls[0,1,0,0,0,0,0,0,0]排除部分漏失320/data/pcbfls[0,0,1,0,0,0,0,0,0]供液不足300/data/gybz[0,0,0,1,0,0,0,0,0]抽油杆断脱320/data/tl[0,0,0,0,1,0,0,0,0]油井出砂320/data/cs[0,0,0,0,0,1,0,0,0]油稠320/data/yc[0,0,0,0,0,0,1,0,0]上碰泵320/data/spb[0,0,0,0,0,0,0,1,0]下碰泵320/data/xpb[0,0,0,0,0,0,0,0,1]各个工况的图片数据按照各自的类别,存放在训练根目录下的data文件夹中。载入数据集具体操作包括:创建图片类别和标签字典,对于每个子目录,使用子目录名作为编码字典的键,当前编码字典的长度作为字典的值;获取编码字典后,遍历根目录下的子目录中的图片,创建图片路径和标签表,根据图片的目录给每个图片路径一个标签;创建数据集对象,根据传入的参数不同,抽取不同的比例,得到训练集、测试集和验证集,根据需要获取对应的数据集对象;对数据集对象进行预处理,转换成张量,这样数据集的制作和预处理就算完成了。下图1.2为数据集制作和预处理的流程图。图1.2数据集制作和预处理流程Fig.1.2Datasetproductionandpreprocessingprocess1.2基于AlexNet神经网络示功图识别方法卷积神经网络的特点是:卷积核提取输入特征图局部信息,并且同一卷积层卷积核的数值共享。由于这一特点,卷积神经网络在减少模型参数方面有了很大的进步,这也使得这种结构的模型无论是计算还是训练的速度都大大加快。卷积神经网络结构并不复杂,由接受数据传入的输入层、提取数据特征的若干个卷积层和池化层、以及输出最后特征信息的输出层等结构组成。在这些结构里头,卷积层和全连接层的内部参数可以迭代优化,具有学习的能力。在ImageNet数据集上,对于一个待验证的图片,AlexNet模型的预测得到的前五大种类结果的错误率为17.0%,远远高于当年的第二名26.2%,此后人们开始关注深度学习在各个领域的作用。AlexNet的贡献在于提出了深度卷积神经网络的概念,即增加卷积层的个数,从而增加拟合能力;选择了ReLU函数用于层与层之间的信息传输,使得分类预测事物的非线性表达能力得到了增加,降低了计算的难度;充分利用GPU的并行计算能力,使用两块GPU完成了模型的训练;使用池化层进行下采样,压缩输出数据,减少冗余信息;提出了Dropout层,用于减少过拟合带来的危害,增加模型的泛化能力。1.2.1AlexNet模型介绍AlexNet模型结构如下图1.3所示,可以看出其由5个卷积层,3个全连接层构成。根据统计,在1000个类别的分类任务下的AlexNet模型含有超过65万个人工神经单元,同时具有的参数也达到了6千万多个。图1.3AlexNet模型结构Fig.1.3Alexnetmodelstructure输入层用于接收输入的数据,比如图片、待处理分析的数据等,通常是一维或者多维的输入数据。例如M×N像素大小的RGB格式的图片信息,则一幅图像包括三个维度信息,分别是R分量、G分量和B分量,那么输入层的大小要求为M×N×3。对于8位分辨率的图像而言,其数值大小在0~255之间。在传入输入层之前需要对图像的大小标准化,对图像的数值归一化。卷积层的结果由卷积核与卷积层的输入数据滑动点积得到,卷积核按照维度划分,可以分成一维卷积核、二维卷积核和高维卷积核等,设计模型时采用的维数一般与被检测对象维数相同,在图像处理中,常常使用二维卷积核进行特征提取。卷积核提取输入特征图局部信息,对于感受野以外的信息,卷积核感知会受到限制,但卷积核进行堆叠后的感受野也会变大[30]。同一卷积层卷积核的数值共享,这大大减少了参数量,从而缩减了计算时间。卷积层的主要运算为加权求和运算,这种运算可以利用GPU的并行计算能力进行优化。对于二维图像数据f(m,n)和二维卷积核g(m,n),假设图片和卷积核在有效窗口之外的值为0,二维卷积的前向运算过程为:(1.1)在图像处理中,输入信息往往具有多个通道,比如一张彩色图片就具有三个通道。单个卷积核在处理多个通道的数据时,会将每个通道的信息卷积后再相加,得到最后的输出信息。卷积层往往还具有多个卷积核,同一个卷积核的输出结果会成为下一层的输入的某个通道,这些卷积核的计算结果会拼接成当前层输出。在卷积层中,如果有s个卷积核,那么该层输出特征图的维数为s。经过卷积层处理后的特征图,其大小有可能被压缩,具体的压缩程度与卷积核点乘后滑动的步长以及卷积核的大小有关。对于大小为j×j卷积的卷积核,如果用它来处理填充大小为m×m的图像,经过滑动指定的步长b点乘得到特征图,得到的特征图大小为oc×oc,其中:(1.2)在卷积层后,一般连接了池化层,进行进一步的特征降维,提高模型的健壮性,降低模型参与计算的参数数量。池化方法主要包括两种,最常用的是最大值池化,还有一种为平均池化。对于最大池化层,它的计算公式如下:(1.3)对于m×m的图像,如果经过了步长为b的k×k池化处理,那么它的输出为ok×ok,其中ok的大小为:(1.4)1.2.2AlexNet识别示功图模型搭建使用AlexNet神经网络模型训练示功图时,主要步骤包括载入数据集,搭建AlexNet网络和迭代训练,并进行可视化。构建网络时,对AlexNet网络的整体结构保持不变。由于这里需要分类类别是9种示功图,远远少于AlexNet当初设计时的1000种类别。所以将对倒数三层的Dense层的节点个数从原来的2048、2048、1000改成了1024、128、9。达到减少参数,提高训练和计算速度的效果。下图1.4为本次设计使用的AlexNet模型各层的特征图。图1.4基于AlexNet的示功图识别的各层特征图Fig.1.4EachlayerofcharacteristicdiagramofindicatordiagramrecognitionbasedonAlexNet在训练时,采用的是批量随机梯度下降方法,即遍历完全部的数据集后,计算一次损失函数,并更新梯度。使用的学习率为0.001,使用交叉熵损失函数计算损失值。每次都对一次输入batch组数据进行训练,通过卷积后将会将特征图压缩,同时通道增加,最后的特征图会通过特定的功能层改变成一维向量,转换成目标种类的概率信息,与one-hot编码后的实际结果进行比较,根据损失函数计算网络中的各个神经元的梯度,然后根据梯度更新网络中的参数。1.2.3AlexNet识别示功图实验结果本次分类一共九个示功图类别,训练集图片一共1737张,测试集图片验证集的图片各为579张,在训练集上的准确度为99.5%。在测试集上的准确度为98.9%,最后的验证集的准确率为98.5%。生成的模型共有579.8万个参数,模型的大小为6.14MB,训练了15个循环,训练时长为3分钟左右。下图1.5左边为基于AlexNet的示功图诊断模型准确率随epoch变化曲线图,右边为loss变化曲线图。图1.5基于AlexNet的示功图诊断模型准确率和loss随epoch变化曲线图Fig.1.5ThecurveofaccuracyandlosswithepochofindicatordiagramdiagnosismodelbasedonAlexNet1.3基于GoogLeNet神经网络示功图识别方法GoogLeNetv1网络由谷歌公司的ChristianSzegedy、YangqingJia等人研究并发表,这一研究成果在2014年的ImageNet分类任务中取得了第一名。之后谷歌公司基于GoogLeNetv1的网络结构,在2015年搭建了GoogLeNetv2网络结构,提出了BN层对模型结构归一化,提升了训练速度[31];在2016年提出了GoogLeNetv3,对卷积进行了分解,使得卷积运算的计算复杂度降低,并拓展了模块中的滤波器[32]。考虑到示功图图像本身的复杂程度有限,这里我们使用GoogLeNetv1对示功图的种类进行分类。GoogLeNet的特点是使用了Inception结构堆叠,能够更加全面地提取图片特征;同时其大量采用了1×1的卷积核,降低了中间特征图的维度,从而降低了模型的参数数量;并且使用了辅助分类器用于减少梯度弥散,激励网络的梯度的反向传播,辅助器在测试时会被丢弃。1.1.1Inception结构介绍Inception结构不同于传统的网络串联结构,它是一种多种卷积、池化并联的结构,进入Inception的特征图会被分到四个分支,分别处理后融合得到最后的特征图信息。Inception结构包含了三种卷积核和一种池化层,它们分别是:1×1、3×3、5×5的卷积核以及3×3的最大池化。同时为了降低输入维度,加快网络的计算进程,在3×3、5×5的卷积层前以及3×3最大池化层后有个1×1的卷积操作。下图1.6是Inception结构的示意图。图1.6Inception结构Fig.1.6Inceptionstructure多尺度的信息提取更符合人眼的实际识别过程,保证了距离观测点不同位置的信息都能够被有效地感知并且处理。GoogLeNet神经网络的层数为22层,由于Inception结构的灵活性,在使得ILSVRC中的GoogLeNet参数量只有AlexNet的1/12。1.1.2GoogLeNet识别示功图模型搭建在搭建GoogLeNet模型时,需要根据Inception结构定义一个类。类中创建四个分支,其中,分支一为1×1的卷积核,用于直接降低特征图维度;分支二是1×1和3×3的两个卷积的顺序结构;分支三是一个顺序结构包括1×1和5×5的两个卷积操作;分支四由3×3的池化层和1×1卷积操作构成。这里面所有的卷积后的激活函数为ReLU,均采用填充的策略处理特征图。而该类输出是将四个分支的输出进行组合后的特征图。下表为GoogLeNet的结构表。表1.2基于GoogLeNet的示功图诊断模型结构表Table1.2StructuretableofindicatordiagramdiagnosismodelbasedonGoogLeNet类型核大小/步长输出大小参数个数convolution7×7/2112×112×649472maxpool3×3/256×56×64convolution1×1/156×56×644160convolution3×3/156×56×192110784maxpool3×3/228×28×1920inception(3a)28×28×256163696inception(3b)28×28×480388736maxpool3×3/214×14×4800inception(4a)14×14×512376176inception(4b)14×14×512449160inception(4c)14×14×512510104inception(4d)14×14×528605376inception(4e)14×14×832868352maxpool3×3/27×7×8320inception(5a)7×7×8321043456inception(5b)7×7×10241444080avgpool7×7/11×1×10240dropout(40%)10240InceptionAux192173065InceptionAux292175113dense99225softmax90同时根据GoogLeNet的设计要求,需要在网络中间设计辅助分类器,用于防止梯度弥散现象的发生。辅助分类器本质也是由神经网络层构成的网络顺序结构,依次是5×5的平均池化层,池化后的特征图在卷积核为1×1的卷积层进行特征提取,然后通过两个全连接层转化成(1024,1)和(9,1)的特征向量,最后经过Softmax层转化成目标类别的概率。由于训练时辅助分类器直接和输出关联,在梯度反向传播时,直接会在辅助分类器这里引入梯度。构建了Inception和辅助分类器后,便可以按照GoogLeNet的结构构建神经网络了。这里由于我们是9分类问题,在定义输出类别时,需要将类别变量设置为9。同时训练时,需要开启辅助分类器,在测试和验证时关闭。在搭建模型后,我们使用和AlexNet模型一样的数据集,通过相同的数据预处理手段,传入GoogLeNet进行训练测试。1.1.3GoogLeNet识别示功图实验结果经过15轮的训练后,数据在训练集上的识别准确率为99.9%,在测试集上的准确率为99.1%,训练时长为245s,在验证集上的准确率为98.8%。在本数据集上GoogLeNet识别效果略优于AlexNet模型,下图1.7为实验结果。图1.7基于GoogLeNet的示功图诊断模型准确率和loss随epoch变化曲线图Fig.1.7ThecurveofaccuracyandlosswithepochofindicatordiagramdiagnosismodelbasedonGoogLeNet1.4在嵌入式环境下的神经网络优化对于嵌入式平台部署神经网络而言,在保证识别精度的基础上,提高识别效率是人们普遍关心的问题。嵌入式平台的计算资源有限,对神经网络模型的大小比较敏感,参数太多的神经网络可能导致嵌入式平台程序出错,内存溢出甚至死机等严重后果。深度太深和参数过多也可能影响诊断的实时性,不符合现实的生产生活中对诊断时效性的要求[33]。未来的模型优化方向主要包括采用更加轻量化可靠的网络结构和对模型进行压缩处理。1.4.1深度可分离卷积近年来,在ImageNet等竞赛上,成绩好的模型往往采用了更深的神经网络层数和更多的参数,这对算力提出了更高的要求。而嵌入式终端设备上没有能够与GPU媲美的算力,强行部署则面临延时过高、响应缓慢的问题。可行的方法是将具有强大算力的GPU运算服务部署在某个网络节点上,而嵌入式设备负责采集信息,并通过网络传递给网络节点中的运算服务器,运算服务器在接收到信息后,调用模型进行分析,并将结果返回。这样做的好处是节约了成本,让网络边缘的设备也能够拓展神经网络的功能,缺点是会受到了网络的限制,同时也面临了网络中的安全风险。为了兼顾了准确度和模型复杂度,谷歌在2017年提出了MobileNetv1[34]。MobileNetv1的创新点在于,采用了一种深度可分离卷积的方法,能够提取特征的同时,极大地缩短运算过程,降低得到结果所需要的时间。对于一个标准卷积,假设输入的特征图I为DI×DI×M,其中DI是特征图I的长和宽,M是输入特征图I的通道数量;卷积核C的大小为DK×DK×N,其中DK表示卷积核的二维长和宽,N表示卷积核的个数;输出的特征图O为DO×DO×N,DO是其长和宽,这里输出的特征图的个数会和采用的卷积核的个数一致。下图1.8为标准卷积核。图1.8标准卷积核Fig.1.8StandardConvolutionFilters进行一次普通卷积所需要的计算量Cs为:(1.5)使用深度可分离卷积拆解普通的卷积核,能够减少运算量。这个过程中,首先先进行深度卷积操作,输入特征图的每个通道与DK×DK×1的卷积核进行滑动点乘,这里的卷积核具有M个通道,深度卷积核结构如下图1.9所示。图1.9深度卷积核Fig.1.9DepthwiseConvolutionalFilters使用这种卷积方式的计算次数为:(1.6)输出的特征图会具有M个通道,大小为DO×DO并且相互独立。对得到的特征信息再使用点卷积进行处理。点卷积的卷积核为1×1×M大小,采用N个点卷积进行操作,输出的结果通道个数为N。点卷积结构如下图1.10所示。图1.10点卷积核Fig.1.10PointwiseConvolutionFilters可以计算,完成点卷积一次需要完成的计算次数为:(1.7)所以对于深度可分离卷积,进行一次需要完成的计算次数为:(1.8)相较于标准卷积,深度可分离卷积的计算优势是巨大的,可以计算:(1.9)可以看出对于3×3的卷积核而言,深度可分离卷积能够减少8到9倍的计算量[35]。这里使用深度可分离卷积优化AlexNet对图片进行分类,在不改变原来的网络结构的基础上,使用深度可分离卷积替换了标准卷积。发现参数量大大降低了,原来示功图图片分类AlexNet诊断网络的参数接近579.8万,采用深度可分离卷积优化的AlexNet神经网络参数为75.7万个,参数仅为原来的1/7,计算量也得到了大幅的减少。训练50个循环后,实测在验证集上分类的准确度仅仅降低了不到2%,为97.3%。下图1.11为基于DSC-AlexNet的示功图诊断模型准确率和loss随epoch变化曲线图。图1.11基于DSC-AlexNet的示功图诊断模型准确率和loss随epoch变化曲线图Fig.1.11ThecurveofaccuracyandlosswithepochofindicatordiagramdiagnosismodelbasedonDSC-AlexNet1.4.2模型压缩压缩模型是指对模型精度能够接收的范围内,对模型的参数和模型的大小进行一定的压缩,包括剪枝和量化等操作,从而降低分类预测时的计算量和模型数据存储量,从而提高分类效率。剪枝操作指的是删除一些权重很小的神经网络枝节,从而减少神经网络的计算量。在剪枝之前需要对神经网络的各个部分的冗余性进行判断,有针对性地减少神经网络中的不重要的计算参数。以剪除卷积核为例,如下图1.12剪除卷积核,那么计算量将减少nihiwik2次。同时接下来一层的特征图xi+1也将被剪除,该层的计算量将减少ni+2hiwik2,可见剪枝能够使得计算得到了精简[36]。图1.12剪除卷积核Fig.1.12Pruningconvolutionkernel模型量化是指将连续性的浮点型卷积核权重数据用有限个离散值代替,它以更小精度的数据类型代替浮点类型数据,从而减少模型存储量,降低计算时的内存消耗,提高前向传播时的数据传输速率。量化算法作为一种常用的数据压缩方法,在许多领域都有使用。通信领域常使用码本量化,码本是一种映射关系,码本量化指的是根据特定的量化码本,将需要量化的数据通过码本映射成为相应的数值。神经网络中常见的量化方法是使用定点数量化,同时目前很多研究针对定点数量化进行,如Han等提出的深度压缩方法:通过裁剪、哈夫曼编码量化的方式能够降低神经网络35到45倍的存储[37]。蔡瑞初等人采用动态定点量化方法,降低了神经网络的95.4%存储空间,同时精度仅仅损失了0.3%[38],能够有效地压缩卷积神经网络。一方面压缩后的神经网络需要的存储更小,同时对嵌入式平台而言,计算起来的难度更低。模型量化采用数据映射的关系,对浮点型的权重进行了映射替换,具体的量化公式和反量化公式如下:(1.10)(1.11)其中D表示量化后的定点数据,N是需要量化的浮点型数据,M为量化后的定点数值可以表示的最小刻度值,Z为浮点数值0量化后的定点数值。对于M和Z的计算方法为:(1.12)(1.13)其中,Nmax和Nmin分别是需要量化的浮点型数据的最大值和最小值,Dmax和Dmin是量化后定点数据的最大值和最小值。对于量化后的D或者反量化得到的N,他们的值均不能超过各自的范围,如果超过了,则需要取各自的最值。在考虑量化对象时,可以选择仅量化卷积核权重的混合量化方式和同时量化权重和激活值全整形量化方式。仅量化卷积核权重可以选择8比特量化和16比特量化,将浮点型权重量化成8量化整型,在数据存储上能够直接减少75%,同时读取速度和推理速度也将大大提升。同时量化权重和激活值会将权重和通过激活函数后的激活值等全部进行8比特量化,从而达到很好的量化效果。下图1.13左边为CaffeNet最后一层全连接层的权重分布,右边为9位定点量化后的权重分布图,可以看出不同网络层的量化后,权重的分布趋势得到了保留。图1.13CaffeNet全连接层的权重分布和量化后权重分布Fig.1.13Weightd

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论