1.一种基于卷积神经网络的焊接视觉检测方法,其特征在于:所述方法包括如下步骤:
第一步,训练阶段,将训练样本输入卷积神经网络,获得卷积神经网络的连接权值和偏置值;
第二步,测试阶段,读入焊接图像,对焊接图像采用数字图像处理技术进行预处理,提取出感兴趣区域,然后将感兴趣区域图像尺寸进行归一化处理后作为卷积神经网络的输入;
所述卷积神经网络的结构为6层,包括依次连接的输入层,C1层、S2层、C3层、S4层和输出层,C1层、C3层为卷积层,S2层、S4层为下采样层,输入层为大小为28*28像素的图像,C1层由6个大小为24*24像素的特征map构成,S2层由6个大小为12*12像素的特征map构成,C3层由12个大小为8*8像素的特征map构成,S4层由12个大小为4*4像素的特征map构成,输出层包括6个一维向量,分别表示6类焊缝缺陷:(1)裂纹;(2)未焊透;(3)未熔合;(4)条状夹渣;
(5)球状夹渣;(6)气孔;
C1层经过5×5的卷积模板卷积后,6个特征图的大小均为24*24,特征图中每个神经元与输入中5×5的卷积模板相连,每个滤波器5×5共25个元参数和一个偏置参数,共6个滤波器,共6×(5×5+1)=156个可训练参数,共有156×(24×24)=89856个连接;
S2层经下采样后得到6个12×12的特征图,特征图中的每个单元与C1中对应特征图的2×2邻域连接,S2层每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置;结果通过Sigmoid函数计算,函数如下:下采样相当于模糊图像,使用2×2模板时不重叠,因此S2中每个特征图的大小是C1中特征图大小的1/4;每一个子采样特征图需要训练2个参数,S2共有6×2=12个参数需要训练,共有6×(2×2+1)×(12×12)=4320个连接;
C3层也是一个卷积层,它跟C1有类似的地方,但也有一定的差别,它同样通过5×5的卷积核去卷积层S2,然后得到的特征map就只有8×8个神经元,但是它有12种不同的卷积核,所以就存在12个特征map,这里需要注意的一点是:C3中的每一个特征map是连接到S2中的所有6个或者几个特征map的,表示每一层的特征map是上一层提取到的特征map的不同组合,C3层共有12个特征图,其中5个特征图抽取S2层中3个相邻的特征图子集信息;4个特征图抽取S2中4个相邻特征图子集信息;2个抽取不相邻的4个特征图子集信息,1个抽取S2中所有特征图组合信息,最理想的是12个特征图抽取的特征是互补的;这样C3层有(5×5)×
45+12=1137个可训练参数和1137×8×8=72768个连接;
S4层是一个下采样层,由16个4×4大小的特征图构成,特征图中的每个单元与C3中相应特征图的2×2邻域相连接,跟C1和S2之间的连接一样,S4层有2×12=24个可训练参数和(2×2+1)×12×(5×5)=1500个连接;
输出层是与S4的一个全连接层,S4有12×4×4=192个神经元,每一个神经元都与输出的一个神经元相连,输出层共有6个神经元(焊缝缺陷种类),所以共有192×6=1152个连接。
2.如权利要求1所述的基于卷积神经网络的焊接视觉检测方法,其特征在于:所述训练样本有1万张图片,在这1万张样本中,有500张为焊接缺陷图片,剩余9500张为前述500张焊接缺陷图片经加入高斯白噪声、图片旋转、颜色变换、平移、对比度拉伸、翻转图像处理方法得到的焊接缺陷图片,然后将感兴趣区域图像尺寸进行归一化处理后作为卷积神经网络的输入;所述的训练样本包括输入向量和理想输出向量,当输入向量输入CNN中后经过逐层变换,传送到输出层,得到实际输出向量。
3.如权利要求1或2所述的基于卷积神经网络的焊接视觉检测方法,其特征在于:所述第一步中,训练过程包括4步,这4步被分为两个阶段:第一阶段,向前传播阶段:
1.1.1)从样本集中取一个样本(X,Yp),将X输入网络;
1.1.2)计算相应的实际输出Op;
在此阶段,信息从输入层经过逐级的变换,传送到输出层,网络执行的是计算:
Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n)) (2)
在计算过程中,都是用Sigmoid作为激活函数;
第二阶段,向后传播阶段:
1.2.1)计算实际输出Op与相应的理想输出Yp的差;
1.2.2)按极小化误差的方法反向传播调整权矩阵。
4.如权利要求1或2所述的基于卷积神经网络的焊接视觉检测方法,其特征在于:输出层到S4层的残差=-(输出值-样本值)*激活函数的导数,隐藏层的残差=(右层每个节点的残差加权求和)*激活函数;
其中,残差全部计算好后,更新权重:
(1)输入层:权重增加=输入值*右层对应节点的残差*学习率;
(2)隐藏层:权重增加=当前节点的Sigmoid*右层对应节点的残差*学习率;
(3)偏移值的权重增加=右层对应节点的残差*学习率;
其中,隐藏层表示除输入层、输出层以外的其他各层,学习率是一个预先设置好的参数,用于控制每次更新的幅度;此后,对全部数据都反复进行这样的计算,直到输出的误差达到一个很小的值为止;
在卷积神经网络中,输出层的残差是输出值与样本值的差值,而中间各层的残差来源于下一层的残差的加权和,输出层的残差计算如下:其中, 为输出层的残差,第ni层表示输出层,yi表示输出值, 表示前向传播中输出层的输入值, 表示激活函数的导数;
下一层为采样层的卷积层的残差的计算可以对采样层的残差与一个2×2的全1矩阵进行克罗内克积进行扩充,因为从卷积神经网络的结构图看出,采样层的map大小是卷积层的但这两层的map个数是一样的,卷积层的某个map中的4个单元与采样层对应map的一个单元关联,扩充之后使得采样层的残差的维度与上一层的输出map的维度一致;
下一层为卷积层的采样层的残差的计算比较麻烦一点,因为采样层到卷积层直接的连接是有权重和偏置参数的,因此不像卷积层到采样层那样简单,当采样层L的下一层是卷积层(L+1),并假设我们已经计算出L+1层的残差,再假设L层第j个map Mj与L+1层的M2j关联,按照反向传播算法的原理,L层的残差Dj是L+1层残差D2j的加权和,M2j与Mj的关联关系采用将卷积核矩阵进行180度旋转,使之一一对应;
残差计算出来后,就是更新权重和偏置参数。
5.如权利要求1或2所述的基于卷积神经网络的焊接视觉检测方法,其特征在于:在完成卷积神经网络的训练后,便进入了测试阶段,测试阶段用来测试所使用的卷积神经网络用于焊缝缺陷识别的精度和速度是否可靠,其过程为:读取检测图像,将这些疑似焊缝缺陷归一化为同尺寸灰度图,然后将这些图像输入训练好的卷积神经网络中进行测试,利用卷积神经网络进行分类,分类的结果为上述的6 类焊缝缺陷,进而获取误差率。