李 辉,吕祥聪,徐凌伟,申贝贝
(青岛科技大学 信息科学技术学院,山东 青岛 266061)
布匹瑕疵的检测是纺织业急需解决的一大难题,在生产布匹的过程中,一旦出现缺陷,没能及时发现,通常会大批量的生产,将会造成无法弥补的损失,一旦流入市场,将直接影响企业的信誉,且目前的布匹瑕疵检测方法,依旧大多数采用人工结合放大镜进行质检,但由于无法克服自身的生理因素,容易出现大量漏检和误检。因此,布匹瑕疵检测对于纺织业生产具有重要的研究价值和研究意义,通过专门的布匹检测方法应用到视觉仪器上,用机器代替人工质检,可以有效提高布匹瑕疵的检测率,产出更高质量的布匹。当前布匹检测方法主要分为两大类,传统的检测方法和基于深度学习的布匹检测方法,传统的布匹检测方法除了人工检测,还有利用波谱检测[1]、数学统计[2,3]、图像差分[4,5]以及图像纹理[6]等方法进行布匹瑕疵特征提取,上述传统方法可以实现某种布匹瑕疵的检测,但是往往只针对一种瑕疵设计,鲁棒性和迁移性较差,检测能力有限,且无法真正应用到市场中,通常只在仿真中实现。目前采用基于深度学习的检测方法,是当今目标检测研究的主要方向,采用深度学习可以更加有效的学习到目标特征,对目标的检测率更高,且精度远高于传统的检测方法,可以最大化的节省人力,提高生产的效率[7,8]。基于深度学习[9,10]的检测方法主要分两阶段[11,12]和单阶段[13,16]检测方法,Qin等[17]提出了多分支残差网络的布匹缺陷检测研究,该方法在原有残差模块的基础上,增加了一个新的卷积分支,随着网络层数动态调整感受野的大小,然后在下采样阶段替换了残差模块,提出了一种新的多分支残差骨干网。Wei等[18]首先利用瑕疵图像的特征,减少了Faster RCNN中的锚点数量,然后在候选区域阶段生成前景锚点和边界框回归,最后反馈到感兴趣区域进行分类。Yan等[19]提出了改进的深度残差网络进行素色布匹瑕疵特征提取,再通过设计特征金字塔和候选区域网络实现对瑕疵点的分类与检测。Liu等[15]提出了基于SSD算法的自适应素色布匹瑕疵检测方法,采用特征金字塔的方式加强了特征图之间的传递,缓解了梯度消失问题,但该方法对小目标瑕疵检测准确率有待提高。Zhao等[20]针对SSD对小瑕疵目标检测效果不理想,提出了将多尺度特征融合用于布匹瑕疵小目标的检测,该方法在多层特征提取时引入残差模块,通过多尺度特征融合提高了模型对小瑕疵目标的检测率。Jing等[21]提出了改进的YOL Ov3模型用于素色布匹瑕疵检测,该方法首先通过结合布匹瑕疵尺寸和k-means算法对目标瑕疵进行维度聚类,然后将底层特征与高层信息相结合,在不同大小的特征图上加入YOLO检测层,虽然方法检测速度快,但是对于瑕疵检测效果精度较差。
当前布匹缺陷检测任务的难点主要有以下几个方面:(1)小目标问题,布匹中的一些瑕疵特征极其小且数目繁多,难以用肉眼进行判别。(2)极端长宽比,布匹中的各类瑕疵形状各不相同,尺寸跨度极大。(3)样本不均衡,样本不均衡是指部分疵点拥有大量的训练样本,而另一部分瑕疵点则只有少数的样本;已有的目标检测算法都难以解决小目标瑕疵、尺度变化大、样本不均衡等布匹疵点的漏检和瑕疵准确定位低的问题,因此本文提出了一种融合形变卷积和自注意力的素色布匹瑕疵检测方法。该方法(1)针对原始的Res-Net[11]中残差模块中由于目标几何畸变而导致特征图对瑕疵特征表达能力不足的问题,提出了融合形变卷积(DCN)[22]的多尺度特征提取,从而提升模型对不规则瑕疵特征的表达能力。(2)针对数据集中小目标瑕疵居多的问题,提出了双通道特征融合模块,通过引入自注意力机制[23,24]自适应地融合深层的语义信息与浅层的结构信息,提高小目标瑕疵的准确率。(3)针对布匹瑕疵中尺度变化悬殊的疵点,在候选区域(RPN)阶段设计自适应边界框生成器,引导初始锚定框设计,适应极端长宽比的目标,利于后续检测框回归,使检测效果进一步优化。
本文提出的布匹瑕疵检测方法主要分为三部分:(1)设计融合形变卷积的多尺度特征提取网络,从而更好地处理布匹图像中的目标形变问题,有效提取瑕疵特征;(2)由于布匹瑕疵中小目标占比较多,在骨干网络后接入多通道注意力聚合网络,生成新的具有强语义和精确位置信息的特征图;(3)在RPN阶段,设计自适应锚框聚类生成器,获得更紧密的包围框,同时级联具有不同IOU阈值的检测网络逐级完成瑕疵的精确定位。
本文采用的特征提取骨干网络是残差网络Res Net,主要有五个特征提取层,第一个特征提取层,包含卷积核、批处理以及最大池化层。其余四个特征提取层,分别用同样结构的残差模块组成,经过深度残差网络特征提取,输出五个特征表示层C1到C5,针对布匹瑕疵呈现出的极端长宽比,常规卷积不能有效进行特征提取,因此本文在C3到C5特征提取层,通过融合形变卷积替换常规卷积对布匹瑕疵进行特征提取,整体网络提取过程如图2所示。
图2 Res Net引入DCN模块网络结构图
本文在骨干网络的最后三个阶段采用形变卷积替换普通卷积,通过学习中心点的偏移和权重,使采样点感受野可以根据目标特征进行自适应变化,以此来适应不同形状的瑕疵,缓解了传统卷积采样无法适应目标的几何形变问题,具体结构如表1所示,改进后的骨干网络更能适应布匹疵点的极端长宽比,有利于疵点的精确检测。
表1 融合形变卷积的多尺度特征提取网络结构
常用特征聚合方式是通过将不同的特征图进行重新放大或者缩小到统一尺度,再进行简单的通道相加,将不同特征的通道信息进行融合,可以有效地提高特征图的语义信息,但该特征聚合方式仍有一定的不足,对于一些小目标的特征信息表现的不是明显,容易丢失,因此,本文通过改进自注意力机制,提出多通道特征聚合网络模块(MCFA)。该注意力网络,可以融合特征图中目标的关键信息,增强目标的特征与位置信息,尤其是对于小目标瑕疵,可以有效地解决小目标瑕疵特征难提取问题,提高网络处理极端目标的检测能力,增强网络的鲁棒性。
1.2.1 特征通道注意力模块。采集到的布匹图像中,小目标的数量占比较大,在布匹瑕疵检测任务中,为了获取更多小瑕疵目标特征信息,本文提出了改进的特征通道注意力网络,该网络通过将其中一个全局最大池化层去掉,采用全局平均池化层,减少池化层造成小目标瑕疵信息的丢失;其次将另一个全局最大池化层改为全局未池化层,增强小瑕疵目标的特征信息,对每个特征通道建模,产生特征依赖关系,使得特征通道获取更多的权重。详细的网络结构如图3所示,首先将特征图F∈R H×W×C进行全局平均池化层Favg∈R C×1×1和全局未池化层Fno∈R C×1×1,生成两个不同的特征通道层,再经过两个全连接层增加或减少通道数,将两个不同的特征层通道数变成一致,再结合激活函数Rel u,对特征层赋予不同的权重,再进行特征通道逐元素相乘聚合两个特征层的通道信息,最终得到特征通道注意力图FCA∈R C×1×1。
图3 通道注意力模块结构图
1.2.2 空间注意力模块。由于特征通道注意力网络只对目标特征进行了增强,但没有对目标位置信息进行建模,对于一些小瑕疵的位置信息,依然不能很好定位,出现一定的偏移。因此,在上述特征通道注意力网络的基础上,提出了空间通道注意力网络,通过在空间通道中,对瑕疵位置信息进行加权,空间选择性的聚合每个瑕疵的位置信息,实现更加精准的定位。空间通道注意力网络具体的过程如图4所示。
图4 空间注意力模块结构图
通过将特征通道注意力输出的特征图与低层的特征图作为空间通道注意力网络的输入端,首先将该两个特征图进行简单通道拼接,保留更多的低层特征信息,再进行批处理BN层,再通过Rel u层的1×1的卷积生成两个特征图F1和F2。先对F1重塑再转置,即得到矩阵QT,将F2重塑为M矩阵,最后将QT与M矩阵进行相乘,再经过Sig moid函数生成空间通道注意力矩阵,表达公式如
再将生成的空间通道注意力矩阵与特征通道注意力矩阵进行逐元素相加,生成多通道注意力特征图。表达公式如
在Cascade RCNN的候选区域建议网络(RPN)阶段,一般来说,会设置一些固定大小的先验框,如图5(a)所示,纵横比通常为0.5、1.0、2.0,这样网络就可以从真实框中学习先验框的偏差值。但是在布匹瑕疵检测样本图片中,由于布匹疵点的特殊性,经常存在任意形状和尺度大小不一的瑕疵点。如果通用先验框的尺寸设计的不合理,很容易使得真实瑕疵目标与相对应的Anchor存在过大过小的情况,导致最终模型拟合效果较差。为了使算法模型在训练过程中可以实现较理想的收敛效果,增大布匹瑕疵检测的准确率,本文改进基于K-means聚类算法,设计了自适应边框生成器。重新设计针对布匹瑕疵数据较为合适的Anchor尺寸,使得生成的候选框(Anchor box)和与之临近的真实框(Gr ound tr uth)有更大的交并比,如图5(b)所示。这样设计不仅能够加快模型收敛速度,而且还能有效提高检测瑕疵的精度。
图5 Anchor与IOU
传统聚类方式使用欧式聚类作为度量标准进行聚类,这种方式对于布匹瑕疵数据集中存在的纵横比悬殊问题并不适用。为了适应布匹瑕疵数据集分布特点,本文采用一种新的度量方式IOU度量替换欧式距离度量,指导Anchor对锚框大小进行聚类。过程如式(3),其中b是标注的真实边界框,c是聚类的中心点,
详细描述如:(1)聚类使用的原始数据为训练集中的布匹瑕疵数据,其中包含的信息为样本集中真实瑕疵框坐标信息。(2)对于每类瑕疵,随机选取k个初始聚类中心点,每一个聚类中心代表一类瑕疵集簇。(3)对所有的真实标注框按公式(3)计算与k个瑕疵中心点的距离,并将各标注框归类给距离最近的聚类中心,形成k个簇。(4)所有瑕疵集标注框分配完毕以后,对每个簇重新计算聚类中心点,计算公式为
(5)重复(3)和(4),直到算法计算得到最优的锚定框,具体过程如算法1所示。
算法1:自适应边框生成器算法输入:每类待聚类瑕疵样本集真实边界框:B={b i,i∈{1,2,…,n}}初始Anchor大小:A={a j,j∈{1,2,…,m}}输出:最优初始锚定框 A*={a j1,j 1∈{1,2,…,m}}算法过程:1 Repeat 2 令Cj=ϕ,j∈{1,2,…,m}3 f or i=1,2,…,n do 4 d ij=1-IOU(b i,a j) //计算真实边界框和当前Anchor的距离5 λj=arg min i∈{1,2,…,m}d ij//距离最近的Anchor确定的b i簇标记6 Cλj=Cλj∪{b i} //将真实边界框b i划入相应的簇7 end f or 8 A*=ϕ 9 f or j=1,2,…,m do 10 μj=1 Cj∑bi∈cj b i //计算新的Anchor大小11 A*=A*∪μj //将计算的Anchor大小添加到A*中12 end f or 13 Until达到最大迭代次数获得最优锚定框
实验环境:本文实验所有的环节在Ubunt u18.04系统上搭建,内存为64位,显卡为NVIDIA GeForce RTX 3080Ti,代码的运行环境为Python3.8,使用Pytorch作为本文的代码实验框架。为了排除其他相关变量对实验结果的影响,所有实验都是基于上述环境进行训练和测试的。
实施细节:实验数据集采用COCO[25]数据集的格式,模型使用的优化器类型为Adam优化器,其中初始学习率为0.000 1,动量为0.9,Batch Size设置为8,衰减系数为0.001,训练步数为20 000,为了加快收敛速度,使用了COCO的预训练权重,并设置了梯度裁剪来稳定训练过程,避免产生梯度爆炸或梯度消失。
数据集:实验采用的数据集来自天池布匹挑战大赛布匹瑕疵图像,素色布匹图片一共9 596张,其中包含正常图片3 683张和瑕疵图片5 913张,每张瑕疵图片中包含1种或多种瑕疵,图像分辨率为2 446×1 000,在实验中,对所有的瑕疵图像按照8∶2划分训练集与测试集。样本集中包含纺织工业中常见的20类瑕疵类别,如破洞、污渍、三丝、结头、毛粒、松经、断经等,数据集样本瑕疵分布及数量如表2所示。
表2 布匹瑕疵的分类与数量
表2真实的反映出数据集的瑕疵类别分布极不平衡的问题,其中,结头瑕疵点达到了1 996,而白脚瑕疵点仅有161,图6为数据集中不同类型瑕疵点的目标数统计,不同瑕疵点间数目差异巨大,种类分布严重不均,例如结头近2 000个样本,而花板跳只有123个样本,这容易产生过拟合,使训练出来的模型泛化能力较差,图7为不同面积目标的数量占 比其中小目标占比较高约四分之一,这些都给布匹疵点的检测带来了困难。
图6 不同类别目标数统计
图7 目标面积统计
为达到理想训练效果,在训练深度学习网络模型时,通常需要大量的瑕疵样本,因此本文采用数据增强的方式对原始的瑕疵样本进行数据扩充,为避免失真,对原始瑕疵样本集分别进行水平和垂直方向的翻转,并对其疵点较少的样本进行对称变化等方式数据扩充,数据增强后的瑕疵样本图片数量为原来的2倍。
图8是采用不同算法训练时模型的损失收敛变化情况,从图中可以看出,损失曲线逐渐拟合于所训练的布匹瑕疵数据集。本文所提出的方法模型拥有更好的收敛性,并且误差也降低到较低的水平,这是由于通过融合形变卷积的多尺度特征提取,引入自注意力机制使模型表现出更强的判别瑕疵特征的能力,在RPN阶段采用自适应边框生成器,指导初始锚设计,从而使所提出的方法拥有更好的收敛性。
图8 模型的损失收敛曲线图
图9展示了不同类别的布匹瑕疵特征图可视化,其中特征图中红色部分为重点关注的瑕疵区域部分,显而易见,对于不规则、尺度变化大和小瑕疵的目标,该模型成功捕获到了布匹的瑕疵特征。最主要的原因归于采用自注意力机制设计了双通道特征融合,通过进行自适应的调整融合获取更为有效的瑕疵特征,使得模型更加关注瑕疵特征,表现出更强判别极端瑕疵特征的能力。
图9 布匹瑕疵特征图可视化
为了分析和评价提出的瑕疵检测方法的性能,设置4组对比实验,采用准确率(Acc)、平均精度均值(mAP)、F1度量(F1-Score)和误检率(NF)四个评价指标综合说明算法的瑕疵和缺陷检验的准确性和有效性。
(1)验证融合形变卷积多尺度特征提取网络对模型性能的有效性,即在级联网络模型中分别以Resnet50、Resnet101以及加入形变卷积后的实验对比。从表3中可以看出,在Resnet101中加入形变卷积后,准确率提高了1.56个百分点,且误检率降到了6.02%,这说明引入形变卷积后,多尺度特征提取网络获得具有更多瑕疵的关键信息的特征图,使算法更精确的对不规则瑕疵进行定位。
表3 不同特征提取网络对比结果
(2)多通道特征聚合网络(MCFA)对模型性能的有效性,实验对比如表4所示。从表4中可以看出,在基线方法的基础上,添加特征通道注意力模块后(TA),模型的mAP提升了0.75%,然后添加空间注意力模块后(PA),模型的mAP提升了0.66%,说明了空间注意力模块有助于定位小目标疵点特征;添加MCFA,本文模型的mAP提升了2.49%,且准确率达到95.84%,从而证明了MCFA的有效性。利用注意力机制筛选出语义信息更丰富的小瑕疵特征,缓解了小瑕疵目标特征表达的不足,实现了更准确的瑕疵识别与定位。
表4 不同特征融合性能对比结果
(3)验证自适应锚框聚类对模型性能的有效性。实验对比结果如表5所示,针对松经、断经、吊经这类瑕疵极端长宽比的情况,采用自适应边界框生成器后,平均检测精度均提升明显,充分说明了自适应锚框聚类算法的有效性。这得益于生成器计算最优锚定框后,锚定框的尺寸适用于部分瑕疵极端长宽比的比例值,平均检测精度提升的主要原因是初始锚定框设计的更加合理,尺寸适应布匹瑕疵真实框大小,利于后续的检测和回归,有效缓解极端瑕疵长宽比悬殊大对模型检测性能的影响,增强瑕疵检测模型的学习能力。
表5 部分瑕疵AP对比结果
(4)提出方法与其他先进的一阶段和两阶段方法进行了实验对比。表6为本文提出的方法与其它先进检测方法在素色布匹瑕疵数据集上的效果比较,可以看出,级联检测器采用级联的结构,设计了多个检测器,
表6 不同网络瑕疵检测结果
通过逐步提升检测框的IOU阈值,所以检测准确率要优于Mask RCNN、Retina Net、YOL Ov5等,与未改进的原Cascade RCNN相比,在检测时间增加8.69 ms的前提下,准确率达到98.14%,mAP值提升16.7%。从实验结果可以看出,本文所提方法单张样本瑕疵检测用时70.32 ms,可以满足实际工厂车间生产要求,且平均检测精度和准确率都达到了最高,因此本文方法对不规则瑕疵、小目标瑕疵和尺度变化大的瑕疵适用性更强。
为了验证改进后模型对素色布匹瑕疵的检测性能,在测试集中针对不同瑕疵类别进行测试。图10给出了本文方法在素色布匹瑕疵数据集上的效果图,其中,左侧数字表示瑕疵类别,右侧数字表示检测精度,从该图中可以看出,所提出的检测方法对目标瑕疵的边界识别更加精准,对小目标的检出能力更强,疵点检测效果更好;对瑕疵尺度变化大的目标检测效果也相对较好,能够得到精确地包围框和较高的分类得分。
图1 瑕疵检测网络框架图
图10 布匹瑕疵检测结果
布匹瑕疵的自动检测是工业界的重要研究热点。将深度学习算法应用于布匹瑕疵检测对于提高布匹瑕疵检测性能有着重要意义。本文分析了实际工厂车间素色布匹瑕疵的特点,针对素色布匹中瑕疵不规则、小瑕疵目标多、瑕疵纵横比悬殊等问题,提出了融合形变卷积和自注意力的素色布匹瑕疵检测方法。通过融合形变卷积的多尺度特征提取、构建双通道特征聚合的注意力模块和采用自适应边框生成器的方式,有效地提升了布匹瑕疵点的检测精度。经实验对比分析发现,这些改进很好地解决了不规则瑕疵、小目标瑕疵和瑕疵纵横比悬殊带来的负面影响,同时在素色布匹瑕疵数据集的消融实验和性能对比实验表明,对20种素色布匹瑕疵的整体检测准确率达到了98.14%,平均精度均值为68.31%,单张瑕疵图片的检测时间为70.32 ms,优于当前主流的素色布匹瑕疵检测方法,证明了提出方法的先进性。但由于是采用两阶段的级联检测器,该模型存在较多参数,影响了检测时间。因此,在保证检测精度的同时减少参数量,使模型更加轻量化,更好的满足实时性应用和需求,将是下一步的研究方向,未来还可以考虑在实际工厂车间对动态视频识别处理,尝试对动态视频进行研究,更具有实际意义。