APP下载

基于改进Faster R-CNN的花色布瑕疵检测算法

2022-05-13费利斌余智祺孙以泽季诚昌

关键词:花色瑕疵特征提取

费利斌,徐 洋,余智祺,孙以泽,季诚昌

(东华大学 机械工程学院,上海 201620)

目前国内大多数纺织企业采取人工进行布匹瑕疵检测的方式。但近几年来,部分纺织企业开始开发基于机器视觉的布匹瑕疵自动检测系统。国内纺织行业中多数布匹瑕疵检测系统存在检测精度低、普适性差的问题,同时受限于传统图像处理技术的局限,算法依赖于对人工设计的特征进行提取,只适用于在较为简单的素色布上进行瑕疵检测[1]。国外已有较为成熟的自动检测设备[2],但造价较为昂贵,且只适合素色布的检测。但在工厂实际生产中,大多数布匹为具有复杂背景图案的花色布,受限于传统图像处理技术,现有布匹瑕疵检测系统难以取得很好的检测效果。

新网络结构[3]和损失函数等深度学习理论的发展,给花色布瑕疵检测带来了新的突破。Jing等[4]通过将纹理织物图像分解为局部补丁,并对标记的补丁进行网络训练,最后利用训练模型在图像上滑动来检测瑕疵。另外,Jing等[5]采用YOLOv3模型加入K-means聚类预选框尺寸和特征融合的方法进行瑕疵检测。上述两种方法都可以用来检测较为规则的条纹和格子等布匹,但构造的网络较为简单,并不适用于图案复杂的花色布。Han等[6]使用无监督学习方法,利用堆叠卷积自动编码器来进行瑕疵检测,可以缓解工业领域样本不足的影响,但其检测准确率不高。Xie等[7]使用改进的RefineDet网络,并加入常用的优化方法以提高模型的检测准确率,但不可避免因瑕疵形状和颜色与布匹背景的相似而出现误判。

为解决花色布瑕疵检测的问题,本文提出基于改进Faster R-CNN[8](faster region with convolutional neural networks)的花色布瑕疵检测算法。首先在二阶模型Faster R-CNN的基础上,使用Resnet-50[9]作为主干网络,并嵌入可变形卷积[10]来提高瑕疵特征的学习能力。设计多尺度模型来提高小瑕疵的检测能力,并通过级联网络不断提高瑕疵定位的准确度和对瑕疵的识别能力。然后使用改进的损失函数减弱难易样本和正负样本不均衡问题的影响。最后,通过对瑕疵图片进行测试并与基础模型进行对比以验证模型的效果。

1 花色布瑕疵检测系统

花色布瑕疵检测系统主要由线阵相机、条形光源、计算机、编码器、检测平台组成,如图1所示。

图1 花色布瑕疵检测系统Fig.1 The defect detection system for patterned fabrics

其中线阵相机为DALSA彩色线扫相机,图像分辨率为4 096像素×1像素。编码器的安装位置需和布匹表面接触,布匹移动时带动编码器转动,从而发出脉冲信号控制相机采集卡进行采集。相机高度可以根据布匹的幅宽进行调整,当前实验室检测平台幅宽为1 m。条形光源的亮度可以通过输出电压进行调节,设置为40V。计算机配置为Intel(R)Xeon(R)CPU E5-2650 v2和NVIDIA GeForce GTX 1080Ti GPU。瑕疵检测算法使用python 3.6语言,开发框架为Pytorch框架。

2 花色布瑕疵检测算法设计

本文以Faster R-CNN为网络框架,采用融合可变形卷积的Resnet-50作为主干网络对输入图像进行特征提取,然后经过多尺度模型进行特征融合操作得到多个不同尺度的特征图,通过区域建议网络(region proposal network,RPN)模块获得较好的感兴趣区域(regions of interest,RoI),并将RoI对应到相应的特征图进行池化,最后通过级联网络对池化得到的特征进行分类和位置的回归。花色布瑕疵检测改进算法整体结构如图2所示。其中,H表示R-CNN部分网络,C和B分别表示分类和回归部分网络。

图2 花色布瑕疵检测改进算法整体结构Fig.2 The whole structure of defect detection improved algorithm for patterned fabrics

2.1 融合可变形卷积的Resnet-50网络

在卷积神经网络中,卷积具有特征提取的功能。普通的卷积是按照固定的矩形形状对输入的特征图进行采样,以3×3的卷积为例,其卷积操作和采样位置为

(1)

S={(x,y)|(-1,-1),(-1,0),…,(1,1)}

(2)

式中:F为输出特征图;d0为中心位置;di为采样位置与中心位置的固定偏移量;ω为卷积核的权重;f为输入特征图;S为偏移量的取值范围,在3×3卷积中偏移量共有9个。

在花色布瑕疵检测中,部分瑕疵为不规则的形状,普通的卷积核无法根据瑕疵的形状自适应地调整采样的位置,限制了对瑕疵特征的学习能力。

可变形卷积网络(deformable convolution network,DCN)通过引入采样位置的偏移量来自适应地调整采样位置,提高网络对瑕疵特征的提取能力,其原理如图3所示,其卷积操作为

图3 可变形卷积网络原理Fig.3 Principle of deformable convolution network

(3)

式中:Δdi为可变形卷积网络训练得到的偏移量。

Faster R-CNN使用VGG-16来进行特征提取,但VGG-16网络结构简单,特征提取的能力较低,在花色布瑕疵检测问题上并不能取得很好的效果。Resnet-50有着较深的网络结构,具有很好的特征提取的能力,且通过残差模块来消除网络退化的影响,可以有效提取瑕疵特征。为提高主干网络的瑕疵特征提取能力,在Resnet-50的后面4个阶段的最后一个残差模块中分别融入可变形卷积网络,残差模块结构如图4所示。

图4 残差网络Fig.4 Residual network

2.2 多尺度模型设计

Faster R-CNN只在特征提取网络的最后一个特征图上进行后续的检测,因为特征图是经过原图多次下采样得到的,所以在特征图上的花色布瑕疵,尤其是小瑕疵会丢失很多有效信息,因此需要设计多尺度模型(见图5)来提高瑕疵的检测效果。特征金字塔网络 (feature pyramid network,FPN)[11]通过自底向上和自顶向下两种方式对特征图进行特征融合,将深层的语义信息结合到具有较多位置信息的浅层,提高了小目标的检测。由图5可知,在Resnet-50后面4个阶段会得到4个特征图,分别为C2、C3、C4和C5,另外对C5进行2倍下采样得到C6。先对每个特征图通过1×1卷积统一通道数为256,再对深层的特征图通过2倍上采样得到和前一层相同尺度的特征图,并和前一层的特征图相加,最后通过3×3卷积以减少上采样过程的混叠效应,得到5个特征图F2、F3、F4、F5和F6。因为Resnet-50在特征提取的同时会对瑕疵周围的语义信息有一定的破坏,而原图中包含的全局信息可以为瑕疵特征提供周围的语义信息,对分类和定位具有指导意义,因此将全局信息作为一个RoI进行特征提取,将提取的特征加入到RoI在不同特征图上池化得到的特征中。

图5 多尺度模型Fig.5 Multi-scale model

通过多尺度模型可以得到5个不同尺度的特征图,后续根据RPN网络得到的RoI大小选择尺度合适的特征层分别进行预测。面积较小的RoI选择浅层特征图如F2,面积较大的RoI选择深层的特征图如F5。

2.3 级联网络设计

在二阶检测器中,当得到RoI后,通过选择RoI和标签框之间合适的交并比(intersection over union,IoU)阈值来判断RoI属于正样本还是负样本。在Faster R-CNN网络中,如果阈值过高,虽然选出的RoI更接近真实物体,但由于符合该阈值条件的RoI会变少,使得正负样本更加不均衡,导致训练过拟合;如果阈值过低,虽然使得正样本变多,但相应的误检会增加,导致分类误差会增大。

在阈值问题上遵循两个原理:一是当输入的RoI与标签的IoU在设置阈值附近时,检测效果会比基于其他阈值时好;二是通过回归后候选框的IoU会有所提高。基于这两个原理,通过设置级联网络来优化检测器的效果。级联网络通过级联3个检测器,因为在通过检测器回归后检测框的准确度会得到提高,所以将上一个检测器的回归结果输入到下一个检测器中后,其检测框的定位会更加准确,从而使级联的3个检测器的检测结果不断提高,其中3个检测器的IoU阈值应逐步提高,本文模型阈值分别设置为0.5、0.6和0.7,级联网络结构如图2所示。

2.4 优化损失函数

神经网络训练过程中参数优化的稳定性在一定程度上取决于损失函数的选择。在Faster R-CNN中分类损失使用交叉熵损失函数,其计算式为

(4)

式中:p为置信度;y为标签值,取值为0或1。

在花色布瑕疵检测问题上,因为实际的花色布瑕疵数量往往较少,因此在训练过程中存在正样本数量远少于负样本数量的情况,产生类别间不均衡的问题。Focal Loss[12](见式(5))函数通过参数来调节权重,可以同时缓解正负样本和难易样本不均衡的问题。

(5)

式中:α和γ分别为调节正负样本和难易样本的权重参数,常取α=0.25,γ=2。

因为Focal Loss过多关注难分样本,从置信度p的角度衰减损失值,导致模型整体的准确度下降。梯度均衡机制[13](gradient harmonized mechanism,GHM)通过一定范围置信度p的样本数量的角度衰减损失值。首先定义一个梯度模长,如式(6)所示。

(6)

式中:g为梯度模长。

梯度模长g正比于检测的难易程度。其次定义一个变量梯度密度(G(g))用来衡量一定梯度范围内的样本数量,如式(7)所示。

(7)

式中:δε(gk,g)为样本中g分布在(g-ε/2,g+ε/2)内的样本个数;lε(g)为(g-ε/2,g+ε/2)区间的长度。

分类损失函数LGHM为

(8)

但GHM在正负样本不均衡的问题上并没有很好处理,因此本文模型采用融合损失函数,如式(9)所示。

(9)

式中:μ0和μ1分别为两个损失函数的权重参数,本文模型中取μ0=0.5,μ1=0.5。

3 花色布瑕疵检测算法试验

为验证算法改进后的检测效果,对花色布瑕疵图片进行检测试验。取常见花色布瑕疵5种,分别为破洞、脏污、缝头、花毛、缝头印,输入图像大小为1 024像素×1 024像素,其中训练集图片共1 901张,用于检测的测试集图片共297张,数据集样本分布如表1所示。

表1 数据集样本分布Table 1 Sample distribution of the data set

训练过程使用随机梯度下降,动量取0.9,初始学习率为0.02,Batch size为48,epoch为20,学习率采用常数衰减方式,分别在第3、8、13、18个epoch时减小10倍。

3.1 花色布瑕疵检测效果对比

将训练好的神经网络模型在花色布测试集上进行瑕疵检测试验,使用Faster R-CNN+Resnet-50作为对比模型。两种模型的检测效果对比如图6所示,其中瑕疵检测框上面分别是预测瑕疵标签以及瑕疵的置信度,其中,标签1、2、3、4、5分别代表脏污、缝头、破洞、缝头印、花毛,置信度越高代表模型对瑕疵的识别能力越强,瑕疵分类愈加准确。由图6可知,相较于对比模型,本文模型对瑕疵的识别和定位更加准确,能够准确地框选出完整的瑕疵。部分破洞和脏污颜色形状较为相似,对比模型易出现误判。同时,本文模型可以检测出对比模型中漏检的部分瑕疵,主要是面积较小的瑕疵。

图6 两种模型的瑕疵检测效果对比Fig.6 Comparison of defect detection effect between the two models

3.2 检测结果

将两种模型在测试集上的检测结果进行统计,结果如表2所示。

表2 两种模型的瑕疵检测结果统计对比Table 2 Statistical comparison of defect detection results between the two models %

由表2可知,本文模型瑕疵检测的平均准确率相较于对比模型提高了8.52个百分点,小瑕疵的检测准确率提高了15.39个百分点,平均精确率也有8.91个百分点的提升。由此表明,本文模型的瑕疵识别准确率更高,定位更加准确。另外,在模型改进的同时,瑕疵检测的平均时间并没有增加太多。在实验室检测平台下,对幅宽1 m的花色布进行在线检测,布匹传送的速度可以设置为0.5~0.8 m/s,满足工厂检测实际需求。

4 结 语

本文采用基于卷积神经网络的花色布瑕疵检测算法,在试验的花色布瑕疵数据集上取得94.97%的平均准确率,具有较好的检测效果,可以代替人工检测,具体结论如下:

(1)通过使用基于卷积神经网络的检测算法,突破传统机器视觉算法的检测范围的限制,可以有效对具有复杂背景的花色布进行瑕疵检测。

(2)通过在检测算法中加入多尺度模型,提高了对小瑕疵的检测效果。

(3)通过使用融合可变形卷积的Resnet-50,引入级联网络结构进行分类和回归,对损失函数进行优化,提高了检测算法的准确度。

猜你喜欢

花色瑕疵特征提取
同步定位与建图特征提取和匹配算法研究
猜猜这是哪张牌?
这两题很难吗
哦,瑕疵
哦,瑕疵
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
小鱼笔袋
基于曲率局部二值模式的深度图像手势特征提取
毫无瑕疵的推理
考眼力