《基于深度学习的柔性太阳翼琴铰表面缺陷检测方法》由会员分享,可在线阅读,更多相关《基于深度学习的柔性太阳翼琴铰表面缺陷检测方法(10页珍藏版)》请在金锄头文库上搜索。
1、 基于深度学习的柔性太阳翼琴铰表面缺陷检测方法 王 兵,皮 刚,陈文成,谢海峰,施祥玲(上海航天设备制造总厂有限公司,上海 200245)0 引 言大型柔性太阳电池翼是空间站的关键产品之一,其制造质量直接影响柔性翼的在轨可靠性和使用寿命。柔性太阳电池翼琴铰为关键零部件,由于制造流程复杂、转运环节多,在部件生产、部装及总装、地面试验等研制过程中极易造成琴铰局部损伤,使产品性能下降,严重时会导致基板组件报废,造成极大的经济损失。目前采用传统人工拍照和判别的方式,准确度低、耗时长、效率低下,容易出现错、漏检的情况,从而导致数据包记录不完整,直接影响产品的装配和试验质量。为了解放人工、提高检测效率并降
2、低不稳定性,可将机器视觉技术应用于表面缺陷检测。基于机器视觉的表面缺陷检测方法主要可分为两大类:传统视觉方法和基于学习的方法。传统的视觉方法利用局部异常与整幅图片反映的原始属性差异来检测和分割异常区域。其中,阈值方法利用图像的基本属性计算阈值来分离缺陷和背景1。基于光谱的方法将图像转换为频域,然后使用滤波器来查找缺陷2。基于特征的方法通过手动分析输入图像的特征,然后设计特征提取器对输入图像进行分类3。近年来,深度神经网络因其准确性和稳定性而得到了广泛研究。许多研究人员提出了基于神经网络的表面缺陷检测方法。这些方法主要可以分为三个方面:分类4-5、对象检测6-7、分割8-9。分类旨在对图像中的物
3、体进行分类,一般由特征提取和分类器两部分组成。文献4提出了一种基于卷积神经网络(CNN)的灵活的深度特征提取框架,并设计了一种投票机制来克服过拟合。文献5提出了一种联合分类系统,首先确定材料的类别,使用滑动窗口方法对图像进行切割和缺陷分类。目标检测旨在定位图像中的目标并对其进行分类。文献6提出了一种基于Faster RCNN 的损伤检测方法来检测腐蚀。文献7将不同类型的CNN 网络应用于紧固件的检测,获得了良好的检测效果。虽然基于CNN 的图像处理是一种常用的表面缺陷检测方法,但将其应用于琴铰的缺陷检测仍存在一些难点,主要包括: 图像背景复杂,一般的缺陷检测将整幅图片作为待检测物体,通过图像分
4、割技术保证整幅图片都是待检测目标,但琴铰周围的背景较为复杂,且会随着周围光环境的变化而变化; 缺陷面积小,缺陷与整个图像比例相差悬殊,一般检测算法难以满足这种需求; 缺陷样本库有限,CNN 的实现需要巨大的计算资源。综上,为实现太阳翼板琴铰缺陷的检测,本文针对琴铰结构特点和检测需要,研究给出了基于深度学习的表面缺陷检测方法。通过研制自动拍照装置来获取质量稳定的图片,并提出一种结合分类和检测的两阶段检测算法,以提高对微小缺陷的敏感性,降低无关背景的影响。同时,针对缺乏缺陷样本的问题,提出一种包括数据增强、迁移学习和网络优化算法的新框架。1 柔性太阳翼琴铰自动拍照装置设计1.1 拍照装置系统设计按
5、照太阳翼琴铰质量数据包和表面缺陷检测系统的检测需要,将柔性电池板按长度方向划分成很多段进行局部成像,设计拍照装置进行拍照,从而反映出琴铰正面、侧面和背面的外观情况,使琴铰照片为固定角度和光源,以便于后续检测算法的统一处理。通过软件对照片进行处理,将每个琴铰进行编号并用自动识别算法进行缺陷检测。1.2 拍照装置构成柔性太阳翼琴铰自动拍照装置包含硬件和软件系统两部分。硬件整体结构如图1所示,包括电控系统、成像组件、定位组件、运动组件等。其中,电控系统控制设备运行和图像采集;成像组件对产品提供光源,可以围绕产品进行多角度成像;运动组件实现成像组件在一维方向的运动,完成对产品表面成像的覆盖;定位组件提
6、供产品的摆放平台,对产品进行定位后再成像,保证产品成像的一致性。图1 拍照装置总图结构示意图Fig.1 The general structure diagram of the camera device软件功能结构如图2所示,包括任务规划、运动控制、图像采集、数据管理、数据查看。其中,任务规划设置图像采集所需要的运动轨迹、相机参数和产品参数;运动控制控制运动组件移动,对产品形成测试路径覆盖;图像采集控制相机对待测产品采集图像,获取数据并处理;数据管理和查看对存储采集的图像按产品、时间等进行组织管理,并查看产品的图像。图2 软件功能构成Fig.2 Software function compo
7、sition1.3 柔性太阳翼琴铰照片拍摄根据硬件结构,软件需要做的是控制电机让相机移动到相应的位置,按下快门拍摄照片并将照片保存到指定位置,具体过程如下:调节好两个工业摄像头与产品的焦距,调整人工光源的亮度,软件启动微零位;用户输入产品信息,软件控制电机移动到事先录入的点位后控制相机进行拍摄、保存数据;进入下一个点位以此循环,直到最后一个点位拍摄完成后相机位置会复位到初始零位等待下一次任务的开始。图3 柔性摄像装置拍摄琴铰Fig.3 A flexible camera takes pictures of the hinge2 表面缺陷检测算法2.1 两阶段方法通过分析琴铰拍摄的图像可以发现,
8、琴铰只占据了图像的一小部分,大部分是不相关的背景。同时,缺陷的尺寸非常小,常见缺陷尺寸仅为126 像素。因此,如果直接应用普通分类或对象检测网络来检测缺陷,结果的准确度很低。本文提出了一种两阶段检测方法,算法流程框架如图4 所示。在第一阶段,使用目标检测网络找到待检测物体所在的位置。因为待检测物体相对较大,且数量少、种类单一,所以采用轻量级的YoloV4-tiny10网络进行快速检索。图4 算法流程框架Fig.4 Algorithmic flow framework由于物体表面可能存在各种缺陷,YoloV4-tiny网络可能会将部分带缺陷的物体判定为非识别目标,可以通过适当降低置信度的阈值,来
9、确保待检测物体被框选。YoloV4-tiny 算法使用CSPdarknet53tiny 作为其骨干网络。它由CSPBlock 模块组成,将特征图分为两部分,并通过跨阶段残差边缘将两部分组合起来。这允许梯度流在两个不同的网络路径中传播,从而增加梯度信息的相关性差异。通过第一阶段YoloV4-tiny 网络对目标的定位,将图像进行分割,在合理的规则下提取出目标区域。因为第一阶段得到的边界框可能存在偏移误差,图像的边缘可能具有更重要的信息。基于上述原因,算法采取的分割策略是先适当扩大预测边界框的高度和宽度,然后提取两侧的区域,最后,得到第二阶段网络的输入。第二阶段使用分类网络,本文选择了性能较强且参
10、数较少的EfficientNet11-13进行分类任务。这个阶段的关键任务是快速准确地判断产品好坏。EfficientNet 是一系列网络(EfficientNet B0-B7),它们使用复合缩放方法来减少参数数量,具有很高的准确率。所有网络都基于EfficientNet-B0 的基线网络进行了扩展。如果要提高网络的性能,可以增加基线网络的深度、宽度或分辨率。复合缩放方法使用复合系数来精确控制网络的扩展,以实现更高的精度和更低的参数数量。复合缩放方法可以描述如下:式中:是复合系数;、是每个维度的系数,可以通过小型网格搜索方法得到。控制可用于模型缩放的资源,、为每个维度分配资源。2.2 深度学习
11、训练本文通过数据增强和迁移学习来解决缺陷图像数据库缺乏的问题。数据增强用于增加缺陷样本的数量并提高网络的鲁棒性。数据增强的过程如图5所示。最常用的方法是人工生成缺陷图像、仿射变换、颜色抖动和高斯模糊。人工生成有缺陷的图像是指模仿有缺陷的部分,将正常图像转换为有缺陷的图像;仿射变换是指向量空间经过线性变换,再进行平移以将其转换为另一个向量空间。仿射变换可以描述如下:图5 数据增强示例Fig.5 Data enhancement examples式中:(x,y)是原始坐标;(x,y)是变换后的坐标;k11、k12、k21、k22是一系列系数;是旋转角度。颜色抖动是指在HSV空间中随机改变图像的饱和
12、度和值;高斯模糊可以模仿相机失焦的情况。从数学的角度来看,高斯模糊过程是图像与正态分布的卷积,可以描述如下:式中:Pi(x,y)是原始图像;Pi(x,y)是处理后的图像。迁移学习意味着从源域学习知识并将其应用到目标域14-15,用于提高神经网络的训练速度并减少对数据集的要求。对于深度学习网络,其早期层包含通用特征,最后一层通常携带不同数据集之间更高级别的信息。因此,我们可以使用预训练模型的通用特征,从特定数据集中获取更高层次的信息。3 实验与结果3.1 系统实现和测试环境设置1)测试环境:检测系统的照片为摄像装置拍摄;所有代码均由Linux 18.04 系统下的Python 3.7 编写;Te
13、nsorflow 2.2.0 用于构建神经网络的基本框架;配备GeForce GTX 1060 GPU 和Intel Core i7-8750H CPU的笔记本电脑。2)数据集:使用上述自动拍照设备,去除不能使用的图像后,收集到1 588 张图像,其中包括1 440 张正常图像和148 张缺陷图像;人工生成500 张缺陷图像,并使用其他数据增强方法来增加缺陷图像的数量;使用1 944 张缺陷图像和2 280 张正常图像进行第一阶段网络的训练,并对图像进行裁剪,得到4 131 张图像用于第二阶段网络的训练。另外,留下了400 张图像作为测试集,这些图像与用于训练的图像没有任何关系。训练数据集的样
14、本如图6所示。图6 训练数据集的样本图像Fig.6 Sample images of training data set3)训练过程:首先,训练YoloV4-tiny 目标检测网络,在训练之前,使用10%的数据集作为验证集,在每个数据集之后调整网络。YoloV4-tiny 网络的输入大小为416,416,3,训练图像在输入之前需要填充并缩放到这个大小,加载使用VOC 数据集训练获得的预训练权重。在训练的第一阶段,冻结网络的前几层,将批量大小设置为32,学习速率设置为0.001,训练25 个数据集。完成第一阶段的训练后,解冻冻结层,将批量大小设置为32,学习速率设置为0.000 1,并继续训练2
15、5 个数据集,在50 个数据集后保存训练好的模型。然后,训练EfficientNet 分类网络。EfficientNet 有B0B7 八种规格,考虑到云服务器的性能和时间成本,选择了EfficientNetB2。训练前将图像大小调整为260260 像素,设置激活函数为softmax,损失函数为稀疏分类交叉熵。在训练的第一阶段,冻结预训练的权重,将学习速率设置为0.001,批量大小为16,训练25 个数据集。在训练的第二阶段,解冻冻结层,将学习速率设置为0.000 1,批量大小为16,训练25 个数据集。在50 个数据集后保存训练好的模型,训练过程如图7所示。图7 二阶段训练过程Fig.7 Tw
16、o-stage training process3.2 两阶段算法的结果与讨论第一阶段和第二阶段的结果图像如图8所示。图8 中的第一列和第二列是第一阶段的检测结果,第三列和第四列显示了裁剪后的图像和第二阶段的分类结果。通过在测试集上的测试,本文提供的算法准确率达到了99.5%,满足了太阳翼琴铰缺陷检测的要求。所有有缺陷的图像都被正确检测,但也存在一些正常图像被识别为有缺陷图像的情况。图8 第一阶段和第二阶段的检测结果Fig.8 Phase I and phase II test results将测试网络在每个阶段的性能与其他网络进行比较。第一阶段的任务是尽快定位琴铰,在确保琴铰定位准确时,速度是最重要的指标。选择MobileNet-SSD