APP下载

基于YOLO v3算法的不同主干网络对织物瑕疵检测

2021-04-07谢景洋

测控技术 2021年3期
关键词:布匹瑕疵主干

谢景洋, 王 巍, 刘 婷

(国合通用(青岛)测试评价有限公司,山东 青岛 266000)

我国纺织业的总产量超过了世界总产量的一半,企业在高量产的同时也不可避免会产生很多带瑕疵的布匹,这些布匹会让企业的利润损失35%~55%[1]。所以有效实现布匹瑕疵检测、保证生产布匹质量是企业生存的关键。人工检测方法缺陷明显,利用机器视觉检测是目前的趋势。

传统的机器视觉织物瑕疵检测方法中,频谱分析方法[2]和视觉检测性方法[3]过于依赖滤波器组的选择,对复杂织物检测性能不好,字典学习方法[4]自适应性不强,模型方法[5]的计算量大而不适合小目标检测。这些机器视觉检测方法都需要对图像的特征进行提取,大部分图像的特征提取需要有专业的计算机视觉知识,并且不同纹理的面料,其图像的提取特征可能是不同的,常常需要对算法进行重新设计,模型的可迁移性不高。在面对大分辨率的图片、复杂的背景环境和大小差异悬殊的布匹瑕疵中,需要更具一般性并且训练成本低的检测方法。

卷积神经网络(Convolution Neural Network,CNN)的算法和网络结构的优化,带来了图像识别算法准确率的极大提升[6]。CNN在图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点,避免了特征提取和分类过程中复杂的数据重建,不需要人为地进行特征提取的操作,实现真正的端到端(End-to-End)的学习。景军峰等[7]利用微调卷积神经网络模型Alexnet对织物疵点图像进行特征提取,实现在两类织物测试中达到95% 以上的分类准确率,但该方法仅实现了2种织物瑕疵的分类任务,并不涉及位置检测。刘闪亮[8]在目标检测模型 SSD 的基础上,根据织物疵点图像的特征改进模型,提出的卷积神经网络对织物疵点图像有很好的检测效果,但还是存在检测率不是太高的问题。赵志勇[9]利用改进的Faster-RCNN 算法与前置的 Inception-ResNet-v2 网络进行结合,实现了对多种织物瑕疵的检测,识别率较高,但是Faster-RCNN的识别速度并不快。探索合适的卷积神经网络算法对织物瑕疵进行检测,实现精度和检测速度的平衡,还需要有更多的研究。

在利用卷积神经网络进行目标检测的算法中,由 Redmon等[10]在 2015 年提出的YOLO算法是一种快速目标检测算法,适用于需要快速检测的工业领域。目前已经发展到了第3代的YOLO v3[11]利用图像特征金字塔在小目标识别上有了明显的提升,适用于布匹的瑕疵检测。

由于部分布匹瑕疵的大小分布悬殊,为提高检测精度,对输入神经网络的图片分辨率要求较高(416像素×416像素→608像素×608像素),这也明显降低了网络的检测速度。将YOLO v3的算法结构应用到布匹瑕疵检测中,对比了Darknet-53、MobileNets和Res2Net三种主干网络搭建方式对YOLO v3算法在布匹瑕疵检测中检测速度、参数量和精度的影响,利用Grad-CAM可视化工具研究了三种主干网络对不同尺度缺陷的特征提取能力。

1 YOLO v3模型原理和主干网络修改

YOLO v3在目标检测过程中,缩放输入图片的大小到正方形大小P×P作为输入图片,经过卷积神经网络进行特征提取。根据预测目标的大小,分成3个尺度的输出,如图1所示,其中输出y1、y2和y3分别代表预测大边框、中边框和小边框的物体。网络结构中红虚线框内是主干网用来提取图像的特征,为提高主干网络的特征提取能力,主干网络一般会在大型的分类数据上进行预训练。从主干网络中分成3个尺度的输出利用了FPN[12]网络的特征金字塔结构,其过程是利用网络最后提取的深层特征信息上采样后复用在前期特征图上。在小物体的识别上,需要利用前期特征图的信息,这时候信息丢失少,小物体的信息也不容易丢失。但是前期特征图的信息没有经过多层深度神经网络的特征提取过程,而特征金字塔结构让前期特征图也具备一定后期特征图的“深度提取”信息,从而提高小物体识别的准确性。图1中输出yi(i=1,2,3)的结构为

yi=Si×Si×(3×(4+1+C))

(1)

式中,Si为输出的单元格个数;数字3为每个单元格的3个anchors;数字4为目标的坐标信息(tx,ty,tw,th);数字1为置信度tconf;C为所有目标种类的概率值大小,其维度为目标类别的个数。

1.1 主干网络

对于织物瑕疵的视觉检测,由于部分缺陷的尺度比较小,这就需要图片具有足够的清晰度,这会导致神经网络输入的图片较大,进而降低检测速度。这时候,如果用一些轻量型的主干网络,可以提升网络的速度,并减少参数量。但轻量型的网络容易出现欠拟合的问题。某些具有较好的特征提取能力的轻量型网络是值得尝试的解决方案。选取了相对于原始Darknet-53更轻量的MobileNets和Res2Net作为YOLO v3算法的主干网络,并研究这些主干网络在布匹瑕疵检测中的效果差异。

1.1.1 原始Darknet-53

Darknet-53[11]是Redmon在YOLO v3算法中提出的。相比广泛使用的ResNet-101或ResNet-152,Darknet-53具有更快的推理速度,但是在ImageNet数据集上准确率和二者相当。其核心是图1中CBL组件的复用,CBL使用了标准卷积层(CNN)+批标准化(BN)+激活函数(Leaky ReLU)。其中Res_nuit组件中使用了残差连接,残差网络的引入是为了解决网络深度变深以后的性能退化问题[13]。

1.1.2 轻量化的MobileNets

MobileNets[14]的核心之一是将标准的卷积换成深度可分离卷积的形式。深度可分离卷积(Depthwise Separable Convolution)就是将普通卷积拆分成为一个深度卷积和一个逐点卷积。深度卷积将卷积核拆分成为单通道形式,在不改变输入特征图像的深度的情况下,对每一通道单独进行卷积操作,这样就得到了和输入特征图通道数一致的输出特征图。逐点卷积就是1×1卷积,主要作用是进行通道的信息交换和对特征图进行升维和降维。这样的计算方式使得深度可分离卷积的参数量和计算量都比一般卷积明显减少。

图1 YOLO v3网络结构

深度可分离卷积可以在不改变网络结构的条件下,直接替换标准卷积,仅对主干网络的CBL组件修改为SBL组件,如图2所示。

图2 主干网络CBL组件修改为SBL组件

为突出主干网络对YOLO v3算法的影响,在替换Darknet为MobileNets时,在主干网络之外的卷积模块仍使用标准卷积模块,并保证整个网络中每次经过残差结构之后的特征图深度和原始YOLO v3算法特征图深度相同,从而直接对比主干网络的特征提取能力。

1.1.3 Multi-Scale特性的Res2Net

在多个尺度上表示特征对于许多视觉任务非常重要,YOLO v3中特征金字塔的使用就是为了增加特征图上多尺度的特征表示。大多数现有方法以分层方式(Layer-Wise)表示多尺度特征。在Res2Net中,Gao等[15]通过在一个单个残差块内构造分层的残差类连接,为CNN提出了一种新的构建模块。Res2Net 以更细粒度(Granular Level)表示多尺度特征,并增加每个网络层的感受野(Receptive Fields)范围。其结构和普通残差网络的对比如图3所示,Res2Net将特征图根据深度平均分为s等份(s=4),计算过程如下。

(2)

式中,yi为第i个特征图分块的输出;xi为第i个特征图分块的输入;Ki为第i个3×3小卷积核。

图3 普通残差结构和Res2Net结构

利用Res2Net的主干网络res unit组件替换如图4所示。其中SP模块是图3(b)中蓝框标出的分层残差连接,SP模块前后两个CBL中用的都是1×1卷积用来降维和升维。

为突出主干网络对YOLO v3算法的影响,在替换Darknet为Res2Net时,其替换原则同1.1.2节中MobileNets的替换过程,从而直接对比主干网络的特征提取能力。

图4 主干网络Res unit组件更改为Res2Net组件

1.2 可视化工具Grad-CAM

为对比YOLO v3主干网络在布匹瑕疵检测中的特征提取能力,需要关注主干网络究竟提取了图片中哪些关键信息。如果网络集中提取了图片缺陷部分的信息,则认为主干网络的特征提取能力更强。CAM(Class Activation Mapping)是一个帮助可视化CNN特征提取的工具。使用CAM可以清楚地观察到网络所关注的图片区域[16]。在YOLO v3算法中,不仅关注分类问题,其输出是一个综合位置、置信度、分类的结果,本文使用更泛化的Grad-CAM方法[17]研究网格输出值所关注的区域。在第1节的式(1)中,网络最后输出为S×S个网格,假设缺陷的种类C=20,则每个网格输出的类别得分为

(3)

(4)

最后计算Grad-CAM:

(5)

使用ReLU函数可以更加关注特征图中对score值有积极影响的部分[17]。

1.3 迁移学习

在实际应用中,训练一个深度网络需要大量的数据集,但实际应用中大规模的数据集是很难获取的。使用的训练数据集图片有4000多张,为缩短训练时间,并提升网络的泛化性能,神经网络模型在COCO数据集上预训练之后,再迁移到布匹瑕疵图片上进行训练。迁移学习采用冻结策略+全局训练的方式,冻结策略中只训练图1中y1、y2和y3前的conv层,并冻结其他层不训练。全局训练指的是训练整个YOLO v3网络。

2 实验结果与分析

2.1 实验数据及配置环境

实验数据来源于阿里云天池数据大赛平台,一张图片的分辨率为1000像素×2446像素,同一张图片中可能同时存在多种缺陷类型,并且缺陷大小差异很大,具有较大的识别难度,典型样张如图5所示。

图5 带3种缺陷的图片

样本数据分为20类,编号依次为1,2,…,20,图片数量总计为5895张。取图片的80%作为训练集,20%作为测试集, 最后用于实验的训练数据集为4716张,测试数据集为1179张。本实验使用的测试样本瑕疵类型为20种,并保证每种测试集瑕疵样本量(每种训练集瑕疵样本量在1∶4左右)。对训练数据集采取在训练过程中进行随机水平或垂直翻转、随机剪裁、随机仿射变换的数据增强方式。不变形压缩后输入神经网络的图片大小是608像素×608像素。

实验运行环境:CPU Intel®CoreTMi7-8750H,16 GB内存,GPU NVIDIA GeForce GTX 1060Ti 6 GB,程序代码使用Windows下的TensorFlow框架进行编写和运行。

图6为训练样本与测试样本的分布情况。

图6 训练样本与测试样本的分布情况

2.2 实验结果1

为保证不同主干网络的实验结果有对比性,需要保证训练过程是尽可能相同的。在COCO数据集上充分预训练到测试集的损失值不再下降后,再迁移训练到布匹瑕疵数据集上进行训练,迁移训练的冻结层描述见1.3节。

选择warm up的原因是防止网络在早期训练过程中发散[18],特别是迁移学习开始阶段,发散是更容易发生的。第33个epoch设置warm up是因为学习率发生了改变。由于输入的图片尺寸比较大,容易导致GPU训练过程中内存不足,所以Batch size取2。为防止Batch size小导致训练过程中噪声大的问题[19],把学习率设置得比较小。迁移训练过程的参数如表1所示。

表1 训练参数设置

图7和图8分别为3种主干网络的训练集损失曲线和测试集损失曲线在接近收敛区的对比,为突出并对比收敛区结果,这里截取了第33个epoch开始到整个训练结束的损失曲线。

图7 第33epoch之后训练损失曲线

图8 第33epoch之后测试损失曲线

由图7可以看出,3种主干网络在训练集上的损失值是不断下降的,并且还有继续下降的趋势,这说明此时3种主干网络对于训练数据集都不是欠拟合的。在训练损失值上,Res2Net最低,MobileNets最高。没有继续训练是因为此时3种主干网络的测试损失值都已经不再下降并且出现波动。测试集损失曲线更能表征网络在全新未知数据上的表现力。Res2Net的训练损失值虽然最低,但从图8中可以看出,其测试损失值在训练后期有明显震荡并不断上升,说明Res2Net结构的网络已经出现明显的过拟合。而MobileNets和Darknet-53在训练后期的测试损失值保持平稳,并保持在基本相同的水平。综上,Res2Net在训练损失曲线上有较好的表现力,但是在测试损失曲线上不如MobileNets和Darknet-53。

表2为各主干网络的参数量和最后的训练结果,其中测试集mAP取各自主干网络测试损失值最小的网络计算获得。

表2 主干网络参数和训练结果对比

从表2中可以看出,MobileNets的检测速度比Darknet-53和Res2Net快至少30%,而参数量只有Darknet-53的1/3,Res2Net的1/2,Res2Net检测速度和Darknet-53接近,但是参数量更少。对比三者的mAP值,原始的Darknet-53的检测精度最高,MobileNets精度和Darknet-53很接近,Res2Net的精度相比于二者都低一些。综上可以看出,MobileNets在明显提高检测速度、减小参数量后,也可以达到和原始YOLO v3主干网络Darknet-53接近的检测精度。Res2Net虽然有更精巧的网络结构,但在布匹缺陷检测上的优势并不明显。

2.3 实验结果2

为了更深入了解2.2节实验结果1的3种主干网络表现力,利用Grad-CAM对特征图进行观察,研究卷积层提取的关键信息。在本节的讨论中,需要指定式(4)和式(5)中的特征图A。根据YOLO v3的网络结构及1.2节中的讨论,在替换主干网络时,并没有改变各部分输出特征图的大小和深度,所以,理论上可以对比3种主干网络任意特征图的特征提取结果。由于YOLO v3特殊的特征金字塔结构,不同尺寸的输出结果对应了不同的网络输出路线,这里选取了主干网络中3路直接的输出结果作为特征图A,如图1中红色箭头①②③所示。利用Grad-CAM方法的步骤如下。

① 选择图片中要观察的缺陷;

② 根据缺陷大小确定输出路线,即可确定所研究的特征图A;

图9为测试集缺陷在经过3种不同主干网络之后的Grad-CAM图,图中越亮的部分代表网络越关注的区域。为了更全面地对比分析,这里选取了典型的不同大小和类型缺陷图片,并且这些缺陷都能在3种主干网络的YOLO v3中被正确识别。图中浆斑和轧痕属于较大的缺陷,结头和星跳属于较小的缺陷。对比图9中较大的缺陷可以发现,Darknet-53和MobileNets相比于Res2Net,提取了更多大缺陷的特征,体现在热度区域覆盖了更多缺陷部分并且更亮更集中。其中MobileNets除了更完整覆盖大缺陷区域,在非缺陷区域受到的干扰也较小,而Darknet-53在轧痕的特征提取上,也显著关注了图中右半部分和轧痕相似的区域。这点在小物体的特征提取上更为突出。对比结头和星跳的Grad-CAM,可以发现Darknet-53在图片特征提取上,广泛关注了图片中的可能区域,而MobileNets可以更专注在小缺陷所在的区域上,这可能和Darknet过强的特征提取能力有关。MobileNets受制于参数少,图7的训练损失曲线表明其学习过程比Darknet-53慢,但这里观察到MobileNets更好地学习了所需要提取的特征。Res2Net也能关注到小物体特征的提取,但是对比MobileNets,其提取能力较弱。综上,Darknet-53和MobileNets的主干网络都有较好的特征提取能力,其中Darknet-53特征提取能力强,MobileNets更能专注提取缺陷的特征。Res2Net的分层的残差类连接虽然提供了多尺度的特征图,但这种方式在布匹瑕疵检测中并没有明显的优势。

图9 3种主干网络的Grad-CAM可视化结果

3 结束语

在原有YOLO v3算法的基础上,提出了轻量化的MobileNets、更细粒度多尺度特征的Res2Net两种不同类型的YOLO v3主干网络搭建方案,目的是寻找兼具检测速度和准确度的主干网络搭建方案。对比了3种主干网络对YOLO v3算法在布匹瑕疵检测中的影响,并利用Grad-CAM方法研究主干网络的特征提取能力。实验结果表明,搭载MobileNets主干网络的YOLO v3具备更小参数量和更快的检测速度,并在布匹瑕疵检测中具有很接近原始YOLO v3网络结构的检测精度,Grad-CAM表明MobileNets主干网络在特征提取上更专一。

猜你喜欢

布匹瑕疵主干
抓主干,简化简单句
登记行为瑕疵与善意取得排除的解释论
哦,瑕疵
哦,瑕疵
独 坐
左主干闭塞的心电图表现
整合内容 构建高效课堂——开展非线性主干循环活动型单元教学模式
选择的价值
全国主干公路网交通安全监控信息共享平台构建研究
毫无瑕疵的推理