APP下载

基于改进RefineDet的织物疵点检测

2022-09-14阮梦玉何儒汉

现代纺织技术 2022年5期
关键词:疵点织物卷积

阮梦玉,李 敏,何儒汉,姚 迅

(武汉纺织大学计算机与人工智能学院,武汉 430200)

在纺织产品的生产过程中,质量控制贯穿着整个过程。有质量问题的织物会在很大程度上影响其价格,因此对织物进行疵点检测,是成品布出厂的最后一道工序,也是控制成布质量的关键环节[1-2]。传统的织物疵点检测方法,主要是以人工检测的方式为主。人工检测需要大量劳动力,且容易受到检测员主观因素和外界环境等客观因素的影响,出现误检和漏检的问题,导致检测效果差[3]。

为了提高织物疵点检测的效率,从20世纪90年代开始,研究者们就提出了大量的基于图像处理的织物疵点自动检测方法[4]。不仅如此,自2015年开始,深度学习的方法被引入到织物疵点检测领域,这些方法突破了传统织物疵点检测的局限性,算法性能得到了大大提升。Jun等[5]提出了一种利用深度卷积神经网络,通过将局部缺陷预测和全局缺陷识别两者结合起来进行疵点识别,使得模型的检测准确率提高。周文明等[6]利用上下文视觉显著性抑制织物纹理背景,突出疵点区域,该方法能够对色织物中的疵点进行准确的定位,且适应性较好。景军锋等[7]提出了一种将卷积神经网络应用于织物缺陷检测和分类的算法,该算法在单色匹织物上检测效果较好,缩短了检测时间,能够对疵点区域进行精准的定位。刘纪等[8]提出一种利用生成对抗网络(Generative adversarial networks,GAN)和霍夫变换(Hough transform,HT)结合的方法,检测点状缺陷织物,其检测的准确率达到了97.2%。李敏等[9]利用视觉显著性模型对小提花织物图像进行疵点检测,正确率达到了93.5%。

相比传统方法而言,以上基于深度学习的方法对织物疵点进行检测,取得了良好的检测结果,使检测性能大幅提升,解决了传统方法适应性差、检测精度低的问题。但是,上文所提的部分方法只能实现对织物疵点的分类,不能定位织物疵点;尽管其中的一些方法能够定位织物疵点,但只是检测单色或者单一类型的织物。

为实现对多种类型的织物疵点的分类和定位,本文将RefineDet模型用于织物疵点检测中,并针对传统RefineDet模型分类性能不佳和定位结果不精确等问题,对其进行了改进。研究结果将为实现织物图像中疵点的分类和定位提供技术指导。

1 RefineDet模型的介绍

RefineDet模型是由Zhang等[10]在2018年提出的,该模型使用VGG16或ResNet101作为特征提取网络,主要由Anchor细化模块(Anchor refinement module,ARM)和目标检测模块(Object detection module,ODM)组成,如图1(a)所示。

图1 RefineDet模型

在RefineDet中,ARM的目标是消除负样本Anchors,以便减少分类器的搜索空间,同时粗略调整Anchors的大小和位置,为随后的回归器提供更好的初始化结果[11];ODM的目标是根据细化后的Anchors,把检测的结果回归到准确的目标位置并预测多类别标签。

为了在ARM和ODM之间建立连接,Zhang等[10]引入了传输连接块(Transfer connection block,TCB),如图1(b)所示。TCB将ODM所需要的信息通过ARM来提供,从而达到ODM可以共享ARM的特征信息的目标,所以ODM是由TCB的输出组成。同时,TCB传输Anchor细化模块中的特征,它不仅可以在ODM中预测目标的位置、尺寸和类别标签,还可以通过将ARM的高级特征添加到传输的特征来继承大规模的上下文,以提高检测的准确性[11]。不仅如此,为了让它们之间的维度相匹配,TCB通过逆卷积来达到增强高级特征图的目的,然后对高级特征图进行对应元素求和操作,再通过对求和之后的结果添加卷积层来提高检测结果的可辨性,最后由ODM对目标区域进行分类和定位。

本文使用RefineDet对不同类型的织物图像进行大量实验。图2显示的是用RefineDet对纱疵进行检测的结果。

图2 RefineDet对疵点的检测结果

图2(a)是原始织物图像,图2(b)蓝色框标记了疵点的真实位置,图2(c)显示了用RefineDet进行疵点检测的结果。从图2(c)可以看出,RefineDet可以检测出织物图像中的较大疵点,但是当疵点较小或者与图像背景色相近时,RefineDet无法检测出这类疵点。造成这种现象的主要原因在于,RefineDet使用传统的贪心算法,在很大概率上会出现漏检的情况,导致RefineDet忽略疵点的细节信息,最后出现定位不精确的现象。

2 基于改进RefineDet的疵点检测

2.1 算法思想和流程

RefineDet模型具有较强的目标定位能力和良好的泛化能力,为更好的适用于织物疵点检测,本文针对RefineDet模型不能有效解决小疵点的检测问题,对RefineDet模型中的ARM和TCB进行了改进,包括:在ARM中引入了注意力机制,可以使模型关注疵点重要的特征并抑制不必要的特征,用于增强对疵点检测的能力;在TCB中引入了SE模块结构(Squeeze and excitation, SE)[12],用于提高网络的分类性能。具体流程如下:

a)首先,在ARM中加入注意力机制,通过同时使用平均池化和最大池化来处理ARM之前的层,抑制非疵点区域,关注疵点区域。

b)其次,在连接ARM的TCB模块后面加入4个SE模块。

c)将TCB的结果作为SE模块的输入,在SE模块中进行全局均值池化,将池化后的结果进行拼接并输入到Softmax层进行全连接计算。记改进后的模型为改进的RefineDet。

d)使用改进后的RefineDet模型对数据集进行训练后,根据4个SE模块处理后得到4种尺寸的特征图,为了使其维度匹配,通过逆卷积增强高级特征图,然后把高级特征图的对应元素求和。

e)最后,对求和之后的结果添加卷积层来提高检测结果的可辨性,ODM将结果回归到准确的疵点位置并预测疵点的多类别标签。

算法的整体流程如图3所示。

图3 本文算法整体流程

2.2 改进RefineDet模型结构

2.2.1 特征提取网络

为了得到织物疵点更多的特征信息,需要一个网络结构简单且网络深度足够的深度网络,用来完成提取疵点多级特征的任务。本文在VGG16的基础上,对网络进行修改,将VGG16的最后两个完全连接层和最后一个池化层去掉,将VGG16修改为完全卷积网络,并对修改后的网络重新进行训练。这是因为全连接层所占参数量较大,将全连接层去掉,可以减少参数数量,且对性能没有明显影响。

2.2.2 AM-ARM

在第一步分类和回归的Anchor细化模块中加入注意力机制(Attention mechanism, AM),将改进后的模块记为AM-ARM。注意力机制的原理是通过快速扫描图像的全局,从而获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息[13]。本文利用注意力机制这一优点,将注意力机制引入到织物疵点检测中,可以使模型关注织物图像的重要特征并抑制不必要的特征,从而将疵点凸显出来,增强对疵点检测的能力。

如图4所示,给定一个中间特征图Input记为M,M∈RW*H*C作为输入,AM-ARM的输出Output记为P,计算见式(1)和式(2):

图4 全卷积通道注意力模块

P=∂1(FConv(AvgPool(M))+

FConv(MaxPool(M)))

(1)

FConv(*)=∂2(Conv2(∂2(Conv1(*))))

(2)

式中:AvgPool()代表全局平均池化;MaxPool()代表全局最大池化;FConv代表全卷积;Conv1代表卷积层1;Conv2代表卷积层2;∂1是Sigmoid激活函数;∂2是Relu激活函数;W、H、C分别代表卷积特征图的宽、高和通道数;特征图大小为W×H×C。

2.2.3 引入SE模块

SE模块思想简单,易于实现,并且很容易可以加载到现有的网络模型框架中,不仅如此,SE模块能够显著改善网络的分类能力,而且该模块对网络的负面影响也较小。SE模块的结构如图5所示,图5 中:ReLu代表ReLu激活函数;Sigmoid代表Sigmoid激活函数;Scale代表通道权重相乘;W、H、C分别代表卷积特征图的宽、高和通道数;特征图大小为W×H×C。

图5 SE模块结构

本文将SE引入到织物疵点检测分类中来,以提高疵点的分类性能。具体实现过程如下:

a)将AM-ARM输出的特征图作为TCB的输入,此时得到了4种不同尺寸的特征。

b)将经TCB处理后的结果作为SE模块的输入,即在TCB后加入了4个SE模块。SE模块是由全连接层和非线性约束层构成的,它能够很方便的加载到现有的网络模型中。SE模块通过对卷积特征的通道进行加权操作,对分类有效的通道特征进行增强操作,对分类无效的通道特征进行抑制。

c)根据4个SE模块处理后得到4种不同尺寸的特征图,为了使其维度匹配,通过逆卷积增强高级特征图,然后把高级特征图的对应元素求和,其中高级特征图的大小分别为40×40×256,20×20×256,10×10×256,5×5×256,最后对求和之后的结果添加卷积层来提高检测结果的可辨性。

d)ODM将结果回归到准确的疵点位置并预测疵点的多类别标签。

2.2.4 ODM

将从SE模块输出的特征图作为ODM的输入,ODM预测疵点的位置、尺寸和类别标签。

ODM与ARM相似,由4个卷积层组成,通道数为K×(C+4),其中C代表疵点类别的数量,4代表预测框的4个坐标值(xmin,ymin,xmax,ymax),K为纵横比,本文设置为3。在计算损失函数方面,主要包含AM-ARM和ODM两方面,这两部分的损失函数都是一起向前传递的。在网络中选择合适的激活函数可以降低损失,因此本文选择Sigmoid、ReLu激活函数。另外在训练时,训练时间足够,迭代105次以及合适的学习率0.0001。与原始RefineDet相同,在训练阶段,总的两步损失计算见式(3):

L({pi},{xi},{ci},{ti})=

(3)

式中:i是训练批次中标记框的索引;Narm和Nodm分别指的是ARM和ODM中正样本Anchors的数目;pi指的是预测的anchori是一个目标的置信度;xi指的是ARM细化后预测的Anchori的坐标;ci是ODM中预测标记框的物体类别;ti是ODM中预测标记框的坐标;Lb表示二元分类损失,即目标与非目标的交叉熵损失;Lr表示回归损失;Lm表示多类别分类损失;指数函数[l*i≥1]表示当框i属于缺陷类时,输出1,否则为0;l*i是anchori真实的类别标签;g*i是Anchori真实的位置和大小。

3 实验结果和分析

3.1 实验准备

a)数据集及实验环境

本实验操作系统为Ubuntu16.04LTS,显卡为NVIDIA GeForce RTX 2080Ti,CPU为Intel Core i9-9900X,内存大小为125.6 GB,使用Python编程语言和Pytorch深度学习框架。网络学习率为 0.0001,动量和权重衰减分别设为0.9和0.0005。

数据集使用TILDA织物数据库,它是一个公开的纺织品纹理数据库,共有8类,其中有4类无图案的织物图像,两类规则图案的织物图像和两类复杂图案的织物图像。TILDA数据集包含1600张分辨率为768×512的图像,从中选取1200张图像,输入图像大小为320×320,并按照3∶1的比例随机生成训练集和测试集,根据疵点类型,将数据集分为孔、污渍、纱疵、线状4类比较常见的类别,如图6所示,并对疵点类别进行标注。

图6 TILDA数据集中4种常见类别的织物疵点

b)评价指标

实验结果采用均值平均精度(mean Average precision,mAP)进行评价,mAP的具体计算公式如式(7)所示。其中AP(Average precision)为平均精度,如式(6)所示;式(6)中的P(Precision)为测试精度,R(Recall)为召回率;式(4)、式(5)中的TP(True positives)为预测框与标签框正确的匹配;FP(False positives)为预测框将背景预测为目标;FN(False negatives)指需要模型检测出的物体,没有检测出[14]。

(4)

(5)

(6)

(7)

3.2 结果与分析

在TILDA数据集上,使用相同的训练集进行训练,并对比传统RefineDet模型与改进后的模型二者之间的损失。图7显示的是模型训练阶段的损失,其中图7(a)显示的是传统RefineDet模型训练阶段的损失,图7(b)为改进后模型的损失函数。从图7(a)可以看出在训练阶段损失不断减小,直到收敛。经过105次迭代,完成模型参数的训练。对比图7和图7(b)可以发现,相比传统RefineDet的疵点检测方法而言,本文提出的方法各项损失较低且拟合效果较好。

图7 模型训练阶段的损失

图8显示的是模型测试的P-R曲线。其中 图8(a)和图8(b)显示的是使用两种不同的方法对相同的织物图像进行测试后所得到的mAP值。图8(a)表示通过传统RefineDet方法对4种类型的疵点进行检测,其均值平均精度mAP达到了 74.7%,图8(b)表示通过本文所提出的方法,其均值平均精度mAP达到了79.7%,相比于传统RefineDet方法提高了5.0%。

图8 P-R平均精确度曲线

表1是使用两种不同的方法进行测试后所得到的AP值。从表1改进后的AP中可以看出,本文提出的方法对孔和污渍的分类效果较好,但对纱疵和线状的分类情况稍差。造成纱疵平均精确度较低的主要原因是纱疵的特征比较复杂多样,且有的纱疵缺口较大,与洞的特征类似,导致网络对纱疵的识别精确度较低。造成线状平均精确度较低的主要原因是线与织物图像的背景比较相近时较难识别,模型无法区分是背景还是线,并且有的线颜色较浅,难以识别。

表1 测试方法改进前后的平均精确度

对比改进前后的平均精确度可以看出,孔和污渍的平均精确度分别提高了1.2%和1.3%,纱疵和线状的平均精确度分别提高了11.6%和6.3%,出现这种结果的原因是,孔和污渍相较于背景而言,对比度较明显,所以在改进前后的平均精确度只提高了一至两个点,并没有较大提升;而对于纱疵和线状来说,这两类疵点相比织物背景而言对比度较差,且疵点特征没有孔和污渍明显,在利用注意力机制和SE模块改进后,这两类疵点检测的精确度得到显著提升。

图9显示了疵点的定位效果。图9中,第1列是织物疵点图像;第2列是传统RefineDet检测结果;第3列是改进RefineDet检测结果;第1行是孔;第2行是纱疵;第3、4行是线状;第5行是污渍。

图9 改进前后疵点定位效果对比

从图9可以看出,4种类型的疵点分别在条纹、素色、格子、针织4种背景下,实现了良好的分类和定位效果。不仅如此,还可以发现,改进之后的方法定位效果明显优于改进之前的方法。这主要体现在改进之后的方法可以定位较小疵点,例如条纹背景中的小孔和针织背景中的小污渍,以及改进后的方法可以定位织物图像中的多疵点和与背景颜色相近的疵点,例如素色背景中纱疵和格子背景中的线状。从这两方面可以发现,本文提出的方法在分类和定位方面明显优于传统RefineDet方法。

4 结 论

针对织物疵点检测和定位,本文提出了一种基于改进RefineDet的疵点检测方法。该方法在ARM模块中加入了注意力机制,着重关注疵点重要的特征并抑制不必要的特征,降低了非疵点区域在检测过程中的干扰;为了加强模型的分类性能,在TCB模块中加入SE模块,计算其生成的特征图,为了使其维度匹配,通过逆卷积来达到增强高级特征图的目的,然后对高级特征图对应元素求和,对求和之后的结果添加卷积层来提高检测结果的可辨性。最后ODM将结果回归到准确的目标位置并预测多类别标签,对疵点区域进行定位。结果表明,本文算法不仅能够实现对织物图像中不同类型疵点的定位,而且也可以定位一张图像中的较小疵点和多个疵点,能够有效检测织物图像中的单疵点和多疵点。

本文所提的算法也存在一定的不足,算法模型可以进一步优化,以提高模型的精度和定位效果。

猜你喜欢

疵点织物卷积
无Sn-Pd活化法制备PANI/Cu导电织物
基于Cascade RCNN 和二步聚类的织物疵点检测
《纺织品织物折痕回复角的测定》正式发布
基于3D-Winograd的快速卷积算法设计及FPGA实现
竹纤维织物抗菌研究进展
喷丝板疵点检测系统设计
基于FPGA的图像疵点处理设计与实现
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法