基于深度学习的钢轨鱼鳞伤损检测方法与流程

文档序号:18622442发布日期:2019-09-06 22:37阅读:3044来源:国知局
基于深度学习的钢轨鱼鳞伤损检测方法与流程
本发明涉及机器视觉技术、深度学习卷积神经网络技术和图像分类技术,具体涉及到一种基于深度学习的钢轨鱼鳞伤损检测方法。
背景技术
:图像分类即给定一张输入图片,通过某种分类算法来判断该图像所属的类别。它是计算机视觉的核心,实际应用广泛。根据划分依据的不同,图像分类的结果也会不同。其主要流程为将一张输入图片经过预处理、特征提取以及分类器的训练等操作判断出输入图片的类别。其中图像预处理操作是为了方便后续的特征提取等操作而采取的滤波及尺度归一化等方法。特征提取是按照某种既定的图像分类方式来提取相对应的特征,每一幅图像都有针对其凸显性的特征。常用的图像特征包括图像的颜色、形状等视觉特征,还有图像的lbp(localbinarypattern,局部二值模式)局部纹理特征以及包含有方向梯度直方图的hog(histogramoforientedgradient,方向梯度直方图)特征等局部不变特征。图像的分类器则是用于对已提取出的特征进行分类的算法。常见的分类器主要有决策树、支持向量机等。以上均属于图像的传统分类方法,这类传统方法可能对于一些简单的图像分类是有效的,因为传统的方法所采取用于分类的方法特征全部为人工所提取。在条件非常复杂的实际情况中,传统的分类方法的分类准确率一般不会很高。神经网络是一门重要的机器学习技术,同时也是深度学习的基础。如图1所示,这是一个包含三个层次的经典神经网络结构。其输入层与输出层的节点个数往往是固定的,中间层的节点个数可以自由指定;神经网络结构图中的拓扑与箭头代表着预测过程中的数据流向;结构图中的关键不是圆圈(代表神经元),而是连接线(代表神经元之间的连接),每个连接线对应一个不同权重(其值称为权值),这是需要训练得到的。神经网络其本质是由无数个神经元构成,具体的数据在神经元中的流动过程如图2所示,假设图2中输入1、输入2、输入3分别用x1、x2、x3表示,权值1、权值2、权值3分别用w1、w2、w3表示,偏置项为b,非线性函数用g(·)表示,输出用y表示,其过程可用如下公式一表示:y=g(w1*x1+w2*x2+w3*x3+b)(公式一)卷积神经网络(convolutionalneuralnetwork)相较于一般神经网络最突出的特征是增加了卷积层(convlayer)和池化层(poolinglayer),其他层级结构仍与一般神经网络一致。卷积层的特点在于其使用了共享权重的方法,每个卷积核的权重参数都是通过整个网络的训练得到的,并且每个用于计算的卷积核的权重参数都是相同的。这有利于使用同一个卷积核在一幅图像的不同位置提取出相同的特征。在网络的整体方面权值共享的方法一定程度地降低了计算过程中参数的个数也减少了模型过拟合的现象,使得最终输出的模型具有良好的泛化能力。池化层一般出现在卷积层后,其目的在于对输入的数据做降采样操作。池化层的计算方法主要包括最大池化操作、平均池化操作。其中最大池化操作是指在对应滤波器的输出范围内提取相应数据的最大值,并以此作为特征数据。最大池化层的计算操作会更有效地提取图像的纹理特征;平均池化层的计算方法则是在对应滤波器计算对应数据的平均值。并以此作为图像特征。使用卷积神经网络方法进行图像分类与传统的方法相比,其主要优点在于该方法避开了人工提取图像特征的操作,通过大量的采样自动提取特征从而达到分类的目的。钢轨鱼鳞伤损是铁路行车安全的重要威胁。因其自身存在不均匀和不对称的特点,长期以来对其的探测要消耗大量的人力成本和时间成本。技术实现要素:鉴于人工探测钢轨鱼鳞伤损成本很大以及传统的图像分类方法应用的局限性,本发明的目的是提供一种基于深度学习的钢轨鱼鳞伤损检测方法,能够代替人工检测的同时,在检测时间和准确率方面都要远高于传统算法。为解决上述技术问题,本发明所采用的技术方案为:一种基于深度学习的钢轨鱼鳞伤损检测方法,包括以下步骤:一、数据集的划分;按照7:2:1的比例将所有图像构成的数据集划分为训练集、测试集、验证集;二、网络结构的设置和正向传播;使用残差神经网络进行深度学习训练;残差神经网络包括卷积层、池化层和全连接层;卷积层直接感受图像像素级的输入,利用卷积核对图像中的局部区域做卷积操作,通过滑动窗口逐行扫描的操作形式,提取整个输入图像的卷积特征,然后输出到后层网络中去;卷积核里的元素与图像中对应位置的元素相乘再求和,得到卷积计算结果;卷积核按设置的步长遍历整张输入图像以后得到一系列的卷积结果,这些卷积结果构成了新的卷积特征图;然后使用非线性激活函数relu函数处理前一层卷积核的输出结果,将其结果转换为非线性结果;整个处理过程在神经元输出之前;池化层对上一层卷积层的输出做采样池化操作,进一步降低特征图的维数;池化的操作是在特征图上选定一个采样框,采样框按一定步长遍历整个输入特征图,得到一系列的池化输出,这些池化输出构成了池化特征图,即池化层;全连接层在整个残差神经网络中起到分类器的作用,输出最终分类的结果;在整个卷积神经网络中,卷积层和池化层将原始数据映射到隐层的特征空间去,提取图像的抽象特征,而全连接则是对这些特征做线性加权,将之前所提取的局部特征重新通过权值矩阵组装成完整的图片;全连接层的数量至少为一个,全连接层中每个神经元直接的连接均为全连接,全连接层的神经元使用的激活函数为relu函数;最后一层全连接层传递的输出为分类结果,采用softmax逻辑回归作为分类,softmax分类器函数的定义为:其中,i代表类别的索引,e为自然对数,类别总数为c,vi代表前级网络的输出,si代表当前元素的指数与所有元素指数之和的比值,softmax分类器将多分类的输出数值转化为了相对概率;卷积层分为五类;第一类卷积层由1层包含64个7*7的卷积核构成;第二类卷积层由8层每一层由128个3*3的卷积核构成;第三类卷积层由12层每层含有256个3*3卷积核构成;第四类卷积层由6层每层含有512个卷积核构成;第五种卷积层由6层每层含有64个3*3的卷积核构成;残差神经网络中每个类型的两两卷积层的结构被看作是残差单元,在该残差单元结构中,包含了两种映射关系,分别是恒等映射与残差映射;恒等映射的过程为将上一层网络的输出不经过本层网络的运算直接作为下一层网络的输入;残差映射的过程为将本层网络的输出运算后直接作为下一层网络的输入,使得最终输出为y=f(x)+x;整个残差神经网络看作是有多个残差学习单元所串联的结构,其中每一部分的输入由上一层的输出和阈值相对应的恒等映射的值共同决定;对于残差神经网络的第xl+1层的网络而言,与上一层xl的关系表示为:xl+1=xl+f(xl)(公式三)可以看出xl+1层与上一层xl呈现出一个线性叠加关系,由此继续推导接下来两层网络结构的输入为:根据该结果可以得到最终的输入:三、反向传播;正向传播的计算结果输出后,调用反向传播算法;反向传播算法包括两部分;第一部分是先对残差神经网络的模型参数使用随机数初始化;第二部分是计算神经网络模型输出值和期望值之间的误差,再借由梯度下降法从网络的后一层逐次向前一层更新网络模型参数,最后训练误差满足精度要求或者达到最大迭代次数后,反向传播算法的训练结束;整个神经网络的反向损失值的传播是一个平滑的线性叠加过程,其具体的推导过程如下:首先定义损失函数为:其中e表示损失函数的损失值,xlabel参数表示在当前样本与标签给定的训练情况下xl层所对应的理想向量值;使用链式求导法则就可以得到整个网络的反向参数与之间的关系:从公式七中可以看出直观地看出,任意一层上的输出所产生的残差xl可以传递回其前面的任意一层的xl上;训练集的图片以227*227的大小传入网络,经过五个类型的卷积层;其中第一类卷积层的卷积核对图片进行降采样处理后的输出为112*112,后面四个类型度卷积层输出依次为56*56、28*28、14*14、7*7,最后整个矩阵经过平均池化操作的池化层之后连接至全连接层;四、绘制参考曲线保留最终残差神经网络所训练出的模型,并绘制出整个训练过程中各参数的变化曲线用于参考。进一步的,所述步骤二中的残差神经网络有34层,第2层和倒数第2层为池化层,最后一层网络为全连接层,其余均为卷积层。与现有技术相比,本发明的有益效果是:1、机器视觉代替人工;本发明将机器视觉和深度学习中的卷积神经网络技术相结合,将钢轨鱼鳞伤损的样本提取特征并进行学习分类,将神经网络输出的模型用于实际工业中的判别中;与在工业领域中使用人工方法对钢轨表面鱼鳞伤损判别的方法相比较,具有很高的检测效率和准确度。2、是深度学习方法代替传统图像分类法;本发明中的图像分类方法使用了深度学习的方法,该方法与传统的图像分类相比较具有更高的精确度。在各种神经网络中,残差神经网络引入了残差学习单元能够在增加网络层数的情况是整个模型不会出现梯度消失的现象,这也使得该网络与其他网络相比较有更好的学习能力。附图说明图1为经典神经网络结构示意图;图2为神经网络中数据在神经元中的流动过程示意图;图3为卷积核卷积运算操作过程示意图;图4为激活函数示意图;图5为relu激活函数示意图;图6为池化层的最大池化和平均池化示意图;图7为残差网络的结构示意图;图8为残差单元结构示意图;图9和图10为一级伤损图片;图11和图12为二级伤损图片;图13和图14为三级伤损图片;图15为训练过程的损失值和精度的变化曲线;图16为四种分类方法的运行时间比较;图17为经本发明分类后的输出图片。具体实施方式本发明的主要实施步骤如下:1、数据集的划分将数据集按照7:2:1的比例将所有数据集划分为训练集、测试集、验证集。训练集主要用于模型拟合数据样本,寻找样本之间的规律。测试集主要应用于训练过程中确定网络结构或者控制模型复杂程度的参数。测试集用于对整个神经学习情况的评价,也就是验证该方法对于各等级鱼鳞伤损检测的准确度。2、网络结构的设置和正向传播本发明中使用了残差神经网络进行训练深度学习训练。残差神经网络主要由卷积层、池化层和全连接层构成。其中残差神经网络的卷积层,它会直接感受图像像素级的输入,利用卷积核对图像中的局部区域做卷积操作,通过滑动窗口逐行扫描的操作形式,提取整个输入图像的卷积特征,然后输出到后层网络中去。卷积层中,卷积核的卷积的操作如图3所示。卷积核里的元素与图像中对应位置的元素相乘再求和,得到卷积计算结果;卷积核按设置的步长遍历整张输入图像以后,会得到一系列的卷积结果,这些卷积结果构成了新的卷积特征图。然后使用非线性激活函数处理前一层卷积核的输出结果,将其结果转换为非线性结果。整个过程在神经元输出之前。该过程示意图如图4所示。这里使用的激活函数为relu(rectifiedlinearunit,线性整流函数,又称修正线性单元,如图5所示),这种扭曲线性函数,不但保留了非线性的表达能力,而且不会有由于非线性引起的梯度弥散形象(顶层误差较大,由于逐层递减误差传递,引起低层误差很小,导致深度网络地层权值更新量很小,导致深度网络局部最优)。池化层能对上一层卷积层的输出做采样池化操作,进一步降低特征图的维数,从而压缩了参数,减少了数据的数量,减轻了过拟合的现象。池化层能保证图像特征的尺度不变性,在压缩图像的过程中,许多冗余的、不必要的特征被删去了,但是不影响最终图像目标的识别结果,与此同时图像参数却减少了,这就是池化层的特征降维特性。池化层的池化操作方法有最大池化和平均池化两种,在实际运用过程中,最大池化的方法更常用,图6展示了最大池化和平均池化两种操作的区别。池化的操作就是在特征图上选定一个采样框,最大池化就是输出采样框内所有元素中的最大值,而平均池化则是输出采样框内所有元素的平均值。采样框按一定步长遍历整个输入特征图,可以得到一系列的池化输出,这些池化输出构成了池化特征图,即池化层。全连接层在整个残差神经网络中起到的是分类器的作用,输出为最终分类的结果。在整个卷积神经网络中,卷积层和池化层的作用是将原始数据映射到隐层的特征空间去,提取图像的抽象特征,而全连接则是对这些特征做线性加权,将之前所提取的局部特征重新通过权值矩阵组装成完整的图片。全连接层的数量一般为一个或者一个以上,全连接层中每个神经元直接的连接都为全连接,全连接层的神经元使用的激活函数一般也是relu函数。最后一层全连接层传递的输出为分类结果,一般采用softmax逻辑回归作为分类,softmax分类器函数的定义为:其中,i代表类别的索引,e为自然对数,类别总数为c,vi代表前级网络的输出,si代表当前元素的指数与所有元素指数之和的比值,也就是说,softmax分类器将多分类的输出数值转化为了相对概率。本发明使用的残差网络,整个网络层数有34层。整个残差网络的结构如图7所示,第二层和倒数第二层为池化层,这里使用的是平均池化。最后一层网络为全连接层。其余均为卷积层。整个网络层数有34层,其中卷积层一共可以分为五类。第一类的卷积层由1层包含64个7*7的卷积核构成。第二类卷积层由8层每一层由128个3*3的卷积核构成。第三类卷积层由12层每层含有256个3*3卷积核构成。第四类卷积层由6层每层含有512个卷积核构成。第五种卷积层则由6层每层含有64个3*3的卷积核构成。这个网络中每个类型的两两卷积层的结构可以看做是如图8所示的残差单元,在该残差单元结构中,包含了两种映射关系,分别是恒等映射与残差映射。恒等映射的过程如图8曲线部分所示,将上一层网络的输出不经过本层网络的运算直接作为下一层网络的输入。残差映射是图8中的除开曲线的网络流程部分,使得最终输出为y=f(x)+x。整个网络可以看作是有多个残差学习单元所串联的结构,其中每一部分的输入是由上一层的输出和阈值相对应的恒等映射的值共同决定的。对于xl+1层的网络而言,与上一层xl的关系可以表示为:xl+1=xl+f(xl)(公式三)可以看出xl+1层与上一层xl呈现出一个线性叠加关系。由此可以继续推导接下来两层网络结构的输入为:根据该结果可以得到最终的输入:3、反向传播正向传播的计算结果输出后,接下来将调用反向传播算法。反向传播算法主要由两部分组成,第一部分是先对神经网络的模型参数使用随机数初始化,第二部分是计算神经网络模型输出值和期望值之间的误差,再借由梯度下降法从网络的后一层逐次向前一层更新网络模型参数,最后训练误差满足精度要求或者达到最大迭代次数后,反向传播算法的训练停止结束。整个神经网络的反向损失值的传播也是一个平滑的线性叠加过程,其具体的推导过程如下:首先定义损失函数为:其中e表示损失函数的损失值,xlabel参数表示在当前样本与标签给定的训练情况下xl层所对应的理想向量值。使用链式求导法则就可以得到整个网络的反向参数与之间的关系:从公式中可以看出直观的看出任意一层上的输出所产生的残差xl可以传递回其前面的任意一层的xl上。训练集的图片以227*227的大小传入网络,经过五个类型的卷积层。其中第一个卷积层(包含64个7*7卷积核)的卷积核对图片进行降采样处理后的输出为112*112,后面四个类型度卷积层输出依次为56*56、28*28、14*14、7*7最后整个矩阵经过平均池化操作的池化层之后连接至全连接层。3、绘制参考曲线保留最终神经网络所训练出的模型,并绘制出整个训练过程中各参数的变化曲线用于参考。实验数据部分(有益结果)如下:1、数据集介绍本实验在视觉鱼鳞伤损检测的实验中使用的数据集由中国铁路三院提供,该数据集中包括了三个等级的钢轨表面鱼鳞伤损图片。其中一级伤损图片为1270张、二级伤损为1830张、三级伤损图片1280张。部分伤损图片如下图9-图14所示。按照7:2:1的比例将所有数据集划分为训练集、测试集、验证集。训练集主要用于模型拟合数据样本,寻找样本之间的规律。测试集主要应用于训练过程中确定网络结构或者控制模型复杂程度的参数。测试集用于对整个神经学习情况的评价,也就是验证该方法对于各等级鱼鳞伤损检测的准确度。对于该残差神经网络的训练本文首先是设定的了初始的训练参数,具体参数如表一所示:训练迭代次数20批量处理数目32初始学习率0.1表一2、结果对比(准确率、时间)本文在一台cpu为intel酷睿i77700、内存为16g的台式电脑上使用残差网络对整个训练样本进行了训练,最后将训练输出的模型在测试集中进行测试,整个学习过程没有使用gpu运算,学习模型的测试参数如表二所示:表二表二展示了整个模型在测试集上的表现,其中精度表示模型对于某个分类的判断中正确个数的比例,从结果可以看到学习模型对于一级损伤的判断准确率较高达到了98%,而二级损伤的准确率要明显低于一级损伤。表中的召回率指标表示对于测试集中某一类的损伤中有多少张图片被判断正确,就召回率来看二级损伤的指标最好。最后一个参数f值表示模型综合分类评分,f值越高说明该类的分类情况越好。训练过程的损失值和精度的变化曲线如图15所示,图15中的四条曲线分别表示训练过程和验证过程的损失曲线以及训练集和验证集的实时精度变化曲线。由图15中可以看到验证集上的损失值在训练初期的震荡过程比较严重尤其是在处理到第2.5批次时,但随着训练过程的进其损失值趋于稳定。检测图片时间:在实验中使用四种方法分别对测试集内所有图片做分类预测,记录消耗的总时间,并将结果绘制成直方图如图16所示。其中基于前三种分类法都是传统的机器学习图像分类方法,包括hog特征、sift特征和lbp特征,最后一种为本发明所提出的神经网络图像分类。从图16中可以看出,运行速度最快的是残差网络模型的检测方法,接下来是lbp、hog和sift。分析图16可以看出,传统方法从图片上提取特征非常耗时,尤其是提取并重塑sift特征的过程,消耗了大量时间,而lbp的计算量则是传统方法中最小的,因此运行时间也短。神经网络对输出图像分类结果实际上是做向前传播算法,它比向后传播算法速度快的多,对于神经网络来说,大部分时间都花费在了训练上,而将其应用于实际分类时,耗时很少。3、结果展示图17展示了由本发明所述的分类模型进行测试最终输出的部分伤损图片,其中包括一级伤损图片5张,二级、三级伤损图片总共11张,左上角标记对应其伤损级别。本发明设计并采用了卷积神经网络中的残差神经网络,通过对由中铁三局提供的伤损样本进行处理,通过深度学习的方法产生最终的判别模型,使用该模型对钢轨各级别鱼鳞伤损进行检测具有很高的识别率。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1