基于轻量化网络和知识蒸馏的纱线状态检测

2023-10-31 08:12任国栋屠佳佳邱子安史伟民
纺织学报 2023年9期
关键词:纱线卷积准确率

任国栋, 屠佳佳, 李 杨, 邱子安, 史伟民

(浙江理工大学 浙江省现代纺织装备技术重点实验室, 浙江 杭州 310018)

随着纺织技术的发展,针织纬编生产线中的纱架上纱筒替换、纱筒间纱线打结、落布等工序都可以通过自动化程序完成[1]。其中纱筒间纱线打结工序利用导纱管吸取纱筒上头尾端纱线,并将吸取的纱线送至打结机中完成打结[2]。此过程中打结成功的前提是导纱管中吸取到所需的纱线,而当导纱管内无纱线或单根纱线时,纱线打结工序失效,影响纺织品生产效率[3-4],因此需要对导纱管中的纱线数量以及种类进行准确识别,以保证后续工序顺利进行。

目前,纱线状态识别平台有接触式和与非接触式[5-6]。接触式主要以检测纱线来判断纱线状态,该方法在检测过程中纱线与检测器件接触,造成纱线产生磨损甚至断裂,影响产品质量。相比之下非接触式检测平台显得尤为重要。非接触式的光电检测在面对极板间杂质干扰时会出现误判的现象。也有学者采用图像处理的方式进行纱线识别方面的研究,李东洁等[7]利用图像阈值分割的算法进行纱线疵点检测。张缓缓等[8]提出一种基于亚像素边缘检测的纱线条干均匀度检测方法,来精确评价纱线的条干均匀性。马珂等[9]采用贝叶斯阈值进行像素分割,再对毛羽进行细化并统计纱线毛羽各项指标。

以上研究主要针对单根纱线特征进行分析,面对目前市场上纱线种类繁多且导纱管内纱线易出现重叠、交叉以及纱线会在竖直方向产生振动等现象,传统图像处理方法难以有效地进行管道中纱线数量的检测。本文采用深度学习中图像分类的方法识别导纱管内不同种类纱线的数量。同时,为加快训练速度与提高小型网络的准确率,采用迁移学习与知识蒸馏的组合方式进行训练,最终对小型网络进行移动端部署应用,且为实现上述方法设计了一个纱线检测装置。实验结果表明,本文检测方法可用于实际生产,且可类比应用于圆纬机上的断纱检测等。

1 检测流程与检测平台搭建

1.1 纱线打结与检测原理

纱线检测装置固定在打结机上,用于打结机在工作过程中的纱线实时检测。图1中纱架上的纱筒尾端会裸露出不规则的线头。打结机首先吸取即将用完的纱筒尾线,再去吸取满筒头线,最后执行打结动作。

纱线检测装置由上位机控制。首先,打结机器移动到头线处,上位机发送信号吸取头线后进行导纱管内纱线检测,当检测结果显示为单根纱时,立即返回信号表示单根纱吸入完毕。当打结机器移动到尾线处时,再次发送信号进行二次检测,此时判断是否为双根纱。若达到指定的要求,则打结机会执行打结动作。在检测过程中一旦检测不到指定纱线数目,将在当前步骤重新吸取判断。纱线检测主要流程如图2所示。

图2 纱线检测流程示意图Fig. 2 Schematic diagram of yarn detection process

1.2 检测平台搭建

依据上述检测流程以及采用的纱线检测方法,设计了如图3所示的纱线检测装置。整个装置体积小,成本低,且易于安装与拆卸,主要分为图像检测模块、图像处理模块以及图像输出模块。具体功能模块图见图4。

图3 纱线检测装置Fig. 3 Visualization of yarn sample set

图4 纱线检测板卡功能模块图Fig. 4 Function module diagram of yarn detection board

2 数据制作与预处理

2.1 数据集制作

本文所使用数据集是由自搭建平台采集获得,考虑到实际检测需要,设置分类标签为无纱、黑色普通单双根、白色毛羽单双根、白色竹节单双根,共7个类别。纱线样本形貌如图5所示。

图5 纱线样本集可视化Fig. 5 Visualization of yarn sample set.(a)Common single; (b)Common double; (c) Hairiness single; (d)Hairiness double; (e)Bamboo single; (f) Bamboo double

此外,本文将采集到的3 500张图片按照8∶2的比例分为训练集2 800张和测试集700张,再从训练集中划出560张做验证集。具体的划分类别信息:7种类别纱线样本的训练集数量均为320张,验证集数量均为80张,测试集数量均为100张,样本图片格式均为.JPG。

2.2 数据预处理

鉴于本文训练集样本较少,会导致网络训练过程中可能会出现过拟合现象。为此在输入网络训练前加入图像增强的预处理模块。具体方法为随机裁剪、水平与垂直翻转、以及亮度与对比度变化,由于构建分类模型的输入图像分辨率尺寸为224像素×224像素,因此须在预处理模块中将原始数据集的尺寸1 920像素×1 080像素进行指定缩放。经过数据增强后的纱线图像变化如图6所示,图中数字表示图像的像素大小。

图6 数据增强变化Fig. 6 Data enhancement changes

3 模型构建与训练部署

3.1 模型构建

就常见图像分类网络而言,其自身的模型参数以及正向推理所需要的硬件资源都是巨大的,这使得在大部分嵌入式端难以有效运行。鉴于本文使用的是国产芯片V831,其内存大小64 MB,这使得在搭建网络时,设置网络的宽度以及层数受到了限制。为此需搭建一个小型轻量化网络。

从目前经典的轻量化分类网络中,存在一种深度卷积结构,可以认为是分组卷积的一种特例。是将每个卷积核的维度降为1,然后其卷积的核个数与输入通道数相等。将标准卷积核替换成深度卷积核可以大大的降低参数量,间接减少模型正向推理的运算量。深度卷积可以缩减网络模型的参数量与运算量,但深度卷积通过将每个卷积核去各自卷积相对应的输入通道,会导致输入通道之间信息缺乏交流,间接影响模型的泛化性能。消除这种缺乏通道之间交流目前有2种方法,一种在深度卷积后加1×1的卷积核进行通道融合;另外一种在分组卷积前使用channel shuffle[10]模块加强通道间的信息交流。通道融合模块参数量与运算量相较于点卷积较小,但考虑后期在嵌入式终端平台部署时,其加速库一般不兼容通道融合模块算子。为此本文采取点卷积形式,搭配深度卷积组合形成的深度可分离卷积[11]结构。

将标准卷积和深度可分离卷积在参数量(不考虑偏置量bias)与运算量(不考虑正则化、非线性激活等计算情况)上进行比较。标准卷积和深度可分离卷积的参数量与运算量比值见下:

式中:CI为输入通道数;CO为输出通道数;DK×DK为卷积核尺寸;DF×DF为输出特征图尺寸。

公式中的分子部分为深度卷积与点卷积参数量与运算量之和,分母为标准卷积的运算量与参数量。本文使用的卷积核的尺寸为3×3,深度可分离卷积比标准卷积的参数量与运算量缩小了1/9左右,将近缩小了1个量级。

搭建的轻量化学生网络结构示意图如图7所示,具体每层的卷积网络结构参数如表1所示。可看出此网络是由每个基块串级而成,其中基块单元即是上述所提到的深度可分离卷积结构。

表1 学生网络结构参数Tab. 1 Student network structure

图7 学生网络结构示意图Fig. 7 Schematic diagram of student network structure

3.2 模型训练与部署

将上述自搭建的小型网络进行组合训练与部署。其整体训练与部署流程如图8所示。其主要分为以下3个部分:1)迁移学习,加快教师网络的训练速度与收敛;2)知识蒸馏,用来拉高学生模型的准确率;3)模型部署,实际将在PC端训练好模型权重文件进行一系列格式转换部署到嵌入式芯片上。

图8 整体训练与部署流程图Fig. 8 Overall training and deployment flow chart

4 实验与结果

4.1 实验环境

本文PC端的软件环境为Windows11(64)位操作系统下,采用Python3.8作为编程语言,深度学习框架Pytorch1.8GPU版,搭配Cuda11.2和Cudnn8.0加速包进行训练。硬件环境中CPU采用AMD Ryzen5 5 600 H,主频3.30 GHz;GPU采用NvidiaGeForce RTX3050,4 GB显存。针对教师网络和学生网络进行训练,涉及到通用的参数如表2所示。关于模型超参数设置是根据验证集的结果来手动进行调整。最后将验证集的准确率与训练集的损失进行对比得出批大小为32、学习率为0.000 1最合适。限于篇幅原因,本文略去2个超参数的训练过程。

表2 实验参数设置Tab. 2 Experimental parameter settings

本文移动端软件环境为Sipeed科技提供的SDK工具包MaxiPy3以及在线量化平台MaixHub,进行模型的量化部署与测试。硬件环境CPU采用全志V831,主频1 000 MHz;内存为64 MB,且CPU内置0.2 TOPS算力的AI加速器NPU。

实际情况下在导纱管内的纱线由于受到风机吸力的作用,导纱管内的纱线会被拉直且越靠近管口越贴紧管壁的上半部分。其状态为轴向速度为零,竖直方向有些许振动。为此本文的实验背景就是模拟纱线在导纱管内的状态来进行重复性实验。

4.2 迁移学习训练

由于本文数据集为小样本数据集,同时为加快网络的训练时间以及网络可以迅速收敛,采用迁移权重[12]的学习方法。将官方在ImageNet数据集上训练好的预训练模型权重迁移到本文数据集上需要训练的教师网络。由于官方数据集与纱线原数据集特征相差较大,本文采取加载全部预训练权重对教师网络ResNet34进行迁移学习。

训练结果如图9所示。图9(a)显示使用迁移学习后的教师网络在第1轮结束时,验证集上的准确率就达到了90%以上,且在第5轮以后曲线趋于稳定。观察图9(b)发现使用迁移后的教师网络训练损失初始值低、收敛有明显更快,证明了迁移学习的有效性。

图9 迁移学习下的验证集准确率以及训练损失Fig. 9 Accuracy rate (a) and training loss (b) of verification set under transfer learning

4.3 知识蒸馏训练

迁移学习是只能在同一种网络结构才能进行的权重迁移,这就要求2个网络在结构上必须相同,不然无法覆盖权重。知识蒸馏可在不同网络结构之间进行迁移,但迁移的不是权重而是对于同一个训练集输出的目标值。本文设计的自搭建轻量级网络无法进行迁移学习,但可以使用知识蒸馏将网络结构不同的ResNet34教师网络来提高自搭建网络的准确率。

针对学生网络训练时,手动设置的超参数部分与训练教师网络保持相同。在知识蒸馏[13]训练过程中,损失权重α以及知识蒸馏温度T,需依据实验结果进行手动设定。通常情况下蒸馏损失系数占比较大,且上述所提知识蒸馏温度T的选择与网络模型大小密切相关,网络参数量较小时,对于比较低的温度最好。因此将蒸馏温度T和损失权重α设置为自变量,在验证集上的准确率设置为因变量进行对比实验,实验对象为自搭建的学生网络与迁移学习后的教师网络ResNet34。具体实验结果如表3所示。

表3 参数T和α对Top-1验证准确率的影响Tab. 3 Influence of parameters T and α on top-1 accuracy

观察表3发现,损失权重α与蒸馏温度T的设置对网络的验证准确率并没有什么规律可言,但相较于蒸馏前的学生网络验证准确率为95.7%有所提升。观察发现验证准确率最高为99.57%,且表3中对应此准确率的参数较多。最终将蒸馏温度T设置为3,损失权重α设置为0.2。本文采取该组参数对学生网络进行蒸馏训练,其训练结果如图10所示。

图10 知识蒸馏下的验证准确率与训练损失Fig. 10 Accuracy rate (a) and training loss (b) of validation set under knowledge distillation

观察图10(a)发现蒸馏后的学生网络在第75轮训练后验证集准确率紧逼教师网络,且整体蒸馏后的网络准确率高于学生网络。从图10(b)看出训练损失曲线不断收敛,在第10轮损失逼近教师网络,且蒸馏后训练损失较蒸馏前训练损失收敛明显提前。实验结果表明知识蒸馏的确是有效可行的。

4.4 模型性能分析

模型空间复杂度可通过参数量反映。模型部署到边缘计算平台板卡上,除模型参数量外,模型推理速度同样是衡量网络模型一项重要指标。通常使用Time类来测量模型推理时间,但GPU运行会存在预热起步,因此此种做法显得不太客观。本文采取预热加同步的方式对300 张图片进行测试并取平均时间,此方法测量模型推理时间较为客观合理。将学生网络、KD加学生网络、教师网络,以及典型轻量型卷积网络MobliNetV3_Small以及ShuffleNetV2_x0.5进行推理性能对比,结果如表4所示。蒸馏前学生模型测试准确率为96.00%,采用教师网络进行蒸馏后,学生模型测试准确率十分接近教师模型为99.28%。且从表4可看出自搭建的轻量化学生网络比目前典型的轻量化模型,就参数量与计算量而言都要少,间接地提高了模型的正向推理时间。

表4 网络模型推理性能对比Tab. 4 Comparison of network model inference performance

4.5 模型部署

上述最后的得到的自搭建学生网络是在PC端训练以及验证,但是最终需要实际部署到嵌入式端进行实际应用可能会出现些许不确定性。

鉴于目前成本考虑,选取国产全志V831芯片来进行模型部署。具体流程为:利用pytroch框架下自带的计算图转换工具,将上述组合训练好pth格式模型权重文件转换以onnx格式计算图文件,接着使用腾讯开源ncnn工具将以onnx格式文件转换成一个bin和一个pararms格式文件。以上2个文件皆是在arm处理器上运行所需要的。且要使用全志芯片内部自带的KPU权重量化与卷积加速器,因此还需将上述2个文件转换成awnn框架下的所使用的模型文件awnn_int8.bin文件以及awnn_int8.params文件。且使用这2个文件在嵌入式终端进行部署。

最终在嵌入式端实际检测的结果如图11所示。观察纱线检测结果可知,单根纱线的概率皆高于70%以上,而双根纱线的概率皆高于80%以上。接着对纱线检测进行重复性实验,得出实际纱线检测准确率为98.86%,如表5所示,满足实际应用需要。

表5 嵌入式端检测准确率Tab. 5 Embedded end detection accuracy

5 结 论

本文使用知识蒸馏利用教师网络输出软目标知识提高学生网络测试准确率。蒸馏训练时,需先载入训练好的教师模型权重,由于本文数据集为小样本数据集,即采用迁移学习策略对教师网络进行训练。构建学生网络时,采用叠加深度可分离卷积块的形式实现网络轻量化。最终实验结果表明,蒸馏后的学生网络具有准确率高、模型小、推理速度快等优点,将在PC端训练完成的学生网络进行嵌入式端部署并检测,其测试结果表明可以满足实际应用需要。具体实验结论如下。

1)使用迁移学习后的教师网络在第1轮后验证集的准确率达到了92%以上,且损失曲线的收敛速度也明显加快。

2)采用知识蒸馏训练学生网络时,损失权重α设置为0.2、蒸馏温度T设置为3时效果最好,其在验证集上的Top-1准确率可达99.57%。

3)将蒸馏前后的学生网络、教师网络、以及现阶段典型的轻量化网络进行模型推理对比实验。将原本在测试集上准确率为96.00%的学生网络进行蒸馏后准确率提高到了99.28%。

4)将训练好自搭建网络部署在嵌入式终端上进行实际测试,单根纱线的概率皆高于70%以上,而双根纱线的概率皆高于80%以上;对纱线检测进行重复性实验,得出实际纱线检测准确率为98.86%。

5)由于PC端测试是之前拍摄好的图片形式,而嵌入式端测试是实际的视频形式;在模型量化加速与部署过程中可能会造成权重参数精度的些许丢失造成PC端与嵌入式终端的测试准确率不同。

猜你喜欢
纱线卷积准确率
基于3D-Winograd的快速卷积算法设计及FPGA实现
摩擦电纱线耐磨性能大步提升
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
针织与纱线
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
纱线与针织