APP下载

基于改进YOLO v3网络的齿轮毛刺检测方法

2022-09-21田峰高龙琴李鹭扬

机床与液压 2022年4期
关键词:毛刺残差齿轮

田峰,高龙琴,李鹭扬

(扬州大学机械工程学院,江苏扬州 225000)

0 前言

多联齿轮具有结构紧凑、多种转速输出的优点,因此广泛应用于汽车变速箱中。在齿轮的啮合过程中,齿轮的表面质量是影响传动平稳性和可靠性的关键。在齿轮的机械加工过程中,毛刺不仅影响零件的尺寸精度,还会加剧磨损和增大传动噪声。常用来检测毛刺的方法有目测法、挂丝法、定量法、拍照法等。这些方法基本都需要人工参与,在大批量生产的情况下,不仅效率低下,而且容易因视觉疲劳导致误判的情况。此外,齿轮轮廓形状的特殊性,也决定了齿轮毛刺检测的困难程度。在传统的机器学习中,特征工程往往需要人工投入大量时间进行研究和调整,而深度学习很好地解决了特征提取问题,可以自动学习特征和任务之间的关联,还能将低级特征组合成更加抽象的高层特征。使用深度学习的方法来代替人工检测,为齿轮毛刺的自动化检测提供了一种可能。

文献[2]中提出了一种针对电机铜排毛刺生长区域的缺陷特征提取方法,先采用掩膜算法屏蔽图片非检测区域,再用形态学算法构造待检测区域并进行分割,最后通过毛刺分类算法和不同毛刺的阈值,实现对铜排四类毛刺特征的自动检测。文献[3]中搭建了一套基于FPGA平台的金属毛刺在线检测系统,通过传统边缘检测算子提取工件轮廓,再利用形态学方法去除轮廓,然后利用形态学方法去除轮廓边缘的噪声,最后分析轮廓曲线中的异常部分,实现图像中工件毛刺的检测与定位。文献[4]中通过机器视觉的方法实现对汽车卡钳毛刺的检测,具体方法是将打磨好的工件的二值图像与待测工件的二值图像进行异或运算,然后通过轮廓跟踪算法找到毛刺区域的轮廓。以上文献中的方法对各自的检测目标都有较好的检测效果,但是目标对象的轮廓形状相对简单,对多联齿轮这种不规则轮廓形状的毛刺并不能有很好的检测效果。

文中的研究对象为大批量生产的三联齿轮,由于齿轮毛刺位置的特殊性以及周围环境的相似性,传统的图像处理方法并不能取得很好的效果。为实现对齿轮毛刺的快速检测,采用深度学习的方法,通过改进YOLO v3算法训练好的检测网络进行毛刺侦测,不仅具有较高的精确率,而且具有更快的检测速度。

1 YOLO v3

2018年,REDMON等提出YOLO v3算法,它采用Darknet53网络作为骨干网络,尽管速度上不如YOLO v2(Darknet19),但是弥补了YOLO系列算法在小目标检测上的不足。

(1)与大多数深度学习的网络一致,为了避免影响网络的性能和保证网络的结构简洁一致, YOLO v3也是通过增大卷积核的步长取代池化层的作用。除此以外,Darknet53还借鉴了ResNet的残差结构,不仅解决了梯度问题,也解决了退化问题,明显改善了网络的性能。

(2)YOLO v3借鉴FPN(Feature Pyramid Networks)思想,采用多尺度检测的方法,这使得YOLO v3在识别小目标物体的准确性上有了明显的提高。

(3)为了使模型更容易学习,进而作出更好的预测,YOLO v3仍然采用-means聚类的方法解决先验框尺寸确定问题,只是将的值从5增加到了9。3种尺度的特征图根据感受野的不同分为大、中、小3个,并且每种特征图对应3个尺寸的先验框。

(4)YOLO算法的损失函数包括定位损失(先验框中心误差和宽高误差)、置信度损失和分类损失。REDMON仅在YOLO v1中明确给出损失函数,而在YOLO v2和YOLO v3中仅是略有提及。其中,在YOLO v3中明确指出,在训练时使用了二元交叉熵损失来预测类别。通过查阅相关资料及其源码,发现损失函数的计算除了宽、高外,其他误差损失均使用二元交叉熵。YOLO v3的损失函数如式(1)所示:

(1)

2 改进的YOLO v3模型

2.1 先验框数目K的确定

YOLO v3延用YOLO v2中使用-means算法求取适合样本的先验框,并采用平均交并比(Average Intersection Over Union,Avg IOU)作为聚类结果的评价标准。针对本文作者选择的样本集,此次实验选择12个簇,聚类结果如图1所示。

图1 K-means聚类分析结果

从图1中可以看出:随着先验框个数的增大而增大;在=1~5时,平均交并比增长很快;当增加到9时,图像变化情况趋于平缓,此时值约为89.7%。

2.2 网络结构改进

改进后的YOLO v3网络结构如图2所示。输入图像的分辨率为960像素×960像素,经过一系列卷积操作,输出3个尺度的特征图。改进的网络中在第2个残差模块和第3个残差模块之间增加了一个残差单元数目为2的残差模块。为了降低网络的计算量,此后的网络中残差单元的数目减少为原来的1/2,网络总层数较原网络减少了约50层。将最后一个残差单元输出的结果,经3次卷积操作、一次3×3卷积和一次1×1卷积后获得大小为14像素×14像素的第一尺度特征图。将3次卷积后的输出结果进行上采样,与第13个残差单元输出结果进行张量拼接,再经3+2次卷积得到大小为28像素×28像素的第二尺度特征图。以相同的方法,融合第9个残差单元,最终获得大小为56像素×56像素的第三尺度特征图。将聚类得到的9种尺寸的先验框按从小到大的顺序排列,依次分配给这3个尺寸的特征图,每个尺度预测3个先验框。

图2 改进后的YOLO v3网络

3 实验方法与结果分析

3.1 实验方法

3.1.1 数据集制作与环境配置

三联齿轮的毛刺集中分布在中间齿轮的一侧,实验样本的标记仅针对这种情况,实验中共采集到图片1 200张。使用MATLAB中自带软件Image Labeler制作样本标签,并按照8∶1∶1的比例划分为训练集、验证集和测试集。为了消除图形畸变的影响,在制作标签前采用张氏标定法进行校正。

实验环境:Windows10 64位操作系统,处理器为AMD Ryzen 2700X,显卡为GTX1080TI,运行内存32 GB。使用软件MATLAB R2020a,配置Computer Vison Toolbox和Deep Learning Toolbox工具包。

3.1.2 网络训练过程

将训练集放入改进后的YOLO v3网络中进行训练,通过不断调整参数,优化训练过程,最终设置迭代次数为3 000次、初始学习率为0.001、L2正则化系数为0.000 5。改进YOLO v3网络的损失函数继续采用原YOLO v3网络中的损失函数。训练过程中损失值变化曲线如图3所示。可以看出:当迭代次数超过500时,损失值几乎不再变化。就参数收敛的整体情况看,网络训练结果较为理想。

图3 损失值变化曲线

3.1.3 网络评价指标

实验中采用召回率(Recall,R)和精确率(Precision,P)作为网络评价的指标。由于此实验只需要检测毛刺这一个类别,故采用平均精度(Average Precision,AP)作为实验的评价标准。将实验中的测试集放入改进的YOLO v3网络和原YOLO v3网络中,分别计算精确率。2种网络的精确率-召回率曲线(RP曲线)如图4所示。

图4 2种网络的精确率-召回率曲线对比

RP曲线与两坐标轴包围图形的面积越大,则表示网络的性能越好。从图4可以直观地看出,改进后YOLO v3网络的性能更好。

3.2 实验结果分析

除了准确率外,实时性也是网络的重要评价参数之一,可以通过单张图片运行时间来评价。本文作者对相同的数据集,分别使用YOLO v3、YOLO v2、Faster-RCNN和改进后的YOLO v3网络进行训练, 结果如表1所示。随机选取测试集中的一张图片,分别运用表1中的4种网络进行检测,结果如图5所示。

表1 不同网络性能对比

从表1可知:YOLO v2的网络大小仅为100 MB,但是其检测时间却高于YOLO v3;Faster-RCNN网络具有最高的平均精度,达到了97.70%,但它在运行时间上并不占优势,而且它的网络大小也远大于其他3种网络;改进的YOLO v3网络在平均精度上仅略低于Faster-RCNN,但它的检测速度最快,单张图片检测时间约为YOLO v3的1/2,网络大小约为Faster-RCNN的1/3。

从图5可以看出:尽管YOLO v2算法在验证集中达到了较高的平均精度,但是在测试中却没有较好的表现;另外3种算法的检测结果均有较高的检测精度,其中,改进后的网络具有更好的检测效果。例如,图5(d)中最上方的一个毛刺,在其他3张图中均没有检测出。

图5 不同网络检测结果(精确率)对比

4 结语

针对三联齿轮毛刺位置的特殊性以及周围环境的相似性,本文作者提出了一种基于改进YOLO v3的齿轮毛刺检测方法。通过增大网络输入的尺寸和调整网络结构,改进后的网络具有更好的检测效果。在准确率和召回率上,改进YOLO v3网络与原YOLO v3网络基本保持一致;但是在网络体积和检测速度上,改进YOLO v3网络更占优势。同时,该检测方法仍然存在不足:第一,实验中齿轮单个齿的毛刺并不能看到全貌,单张图片中最多能检测到9个齿的部分情况;第二,实验中的毛刺特征比较明显且集中,对于更小特征毛刺的检测并未涉及。如何用最少的次数实现对齿边缘毛刺的全检,以及对更加细小的毛刺具有良好的检测效果,是未来的主要研究方向。

猜你喜欢

毛刺残差齿轮
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
电化学去毛刺试验研究
东升齿轮
新视域下金属切削毛刺控制技术实践运用探究
阀芯去毛刺工艺研究
基于残差学习的自适应无人机目标跟踪算法
你找到齿轮了吗?
异性齿轮大赏
一种筒类零件孔口去毛刺工具