基于YOLOv4的结构用锯材表面缺陷识别

2021-07-27 09:59王勇张伟高锐金征
林业工程学报 2021年4期
关键词:识别率分级表面

王勇,张伟,2*,高锐,3,金征

(1. 国家林业和草原局北京林业机械研究所,北京 100029; 2. 中国林业科学研究院林业新技术研究所,北京 100091;3. 福建省林业科学研究院,福州 350012)

结构用锯材(又称规格材)是木结构建筑构件的关键单元材料,同时结构用锯材不仅可以直接用于建筑构件,还可作为原材料制造平行胶合木(集成材)、正交胶合木(CLT)等木结构产品。由此可见,其力学性能和强度等级,对木结构建筑、集成材和CLT的安全使用性能具有直接影响[1]。按照木结构建筑材料的使用性能要求,并结合结构用锯材分级规则,应先实现对结构用锯材强度等级的有效评价、预测,再通过同等级或异等级组合加工成尺寸更大的梁、柱构件,应用于木结构建筑的受力结构构件;因此,在使用之前对结构用锯材进行相关质量评价、分级十分有必要,可以更好地做到优材优用,提高木材的综合利用率。

现阶段我国对于结构用锯材分级标准及设备的研究滞后于国外,致使国产材的竞争力远低于按照国外相关标准分等的进口材,这严重制约了国产锯材的应用及推广发展[2-3]。目前结构用锯材分级方法主要有目测分级和机械分级两种。然而在实际执行分级过程时上述两种方法均存在一定的难度,目测分级需要由专业工人用肉眼观察结构用锯材表面缺陷种类、尺寸、位置及数量,再结合经验评估其强度并划分等级。木材缺陷类型主要包括节子、蛀孔、裂纹、变形、腐朽、构造缺陷、损伤等,目测分等效率取决于工人的经验水平,分等准确率较低,分等结果不具有客观性;机械分级方法(弯曲应力法、振动测试法、应力波法、超声波法等)需要依靠专门化的试验测试设备,并且需要专业化操作人员进行试验测试分析,需要投入较大的人力物力资源[4]。

锯材的表面质量对木制品的质量起着至关重要的作用。锯材的表面质量主要受锯材表面缺陷(如节子、孔洞、虫眼、裂纹等)以及锯材表面纹理的综合影响[5],锯材表面缺陷,会直接影响锯材的使用强度。锯材作为木结构建筑中重要的结构用材料,在使用之前必须进行分级划分,以确保所选用的锯材能够满足所需的力学性能(如弹性、刚度等)要求。锯材的表面缺陷与密度、强度等指标一样,在材质检验工作中受到重视[6],如美国、法国、日本等发达国家已将其作为评价木材质量和决定木材产品价值的重要参考[7]。

目前针对锯材的表面质量评价仍主要依赖人工目测分级,然而目测分级方法不仅需要评判人员拥有大量的生产实践经验,同时还需要掌握锯材的各种缺陷与强度的关系性能等知识。更为重要的是,目测分级评判结果会因人而异,评判标准不具有客观性,不能做到优材优用、合理使用,无法真正提高木材的综合利用率。

在木材缺陷表面缺陷识别研究领域,国内外学者提出了一些基于机器视觉的木材表面缺陷检测方法。在这些基于机器视觉的木材表面缺陷的检测方法中,常用的典型方法主要包括基于支持向量机的木材表面缺陷识别[8-9]、基于小波变换和局部二值模式(LBP)的方法[10]、基于颜色和纹理特征的方法[11]、基于灰度共生矩阵和基于模糊BP神经网络的方法和基于小波变换和k近邻(KNN)的识别算法[12]等。然而,木材缺陷的形状、颜色、大小、质地和其他特征差异很大,使得难以分割和检测木材表面缺陷。 这使得上述识别木材缺陷的方法在一定程度上具有局限性,并且难以均匀地检测和分割木材表面缺陷。

笔者基于YOLOv4算法的深度学习方法,选取国内常用的云杉结构用锯材为研究对象,通过工业相机采集结构用锯材表面主要缺陷(节子、虫眼、裂纹),对锯材主要缺陷进行数字化表征(缺陷位置、类型等信息的可视化),定量地评价结构用锯材表面缺陷,为结构用锯材表面缺陷识别提供一种可行的方法。

1 材料与方法

1.1 锯材表面缺陷图像数据采集

基于YOLOv4的结构用锯材表面缺陷识别评价,需要搭建适宜的锯材表面图像采集装置,并获取足够数量的锯材缺陷图像。图1为笔者所在课题组搭建的锯材表面图像采集平台,图2为部分经过裁剪为256×256像素特定大小的锯材表面典型缺陷图像。课题组选取Basler a2A2590-22gcPRO GigE相机采集锯材表面缺陷图片,其水平/垂直分辨率为2 592×1 944 px,分辨率为5 Mp,帧速率为22 fps,帧速率压缩超越最高可达60 fps,工作温度为0~50 ℃。为了满足深度学习算法样本训练的需求,共采集活节、死节、裂纹以及虫眼4种类型锯材表面缺陷(图2)。

1.2 锯材表面缺陷识别方法

深度学习方法之所以在林业中得到众多科研人员的青睐,主要是由于深度学习作为一种深层的机器学习结构模型,在解决高维数据方面具有显著优势[13-14]。深度学习网络模型采用端到端、多隐层、逐层学习的方式,其工作原理就是仿照人类大脑的思维特质,由浅入深地对数据特征进行挖掘和学习,更加适应于大数据、数据特征抽象复杂等情况[15]。目前最为常用的深度学习模型多采用多层神经网络,而每一层神经网络均会将输入进行非线性映射,经过多层神经网络的非线性映射后,可以实现在深层神经网络中分析计算出较为抽象的特征,从而实现对复杂问题的分类[16]。随着深度学习在林业中应用的不断深入,越来越多基于深度学习方法的林业问题得以解决[17-19]。

1.2.1 YOLO算法模型概述

YOLO(you only look once)算法模型作为基于回归的目标检测方法的典型代表,Redmon等[20]于2016年首次提出YOLOv1的近乎实时目标检测深度学习框架。YOLOv1在处理目标检测时,将待检测目标作为回归问题处理,仅需对输入的待检测目标图像做一次处理任务,便可以得到待检测图像的目标位置坐标以及识别类型结果。YOLO算法的基本思想结构示意图如图3所示,YOLOv1在执行目标检测时,会将待检测图像缩放至448×448的固定尺寸,再通过卷积神经网络(CNN)实现目标边界框坐标、目标类型以及所判别类型的置信度预测,最后利用非极大值抑制算法(non-maximum suppression, NMS)获取最佳预测框实现目标检测。

图3 YOLO算法的基本思想结构示意图

YOLOv1在目标检测时得益于不需要生成候选区,使得其检测速度要优越于基于候选区域的检测算法,检测速度可达到45 fps。虽然YOLOv1算法拥有较高的检测速度,但YOLOv1网格划分较粗,检测精度较低。鉴于YOLOv1存在的问题和不足,2017年Redmon等[21]提出了YOLOv2,其采用了与VGG网络结构类似的Darknet-19作为其基本结构,并增加了锚点框(anchor boxes)预测边界框,显著提升了YOLOv2的目标检测精度。为了进一步优化YOLOv2,2018年Lu等[22]提出了YOLOv2的升级版本YOLOv3,YOLOv3采用了更深的Darknet-53网络结构,Darknet-53网络结构与ResNet101网络结构的效果相当,但其在网络的识别速度是后者的2倍。为克服YOLOv2对小目标检测精度不高的问题,YOLOv3的Darknet-53网络结构采用了3×3和1×1的卷积和残差结构形式,并且采用了FPN(feature pyramid networks for object detection)优化其多尺度检测效果,在网络的3个不同位置3种不同尺度的特征映射中实施检测,从而优化了对小目标的检测效果。

1.2.2 YOLOv4算法模型

YOLOv4检测算法在YOLOv3算法的基础上采用了更为复杂的网络结构,对数据处理、算法主干网络、网络训练以及损失函数等方面进行了优化,使得YOLOv4检测算法成为目前在目标检测速度和精度两者最为均衡的算法结构。YOLOv4通过综合使用Mosaic数据增强方法和遗传算法(GA),更为准确地选择超优参数,使得使用者在有限的GPU资源条件下就可获得较好的检测效果,极大地降低了数据训练对硬件的要求。

对输入的待检测图像,YOLOv4检测算法通过特征提取网络,获取待检测目标图像的特征,并将输入图像划分为S×S的网格,并由目标中心所在的网格负责检测任务。同时,YOLOv4检测算法采用IoU评价预测框和真实框间的交并比,其表达式如公式(1)所示。YOLOv4检测算法利用交并比IoU,检测算法评价边界框中是否存在待检测目标以及边界框的准确度,采用置信度Conf(Object)表征待检测目标的准确程度,置信度表达式如公式(2)所示。

(1)

Conf(object)=Pr(object)×IoU

(2)

式中:Pr(object)表征候选框中是否存在待检测目标,并采用数字1和0表示存在和不存在两种情况;IoU为评价预测框和真实框间的交并比;box(pred)为预测框,box(truth)为真实框。

YOLOv4检测算法采用CSPDarknet-53作为其主干网络,SPP为Neck附加模块,PANet为Neck的特征融合模块。其中CSPDarknet-53中有5个大残差单元,每个小残差单元个数分别为1、2、8、8、4[23]。图4为YOLOv4算法网络结构示意图。

图4 YOLOv4算法网络结构示意图

2 实验与分析

2.1 实验平台

开展基于YOLOv4算法的结构用锯材表面缺陷检测,实验平台为Windows10×64操作系统,CPU为Intel®Core(TM) i7-10700处理器,显卡为NVIDIA®GeForce®GTX 1660 Ti 6GB GDDR6,内存16G,深度学习软件系统为CUDA 11.0、cuDNN 7.6.5、Visual Studio 2019、OpenCV 3.4、Python3.7.7。

2.2 实验样本数据

实验测试前,通过结构锯材表面缺陷采集系统(图3)共采集锯材表面缺陷1 450张,其中活节缺陷550张,死节缺陷320张,裂纹缺陷295张,虫眼缺陷285张。其中,随机选取缺陷图像中80%的图像进行训练,剩余20%用于测试。实验样本数据均采用图像缺陷标注软件labelImg进行人工标注(图5),并生成相应的xml格式标记文件,实验样本具体实验数据如表1所示。

图5 基于labelImg软件的锯材表面缺陷样本数据标注

表1 锯材表面缺陷图像样本分配情况

2.3 实验测试

对活节、死节、虫眼以及裂纹等4类缺陷的实验样本图像分别进行标定之后,生成对应的xml格式标记文件。基于YOLOv4架构搭建深度学习模型,并设置训练样本时的一批样本数量batch=64,动量参数momentum=0.949,权重衰减正则项decay=0.000 5。数据增强参数angle为30°,60°,90°,120°,150°,180°,通过旋转角度生成更多训练样本;数据增强参数saturation=1.5,通过调整饱和度来生成更多训练样本;数据增强参数exposure=1.5,通过调整曝光量来生成更多训练样本;数据增强参数hue=0.1,通过调整色调来生成更多训练样本。设置决定着权值更新的速度的learning rate=0.001,最大迭代次数max batches=4 000。图6为实验样本训练过程中,随迭代次数的增加,损失函数值和平均识别率实时变化情况。通过分析图6可知,迭代次数进行到2 600次时,训练的识别率出现了100%正确识别,同时损失函数值为0.4左右,达到了较好的识别效果。

图6 样本训练过程损失函数值和平均识别率实时变化

样本训练结束后,利用迭代4 000次的权重文件对测试样本集进行目标检测验证,具体实验测试结果如表2所示,实验测试识别结果如图7所示。分析表2可知,YOLOv4算法对于活节缺陷的识别率为100%,对死节和虫眼的识别率为97.5%,均得到较高的正确识别率。对于裂纹缺陷的识别率为90%,相较于其他缺陷类型,识别率较低的主要原因为测试时存在漏检现象。这主要是由于裂纹缺陷在锯材图像中,相比于其他缺陷较难发现。总体上平均96.7%的识别率,相较于SVM和BP等算法90%左右的识别率[24],基于YOLOv4的锯材缺陷检测识别率具有较为明显的优势。

表2 锯材表面缺陷图像实验测试结果

图7 锯材表面缺陷识别结果图像

3 结 论

1)综合深度学习方法和YOLOv4算法,实现了对国产云杉结构用锯材的表面4种缺陷(活节、死节、裂纹和虫眼)的定位和类别识别,平均识别率为96.7%,可满足实际生产需要,为将来开展结构用锯材的表面质量评价,提供了理论和实践参考。

2)基于YOLOv4的检测算法,能够实现对活节100%的缺陷识别准确率,死节97.5%的识别率,虫眼96.7%的缺陷识别率,均达到了平均及以上的识别准确度,但是对于细小的裂纹缺陷存在误判和漏检现象,下一步需要结合缺陷检测的实际需求改进算法,特别是针对小缺陷目标的检测。

3)通过实验测试发现,YOLOv4算法对于小样本数据集具有良好的收敛性,并可快速将损失函数值降低到较小范围,同时训练精度也能够稳定在较高精度范围。

猜你喜欢
识别率分级表面
太阳表面平静吗
分级阅读对初中英语教学的启示
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展
3.《黑洞表面》(英/美)等
完形填空分级演练
神回复
完形填空分级演练