基于数据增强和改进卷积神经网络的织物纬斜检测
2023-11-09吴诗豪
刘 正, 吴诗豪, 侯 珏,4, 杨 阳
(1.浙江理工大学 浙江省服装工程技术研究中心,浙江 杭州 310018;2.浙江理工大学 国际时装技术学院,浙江 杭州 310018; 3.浙江理工大学 服装学院,浙江 杭州 310018;4.武汉纺织大学 武汉纺织服装数字化工程技术研究中心,湖北 武汉 430073)
纬斜是牛仔服以及平纹织物服装生产中的一种常见疵点,是织造过程中应力不平衡导致的纬纱扭曲变形,其对纺织服装产品的质量有着重要影响。利用计算机视觉系统检测织物疵点是目前纺织行业控制产品质量的主要手段。纬斜不同于破孔、拉丝和起球等疵点,纬斜织物的结构和纹理未受到物理损害,因而很难运用传统的图像分割方法进行检测。
早期的研究通常采用光电法、霍夫变换和傅里叶变换[1-4]来检测纬斜,但光信号无法穿透较厚的织物,而传统机器视觉的算法需要采集大量的高分辨率图像,对设备和时间要求较高,且分辨率高致使计算量增加,从而导致检测效率较低。
卷积神经网络(CNN)因其突出的特征提取能力,逐渐被应用于织物疵点检测。基于CNN的检测主要分为弱监督模型[如多尺度卷积降噪自编码器(MSCDAE)[5]、生成对抗网络(GAN)[6-8]、卷积自动编码器(CAE)[9]、高效自监督缺陷检测网络(SEDD)[10]]和监督模型[如YOLO系列算法[11]、区域卷积神经网络(R-CNN)[12]]。弱监督模型采用无疵点样本进行训练,通过获取疵点与背景的残差区分织物结构是否受损,但纬斜疵点织物的物理结构并未受损,因此弱监督模型无法有效识别纬斜。监督模型采用主干网络提取特征,利用特征获得高精度结果,但无法在未经训练的情况下检测新类型织物的疵点。
尽管卷积网络检测织物疵点有着较大的优势,但对于纬斜的检测还存在两个难点:①用于训练的纬斜疵点数据不足,很难建立一个详尽的数据集;②针对训练集外的新类型织物,现有模型无法获得高精度检测结果。基于上述的问题,文中提出基于网格变形的可控数据增强方法,以解决纬斜检测中数据不足的问题;提出一种具有循环训练策略的目标识别网络——纬斜检测网络(skewing detection network,SDN),以解决纬斜疵点识别效率低的问题。
1 数据增强方法
1.1 样本与仪器
1.1.1样本 织物图像源自天池实验室[13],共2 000张,包含平纹、缎纹、斜纹、纯色以及各种花纹织物,以保证数据集织物纹样的多样性,增强算法鲁棒性。
1.1.2仪器 计算机,自行组装,内存32 G,处理器型号为Intel®CoreTMi7-11700K,图形卡型号为NVIDIA GeForce RTX 3080Ti;CCD相机,型号为Mars4072S-30uc,配备16 mm工业镜头,相机高度为500 mm,视场大小为180 mm×240 mm,相机拍摄得到图像分辨率像素为3 000×4 000,为防止因图像畸变导致图像中形成纬斜纹样,通过张正友标定法[14]对相机进行标定。
1.2 纬斜数据增强方法
为测试文中提出的SDN纬斜疵点检测性能,设计模拟设备生成织物纬斜,具体如图1所示。由图1可以看出,设备有两个辊用来模拟织物传输,在设备顶部安装了一组相机镜头进行图像采集。在第1个辊的一侧附着一层橡胶,由于辊面和橡胶的摩擦系数不同,可以模拟左右不平衡的传输张力,使织物左右两端以不同的速度向前移动,产生真实纬斜疵点。
图1 设备示意Fig.1 Schematic diagram of the equipment
监督模型通常使用大规模注释数据集进行数据增强[15]。为保证纬斜检测模型生成足够多的训练样本,根据纬斜图像的几何特点,对其进行公式化表示。
然而在实际检测中,织物的纬斜包含斜纬、弯纬、双弓纬、钩弓纬、双钩弓纬等类别,表现形式为斜纬和各种弓纬的复合,但在局部图像内,纬斜可以看作只存在斜纬,不存在弯曲[16],因此纬斜可以通过微分转化为由多个局部斜纬组成的纬斜疵点。文中基于这一特点生成局部纬斜图像。
图2为正常织物和纬斜织物的网格受力分析,图中格子表示内部应力的分布。图2中,受垂直方向张力不平衡的影响,垂直向的纬纱弯曲成曲线,使纹理产生扭曲,其纬斜偏斜度从零逐渐增加到最大值,纹理变形发生在张力一侧。因此,纬斜疵点图像可以通过几何形态的畸变进行表述。
图2 织物网格图应力分布Fig.2 Stress distribution of fabric grid diagram
为了模拟纬斜图像的形变,在无瑕疵织物图像上构建网格G,定义变形场来表示变形的强度和方向,通过变形场F生成变形网格G′,具体如图3所示。
图3 变形场和变形网格表示的变形过程 Fig.3 Distorted process of field and grid
网格与变形场集合定义如下:
G∈{G0,0,G0,1,…,Gi,j} ;
F∈{F0,0,F0,1,…,Fi,j} 。
其中,i和j表示行和列中网格单元的计数。
由图3的扭曲网格可以看出,不同网格单元的变形存在着差异,并且变形无法由统一的仿射矩阵表示。为此,变形场估计函数fi,j(θ)定义为
(1)
式中:m为图像宽度;h为纬斜的高度;θ为纬斜角度,θ=arctan(h/m);θk=(θ/m)·k。通过计算⎣k·tanθk」-⎣(k-1)·tanθk-1」标注出变形场,其中⎣·」表示向下取整运算。
考虑到实际纬斜角度分布特点,分布函数定义为
式中:I为变换区域的高度;θmax为最大偏斜角。式(2)表示大量纬纱偏斜的情况,式(3)表示部分纬纱偏斜的情况。
算法G′生成的计算过程
输入: 均匀网格G;
输出: 变形网格G′。
1)while(i 2)计算zθ(i); 4)++i; 5)++j; 6)end while; 7)returnG′。 图4为不同方法获得的纬斜。其他仿射变换算法[17]获取的纬斜接缝尖锐[见图4(a)],而文中方法将整个图像分解为小块,减少了接缝的尖锐程度,并在变形过程中较好地保持了纹理的连续性[见图4(b)]。 图4 不同效果的纬斜Fig.4 Different effects of skewing 由于纬斜在图像中显示为不规则的长条,R-CNN和YOLO模型中的锚点无法覆盖此类形状,导致这些监督模型在检测纬斜时效果不佳。因此,文中在CNN网络基础上结合纬斜的几何特征提出了纬斜检测网络。 在目标检测模型中,单阶模型的检测效率通常高于多阶模型。为了提高纬斜检测效率,将纬斜检测网络设计为单阶神经网络,具体结构如图5所示。SDN包含两类网络:①全卷积主干网络;②多层感知器(MLP),MLP包括分类模块和边界框模块。 图5 SDN网络结构 Fig.5 Architecture of the SDN SDN选择VGG16[18]的卷积层作为主干网络。由于VGG16使用了连续的小卷积核,而不是更大的卷积核,因此其架构深入且简单,有助于增加网络的深度,学习更多的特征,从而提高模型的准确性。由于在SDN中重新设计了MLP网络,因此将VGG16的全连接层移除。 由图5可以看出,主干网络通过VGG中4个阶段的卷积,将输入转换为多尺度输出,统一提取图像中宏观尺度和微观尺度的特征,加深网络对纬斜疵点多尺度特征的学习;将多尺度特征图转换为向量并输入到分类器模块,计算分类概率;根据分类结果,正样本的特征向量被输入到边界框模块;采用与分类器模块相同的计算,将从主干分离的多尺度特征转换为向量,在全连接网络中计算边界框的坐标。为了进一步细分优化网络对正样本的检测性能,SDN根据边界框提取候选识别区域(ROI),输入到第2轮训练的模型。 2.2.1正样本回归 YOLO等网络通过建立像素网格锚点获取对象位置。然而,一般方形网格和纬斜在形状上存在很大的不同,纬斜的边界框通常宽度相似,高度差异较大,需要计算边界框的高度和纵向坐标得到水平和垂直维度之间的差异。此外,YOLO等模型中同时进行回归类别和纬斜位置的回归方式会使得模型的锚点机制效果降低,边界框会覆盖无疵点区域,从而导致分类错误[19]。因此,文中分别预测纬斜疵点的位置和分类。 为了独立计算边界框纵向维度的坐标,将模型的检测过程设计成一个新的管道,该管道先预测正样本,再异步生成边界框以及纬斜对应的纬斜率,具体公式为 (4) 其中, (5) 式中:X1表示首轮训练输入;Y表示首轮预测结果;X2表示提取ROI后的次轮输入;x和y为疵点的左上坐标;h和s为边界框的高度和宽度;c为预测的概率。g(·)用于预测类别;F1(·)用于计算边界框;F2(·)用于提取候选识别的区域。 由于纬斜的形状特殊,获得的边界框始终包含大部分负样本区域,导致模型的损失很难收敛到最小值。利用式(5)在边界框回归之前选择负样本,分别进行分类预测与边界框回归。通过进行循环训练,获取正样本准确度更高的边界框。 2.2.2多尺度输入 感受野对神经网络的性能影响非常大,大体积对象需要较大的感受野来提取特征。为了获得更大的感受野,提升SDN检测纬斜的性能,将高斯金字塔[20]引入SDN,以生成不同尺度的输入,从而获得不同尺度的感受野和特征图。多尺度图像被输入到SDN后,分别从小、中、大3个尺度提取全局特征和局部特征,具体如图6所示。 图6 使用热图绘制的主干特征Fig.6 Backbone feature maps drawn with heat maps 根据主干网络计算得出,最终层的最大感受野像素为212×212。为了获取足够的全局信息,输入图像对应的最终感受野像素应该不大于212×212,并且图像大小至少为原始图像的1/6。 2.2.3损失函数 目标检测模型的损失函数用于计算分类概率和边界框位置的损失。然而,此类模型使用的IoU[21]损失通常忽略了预测模型和目标模型之间重叠区域的大小,当不存在重叠区域时,IoU损失会失效。为了保证IoU损失的有效性,文中提出了一种计算坐标变化的新函数,从分类损失、边界框损失和坐标损失3个方面优化网络,具体公式为 L=LC+LI+LB。 (6) 其中, (7) 3.1.1模型参数设置 文中在深度学习库PyTorch中实现SDN模型。通过高斯金字塔将输入像素调整为180×240,360×480和720×960,依次将图像输入网络。采用ImageNet预训练初始化参数,使用Adam优化器优化整个网络。网络在17个训练周期后收敛,验证集的损失和精度保持不变。同样,为了比较SDN和其他目标检测模型的性能,训练在过拟合之前退出。实验比较了SDN,YOLO v3,Faster R-CNN,Mask-R-CNN和YOLO v5系列网络的运行结果。 3.1.2数据集 运用纬斜公式化方法生成1 000个正样本和1 000个负样本充当训练数据集,所生成图像的纬斜角度设置为-13°~13°,与光电整纬器的纠正角度范围相同。使用图1中的模拟设备采集了100张纬斜图像,样本包含低支数纱面料、高支数纱面料、格子布、纯色织物等不同的织物。 IoU是衡量目标边界框检测准确性的代表性指标,IoU越高代表实际边界框与检测边界框重叠比例越高。为了消除检测出的多余边界框对结果的影响,文中将能够被检测到的疵点IoU阈值下限设置为0.5。当IoU超过0.5时,样本被视为正样本,并记录样本种类和IoU。对于已经记录的数据,使用一些经典指标(如精确度、召回率和F-score)来比较不同网络的性能。 SDN与其他纬斜检测方法比较结果见表1。在YOLO类模型中,YOLO v5x的检测准确率最高,其F-score为0.88,检测的平均IoU为0.95,但处理图像的速度为每张图0.08 s,在所有YOLO中速度最慢;YOLO v3的性能介于YOLO v5m和YOLO v5l之间。SDN检测准确率总体高于YOLO,与YOLO中性能最优的YOLO v5x相比,SDN的精度提高2.8%,F-score提高0.09,平均IoU提高0.02。YOLO v5x和SDN是一阶模型,其处理速度分别为0.08 s和0.2 s,快于R-CNN这类二阶模型。而R-CNN模型由于未能聚类足够多的预设锚点,导致在纬斜检测中性能不佳。 表1 SDN与其他纬斜检测方法的比较 Tab.1 Comparisons between SDN and other approaches to skewing detection 同时,文中选取纬斜角度为-13°~13°的不同样本对纬斜检测网络的纬斜率进行测试,结果见表2。由表2可知,对于负样本无纬斜疵点的检测结果基本准确,误差为0;正负角度在纬斜率较大和较小时的检测效果相近;所有角度的误差ε都在原纬斜率的±8%以内,说明纬斜检测网络对纬斜率有良好的检测精度。 表2 不同角度下SDN纬斜率检测结果Tab.2 Detection results of SDN skewing slope at different angles 不同模型在测试集上的检测结果如图7所示。由图7可以看出,R-CNN类模型无法准确标注出纬斜位置,Faster R-CNN模型只检测出负样本的位置并且边界框标注不准确;YOLO类模型在检测存在部分正样本的图像时较为准确,精准标注出了正样本和负样本的区域,在检测只包含负样本的图像时,其标注的边界框位置与包含部分正样本的图像中标注的位置相似,并有部分负样本区域未标注,在只包含正样本的图像中标注了与包含部分正样本的图像中相似的边界框,检测效果较差;SDN在各类型检测图像中都标注精确,检测效果较好。 图7 不同模型的纬斜检测结果Fig.7 Skewing detection results of different models 为了进一步验证高斯金字塔和训练策略的有效性,文中进行了消融实验。由表1可知,未进行正样本回归和重新提取ROI的模型精度降低了3.2%,F-score降低0.03,表明提取原始图像中的ROI以生成具有更大疵点比例的新输入,可提供对网络训练影响更小的纬斜疵点。此外,文中将一个尺度的图像输入SDN进行训练,结果显示精度降低了5.3%,F-score降低了0.07。SDN中的多尺度输入和正样本回归优化了模型性能,提升了检测效果,并且在未进行正样本回归的模型和一个尺度图像输入训练的模型中,平均IoU仅为0.95和0.87,定位性能比SDN差。 为了检测SDN在实际应用中的性能,应用拍摄的纬斜图像进行模型测试,为保持模型的训练集一致,SDN和YOLO在公式化方法生成的数据中进行了预训练。 各模型的跨数据集性能见表3。由表3可以看出,SDN在数据集中的精确率为82%,召回率为84%。由于YOLO类模型只检测出了负样本,导致此类模型召回率低于40%,精确率低于75%。究其原因,YOLO中正样本锚点包含关于背景中的不必要特征,正样本和负样本之间不平衡,而SDN由于在模型检测正样本边界框时排除了负样本特征的影响,从而获得了更高的精度。结果表明,SDN模型在跨数据集任务上取得了出色的性能。 表3 各模型的跨数据集性能Tab.3 Cross-dataset performances of different models 文中提出了一种针对纬斜图像生成的数据增强方法,其根据几何特征将纬斜图像生成方法公式化,生成了高质量的纬斜疵点数据集。为了有效检测纬斜,提出了一个基于卷积神经网络改进的SDN和对应的训练策略。与其他目标检测模型相比,SDN在纬斜检测中效果最佳,检测精度达到98%,F-score为0.97,平均IoU达0.97。在纬斜率检测中,SDN将纬斜率误差控制在±8%以内,达到了良好的检测效果。消融研究验证结果表明,SDN提出的训练策略和多尺度输入提升了模型的性能。在跨数据集的实验中,发现SDN拥有良好的跨数据集检测性能,可以高质量检测工业生产中的纬斜疵点。2 纬斜检测网络
2.1 网络结构
2.2 网络细节
3 实 验
3.1 实验设置
3.2 性能指标
4 结果与讨论
4.1 对比实验结果
4.2 消融实验
4.3 跨数据集性能
5 结 语