融合改进vgg16模型与SVM的抓毛织物检测方法
2022-09-30金守峰尤佳欣侯一泽
金守峰,尤佳欣,侯一泽
(1.西安工程大学 机电工程学院,陕西 西安 710600; 2.西安工程大学 西安市现代智能纺织装备重点实验室,陕西 西安 710600)
选择合理的抓毛织物图像特征对于判别抓毛织物的质量至关重要。在织物表面进行抓毛工艺处理,抓毛后织物表面绒毛的长度和形态较为复杂,不合格抓毛织物的表面表现为绒毛厚度不致密且分布不均匀的特征,不能满足外观以及舒适性要求。抓毛织物表面的纹理特征、形态特征复杂,不同特征需要不同的算法提取。传统人工特征提取算法计算复杂,已不能满足在光照不匀等影响因素下对抓毛织物的特征提取。目前主要通过经验丰富的工艺人员根据视觉及触觉判断抓毛织物绒毛的质量,大量的视觉检测工作易导致疲劳、疏忽以及检测效率低下等问题,因此,研究能够自动提取出具有分辨力的抓毛织物图像特征算法以及具有较高准确率的分类模型显得尤为重要。
传统的机器学习方法通过人工手段对织物的特征进行提取,然后将提取到的特征经过一系列的转化分解,判定出织物的质量。魏哲等[1]针对抓毛织物表面质量的量化检测问题,采用切向背光法获取抓毛织物的轮廓图像,根据绒毛区域的直方图特征对绒毛进行分割,采用Freeman编码提取绒毛特征,利用最小二乘法拟合绒毛边缘信息,从而建立绒毛厚度模型,进而给定绒毛状态参数模型。金守峰等[2]使用Freeman链码原理提取织物上的边缘轮廓坐标,以此作为输入对BP神经网络进行训练,网络准确率为93.02%。采用文献所述方法获取织物上的边缘轮廓坐标过程复杂且容易受实验环境的影响,从而影响实验准确率。目前,卷积神经网络等深度学习模型在图像处理领域越来越受到重视,相对于传统的机器学习方法,卷积神经网络方法在特征提取技术领域具有巨大的优越性[3]。
为提高织物在抓毛工艺后的绒毛质量检测效率,本文提出一种融合卷积神经网络的深度学习特征与支持向量机(SVM)的抓毛织物检测方法,对原始图像进行主成分分析(PCA)[4-5]、奇异值分解[6-8]预处理操作,通过数据增强得到扩充后的数据样本,构建一种改进的vgg16卷积神经网络模型[9-11],将预处理后的图像输入模型,利用卷积神经网络的卷积层自动提取抓毛织物样本的特征作为输入,然后将提取到的特征拟合SVM分类器[12-14],对输入的抓毛织物图像进行类别评定。
1 卷积神经网络的设计
1.1 抓毛织物图像数据集
数据的采集通过帧率为45 fps、焦距为10 mm的工业相机,采集如图1(a)所示的绒毛厚度分布均匀且致密的合格抓毛织物图像100张,图1(b)~(d)中3种不同颜色的不合格抓毛织物(其表面特征分布不均匀、长度不一且稀疏)图像各100张,共计实验样本400张。
图1 抓毛图像示例Fig.1 Example of scratching image.(a)Wool catching fabric A;(b)Wool catching fabric B;(c)Wool catching fabric C;(d)Wool catching fabric D
1.2 图像预处理
如图2所示,分别对4类抓毛织物图像进行主成分分析、奇异值分解预处理,对处理后的图像进行HSV颜色转换、图像镜像、随机翻转等数字增强处理,得到均匀且致密的抓毛织物A与其余3种不同颜色的稀疏不均匀抓毛织物图像(抓毛织物B、C、D)各500张。
图2 图像预处理及图像增强Fig.2 Image preprocessing and image enhancement
1.3 改进卷积神经网络
采用基于Keras深度学习框架,以vgg16为基本网络框架,使用MatLab深度学习工具箱deepNetworkDesigner构建改进的vgg16网络模型,网络主要包括输入层、卷积层和池化层。网络卷积参数如表1所示,该改进算法无池化层1。
表1 改进vgg16网络卷积结构参数(卷积层)Tab.1 Improving convolution structure parameters (convolution layer) of vgg16 network
1.3.1 卷积层
使用模型的卷积层中卷积核的大小如表1所示,选用的激活函数为ReLU函数。卷积层与ReLU激活函数的计算公式分别为:
ReLU激活函数是一个取最大值函数,构造虽然简单,却是深度学习中的一个重要成果。其计算和收敛速度远快于Sigmoid函数和Tanh函数。
1.3.2 池化层
在卷积神经网络中,池化运算是对特征图上的一个给定区域求出一个能代表这个区域特殊点的值,对于减小计算量和防止过拟合是非常重要的,特征图在经过池化后其尺寸会减小。最大池化(max-pooling)和平均池化(average-pooling)是常见的2种池化方法。本文模型采用最大池化,设置过滤器大小为2×2,步长为2,最大池化公式为:
1.4 网络结构
在CNN模型训练完成后,对于输入图像可以通过卷积神经网络进行特征提取,并将提取到的特征输入支持向量机分类器中进行分类,整体思路如图3所示。将输出的一维特征向量作为SVM的输入用于抓毛织物的分类,如图4所示,将SVM二分类问题转化为多分类问题,首先选定其中一种类别样本单独作为一个类别,除该类别外的其余类别样本则归为另一个类别,就可以对抓毛织物A、抓毛织物B、抓毛织物C、抓毛织物D 4种抓毛织物进行分类。
图3 整体思路示意图Fig.3 Schematic diagram of overall thought
图4 基于SVM图像的多分类Fig.4 Multi-classification based on SVM image
2 实验部分
实验平台在Windows10系统下搭建,采用GTX1060、6 G显存及16 G内存的配置,配备MatLab R2021a环境。
2.1 模型参数
实验采用本文改进的vgg卷积神经网络的卷积层,与AlexNet、vgg-16以及LeNet3种卷积神经网络对比,得到的网络参数如表2所示。
表2 网络结构参数Tab.2 Network structure parameter
2.2 模型测试与分析
2.2.1 图像预处理对模型的影响
分别对预处理前后的数据进行实验,为了提取卷积神经网络池化层的特征信息,采用activations函数作为特征提取与激活函数,并分别将改进vgg-16、AlexNet、vgg-16、LeNet 4种模型最后一层池化层的输出特征作为输入,拟合SVM分类器,对输入的抓毛织物图像进行分类,结果如表3所示。由表3可以看出,基于改进的vgg-16模型在测试准确率以及模型测试时间方面均优于其他3种模型,未经过图像预处理的数据测试准确率普遍低于经过图像预处理的数据。在训练时间方面,由于利用主成分分析、奇异值分解进行特征预处理,简化压缩了特征的分布,从而减少了运算量,因此训练时间比未经过数据预处理的模型耗时少。综上所述,图像预处理提高了模型的测试准确率,减少了图像训练所消耗的时间。
图5 采用不同层特征的分类准确率对比Fig.5 Comparison of classification accuracy using different layer features
图6 4类抓毛织物图像进行池化层特征可视化Fig.6 Visualization of pool layer characteristics in four types of fleece fabric images
表3 预处理前后测试结果Tab.3 Test results before and after pretreatment
2.2.2 不同池化层对模型的影响
为了比较卷积神经网络不同层提取的特征对分类效果的不同影响,分别抽取了改进vgg-16模型的pool1、pool2、pool3、pool4、pool5层的特征用于支持向量机算法的分类,分类准确率对比如图5所示,其中pool5层的准确率可以达到99.96%。
通常随着卷积层的深入抓毛织物图像提取到的特征会变得越来越抽象,对于不同层提取的特征对分类效果也有着不同影响,为进一步可视化本文模型在不同卷积层的特征情况,以便深入了解卷积神经网络提取到抓毛织物图像特征的过程,对4类抓毛织物图像通过不同池化层特征进行可视化处理,如图6所示。
对比4类抓毛织物图像卷积特征可视化结果表明,随着卷积层层数增高,抓毛织物表面特征越来越明显,抽取的特征越抽象,用于分类检测的效果越好。
3 结 论
以抓毛织物表面图像为研究对象,采用深度学习的方法对致密且均匀的抓毛织物与3种不合格的不致密且稀疏的抓毛织物进行检测,得出如下主要结论:
①使用卷积神经网络对抓毛织物图像进行特征提取,能够自动提取出具有分辨力的优异特征。
②利用主成分分析、奇异值分解图像预处理进行特征预处理,然后采用数据增强扩充数据集,测试准确率高于原始数据模型,可以增强模型的泛化能力。
③基于改进vgg16卷积的pool5层的输出特征作为输入,拟合SVM分类器对抓毛图像进行分类,测试准确率可达到99.96%。