APP下载

基于深度学习的铜封帽内螺纹缺陷检测研究

2022-09-08姜阔胜

关键词:先验裂纹特征

姜阔胜,徐 瑞,王 迪

(1.安徽理工大学机械工程学院,安徽 淮南 232001;2.安徽理工大学深部煤矿采动响应与灾害防控国家重点实验室,安徽 淮南 232001;3.内蒙古工业大学机械工程学院,内蒙古 呼和浩特 010000)

铜封帽在整个家电工业中是使用量大且重要的部件,在家电设备中起着密封和紧固的作用。由于淬火冷却速度过快造成铜封帽产生裂纹,带有裂纹的封帽装备到电器设备中会由于密封不充分而引发材料泄漏,达不到产品预期效果。因此迫切需要智能化、自动化的检测手段来快速且准确地识别铜封帽内螺纹缺陷。针对外螺纹缺陷的研究较多,文献[1-2]采用非接触式测量方法测量内螺纹参数,通过滤波和边缘检测等方法对像素特征进行转化,将内螺纹图像检测问题转化为外螺纹图像检测问题。上述方式虽能解决特定场景下内螺纹裂纹缺陷问题,但对外部环境变化极为敏感,检测方法泛化能力有限。因此,本文提出基于改进YOLOv3的缺陷检测算法,进而提升针对内螺纹裂纹缺陷检测的精度和效率。目前应用于缺陷检测的深度学习网络主要分为目标检测网络和图像分割网络两类:前者是基于大量样本训练,得到缺陷置信度和预测框信息,如R-CNNs[3-5]、SSD[6]、YOLOs[7-9]等;后者是图像分割类算法对输入图片的每一个像素进行分类,如FCN[10]、U-Net[11]、PSPNet[12]等。

本文采用改进的YOLOv3算法。首先,使用K-means++算法[13]对铜封帽裂纹缺陷数据集的目标候选框尺寸进行聚类分析,将分析结果应用于算法训练中;其次,调整网络结构,在网络预测部分分别添加SqueezeExcitation模块[14],以强化有效信息、抑制无用信息,提升模型的准确性。

1 YOLOv3网络

运用YOLO系列算法时,训练模型是通过卷积神经网络直接输入整张图像、完整地输出目标预测结果、期间没有生成多个候选区的过程,是一种端到端的网络模型。其特点是检测十分迅速,能够快速输出物体检测的类别和位置信息。

YOLOv3网络通过对不同尺度特征的利用,提升了小目标物体的检测精度;同时,YOLOv3网络借鉴了残差神经网络的思想,加深网络的同时不丢失原始输入张量的信息,从而缓解了梯度消失带来的问题并提升了网络检测精度[15]。整个YOLOv3网络取消了池化和全连接层,其通过调节卷积核的步长以达到控制张量尺度的目的。其中,卷积、批归一化(BN)和LeRelu激活函数作为整体单元使用。

2 改进YOLOv3

本文的研究对象是铜封帽的内螺纹缺陷,裂纹呈长条状。在YOLOv3模型中使用的先验框经过COCO数据集聚类得到,显然不适合本文的数据集,因此本文首先对先验框进行重新聚类筛选。此外,针对铜封帽内螺纹缺陷特征,可以通过强化该特征的方法以实现提升检测精度,由此引入SqueezeExcitation模块,将其加入网络结构中,得到良好的实验结果。

2.1 先验框的聚类分析

YOLOv3中采用了Faseter R-CNN中的先验框机制。先验框是一组宽高固定的矩形,其尺寸的大小会影响loss计算效率,从而影响网络模型对目标检测的精度与速度。合适的先验框能够加快收敛速度,因为当预测框与真实框接近时IoU的分数会更高,其计算公式如公式(1)所示。

(1)

式中:bpred为预测框;btrue为真实框。

YOLOv3对于边界框的预测采用锚点框的方法, 首先使用K-means++聚类算法对COCO数据集的先验框进行计算, 对3种尺度的特征图分别获得3个先验框, 最终得到9个先验框,尺寸如表1所示。

表1 YOLOv3先验框尺寸表

在YOLOv3中采用的是COCO数据集聚类形成的先验框,但是对本研究对象而言并不合适。因为该数据集聚类出的先验框大小并不能满足铜封帽的缺陷尺寸要求,所以需要重新对铜封帽数据集进行K-means++聚类分析。利用欧式距离作为度量标准来衡量样本数据之间的关系,将距离小的样本划分为一类。随机选取1个样本为初始质心,轮盘法确定3个初始质心。计算每个样本与初始质心的欧式距离,样本距离小的归为一类,最后利用每类的均值作为新的质心,直到新的质心不再发生变化。通过K-means++在铜封帽数据集上迭代得到3个聚类中心,尺寸分别为(12×32)(15×65)(22×98),将该尺寸应用于改进的YOLOv3算法中。

2.2 改进的 YOLO v3网络结构

1)SqueezeExcitation模块 Squeeze Excitation模块能够对特征图进行自适应强化,增强有益特征通道并抑制无用特征通道,实现方法如图1所示。其主要分为Squeeze操作和Excitation操作,计算步骤如式(2)~式(4)。

图1 Squeeze Excitation模块原理

(2)

s=Fsq(zc,W1,W2)=σ(W2δ(W1zc))

(3)

X=Fscale(uc,s)=s·uc

(4)

通过式(2)得到形状为1×1×c的zc张量,将zc代入式(3)计算得到形状同为1×1×c的s张量,最后将s与与uc进行卷积操作得到张量X,X的有益特征得到增强,无关特征受到抑制。

2)改进的YOLOv3整体结构 为了使YOLOv3模型适应于铜封帽裂纹缺陷的检测,对Darknet-53网络输出的特征张量进行强化。从特征通道之间的关系入手,文章建立特征通道之间相互依赖关系的模型,将SE模块(SqueezeExcitation)嵌入YOLOv3检测网络中,改进的YOLOv3结构如图2所示。

图2 改进的YOLOv3网络结构简图

Darknet-53在YOLOv3网络中会输出3个尺度的特征张量,先对其卷积操作前进行Squeeze和Excitation操作,随后进行卷积及上采样,最终生成特征图进行目标检测。

改进的YOLOv3算法加入了SqueezeExcita-tion模块,模型通过学习的方式来自动获取到每个特征通道的重要程度,随后依照该重要程度增强有用特征并抑制对当前任务用处不大的特征,让网络利用全局信息有选择地增强特征通道并抑制无用特征通道,从而实现特征通道自适应校准,增加了检测准确性。

3 实验

3.1 实验数据集以及实验条件

本实验在Windows 10环境下完成,计算机内存为32GB,CPU为AMDRyzen9 5900X3.7GHz,GPU为RTX-2080ti,显存为11GB;python版本为3.8.0;CUDA版本为10.0;cudnn版本为7.4.5;同时安装了OpenCV 4.2和TensorFlow2.4等第三方库配合完成神经网络的实验。

本实验检测的工件为R410a铜封帽,内牙直径15mm。所使用的带有裂纹的铜封帽共计130个,使用工业相机对铜封帽进行拍摄,相机设备为CCD面阵工业相机,镜头为工业内窥镜头,采集设备如图3所示。共采集500张原始图像,像素为1 280×1 024的灰度图像。

图3 样本图像采集结构图

为了避免训练过程中可能出现的过拟合现象,首先对原始图像进行数据增强,原始图像中一个工件对应一条裂纹,通过裂纹素材对原始图片进行加工,使得一张图片获得6到10条裂纹。同时,对图片进行随机角度旋转,以及添加高斯噪声操作。经过数据增强后的图像共计5 000幅, 手动划分训练集和测试集样本, 划分比例为9∶1, 分别为4 500幅和500幅。

标注数据时,为了提升数据标注精度,本文对原始图片进行对数极坐标操作,公式如式(5)~式(7)所示,效果如图4所示。随后使用LabelImg软件进行裂纹标注。

图4 样本图像对数极化

(5)

(6)

θ=arctan((y-yc)/(x-xc))

(7)

式中:x、y为图像原始坐标;xc、yc为图像中心坐标;ρ为对数极坐标半径;θ为对数极坐标偏转角度。

3.2 神经网络模型训练

本文关于YOLO系列的模型均加载COCO数据集的预训练权重,通过预训练权重能够减少训练时间,提升检测准确率。在训练过程中冻结Darknet-53特征提取部分参数,分别训练YOLOv3以及改进YOLOv3的detection部分网络参数。训练时输入的原始图片尺度调整为3×416×416,学习率设置为1.0×10-3,worm-up参数设置为1 000,epoch设置为300轮,优化器选择为Adam[16]。YOLOv3改进后训练过程中loss收敛曲线如图5所示。经过3 000次迭代,loss值趋近于0.3左右,从loss值的收敛情况可以得出,改进后的YOLOv3网络模型训练结果理想,可以进行进一步测试。

图5 改进的YOLOv3算法训练loss值

YOLOv3检测效果与改进后的YOLOv3检测效果如图6所示,二者性能对比如表2所示。改进后的YOLOv3算法裂纹缺陷检测准确,缺陷位置定位也比YOLOv3算法更精准。

图6 YOLOv3与改进的YOLOv3检测效果图

表2 改进的YOLOv3算法与YOLOv3性能对比 %

从表2中可以看出,与原YOLOv3模型对比,改进的YOLOv3对铜封帽内螺纹裂纹缺陷的误检和漏检均有明显的下降,检测平均准确率高达96.1%,提升了5.2%,误检率和漏检率分别下降了2.7%和22.9%,说明改进后的YOLOv3算法具有更强的泛化能力。

为了更全面地验证改进后YOLOv3的有效性,本文在铜封帽数据集上同时对FasterR-CNN模型、SSD模型以及YOLOv3模型进行对比试验,以平均准确率作为主要评价方法、交并比(IoU)和检测速率作为评价指标,试验结果如表3所示。

表3 多种算法对内螺纹缺陷检测效果对比

从表3可以看出,平均准确率最高的模型为改进后YOLOv3模型,检测速度最快的模型为YOLOv3模型。改进后YOLOv3模型的IoU值相对于原始YOLOv3模型由0.59提升至0.66,主要原因是本文采用了重新聚类,针对铜封帽数据集改进了先验框参数,从而使得预测框位置更加精准;改进后的网络与FasterR-CNN算法相比,准确度提升了3.9%,说明SqueezeExcitation模块强化了重要特征信息,提升了网络预测精度;由于SqueezeExcitation模块的加入增大了网络的计算量,但从实验结果上看,检测速率下降了2FPS。因此,改进后的YOLOv3模型算法同时保证了检测的准确性和检测速度,能够较好地完成铜封帽内螺纹裂纹缺陷的检测任务。

4 结论

基于深度学习的缺陷检测算法, 本文提出一种YOLOv3改进算法, 将其应用于铜封帽内螺纹裂纹缺陷检测领域。通过自主聚类先验框, 调整先验框参数和添加Squeeze Excitation模块进入检测模型中等方法改进YOLOv3算法, 最终YOLOv3以及改进的YOLOv3算法进行对比实验。主要得出以下结论:

(1)k-means++聚类处理预选框, 使得深度学习模型更快收敛;

(2)极化处理后的数据集有效减少了标注样本的工作量, 同时提升了模型训练精度;

(3)YOLOv3模型中添加Squeeze Excitation模块, 铜封帽缺陷检测精度由91.1%提升到96.3%。

综上所述, 改进的YOLOv3算法平均准确率有大幅的提高, 预测框更加准确, 算法具有良好的泛化性能, 对铜封帽的质检效率和精度提升显著。

猜你喜欢

先验裂纹特征
基于扩展有限元的疲劳裂纹扩展分析
根据方程特征选解法
离散型随机变量的分布列与数字特征
一种基于微带天线的金属表面裂纹的检测
基于暗通道先验的单幅图像去雾算法研究与实现
先验想象力在范畴先验演绎中的定位研究
一种考虑先验信息可靠性的新算法
Epidermal growth factor receptor rs17337023 polymorphism in hypertensive gestational diabetic women: A pilot study
不忠诚的四个特征
心生裂纹