APP下载

融合注意力机制和Faster R-CNN的织物疵点检测算法

2022-01-26陈梦琦余灵婕祝双武郜仲元

纺织高校基础科学学报 2021年4期
关键词:织物卷积注意力

陈梦琦,余灵婕,支 超,祝双武,郜仲元

(西安工程大学 纺织科学与工程学院,陕西 西安 710084)

0 引 言

织物疵点检测对提高最终产品的质量和外观至关重要,是质量控制和检验的关键环节[1]。由于传统的疵点检测以人眼识别为主,易受视觉疲劳、工作状态等主观因素的影响,降低了疵点检测结果的可靠性,所以出现了基于结构分析、光谱分析、模型、统计等计算机视觉的自动检测方法[2-3]。韩士星等针对织物疵点及纹理的频谱特征,提出了融合多分辨率的全局及局部显著图的色织物疵点检测方法[4]。李春雷等提出了基于方向梯度直方图(HOG)和低秩分解的疵点检测方法[5]。ZHU等利用自相关函数和灰度共生矩阵(GLCM)提取染色织物的缺陷[6]。周明文等采用遗传算法对构造的Gabor滤波器参数进行优化,提取Gabor特征,能准确快速地检测出织物疵点[7]。以上传统检测方法针对特定织物疵点类型效果良好,但在织物疵点种类多样的情况下存在局限。近年来,卷积神经网络强大的提取特征能力备受关注,基于卷积神经网络框架建立的目标检测模型如Faster R-CNN、SSD、YOLO等被广泛应用于人脸识别、车牌识别、海洋目标识别等众多目标检测领域且表现良好[8-11]。在纺织领域,由于织物疵点和纹理背景的多样性,卷积神经网络在用于织物疵点检测时需要针对织物疵点的特点进行改进。OUYANG等在CNN中引入了一种新型的成对电位激活层,实现了在具有复杂特征和不平衡数据集的织物上进行高精度的缺陷分割[12];张宏伟等提出了一种基于多尺度卷积的自编码器,通过横向连接将网络2部分的特征映射进行多尺度特征融合实现了对复杂花型色织衬衫面料缺陷区域的检测和定位[13];LI采用多尺度训练,先验帧聚类和软非极大抑制技术改进了Cascade R-CNN,从而有效地提高了织物疵点检测的准确性[14];文献[15-16]分别提出了基于改进AlexNet的卷积神经网络(CNN)和基于EfficientNets的织物缺陷分类方法。虽然现有的深度学习方法在织物疵点分类与检测任务上已取得了一定的成果,但面对复杂的工业生产环境仍存在局限性[17]。

基于卷积模块的注意力机制(CBAM)结合了通道注意力模块(CAM)和空间注意力模块(SAM),使卷积神经网络更加关注待识别的目标对象[18]。因此,本文在Faster R-CNN目标检测网络的基础上,将CBAM引入残差网络结构中,通过计算权重矩阵改变残差学习块的输出,使卷积神经网络的注意力集中在疵点的目标区域进行局部特征提取,从而丰富了特征图(feature map)中的关键局部信息和全局信息。实验表明用该方法训练得到的模型整体性能优于未引入CBAM网络的经典Faster R-CNN模型,织物疵点检测的均值平均精度、准确率和检测效率均有所提高。

1 织物疵点检测算法

1.1 Faster R-CNN网络

Faster R-CNN直接使用区域建议网络(region proposal network,RPN)生成检测框,将检测过程简化为分类任务,并利用深度学习方法提升检测精度。整个网络主要包括特征提取网络、区域建议网络、池化感兴趣区域(ROI pooling)、分类[19]等4个关键模块。特征提取网络模块是将准备好的数据集输入到特征提取网络中,最终得到对应的特征图。RPN模块的功能是生成建议框。在特征图上的每一个锚点上取9个候选的ROI(3种大小、3种长宽比),并判断ROI中包含前景还是背景,同时计算包含前景的这些ROI与真实目标之间的偏差,进行初步的边界回归获得精确的建议框。ROI pooling模块是收集输入的特征图和建议框,综合这些信息后提取建议框的特征图。分类模块是利用计算建议框的特征图,通过全连接层输出目标所属类别,同时再利用边界回归调整检测框最终的位置。

1.2 注意力机制

CBAM的结构如图1所示,其中包含了CAM和SAM,按顺序完成CAM和SAM 2个模块的计算,即给定一个输入特征图x∈RC×W×H,CBAM依次得到一维的通道注意矩阵MC∈RC×1×1和二维的空间注意矩阵MS∈R1×W×H,即

图 1 卷积模块的注意力机制(CBAM)结构

F′=MC(x)⊗x

(1)

F″=MS(F′)⊗F′

(2)

式中:x为输入特征;F′为输入到空间注意力模块的特征;F″为经过CBAM最终输出的特征;MC(x)为通道CAM的权重系数矩阵;MS(x)为SAM的权重系数矩阵。

通道注意力模块主要关注哪些通道对网络的最后输出结果起作用,即专注于目标的内容信息。通道注意力模块同时对输入特征x进行最大池化和平均池化,池化后的特征经过多层感知器后输出。MC(x)的计算公式为

MC(x)=g(Pml(Pa(x)+Pm(x))

(3)

式中:g为激活函数Sigmod;Pml为多层感知器网络;Pa为平均池化操作;Pm为最大池化操作。

空间注意力模块专注于目标在图像中的位置信息,并解决了应该关注图像的哪个部分的问题。空间注意力模块首先对通道维度的输入特征F′使用最大池化和平均池化,然后将2个通道缝合在一起,最后使用卷积运算获得空间关注度的权重系数矩阵MS(F′),即

MS(F′)=g{f7×7[Pa(F′),Pm(F′)]}

(4)

式中:f7×7表示1个卷积核为7×7的卷积操作。

1.3 改进后的Faster R-CNN网络

注意力模块可帮助神经网络模型学习图像不同区域的特征权重,从而使有效特征权重更大,无效特征权重更小。对于疵点检测任务,神经网络模型的主要关注目标即为疵点所在区域,注意力模块的加入可增加疵点所在区域的特征权重,最终有效提高模型的检测效果。本文的网络框架是基于Faster R-CNN框架进行设计,如图2所示。

图 2 改进后的Faster R-CNN网络结构Fig.2 Improved Faster R-CNN network structure

图2的网络结构主要由特征提取网络、注意力机制、RPN组成。本文选择Resnet50作为特征提取网络,它可将前序若干层的其中一层数据输出后跳过中间层直接引入到后面数据层的输入部分,使后序特征层的内容和其前序某一层的内容线性相关,克服了由于网络深度产生的学习效率变低以及准确率无法有效提升的问题[20]。本文优化后的检测框架流程如下:

1) 将图片输入到加入了注意力机制的主干网络Resnet50中,Resnet50网络由4组模块组成,每组模块分别包含3、4、6等3个残差块,每个残差块里有3个卷积层。另外,网络的最开始都有1个单独的卷积层,共49个卷积层,1个全连接层,本文将注意力机制放置于Resnet50的每组模块之后,共放置4个注意力机制模块。

2) 输出的特征图一部分输入到RPN,另一部分直接映射到ROI pooling,用于固定输入全连接层的特征维度。首先用一个3×3的卷积核去遍历输入到RPN的所有特征图,在遍历过程中每个窗口中心按不同的大小和比例生成9个锚点, 再利用全连接对每个锚点做二分类(区分前景和背景)后再输出包含目标区域的多个ROI并映射到ROI pooling的特征图上。

3) 通过边界回归损失调整前景目标区域的位置坐标,利用分类损失去除置信度低于0.5的负样本。总的损失函数包含回归损失和分类损失,定义为

(5)

(6)

式中:R为SmoothL1函数,其计算公式为

(7)

2 结果与分析

2.1 数据集

为验证算法的检测效果,本文以真实场景中的织物疵点图像为数据集。数据集包含污渍、破洞、跳花和纱线缺陷等4类疵点。其中纱线缺陷包含断经、断纬、缺经、缺纬和并纬,如图3所示。

(a) 破洞 (b) 污渍 (c) 跳花 (d) 纱线缺陷

数据集包含6 317幅织物疵点图,对其按比例进行划分,90%作为训练集和验证集,10%作为测试集。为了提高模型的识别准确率,使用平移、旋转等方法对织物疵点数据集进行数据增强,然后再使用LabelImg标记样本,增强后的数据集转换成PascalVOC格式。PascalVOC格式的数据集包含织物疵点图像名称并记录了每个图像对应的目标对象位置信息、标签内容等的.xml文件。

2.2 实验平台与参数设置

实验在Python(3.6),pytorch(1.8.0),torchvision(0.4.0)环境下进行;在配置为GPU:RTX3090,显存:24 GiB,内存:62 GiB的服务器上进行模型训练。IDE工具采用Pycharm,系统环境为windows10。织物疵点图像为JPEG格式,尺寸均为500像素×500像素。

2.3 实验结果

将制作好的数据集分别输入到本文提出的检测网络中开始训练,使用梯度下降优化模型参数,batch_size设为2,训练初始阶段学习率为0.000 1,训练50代,第二个阶段学习率调整为0.000 01,再训练50代,共训练100代。测试结果对比如图4所示。

图 4 织物疵点测试结果Fig.4 Comparison of test results

图4中,第1、3行是没有引入注意力机制的原Faster R-CNN模型部分测试结果,第2、4行是引入注意力机制模块的改进模型部分测试结果。从图4可以看出引入注意力机制后回归框的得分更高,分类错误情况也有所改善。

选用经过100代训练后总损失最低的参数模型,分别对模型的平均准确率(average precision,简记为PA)、准确率(P)和疵点图像检测的时间进行测试,其中准确率、召回率(R)的计算公式为

(8)

(9)

式中:A是预测为正样本实际也是正样本的样本数量;B是预测为正样本实际为负样本的样本数量;C是预测为正样本实际为负样本的样本数量。计算所有测试样本的准确率和召回率后,可绘制得P-R曲线,PA值即为P-R曲线围成的面积。准确率(P)表示预测为正样本中有多少是真正的正样本,衡量的是模型的查准率;召回率(R)表示正样本中有多少被预测为正样本,衡量的是模型的查全率。一般来说,准确率和召回率为相互矛盾的指标,因此本文采用综合两指标的PA值来衡量模型对每个类别的综合检测能力。平均精度均值是每个类别PA值的平均值。

表1为本文算法和经典Faster R-CNN算法的检测能力对比。从表1可以看出,加入注意力机制后训练的模型平均精度均值增加了1.8%,其中跳花、污渍、纱线缺陷的PA值均有提高,然而纱线缺陷的PA值最低,可能原因是纱线缺陷比较小,容易与色织的条纹背景混淆导致无法识别;破洞的PA值没有提升,经分析可能是破洞疵点尺寸普遍较大,破洞部位和背景灰度值差异较明显,比较好识别,RPN本身的特性已经可以很好地将破洞疵点与背景分开。平均精度均值的提高说明模型识别正样本的能力总体得到提升。此外,破洞、跳花、污渍、纱线缺陷的识别准确率分别提高了5.21%、1.73%、2.64%、1.71%。

表 1 2种算法的检测能力对比Tab.1 Detection capability comparison of the two algorithms 单位:%

表2是本文算法和经典Faster R-CNN算法的检测效率对比。在织物疵点检测中,通常先采用高性能工作站训练得到检测模型,再借助计算机完成检测任务。因此,为接近真实的疵点检测环境,本文也在计算机CPU环境下进行疵点检测时间的测试。其中,高性能工作站的测试硬件环境为GPU:1 080 TiB;显存:11 GiB;内存:14 GiB,本地测试环境为:CPU:11代英特尔i7处理器2.80 GHz。本文选取700张图片进行疵点检测,计算700张图片在CPU和GPU下用时的平均时长和方差。从表2可以看出,加入注意力机制的训练模型可以有效提高织物疵点的检测速度,同时检测时间的稳定性也比较好。

表 2 2种算法的检测效率对比Tab.2 Detection efficiency comparison of the two algorithms

3 结 语

本文通过在主干网络Resnet50中引入卷积模块的注意力机制,利用通道注意力模块和空间注意力模块聚焦于区域特征,并经过端对端的训练,生成包含疵点目标的候选框,最终通过非极大值抑制筛选出与真实值最接近的目标框。对比实验结果证明本文提出的方法可提高参数模型的鲁棒性和准确率。优化后的疵点检测模型平均精度均值提高了1.8%、平均准确率提高了2.82%,同时分类错误、目标定位不准的问题有所改善。单张图片测试效率在不同测试环境下均有提升,且用时方差降低。所提方法对类似破洞检测的疵点效果提升不明显,后期拟通过对不同疵点类型设计网络结构,调整基于卷积模块的注意力机制的使用方式,使注意力机制在织物疵点检测方面得到更充分恰当的使用。

猜你喜欢

织物卷积注意力
基于全卷积神经网络的猪背膘厚快速准确测定
无Sn-Pd活化法制备PANI/Cu导电织物
《丝绒织物》等103项纺织行业标准发布
让注意力“飞”回来
《纺织品织物折痕回复角的测定》正式发布
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
竹纤维织物抗菌研究进展
A Beautiful Way Of Looking At Things