APP下载

改进YOLOv3算法用于铝型材表面缺陷检测

2022-12-01温秀兰焦良葆王树刚李子康

计量学报 2022年10期
关键词:铝型材准确率聚类

姚 波, 温秀兰, 焦良葆, 王树刚, 钱 峥, 李子康

(1.南京工程学院 自动化学院,江苏 南京 211167;2.江苏省智能感知技术与装备工程研究中心,江苏 南京 211167;3.无锡市计量测试院,江苏 无锡 214000;4.南京市计量监督检测院,江苏 南京 210049)

1 引 言

铝型材广泛应用于建筑、工业、医疗等行业,其表面缺陷直接影响铝型材的质量,长期以往会出现铝型材扭曲变形等问题,造成严重的安全事故,因此能否对铝型材表面缺陷进行快速准确检测极为重要[1]。然而在铝型材实际的生产过程中,由于多方面因素影响,铝型材表面会产生擦花、漏底、碰凹、凸粉等缺陷,这些缺陷会与铝型材本身的纹路相混淆,使检测难度增加。早期对表面缺陷检测多是采用人工肉眼进行检测,不仅耗时耗力而且准确率不高[2]。缺陷的自动检测大都是先根据现场环境特征,选取适合的光源,对缺陷所在的区域进行打光,以提高缺陷特征的提取;其次再选取合适的特征提取算法,如方向梯度直方图(histogram of oriented gradient, HOG),尺度不变特征变换(scale invariant feature transform, SIFT)等,再通过支持向量机(support vector machine, SVM)等分类器对缺陷进行分类[3]。因铝型材本身亮度高,极易反光,因此无法通过打光突出其缺陷特征,使得现有的缺陷检测方法难以达到良好的检测效果。

深度学习因具有适应性好,学习能力强和可移植性好等特点,成为近年来研究的热点,有关学者先后提出Faster-RCNN( faster region convolution neural network)[4],SSD(single shot multiBox detector)[5],YOLO(you only look once)等性能良好的网络模型,并成功应用于缺陷检测。其中具有代表性的有:文献[6]提出了一种基于改进Faster-RCNN的金属材料工件表面缺陷检测,通过引入多级ROI池化层结构设计算法和改进原图位置坐标,能够对金属材料表面缺陷很好的识别,但当缺陷区域与正常像素区域存在较大像素差时,检测效果较差。文献[7]将Faster-RCNN与FPN网络相结合,利用严格非极大值抑制算法对钢筋表面的缺陷做出检测,检测精度较高,但实时性方面还有待进一步提高。文献[8]分析了热镀锌表面的纹理特征,设计出检测精度和速度并重的G-SSD算法和G-Mobile分类网络,但是只有在稀疏的背景下,检测精度才高并且不能对同一图像上多个缺陷进行精确定位。文献[9]提出利用Mask-RCNN和引导滤波增强的方法,完成图像差分以及图像增强,实现对铸件X射线DR图像的缺陷检测,但整体83%的准确率不足以在工业生产使用。文献[10]提出将SSD算法和YOLOv3算法相结合,利用SSD算法准确率高和YOLOv3实时检测速度快的特点,完成了对输电线路螺栓缺陷的检测,单张图像的检测耗时仅0.5 s,准确率达到96%。

总结现有研究成果,发现深度学习在缺陷检测方面有独到之处,但是目前针对铝型材表面缺陷目标大且缺陷特征不尽相同的问题,研究甚少。本文提出了一种改进的YOLOv3算法用于铝型材表面缺陷检测,并与YOLOv3以及经典的卷积网络Faster-RCNN和SSD进行比较,以验证提出方法在准确率和检测效率等方面的有效性。

2 传统YOLOv3算法

YOLOv3网络模型特征的尺寸变化是通过卷积层改变卷积核的步长大小来改变的,为了能够更好的提取图像中的特征信息,在网络模型中加入了残差块。对于小尺寸目标的检测,YOLOv3借鉴了特征金字塔网络(feature pyramid network,FPN),将不同尺寸的特征进行融合,采用多尺度的预测方式来完成对小目标的检测,而在边界框的回归问题上,采用了非极大值抑制算法,保留置信分最高的边界框为最终目标的检测框[11]。

YOLOv3中损失函数定义[12]为

LLoss=Lbox_xywh+Lcls+Lconf

(1)

其中:Lbox_xywh、Lcls、Lconf分别表示预测框、类别及置信度带来的误差。

(2)

(3)

(4)

3 改进的YOLOv3模型

3.1 先验框的聚类分析

先验框是一组宽高比例固定的候选框,其宽高比例的大小会直接影响网络模型对于目标检测的精度和速度。YOLOv3在COCO数据集上针对3种不同的特征尺寸聚类出9种不同尺寸的先验框,但其聚类出来的先验框大小不能满足铝型材表面缺陷检测的要求,因此需要重新对数据集进行聚类分析,选取适合目标的候选框。

目前,常见的聚类算法主要有k-means聚类,均值漂移聚类,基于密度的聚类和凝聚层次聚类。由于k-means聚类算法具有原理简单,聚类效果较优和收敛速度较快等优点,因此选取k-means聚类算法来对数据集进行重新聚类。为了更好地评价聚类结果的好坏,采用平均交并比(average intersection over union,Avg IOU)作为评价指标,该值越大,说明聚类的结果越好。在k-means聚类算法中,k的值是自定义的,选取k=1~10,分别对数据集进行聚类分析,得到k值与Avg IOU的关系图,如图1所示。

图1 聚类分析结果图Fig.1 Cluster analysis result graph

由图1可见,随着k值递增,Avg IOU值逐渐趋于平缓,在曲线斜率最大的地方也即是k=3时,为最佳的先验框(anchor boxes)的个数。当k=3时,不仅能够减少大量的计算,快速地降低损失函数,还能减小候选框引起的误差,因此先验框个数取为3,在本数据集上聚类出来的先验框像素大小为(519×210)、(508×281)、(500×366)。

3.2 改进的YOLOv3网络结构

针对铝型材缺陷检测中缺陷目标大且特征不尽相同的问题,对YOLOv3的网络结构进行改进,改进后的网络结构见图2。原始的YOLOv3中输出像素大小为(13×13),(26×26),(52×52)3种不同尺度大小的特征图。考虑到铝型材缺陷较大,原始的(52×52)输出的特征图不能很好的将缺陷特征显示出来,因此改进后的网络结构剔除了(52×52)特征尺度的预测,在减少冗余候选框的同时还减小候选框带来的误差及计算工作量,提高了网络模型的精度和效率。为避免因剔除了(52×52)小尺度的预测导致一些浅层的语义信息丢失,使类别检测误差增加[13],将原YOLOv3在目标检测层前设置的6个convolution batch_normalize leaky(CBL)单元修改为4个CBL单元,再补充2个残差单元,来改善网络模型的精度,改进后的残差结构如图3所示。

图2 改进后的YOLOv3网络结构图Fig.2 Improved YOLOv3 network structure diagram

图3 改进前后的残差结构Fig.3 Residual structure before and after improvement

4 铝型材表面缺陷检测

4.1 数据集的获取

数据集源于某铝型材商品制造厂的“铝型材瑕疵识别”数据集,在数据集中得到图4中的4种典型铝型材表面缺陷图像,分别为擦花(scratch)、漏底(bottom)、凸粉(convex)和碰凹(bump)。

图4 典型铝型材表面缺陷图像Fig.4 Typical surface defect image of aluminum profile

首先对采集到的数据集进行整理,前期采集到3 058张缺陷图像,通过对数据集进行旋转、调整饱和度和曝光量等手段,将数据集扩充到10 000张,其中训练集占80%,验证集占10%,测试集占10%。

4.2 实验运行环境

实验硬件环境配置见表1。软件环境采用CUDA10.2,OpenCV3.4.0,VisualStudio2019,其中深度学习框架采用Darknet-53。

表1 实验硬件环境配置Tab.1 Experimental hardware environment configuration

4.3 网络训练

在网络模型训练过程中,通过损失函数loss曲线观察网络训练的状态,改进前后的YOLOv3-LLoss曲线对比见图5。由图5可见,原YOLOv3算法在迭代到7 000次时,损失函数逐步收敛,当迭代到 10 000次的时候,LLoss值降到1.0左右,而改进后的YOLOv3其损失函数在迭代到约4 000次时,开始逐步收敛,当迭代到10 000次的时候,LLoss值降到0.2左右。由此可见,改进后的网络模型训练结果更佳,可以作为一个合适的网络模型进行测试。

图5 改进前后的YOLOv3-LLoss曲线图Fig.5 YOLOv3-LLosscurve before and after improvement

4.4 改进前后检测算法性能的对比

在目标检测领域常用准确率P和召回率R来评价1个算法的优劣[14],其中P是用来评估1个模型预测是否准确,R是用来评估1个模型检测的目标是否全,其计算公式如下:

(5)

式中:NTP表示模型正确检测目标的个数;NFP表示模型错误检测目标的个数;NFN表示模型没有检测出目标的个数;分别使用YOLOv3改进前(v3)和改进后(i-v3)来对测试集的图片进行检测,计算其P和R,计算结果如表2所示。

表2 算法改进前后的检测性能结果对比Tab.2 Comparison of the detection performance results of the algorithm before and after the improvement

由表2可见,针对本文缺陷检测,改进后的YOLOv3算法其P达到了92.64%,R达到了94.13%,分别较改进前的算法提升了9.4%和9.37%,在性能上有了很大的提升。

为了更好地评价模型的准确性,通常在评价算法性能优劣时还会引入平均准确率AP(average precision)和平均准确率均值mAP(mean average precision)两个指标[15]。采用上述2个指标评价结果如表3所示。由表3可见,改进后的检测算法在4种缺陷检测上的平均准确率都有了明显的改善,其平均准确率均值从78.05%上升到96.49%,提升了18.44%,而且检测速度从31帧/s提升到现在的47帧/s,由此可见,提出的改进算法在准确率和检测速度方面都有很大提升。

表3 算法改进前后的检测结果对比Tab.3 Comparison of the detection results of the algorithm before and after the improvement

图6同时绘制了改进前后算法的实际检测效果。其中,图6(a)和图6(b)分别是改进前后算法对擦花(scratch)和凸粉(convex)的检测结果,对比可见:原YOLOv3算法在没有对数据集重新进行聚类分析时,会有重复检测的边界框,而改进后的算法解决了该问题,并且重新聚类分析后,边界框的尺寸得到了优化,边界框能够完美的将缺陷区域标记出来。图6(c)和图6(d)分别是改进前后算法对碰凹(bump)的检测结果,由图可见原算法会出现缺陷漏检的情况,而改进后的算法则可以实现正常检测。图6(e)和图6(f)分别是改进前后算法对漏底(bottom)的检测结果,可见原算法将铝型材漏底的缺陷误检测为擦花缺陷,而改进后的算法可以将误检的缺陷正确检测出来。

图6 改进前后算法的实际检测效果图Fig.6 The actual detection results of the algorithm before and after the improvement

4.5 不同目标检测模型的对比

为了进一步验证提出方法的有效性,在同一数据集下,分别采用目前用于缺陷检测的主流Faster R-CNN,SSD,YOLOv3算法对本文缺陷进行检测[16],并与改进后的YOLOv3算法进行比较。4种不同的目标检测模型对比结果如表4所示。

表4 不同算法的检测结果Tab.4 Detection results of different algorithms

其中Faster R-CNN与SSD算法在PyTorch框架下的实验结果如图7和图8所示。

图7 Faster R-CNN检测结果Fig.7 Faster R-CNN detection results

图8 SSD检测结果Fig.8 SSD detection results

由图7、图8和表4可见,改进后的YOLOv3算法其准确度最高,达到了96.49%,Faster R-CNN其次,这主要得益于网络结构的优化,加大了对大尺度特征的检测,并且优化了目标检测层之前的残差结构,提高了对高层的特征信息复用,并且相对于其它几种网络模型,其检测速度更快,主要是因为只选取了两组尺度特征对缺陷目标进行检测,简化了网络结构,从而提升了网络的运行速度。

5 结 论

针对铝型材表面缺陷问题,提出了改进的YOLOv3算法,其主要特点在于对自制的数据集重新进行了聚类分析,选取了最佳的候选框尺寸,提高了目标检测的精度;同时对YOLOv3的骨干网络进行了重新构造,将目标检测层之前的6个CBL单元改成4个,再补偿2个残差单元,大量实验结果证实了将提出的改进算法用于铝型材表面缺陷检测使得检测准确率高和检测速度分别达到了96.49%和47帧/s,适于在铝型材行业推广应用。

猜你喜欢

铝型材准确率聚类
一种傅里叶域海量数据高速谱聚类方法
如何有效提升铝型材挤压的生产效率及实践途径
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
铝型材组合幕墙安装施工中的质量控制策略
一种铲齿型PTC加热器用铝管的制备方法
面向WSN的聚类头选举与维护协议的研究综述
改进K均值聚类算法