基于深度子空间学习的焊缝缺陷检测方法
2024-02-21李进军王肖锋葛为民
李进军,王肖锋,葛为民+
(1.天津理工大学 计算机科学与工程学院,天津 300384;2.天津理工大学 天津市先进机电系统设计与智能控制重点实验室,天津 300384;3.天津理工大学 机电工程国家级实验教学示范中心,天津 300384)
0 引言
焊接技术是制造业中使用频率最高的一种加工方式,广泛应用于工业生产的各个领域,如铁路桥梁隧道、石油装备制造、航空航天、能源电力等。在焊接过程中,受生产环境和焊接工艺的影响,焊接质量难以保证,不可避免产生各种焊缝缺陷,影响构件的使用寿命,如焊瘤、气孔和飞溅等缺陷[1-2]。因此,如何对焊缝缺陷进行高效、准确的检测成为热点。随着人工智能技术的发展,学者开始利用深度学习技术对焊缝缺陷进行智能检测。其主要步骤包括焊缝图像采集、图像预处理、特征提取和分类识别[3-5]。因其非接触、智能化、高精度、无损伤等优点,已成为焊缝缺陷检测的主要方法。深度学习核心思想是通过构建具有多个隐含层的机器学习模型训练大量的数据,学习更为有用的深度特征,进而提升分类或预测的准确性[6]。深度学习模型通常层次结构复杂,硬件要求高,收敛缓慢,甚至会出现过拟合现象,并且需要海量的训练样本。而深度子空间模型[7]以深度学习[8-9]为基础,将经典的子空间特征学习方法进行结构改造,利用相同或不同的单层子空间进行数据映射,采用简单的网络结构即可实现数据的抽象表达。深度子空间模型在人脸识别[7,10-11]、手写数字识别[12]、物体识别[13-15]、表情识别[16]、异常事件检测[17]等方面均有广泛应用。
近年来,学者对深度子空间模型进行了广泛研究,相继提出了主成分分析网络(Principal Component Analysis Network,PCANet)及线性判别分析网络(Linear Discriminative Analysis Network,LDANet)[10]、独立成分分析网络(Independent Component Analysis Network,ICANet)[11]、典型相关分析网络(Canonical Correlation Analysis Networks,CCANet)[18]、局部二进制模式网络(Local Binary Pattern Network,LBPNet)[19]等。其中最具代表性的是CHAN等[10]提出的PCANet,以主成分分析(Principal Component Analysis,PCA)子空间作为基本映射单元,将PCA、二进制哈希编码及块扩展直方图相结合,进而得到图像的多层抽象特征。PCANet仅包含两层卷积层,训练过程简单高效,能适应不同任务、不同数据类型的网络模型。
针对PCANet研究,主要有以下两种思路:①增加网络层数,使其像卷积神经网络(Convolutional Neural Network,CNN)一样能够挖掘图像中的深度特征[20-23]。其网络层数的增加必然降低数据处理速度,背离了PCANet采用简单网络结构获得深度特征的初衷。②通过优化子空间投影的目标函数[24-26],获得特定目标的深度特征。参照PCA扩展为二维PCA(2-Dimensional PCA,2DPCA)的思路,YU等[27]提出了二维PCANet(2-Dimensional PCANet,2DPCANet),利用2DPCA作卷积核,无需向量化,直接针对数据矩阵进行降维,保留了矩阵本身的行列结构信息。KONG等[28]和韩冰等[29]提出了改正的2DPCANet算法,并将其分别应用在人脸识别和极光图像识别。这些网络模型中的2DPCA均采用F范数的平方作为目标函数的距离度量方式,容易受到噪声数据的影响,在实际应用中其鲁棒性存在一定的局限性。针对2DPCANet的鲁棒性问题,LI等[30]提出了基于L1范数的2DPCANet(L1-2DPCANet)算法。XU等[31]用Lp范数度量协方差矩阵之间的差异性,提出了鲁棒性PCANet算法。以上算法均采用了一种迭代的贪婪求解算法(greedy algorithm),即投影矩阵中的每个投影向量是逐个求解,每次只优化局部投影向量,将导致得到的投影矩阵并不是全局最优。如图像维数较大,其贪婪求解算法耗时过长,且容易陷入局部最优解[32]。
为解决上述问题,本文提出一种鲁棒非贪婪双向二维主成分分析网络(Robust Non-Greedy Bi-Directional two-dimensional PCANet,RNG-BDPCANet)。RNG-BDPCANet在L1范数距离度量标准下,利用双向二维主成分分析作卷积核,采用非贪婪策略得到目标函数最优的整体投影矩阵,具有较强的鲁棒性。最后,分别在自制焊缝数据集及ORL、Yale B人脸数据库上进行实验对比与分析。
1 实验平台与焊缝图像预处理
1.1 实验平台
1.1.1 生产信息交互系统
在工序之间信息交互设计中,主要考虑研究焊接工序与打磨工序之间的生产信息交互,开发了生产现场信息交互系统,如图1所示。在机器人焊接子系统中,机器人控制柜与焊机通过DeviceNet现场总线建立通信,在机器人系统中添加ARC弧焊包,由控制柜所配对的示教器开发焊接程序,将起弧信号、送丝信号、送气信号等传输给焊机,设定焊接时所需的各个参数,焊机控制着焊接时各种焊接工艺参数,如送丝速度、电压、送气等。本系统可以通过profibus-DP模块连接PLC,读取机器人在焊接过程中的实时信息数据,能够实时采集焊接过程中的焊接工艺参数,通过观测焊缝成形情况实时进行调节,并能更高效地获得成形质量良好的焊缝。然后,利用图像处理技术,焊缝缺陷智能评判系统根据焊缝表面实时图像确定焊接表面缺陷的位置及尺寸,再指导打磨机器人进行路径规划和打磨作业并反馈打磨表面形貌是否规则,确保打磨表面能符合加工表面质量要求。
图1 生产信息交互系统
1.1.2 智能评判系统
智能评判系统由机器人焊接子系统、机器人打磨子系统、视频采集子系统和焊缝缺陷检测子系统组成,如图2所示。视频采集子系统由CMOS摄像机、LED光源和由Sinamicsv90伺服驱动器控制的三自由度行走十字架组成。主要目的是为了通过映美精工业相机识别焊接机器人在焊接完成后的焊缝缺陷,如气孔,飞溅,焊瘤等。工业相机安装在十字架的Y轴末端的云台上,通过PLC和V90伺服控制三自由度十字架的电机,对工业相机的空间位置进行调整。并利用PWM脉冲控制云台对相机的姿态进行微调,以满足最佳视觉识别效果。
图2 智能评判系统
该系统采集焊接、打磨工序的关键过程信息及检测数据,基于主成分分析网络(PCANet)方法对焊缝表面缺陷进行特征提取及分类识别研究,学习开发焊缝外观质量与焊接工艺参数的智能评判模型,为焊接、打磨工艺及数据库的持续良性的改进,并提供优化参数。
1.2 焊缝缺陷检测流程
焊缝表面图像的缺陷检测包括视频图像采集、图像预处理、特征提取和缺陷检测4个阶段,具体流程如图3所示。在大型港口结构件的实际生产制造过程中,为了保证焊缝缺陷检测的实时性,在焊接机器人完成2 m~4 m的焊接距离后,CMOS相机开始以焊接速度同步移动,获取焊缝视频,进行缺陷检测。但是由于实验平台大小有限,在焊接机器人完成全部规划路径后,CMOS相机以焊接速度移动捕获焊缝视频。在图像处理阶段,采用多种数字图像处理方法组合获得一系列包含有效焊缝区域的局部块图像。在缺陷检测阶段,首先,为了突出焊缝局部区域特征,降低计算复杂度,采用滑动窗口方法将焊缝区域图像分割为一系列包含有效焊缝区域的局部块图像。将滑动窗口在焊缝图像上以一定的步长从左向右移动。滑动窗口的高度与焊缝区域图像相同,宽度为步幅的整数倍。然后,利用RNG-BDPCANet算法对焊缝图像进行特征提取,在获取最能表明图像信息数据的同时,大大降低了图像矩阵的维数。最后,通过支持向量机对焊缝表面图像进行分类识别,完成对焊缝表面图像的缺陷检测。为了解决相邻局部块图像和相邻帧图像之间出现重叠区域的问题,通过局部块优化和跨帧优化来提高缺陷检测的准确率。
图3 焊缝缺陷检测流程图
1.2.1 焊缝表面图像预处理
在实际焊接过程中,由于焊接环境的特殊性,CCD摄像机采集到的大型结构件焊缝表面图像包含大量的冗余信息,无法直接准确识别,满足不了目标识别的要求。为了提取焊缝表面缺陷的有效特征信息,首先需要对图像进行处理,以便于后续的图像分割。步骤如下:
步骤1为了减少计算量,先将原始彩色图像转换为灰度图像,如图4a所示。
图4 图像预处理和焊缝区域分割
步骤2现场采集的焊缝表面图像包含大量的噪声干扰,严重影响焊缝区域的提取。为了减少或者消除噪声,同时保护图像的焊缝边缘信息,采用邻域大小为5×5的中值滤波核对焊缝表面图像进行滤波处理,如图4b所示。
步骤3利用Sobel算子检测焊缝边缘,如图4c所示。
步骤4将灰度图像转化为二值图像,再采用Otsu自适应阈值分割方法,最小化二值图像的白色前景和黑色背景的类内方差,直观地呈现出焊缝区域,效果如图4d所示。
步骤5进行形态学膨胀操作将不连续焊缝区域连接起来,通过适当矩形框标记出焊缝区域,如图4e~图4f所示。
1.2.2 潜在焊缝表面缺陷分割
潜在焊缝表面缺陷分割以第二阶段获得包围焊缝的二值化灰度矩形框图像作为输入,输出焊缝表面缺陷图像。该阶段可分为3个步骤,分别如图5所示。
图5 潜在焊缝表面缺陷分割
步骤1气孔的分割。由于表征气孔的像素集中在低灰度区域,采用分段线性变换方法对灰度图像进行增强,使得灰度图像中表征气孔和焊缝的像素分离。对线性变换后的图像进行二值化分割,二值图像中的白色像素表征气孔。
步骤2焊瘤的分割。在二值矩形图像中,焊瘤区域的列像素个数大于合格焊缝区域的列像素个数。将二值矩形图像在垂直方向进行灰度投影,可分割出焊瘤。
步骤3飞溅的分割。焊缝区域邻近的白色像素小区域表征飞溅,可易于将飞溅从焊缝表面图像中分割出来。
2 深度子空间学习算法
2.1 PCANet
2.1.1 PCANet输入层
首先,在PCANet输入层对图像进行块采集,设N个训练样本Xi(i=1,2,…,N),其维数为m×n。采样窗口大小为k1×k2,且满足0 (1) 其中:‖·‖2为向量的2范数,W=[v1,v2,…,vk]∈Rmn×k,Ik×k∈Rk×k表示单位矩阵。对于第i个样本Xi,提取该样本中所有像素的邻域块(重叠),PCA对图像矩阵向量化后,重新构成向量化样本集表示为: (2) 对给定的N个训练样本均进行如上操作,为不失一般性,进行去均值处理,处理后的数据矩阵为: (3) 2.1.2PCANet卷积层 利用PCA算法求解数据矩阵X的特征向量,并转化为卷积层第一层的p个卷积核为: l=1,2,…,p。 (4) (5) 卷积层第二层训练样本变为N×p个,取q个卷积核。采集所有训练样本的像素块,为不失一般性,也需进行去均值处理,第二阶段的输出表示为: i=1,2,…,N;l=1,2,…,p; k=1,2,…,q。 (6) 2.1.3 PCANet输出层 i=1,2,…,N;l=1,2,…,p; k=1,2,…,q。 (7) i=1,2,…,N。 (8) PCANet算法的目标函数采用2范数的平方作为距离度量方式。当样本中出现离群点或噪声时,计算得到的投影矩阵容易受到影响。在将像素块转为列向量时,破坏了样本的空间结构。因此,PCANet在计算时忽视了图像的部分结构特征。 2.2.1 RNG-BDPCANet输入层 鉴于以上问题,受深度子空间学习和目标函数投影距离的启发,本文首先利用BDPCA代替PCA作卷积核,无需向量化,分别对图像的行、列方向进行两次特征提取,实现了行、列两个方向的数据降维,其具体处理流程如图6所示。 图6 BDPCA算法流程图 BDPCA算法直接针对数据矩阵进行降维,保留了矩阵本身的行列结构信息,其目标函数为: (9) 式中:‖·‖F为向量的Frobenius范数,W=[v1,v2,…,vk]∈Rn×k(k≪m),Ik×k∈Rk×k表示单位矩阵。 然后,RNG-BDPCANet采用对离群点更加鲁棒的L1范数来度量学习样本的深度非线性特征,最大化特征空间的投影距离。则其目标函数改为: i=1,2,…,N。 (10) (11) 通过引入极性参数pij(t),目标函数式(10)可以改为: i=1,2,…,N。 (12) i=1,2,…,N。 (13) 算法1RNG-BDPCANet非贪婪求解算法。 输入:训练样本X=[X1,X2,…,XN],其中,假定训练样本Xi(i=1,2,…,N)已进行去均值处理; 输出:投影矩阵Wt∈Rn×k。 当目标函数不收敛,执行以下步骤: 步骤1令W(0)=0,t=0,Wt∈Rn×k(k≪m)。 步骤2对于所有的i∈{1,2,…,m}和j∈{1,2,…,n},计算其极性参数pij(t)。 步骤3令t=t+1,计算S的奇异值使Wt=U[Ik×k;0(n-k)×k]VΤ。 步骤4求解出新的Wt后,再返回式(11)计算新的极性参数pij(t),直至迭代到满足收敛条件或设定的阈值为止。 2.2.2 RNG-BDPCANet卷积层 l=1,2,…,p。 (14) i=1,2,…,N;l=1,2,…,p。 (15) (16) 然后,通过第l个滤波得到的所有输入样本,可得到数据矩阵 (17) 最终,所有的p个滤波经处理后得到最终的数据矩阵为: (18) k=1,2,…,q。 (19) 第二阶段的输出表示为: i=1,2,…,N;l=1,2,…,p; k=1,2,…,q。 (20) 2.2.3 RNG-BDPCANet输出层:哈希与直方图 首先,利用赫维赛德阶跃函数二值化卷积层输出的数据矩阵,该函数可被表示为 (21) 每个像素点可用如下函数表示,该像素点为一个范围在[0,2q-1]的整数值 i=1,2,…,N;l=1,2,…,p; k=1,2,…,q。 (22) (23) 综上所述,本文提出的RNG-BDPCANet算法在PCANet的基础上,直接针对二维数字图像进行特征学习,保留了图像中的空间结构信息。与此同时,RNG-BDPCANet调整目标函数,在L1范数距离度量标准下,利用非贪婪算法,使得目标函数整体投影矩阵最优,进一步提高算法的准确性的同时兼顾其鲁棒性。 为验证本文所提算法的有效性及鲁棒性,分别在自制的焊缝数据集、ORL和Yale B人脸数据集进行分类率实验,同时以PCANet、2DPCANet和L1-(2D)2PCANet作为对比算法,进行性能的实验对比分析。再使用支持向量机(Support Vector Machine,SVM)算法对提取的特征进行分类,以此验证RNG-BDPCANet算法的有效性。实验软件环境为Windows 10、Microsoft Visual Studio 2015、MATLAB R2017a和OpenCV 3.4.10,采用Intel i7-6500U(2.50GHz)处理器,32 GB内存的硬件环境。 当CMOS相机捕获焊缝帧图像时,很多因素会影响捕获图像的质量,如噪声、杂质、焊缝外观、复杂生产环境、照明条件和冗余工件背景等。若直接对采集的图像进行特征提取和缺陷检测,大量的噪声特征参与分类识别,减弱了焊缝缺陷本质特征对分类识别的主导作用,这极大地降低了缺陷检测的可靠性和准确性。此外,图像的高维度使得计算成本过大,无法满足实时检测的要求。为了提取有效识别区域的特征,需要依次执行图像预处理、焊缝区域分割和局部块图像分割3个图像处理步骤,以方便后续的特征提取和缺陷识别。所有实验数据样本均经过零均值处理,其中训练样本和测试样本零均值化所采用的均值来源于训练样本的均值。焊缝数据集一共包含25个焊缝子集,每个子集16幅,共400幅样本图像,包含焊瘤、表面气孔、焊接飞溅、合格焊缝4个焊缝类别,其分辨率为120×80,部分样本图像如图7所示。为了测试本算法的鲁棒性,本文还需对各个数据集进行加噪处理,如图8所示。 图7 焊缝数据集示例 图8 40%遮盖噪声示例 在每个焊缝图像中分别随机抽取2、3、4、5、6幅作为训练样本,其余作测试样本。训练样本中随机抽取40%样本添加遮盖噪声。设k1=k2=9,p=q=8,直方图采样的重叠率为50%。考虑到噪声的随机性,重复5次随机遮盖噪声进行分类率实验,得到平均分类率和标准差分别如表1所示。 表1 各算法在焊缝数据集中的平均识别率 % 表1列举了RNG-BDPCANet、PCANet、2DPCANet和L1-(2D)2PCANet四种算法在焊缝数据集中的平均识别率。表2为4种算法在40%遮盖噪声下的平均识别率。对每次更改样本个数,均随机进行5次实验,且每次噪声块的位置随机分配。由表1和表2可知,本文提出的算法相对于其他3种算法平均识别率高;且对于来自噪声块的干扰,其标准差较小,相比于其他算法一直维持在稳定的状态。 表2 各算法在40%遮盖噪声下的平均识别率 % 如图9所示为各算法在焊缝数据集中的分类率对比图。由图9可知,随着训练样本的不断增多,其平均分类率逐渐增加,且逐渐收敛。RNG(2D)2PCANet算法其分类率均高于其他3种算法,这是由于二维算法提取了更多的图像模式特征,且损失图像的行列结构信息偏少。从距离度量方式看,范数大部分情形下分类率要略高于范数相对应的算法,这是由于范数度量方式具有一定的抗噪能力和分类优越性。 图9 各算法在焊缝数据集中的分类率对比图 如图10所示为焊缝检测实验平台测试的分类识别结果,其中分类识别结果1~4分别表示合格、未熔合、飞溅及漏焊。为了对比观察焊缝缺陷类型及其所在位置,分别用黑色、黄色、红色、绿色边界框来标记合格、未熔合、飞溅及漏焊。通过对不同焊缝缺陷类型的检测结果进行比对,其分类识别率分别为96.25%、96.87%和97.07%,其平均分类识别率为96.7%。该实验中对视频流数据的图像预处理、特征提取及其分类识别的所需时间为50 s。实验结果表明,本文所提出算法对视频流数据同样有效,能够应用于实际的焊缝缺陷在线检测。 图10 焊缝检测实验平台测试的分类识别结果 为验证算法的准确性,又在人脸数据集上进行分类率实验。ORL数据集由40个人脸图像组成,每人10幅,共400幅样本图像,分辨率为112×92。Yale B数据集包含15个人脸图像,每人11幅共165幅,分辨率为100×100。图11展示了Yale B和ORL数据集的部分图像。为了测试RNG(2D)2PCANet算法的鲁棒性,在40%遮盖噪声下,从Yale B和ORL数据集中分别在随机位置上对应加入40×40、40×40和30×30的杂点噪声进行覆盖。上述遮盖噪声位置任意且不超越图像边界,如图12所示。 图11 人脸数据集示例 图12 40%遮盖噪声示例 表3和表4分别列举了各算法在ORL和Yale B人脸数据集中的平均识别率。重复实验与噪声块的位置处理方式与焊缝图像相同。本文所提算法平均识别率高,标准差小于被对比的PCANet、2DPCANet和L1-(2D)2PCANet贪婪算法,在噪声的干扰下,该算法的波动性小于其他3种算法,容噪性较好。 表3 各算法在ORL数据集中人脸平均识别率 % 表4 各算法在Yale B数据集中人脸平均识别率 % 如图13所示为各算法在ORL和Yale B人脸数据集中的分类率对比图。在每个训练样本中分别随机抽取1、2、3、4、5、6、7、8、9、10幅作为训练样本,其余作测试样本。训练样本中随机抽取40%样本添加遮盖噪声。考虑到噪声的随机性,重复5次随机遮盖噪声进行分类率实验。可以看出,随着训练样本的不断增多,算法分类率逐渐提高且逐渐收敛,这是由于随着训练样本的逐渐增加,网络学习能力大大加强,其分类识别能力随之提高,而RNG-BDPCANet算法比其他算法学习能力更强,因而更快收敛。与在ORL数据集中和焊缝数据集中显示的有所不同的是,Yale B数据集中RNG-BDPCANet算法在训练样本较少时,其分类率才会优于其他3种算法。探究其原因,发现Yale B数据集中的背景与人脸图像的差异较ORL数据集和焊缝数据集明显,算法可能适用于背景干扰较少的环境。 图13 各算法在ORL和Yale B人脸数据集中的分类率对比图 本文基于深度子空间学习提出一种简单有效的RNG-BDPCANet算法应用于焊缝缺陷在线检测。通过对不同焊缝缺陷类型的检测结果进行比对,其平均分类识别率为96.7%。该实验中对视频流数据的图像预处理、特征提取及其分类识别的所需时间为50 s。实验结果表明,本文所提算法能够应用于实际的焊缝缺陷在线检测。该算法通过结合深度子空间学习和优化目标函数,在L1范数距离度量标准下,利用双向二维主成分分析作卷积核,学习样本的深度非线性特征;并给出其非贪婪的求解算法,得到目标函数最优的整体投影矩阵。将RNG-BDPCANet与PCANet、2DPCANet和L1-(2D)2PCANet贪婪算法,分别在焊缝人工数据集及ORL、Yale B人脸数据库上进行实验对比与分析,多个数据集上的实验表明了该算法的有效性。由于L1的优点,使得样本中混入较多噪声数据时,算法依然能够呈现较好的鲁棒性,且其对于不同的遮盖噪声具有一定的适应性。然而,本文算法需要迭代求解,将影响到算法的时间复杂度。因此,在一定程度上限制了该算法的实际应用。下一阶段的工作重点是针对焊接机器人焊缝表面缺陷实时图像,进一步进行深度特征学习及多种缺陷识别研究。2.2 Robust Non-Greedy BDPCANet
3 实验结果与分析
3.1 焊缝数据集的实验结果及分析
3.2 基于人脸数据集的实验结果及分析
4 结束语