刘 浩,陈再良,王善翔
(苏州大学机电工程学院,江苏 苏州 215131)
刀具是现代机械加工中不可或缺的工具,能直接决定待加工产品的加工精度和表面质量。在刀具生产的过程中,由于工艺或人工的不当操作,不可避免地会在刀具表面出现各种缺陷。这些缺陷会影响刀具的美观,更为重要的是这些缺陷会造成刀具寿命的缩短从而导致生产成本的增加[1-2]。因此对刀具外观的完整性进行检查具有重要的意义。目前对于产品中的各种缺陷,普遍采用的检测方式是人工检测,即是通过工人在光源照射下用肉眼来筛选出不合格的产品,这种方法工作强度大、不确定性高,甚至有可能对工人的视力健康产生威胁[3-5]。
缺陷的自动化检测方法正得到越来越多的应用,自动化的检测方法具有高效率、高准确率的特点。现有的缺陷检测算法主要分为基于特征提取的机器学习方法和自提取特征的深度学习方法。通过提取缺陷的特征再利用机器学习分类器进行分类输出的方法依赖人工去提取和筛选特征,这会造成提取到的特征具有很强的随意性和相关性。另一方面,对于难以提取特征的检测任务,分类器难以输出最好的检测和分类结果[6-10]。
本文主要针对车刀的表面划痕、磕碰凹坑、涂层剥落和边缘豁口四种缺陷进行研究。YOLOv3算法具有较高的准确率和实时性,适合用于工厂的高速检测场景。但是使用标准的YOLOv3算法对刀具进行缺陷检测,效果并不理想,会产生部分漏检和定位框不准确的问题。因此本文对YOLOv3算法进行改进:使用k-means++算法对锚框重新聚类、添加特征层和优化损失函数。实验表明,改进后的YOLOv3算法的准确率有较大提升。
本文研究的刀具的表面缺陷如图1所示
(a)划痕 (b)凹坑 (c)涂层剥落 (d)豁口
表面划痕:主要为细长状,一般是刀具和刀具或其他坚硬物体之间发生相对运动而造成的表面涂层划伤或缺失。
磕碰凹坑:主要呈现为点状,一般是由于刀具和刀具之间直接碰撞而造成的涂层凹陷或缺失。
涂层剥落:一般为基体在涂覆过程中,由于工艺的影响而造成的涂覆不全或涂覆后涂层丢失等情形。
边缘豁口:主要是基体在制造过程中由于工艺原因产生的缺陷,也可能是在刀具的搬运等过程中发生的碰撞而造成边缘部位材料的丢失。
对于视觉检测任务来讲,硬件系统具有重要的意义。优秀的硬件系统能够降低算法开发的难度、缩短算法开发的周期和提高检测算法的鲁棒性。针对刀具的缺陷检测,本文搭建了图2所示实验平台。硬件型号如表1所示。
图2 视觉检测平台
表1 硬件型号
图像在采集的过程中,由于相机、光源等器件的影响,采集到的图片难以达到需求。对采集到的图像进行预处理,主要是图像降噪和图像增强。
(1)图像降噪
图像降噪一般采用滤波的方式,评判滤波器的降噪效果可以通过滤波后的结果图像和原始图像的均方误差(Mean Square Error,MSE)和峰值信噪比(Peak Signal to Noise Ratio,PSNR)来评判[11-13]。本文对中值滤波、均值滤波、高斯滤波和双边滤波进行实验,结果如表2所示。
表2 不同降噪方法试验结果
可以发现,双边滤波具有最小 MSE和最大的PSNR,最终采用双边滤波器对原始图像进行降噪。
(2)图像增强
图像在采集的过程中,由于光源光线或打光方式的差异,采现场采集的图像可能发生过曝或曝光不足等问题。另一方面,现场采集到的图像通常会包含很多无用的信息,这些无用的信息会影响缺陷的检测和分类。
常见的图像增强方法主要有灰度变换、直方图均衡化以及增强对比度[14-17]。对采集到的刀具图像进行实验,结果如图3所示。
(a)原始图像 (b)线性变换效果图 (c)直方图均衡化效果图 (d)对比度增强效果图
采用灰度变换的图像对边缘的保持较差,不利于豁口类缺陷的检测。采用直方图均衡化的方法会大幅增强图像的背景,容易导致误检。采用增强对比度的方法,可以在较好保持边缘的前提下增强刀具表面区域和背景的对比度,更利于算法的处理。最终采用增强对比度的方法来实现图像的增强。
使用标准的YOLOv3算法,可以发现,虽然算法的检测速度能达到工业的需求,但还是存在如下问题:
(1)小目标漏检率较高
在测试的过程中,会发现较多的边缘豁口缺陷被漏检,原因是豁口缺陷相较于涂层剥落等缺陷面积较小。这是由于YOLOv3网络在特征提取的时候,对于豁口缺陷这种小目标,即使采用最大的52×52网络也无法将豁口类的特征提取出来。
(2)边界框定位误差较大
在测试的过程中,还存在另一种问题:通过YOLOv3算法绘制出的检测框和正确的目标框具有一定的偏差,无法准确的将检测到的区域框出来。
为解决上述问题,对YOLOv3算法进行改进,主要通过三个方面:使用k-means++算法对锚框重新聚类;添加104×104大小的网络特征层;使用GIOU替代IOU优化损失函数。
在YOLOv3的锚框尺寸计算中,采用的k-means聚类算法得到最终的结果。且原始的锚框大小是针对voc数据集进行计算而来,对于刀具缺陷数据集可以进一步的优化。另一方面,k-means算法在计算之前需要预先指定k,且对于起始位置比较敏感,很多时候求得的解并非最优解[18-20]。
对于本文的刀具的4种缺陷检测,将原有的9个锚框更改为12个,所以应将聚类中心设置为12,同时采用更先进的k-means++算法来进行聚类,最后通过聚类得到的结果来重新设计了锚框。
在原有的网络结构中,darknet会生成三层上采样的特征图,但是这种方式产生的结果会有比较大的漏检。为了降低漏检率,检测出更多的小目标,在特征提取网络中又添加一层较大的上采样图。即是在生成的52×52的特征图上继续执行上采样操作,得到104×104大小的特征图。改进后的网络结构如图4所示,其中深色背景框为添加的元素,粗边框元素为输出元素。
图4 改进的YOLOv3网络结构
传统的IOU计算方法对无交集的区域无法衡量距离,且对于有交集的两个区域无法区分具体的相交位置及方向。使用GIOU来替代IOU能够很好的解决上述问题[21-23]。假设有AB两个区域,C为AB两个区域并集的最小外界矩形区域,如图5所示。GIOU的表达式如式1所示。
图5 最小外接矩形
(1)
(1)基于k-means++的聚类算法
采用k-means++算法,对标注的样本进行实验,最终确定锚框大小及聚类结果的可视化如图6、图7所示。
图6 k-means++聚类后的锚框尺寸
图7 k-means++聚类效果可视化
平均交并比(AvgIoU)由原来的的0.76提升到0.85,如图8所示。
图8 k-means聚类和k-means++聚类的AvgIoU对比
(2)综合对比实验
由于样本量较小,所有实验都基于迁移学习的方法。结果如表3所示。
表3 不同因素对FPS和mAP的影响
实验证明,对原始YOLOv3算法运用3种改进方法,具有更好的检测效果:通过图8可以发现,缺陷的漏检问题以及预测框不准问题可以被很好的解决。改进的YOLOv3算法的损失函数可以更快地进行收敛,且具有高的检测精度,如图9~图11所示。
(a)漏检 (b)检出 (c)缺陷未正确框出 (d)缺陷正确框出
图10 标准YOLOv3和改进的YOLOv3的loss曲线
图11 标准YOLOv3和改进的YOLOv3的PR曲线
另一方面由于添加了特征层、更改损失函数等方法加大了算法的运算量,算法的计算速度有所下降,但仍然能满足缺陷检测任务的需求。
(1)根据刀具表面缺陷的实际情况搭建了检测实验平台,对平台采集到的图像利用双边滤波可以很好的实现降噪效果;采用对比度增强的方法可以对刀具表面和缺陷起到很好的增强效果。
(2)使用k-means++算法生成共12个锚框,有更高的AvgIoU值,即可以实现更好的聚类效果。增加检测尺度、优化损失函数可以增加算法的检测准确率。
(3)改进的YOLOv3算法具有更快收敛的损失函数和更高的精度,帧率比标准YOLOv3算法低,但也能满足需求,比标准YOLOv3算法适合刀具的表面缺陷的检测。