基于改进YOLOv4的地板缺陷检测算法

2023-10-29 01:32陈浩栋孙伟波李红军
计算机仿真 2023年9期
关键词:先验特征提取准确率

陈浩栋,张 弛,孙伟波,李红军

(武汉纺织大学机械工程与自动化学院,湖北 武汉 430200)

1 引言

地板表面缺陷决定了地板的产品等级,地板的制造容易产生表面缺陷,导致企业的生产效益下降[1],表面质量是评判地板质量的重要指标之一[2]。国内的地板制造厂商大部分还是在使用传统的人工目测方式,检测效率低,人工容易产生视觉疲劳[3],出现漏检误检等问题,并且人工目测对评判人员要求高,需要拥有大量的实践经验,同时对地板纹理缺陷的判断会因光线和经验等问题出现差错,评判标准缺乏客观性。近几年来,国家不断推进工业4.0智能化工厂和智能制造的方针[4],实现地板表面缺陷自动化检测有着重要的应用意义。传统的机器视觉检测方法受限于计算机的计算能力,对计算能力要求高。深度学习是机器视觉技术的进一步发展,基于深度学习的目标检测算法已逐步应用于各领域工业生产质量检测中,深度学习网络的框架不断发展,从CNN(Conventional Neural Net-work)[5]卷积神经网络解决分类问题,到可以生成候选框的RCNN(Region-Conventional Neural Network)[6]、Fast-RCNN[7]、Faster-RCNN[8]等的目标检测算法,应用比较广泛的是YOLO(You Only Look Once)[9],YOLO使用Reset[10]-[11]残差网络结构,增强了对特征的提取效果,在缺陷检测中有着比较好的表现。

在地板表面缺陷识别研究领域,国内外已有学者做出研究,例如梁浩、曹军等[12]学者提出先使用近红外光谱对实木地板进行缺陷检测,对读取到的红外光谱数据进行贝叶斯网络分析,从而辨别地板表面的活节、死节等缺陷。张怡卓、许雷等[13]学者提出通过小波分析和缺陷定位将实木地板表面的背景剔除,分割出缺陷,取得了较好实验效果。程耀瑜等[14]学者提出的基于光度立体技术的地板缺陷检测。以上的算法均以检测活节、死节、裂纹等缺陷为主,存在一定的局限性,没有能同时做到对小目标的缺陷、纹理类缺陷检测的算法。

因此,本文通过在以上文献中得到的思路,建立一套基于改进型-YOLOV4的地板缺陷检测算法。通过对地板表面缺陷的数据特征对网络进行修改,增加特征提取网络中对小物体的信息提取,使用数据集中的缺陷数据对检测先验框进行优化。通过实验验证了改进后的YOLOv4进行地板表面缺陷检测的可行性,实现对小目标缺陷和纹理类缺陷的检测。

2 YOLO V4算法原理

YOLOv4是Alexey等人提出的一种目标检测 模型,算法主要由三部分构成:特征提取、特征融合、预测结果。特征提取部分采用CSPDarknet53[15]的主干特征提取网络,对YOLOv3的Resblock-body的结构进行修改,使用CSPnet网络结构,新的残差网络块具有更高的语义信息。CSPResnet53的网络结构如图2所示,经过多层卷积和池化的特征提取,网络输出三个特征层,分别是(13,13)、(26,26)、(52,52),随后三个特征层进入特征融合部分。

对于特征融合部分,在YOLOv3的特征金字塔网络FPN的基础上添加了SPP模块。13×13的特征层将进行三次卷积,输入到SPP模块中,同步进行三次最大池化,最后进行拼接,如图1所示。YOLOv4的SPP-(Spatial Pyramid Pooling)[16]模块是受SPP-net的启发而来,能够显著地改善域尺寸,在提高上下特征提取的同时,不降低网络的处理速度。在YOLOV4中,SPP可以有效避免神经网络对图像区域卷积等操作后导致图像中的目标扭曲问题,同时可以有效解决卷积神经网络对图像重复特征提取的问题,将主干网络输出的深层特征向浅层传递,大大提高产生先验框的速度,节省了计算的时间。

图1 SPP结构图

图2 CSPDarknet53网络结构图

预测部分采用的是CIOU Loss,预测部分的信息包括预测置信度得分score、先验框尺寸及坐标等,回归函数包含了三个重要几何因素:预测框中心点和长宽、交互比。YOLOHead预测层对先验框的坐标、长和宽等信息进行调整,通过置信度得分筛选掉部分先验框,最后采用距离交并比DIOU的非极大值抑制算法,输出最终的预测结果。

3 改进的地板表面缺陷检测算法

3.1 YOLOv4的多尺度检测改进

在CSPDarknet53特征提取网络输出的特征层中,通过残差网络块,对图像进行卷积处理,提取图像特征,并在最后的三层,输出三个特征层,分别是13×13、26×26、52×52,其中13×13的特征层进入SPP模块进行最大池化处理,如图3所示。26×26、52×52两个模块进行卷积,先进行上采样,再进行下采样,最后进行特征融合,拼接特征信息,低层网络特征图用来检测小物体,高层网络特征图用来检测具有大轮廓的物体。

图3 改进后YOLO-V4网络图

在实际的地板缺陷检测中,有些缺陷,如黑点、小杂质等目标比较小,检测效果较为不理想。因此本文改进特征提取网络的输出,增加大小为(104,104)的特征层,特征提取网络会将图像分为104×104的网格,微小的缺陷将通过此特征层进行预测,如图3中加黑部分所示。

改进后的网络中(52,52),(26,26),(13,13)的三个特征层将通过卷积和Up-Sampling进行特征融合,最后与(104,104)的特征层进行拼接,拼接后将分为两部分,一部分作为特征层的output输出到YOLO head进行下一步的数据转换,另一部分将进行Downsampling的下采样操作,将经过下采样的特征层与(52,52)的特征层进行拼接,进行卷积与特征融合,再做同样的下采样与下面的特征层融合,使特征提取的更加充分,减少信息的丢失。

3.2 基于数据集的先验框改进

YOLOv4是使用先验框(anchors boxes)对目标检测的图像进行预测,初始的先验框是由作者通过聚类COCO数据集得到的,初始的先验框标定了常见目标的宽和高,在进行预测的时候,可以获取更加准确的边界框。在改进前的YOLOv4中,每个特征层都有3个先验框,三个特征层共有9个提前计算好的先验框。由于地板上的缺陷大小不一,有的缺陷占据了整副图像,有的缺陷只是很小的一个黑点,因此想要提高缺陷的识别率,必须要对先验框的尺寸进行优化,对数据集的缺陷数据进行聚类分析,使其更适合用来检测地板表面缺陷。

标准的K-means聚类分析使用的是欧式测距法测量先验框和临近的目标真实框之间的距离[17],这样会导致目标框越大,产生的误差越大,因此引用新的计算方式[18]:

d(box,centroid)=1-IOU(box,centroid)

(1)

式中box代表数据集样本中标注的边框;centroid代表聚类分析时作为聚类中心的边框;d(box,centroid)代表数据集样本中标记的边框到聚类中心的距离。

同时采用AvgIOU的方法来检测聚类分析的结果的好坏,AvgIOU的计算方式

(2)

式中的IIOU(B,C)表示聚类的中心框与数据样本的中心框的交互比;k代表聚类簇的数量;n代表样本的总数;nk代表第k个聚类中心样本的个数。聚类结果如图4所示,结果的先验框为(16,23),(20,32),(22,49),(30,42),(34,97),(49,49),(49,401),(59,157),(119,301),(129,85),(272,388),(378,92)。

图4 k-means聚类分析结果

3.3 地板表面缺陷检测流程

按照地板的缺陷种类,建立好地板数据集。使用改进后的K-means聚类算法进行聚类分析,生成最优的12种先验框后,将先验框和数据集按照8:1:1的比例作为训练集、验证集、测试集传入改进后的YOLOv4网络中进行训练,在改进后的CSPDark-net53中进行卷积池化、上采样和下采样等特征提取后,将特征层结果输出,最后训练出loss值最低的模型文件。

训练出的模型使用mAP进行检测率和分类正确率计算,达到预期效果后进行实际现场预测调试,设置好阈值score和交互比IOU后,使用现场获取的地板原图进行检测缺陷,检测结果为缺陷类型、缺陷位置、缺陷大小,记录结果,完成检测。改进后YOLOv4的地板表面缺陷检算法如图5所示。

图5 地板表面缺陷检算法流程图

图6 地板缺陷分类

4 实验与结果分析

4.1 实验平台

本文的实验配置为台式计算机,CPU为intel(R) Core(TM) i7-11700、GPU为NVIDIA GeForce RTX 3060 12G、运行内存为32G;64位Window 10操作系统,开发环境为:Python3.7、Tensorflow-gpu2.4.0、cuda11.0。

4.2 数据集

实验的图像采集部分使用工业摄像头对缺陷地板进行拍摄,获取了5200张图像大小为416×416像素的缺陷图像,其中训练集、验证集、测试集的比例为8∶1∶1。因为地板的纹理看起来比较相近,故数据集中添加了1000张困难样本既正常的地板图像,添加困难样本在训练的时候可以提高模型对缺陷的泛化能力,同时防止模型过拟合,分类后的地板数据集如图7所示。缺陷标记使用Labeling软件进行标记,标记结束后,会将缺陷名称、缺陷框的左上和右下的坐标信息储存在xml文件中,训练模型的时候将提取这些信息进行训练。

图7 地板缺陷训练集

地板表面的缺陷种类有很多,传统的分类有19种缺陷,如果想要训练多目标的缺陷检测模型,每一种目标都需要庞大的数据集,但是实际的地板表面缺陷数据集中,部分缺陷目标数据集较少,难以单独作为目标进行训练。因此本文根据地板表面缺陷的特征、大小等信息进行研究,对具有相似特征的缺陷划分为一个大类,使用labeling标记后进行训练。

如图6所示,本文将地板缺陷分为了黑点类、纹理类、亮点类共3类。

4.3 训练模型

初始的学习率为0.0001,最小学习率为0.00001,训练的batch_size为8,训练epoch为100,IOU的阈值(IOU Threshold)为0.4,动量参数monentum为0.953。

训练模型时,通过loss值的曲线可以查看训练的效果,如图8所示。YOLOv4中计算loss使用的损失函数为binary_crossentropy,输出张量与目标张量之间的二进制交叉熵。计算方式

图8 训练loss值图

(3)

4.4 实验结果分析

为了评估地板缺陷检测的结果,本文使用准确率Precision、召回率Recall、分类准确率Classification,作为模型检测结果的评判标准。

(4)

(5)

(6)

式中:XTP代表模型预测缺陷正确的数量;XFP代表无缺陷但模型出缺陷的误检数量;XFN代表有缺陷但模型未检测到的漏检数量;XFC代表模型检测出缺陷但分类出错的错检数量。准确率Precision表示了模型预测出所有的缺陷中,正确的缺陷所占的比例。召回率Recall代表在所有人工标记的真实缺陷中,模型预测出正确缺陷所占的比例。分类准确率Classification代表在模型检测出所有缺陷中,分类正确的比例。

评估模型整体检测效率使用mAP,将Preci-sion和Recall进行接合,计算出三种缺陷的各自的mAP:黑点类检测率为94%;纹理类检测率为82%;亮点类检测率为91%,整体的检测率为89.07%。

再对网络分类准确率进行测试,分类准确率Classification使用300张验证集进行单独测试,其中100张黑点类、100张纹理类、100张亮点类,将图像进行缺陷检测,统计正确检测XTP的数量、漏检XFN的数量、误检XFC的数量,最后使用式(6)计算分类准确率。实验结果如表1所示。

表1 地板表面缺陷检测分类准确率

从表1和实验结果中分析得出,黑点类的分类准确率为93.91%;纹理类的分类准确率为93.33%;亮点类的分类准确率为96.73%。从实验结果分析对比得知,纹理类的部分小划痕和黑点的特征相似,会出现小部分误检情况,但并不影响整体的分类准确率,最后三个缺陷的平均分类准确率为94.62%,符合分类准确率的要求。

4.5 实验结果对比

通过实际检测结果进行网络优化对比,本文的网络名称定义为“改进型-YOLOv4”,将使用初始的YOLOv4、YOLOv3、Faster R-CNN进行对照实验。取这三个网络,使用相同的训练集,学习率与训练批次等训练参数均与改进型-YOLOv4设置相同。训练出模型后,使用mAP对各自的缺陷检测率做一个评估,同时随机选取地板表面图片进行缺陷检测,对比检测效果。

对三种算法的mAP进行统计,如表2所示,YOLOv4的检测率比YOLOv3的高,改进型-YOLO-v4的mAP比改进前提升了5.77%,其中黑点类和亮点类的小目标检测分别比改进前提升了8.64%和7.22%。改进后加入了(104,104)的特征层输出,使得黑点、墨渍等不明显的小目标更容易被检测到,因此改进型-YOLOv4比未改进前有更好的表现。

表2 各算法检测率对比

两个不同模型的地板表面缺陷检测对比如图9所示,对比分析得出,在小斑点、小黑渍等目标的检测效果上,改进型-YOLOv4有着更好的效果,并且通过预测框大小的对比,可以看出经过K-means聚类分析后的先验框在预测目标的时候表现更好,标记缺陷的预测框尺寸更为精准。综上在地板表面缺陷检测效果上,改进型-YOLOv4检测效果明显好于未改进的。

5 结束语

本文提出了一种基于改进YOLOv4的地板表面缺陷检测算法。在原有的YOLOv4算法基础上,对CSPDarknet53的特征提取网络输出做了修改,增加了特征层的输出,增加的特征层为(104,104)用于检测小目标缺陷。在主干网络中,增加的特征层进行上采样融合和下采样融合,使特征提取的更加充分,减少信息的丢失。同时在原有的先验框聚类分析上,采用了自己的数据集进行聚类分析,将先验框的数量调整至12个,新的先验框更符合真实缺陷框。通过实验对比,改进后的YOLOv4比改进前的YOLOv4和YOLOv3检测率要提升了,加强了对地板表面缺陷的检测能力。接下来要对改进后的YOLOv4的检测速度进行研究,并做出提升。

猜你喜欢
先验特征提取准确率
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基于无噪图像块先验的MRI低秩分解去噪算法研究
基于Daubechies(dbN)的飞行器音频特征提取
高速公路车牌识别标识站准确率验证法
基于自适应块组割先验的噪声图像超分辨率重建
Bagging RCSP脑电特征提取算法
基于平滑先验法的被动声信号趋势项消除
先验的废话与功能的进路