织物疵点的多少是对织物品质好坏的评价标准,因此织物疵点检测对织物的质量有着十分重要的作用[1]。目前织物疵点检测的方法有:基于结构方法,但是结构方法可靠性低,只能将织物的疵点从纹理中分离出来;基于统计学方法,灰度共生矩阵高分辨率图像性能较差且计算成本很高,直方图统计法的特征向量维数过高且计算量大;基于频谱方法,傅里叶变换受结构变化影响大且实时性、通用性很差;随着“互联网+”的快速发展,对工业生产中织物疵点检测方法也有了很大的提升,通过计算机的推理处理技术可以快速高效地检测出疵点,从而很快判断出织物品质的好坏[2⁃6]。当AlexNet[7]取得ImageNet数据集[8]图像分类冠军之后,深度学习随之得到了长远的发展,提出了如GooleNet[9]、VGG[10]、ResNet[11]、DenseNet[12]等典型神经网络[13]。GooleNet网络结构比较简单,满足不了生产时间的需要;VGG增加了网络结构的深度,促进了卷积神经网络结构向更深深度的发展;ResNet运用了残差学习,解决了神经网络结构梯度消失的问题;DenseNet采用密集连接,性能更优于ResNet。本研究提出一种基于改进DenseNet201网络的织物疵点检测算法。在本研究的训练集和验证集下训练得到一个织物疵点检测模型,试验表明:该模型具有良好的泛化能力,能够精准快速识别正常织物、8类常见织物疵点。1 研究方法1.1 研究思路本研究提出的织物疵点检测算法主要工作流程:首先对数据集的图像进行预处理,可视化各种织物疵点类型的数量,剔除无效的图像;然后改进卷积层第1层、添加SPP层;再提取在大型数据集ImageNet下预训练好的DenseNet201权重参数进行迁移学习,释放原有的全连接层(分类器),添加自己的全连接层,利用数据增强和Dropout技术降低过拟合的程度;最后运用本研究的训练集和验证集,反复调节参数,训练改进的DenseNet201网络,得到织物疵点检测模型。1.2 DenseNet模型结构为了在更大程度上解决梯度消失、加强特征传递、更有效地利用特征、减少一定的参数数量,DenseNet网络结构直接将所有层连接起来,保证了网络中层与层之间最大程度的完整传输,实现了网络端到端的网络传输模式。Dense Block结构如图1所示。.F001图1Dense Block结构在传统的卷积神经网络中,卷积神经网络有L层,那么就会有L个连接。根据图1,在DenseNet卷积神经网络中,如果DenseNet卷积神经网络有L层,那么就会有L(L+1)/2个连接,通俗地讲,就是每一层的输入都来自于前面所有层的输出,x0是整个卷积神经网络的输入,H1的输入是x0 (输入),H2的输入是x0 和x1(x1是H1的输出),依此类推。现有的ResNet网络采用跨连接,形成恒等映射的交叉结构,其恒等映射公式如式(1)所示。xl=Hl-1+xl (1)式中:xl表示l层输出特征图,Hl表示网络之间的非线性变换。由式(1)可以看出,l层的输出是l-1层的输出与l-1层输出的非线性变换之和。DenseNet网络每一层直接连接输入层和损失层,从而减轻梯度消失的问题,其输出公式如式(2)所示。xl=Hl([x0,x1,...,xl-1]) (2)式中:xl是l层输出特征图,[x0,x1,...,xl-1]是l层前面所有层特征映射的拼接。因此相对于ResNet等深度网络依赖最后一层输出的特征,而DenseNet融合利用更多低层次的特征,其训练出来的分类器泛化性高。以两个Dense Block为例的DenseNet结构如图2所示。.F002图2标准DenseNet结构由图2可知,一个标准的DenseNet结构由输入、卷积层、池化层、Dense Block层、全连接层构成。1.3 SPP结构在训练模型的过程中,只给定RGB三色通道,没有固定输入图像的大小,输入尺寸大小不一的图像就会导致全连接层的特征数不固定,从而程序报错,训练不出合适的模型。如果在训练模型的过程中固定图像的大小,那么就会对大于标准尺寸的图像进行缩放或者是裁剪,对小于标准尺寸的图像进行拉伸,缩放和拉伸会使图片特征信息减弱,裁剪会出现部分区域图像被多次裁剪,无形之中加大了该区域的权重。因此在网络中添加SPP层,这样就可以输入任意大小的图片,不需要进行缩放、拉伸、裁剪等预处理工作。SPP层结构如图3所示。.F003图3SPP层结构图由图3可知,利用3种不同刻度对输入的特征图进行划分,总共得到21块。左边把一张图片划分成16块,中间把一张图片划分成4块,右边的把一张图片划分成1块,分别计算每块的最大值(局部池化),这样就可以把一张任意大小的图片转换成一个固定大小的21维特征。1.4 改进DenseNet201网络本研究尝试了DenseNet121、DenseNet169、DenseNet161、DenseNet201等多种深度的网络后,根据试验效果和实验室环境综合考虑,选用了DenseNet201网络[14]。DenseNet201网络的第1层是7×7卷积层,感受野大,不适用于本研究大多数织物中小疵点的检测,为了提取到织物疵点更多的细节特征用于精确分类,本研究选用1×1、3×3、5×5的3个分支卷积层替代7×7卷积层。一方面,3个分支卷积层可以识别各种大小织物疵点;另一方面,3个分支卷积层使判决函数的性能得到了优化;再一方面,3个分支卷积层的使用降低了参数量,假设卷积层输出特征图的大小为s,3个分支卷积层的参数为(1×1×s)×s+(3×3×s)×s+(5×5×s)×s=35s2,一个7×7卷积层的参数为(7×7×s)×s=49s2,所以在不改变初始感受野的情况下改进DenseNet201网络的第1个卷积层,提升了织物疵点检测模型的性能。改进后的DenseNet201网络结构如图4所示。.F004图4改进后的DenseNet201网络结构1.5 迁移学习迁移学习是把为A任务开发的模型作为初始点,重新运用到B任务训练模型的过程中。在深度学习中,要训练出一个泛化性高的模型,那么就需要大量的已标注样本以及相互独立的训练集和测试集,这在实际训练模型时很难满足。由于织物疵点数据集中的疵点种类很多,但是很多种类都不常见且数量很少,很难直接满足深度学习训练模型的需要,因此采用在大型数据集ImageNet下预训练好的DenseNet201模型,去掉预训练好模型的全连接层,迁移学习预训练好模型的初始参数,作为改进后的DenseNet201网络参数,再在织物疵点数据集上重新训练顶层卷积网络,得到一个鲁棒性和泛化性好的织物疵点检测模型。2 数据预处理2.1 数据集在普通的实验室环境中,建立织物疵点数据集的难度很大,因此采用江苏阳光集团在实际生产现场采集并开源的织物疵点数据集,具体的数量如图5所示。每张图片的分辨率2 560 pixel×1 920 pixel,图像细节特征清晰,每张图片都由经验丰富的验布工人确认。.F005图5织物疵点数据集数量图由图5可知,该织物疵点数据集包含2 163张正常织物图片、1 584张有疵点图像,本研究选择样本数量较多的正常织物和擦洞、吊经、跳花、织稀、毛洞、扎洞、缺经、毛斑共8类织物疵点图像,作为该织物模型训练的数据集。2.2 数据增强为了保证模型训练的精度,把数据集的80%作为训练集、10%作为验证集、10%作为测试集。为了防止模型训练中出现过拟合问题,采用数据增强和Dropout技术提高模型泛化能力。数据增强使用水平翻转、垂直翻转、水平垂直翻转、30°旋转、45°旋转、水平平移、垂直平移、水平垂直平移。3 试验与分析3.1 评价指标试验过程中使用准确率(Accuracy,Acc)作为模型好坏的评价指标,准确率是模型针对全部样本的判断能力[15]。首先把数据集分为正类(无疵点)和负类(有疵点),那么对一批测试数据进行预测,结果就可以分成以下4种。若一张图像为无疵点,分类器将其判断为无疵点,称为真正类(True Positive,TP);反之,如果分类器将其判断为有疵点,称为假负类(False Negative,FN);若一张图片为有疵点,分类器将其判断为无疵点,称为假正类(False Positive,FP );反之,若分类器将其判断为无疵点,称为真负类(True Negative,TN)。准确率的计算公式如式(3)所示。Acc=TP+TNTP+TN+FP+FN (3)除此之外,训练过程中的损失值也是判定一个模型好坏的指标之一,损失值越小,模型的鲁棒性就越好。3.2 试验设计首先利用划分好的数据集分别对当前主流的VGG16模型、VGG19模型、ResNet50模型、Inception模型、DenseNet121模型、DenseNet169模型、标准DenseNet201模型、改进DenseNet201模型进行训练,训练完成后在数据集的测试集上分别测试对比;然后利用传统的织物疵点检测方法和数据集的测试集进行测试分析,方向梯度直方图(HOG)特征方法、局部二值化模式(LBP)特征方法;最后在实验室环境下采集纯色织物图像,分别测试分析模型的泛化性。3.3 模型微调DenseNet201模型是一个在大型数据集ImageNet下预训练的模型,其中有1 000个类别的输出,与本研究使用的数据集差异性较大,所以在改进卷积层第1层的基础上,自定义全连接层,然后在全连接层前添加SPP层,最后利用迁移学习和自己的数据集训练织物疵点检测模型,让训练出来的模型更加与织物疵点检测相关。微调训练模型参数过程中,给定模型一个有疵点的图像,输入后将DenseNet201模型的卷积层第1层输出的特征图从宽度、高度、深度3个维度进行可视化显示,将每个通道的信息绘制成二维图像,如图6~图8所示。.F006图6卷积层第1层卷积图像信息可视化二维图.F007图7卷积层第1层卷积后归一化图像信息可视化二维图.F008图8卷积层第1层卷积、归一化后激活图像信息可视化二维图3.4 模型训练实验室所用的环境配置是Inter i7⁃9700K处理器、64GB内存、两块NVIDIAGeForce RTX2080Ti 显卡。在程序中设置试验过程为当验证准确率改变时就保存一次模型,训练100次以增强模型的泛化性和鲁棒性。通过训练过程中的反馈反复调节超参数、更换不同的Dropout比例等方式,直到训练的模型达到最佳性能。其中标准DenseNet201网络模型训练过程的损失曲线和准确率曲线如图9所示,改进的DenseNet201网络训练过程损失曲线和准确率曲线如图10所示。图9标准DenseNet201网络模型训练过程的准确率曲线和损失曲线.F9a1(a)准确率曲线.F9a2(b)损失曲线图10改进的DenseNet201网络模型训练过程的准确率曲线和损失曲线.F10a1(a)准确率曲线.F10a2(b)损失曲线由图9和图10可知,改进的DenseNet201网络模型训练过程的准确率曲线比标准DenseNet201网络模型训练过程的准确率曲线收敛,训练准确率和验证准确率都平稳趋近于1;改进的DenseNet201网络模型训练过程的损失曲线比标准DenseNet201网络模型训练过程的损失曲线收敛,训练损失和验证损失都稳定趋近于0。因此改进的DenseNet201网络模型泛化性和鲁棒性更好。3.5 试验分析利用训练好的模型、其他主流深度学习模型在织物疵点数据集的测试集上分别进行试验验证,试验结果如表1所示。.T001表1其他主流深度学习模型与本研究改进模型在测试集上测试结果对比模型权重参数训练精度/%验证精度/%测试精度/%测试速度/(张·s-1)VGG161.240×10895.1596.1386.51.9VGG191.320×10896.2796.8487.22.2ResNet501.026×10898.3597.6591.61.3Inception9.300×10798.8697.9892.31.5DenseNet1216.120×10799.0198.1694.40.6DenseNet1696.550×10799.2398.3295.10.8DenseNet2017.060×10799.3598.8995.71.1改进DenseNet2016.080×10799.1598.0296.80.5HOG69.22.1LBP68.43.2由表1可知,改进DenseNet201模型的权重参数相比其他试验模型是最少的,训练精度和验证精度相对于其他试验模型不是最好,但相对于其他试验模型测试精度最高、测试速度最快;改进DenseNet201网络模型比标准DenseNet201网络模型的测试精度提升了1.1个百分点,测试速度提升了2倍多,相比传统的织物疵点检测方法测试精度分别提高了27.6个百分点、28.4个百分点。由此可见,改进的DenseNet201网络模型能更好适应实际工业生产环境中的织物疵点检测。利用实验室环境下采集的纯色织物图片验证主流深度学习算法和传统织物疵点检测算法的泛化性,试验效果如下。VGG16模型、VGG19模型、ResNet50模型、Inception模型、DenseNet121模型、DenseNet169模型、DenseNet201模型、改进DenseNet201模型、HOG模型、LBP模型的测试精度分别为81.9%、82.6%、85.1%、85.9%、87.1%、87.9%、88.6%、89.9%、65.2%、67.3%。由于DenseNet201模型卷积神经网络的网络层是最深的,在提取织物图像特征时会完整的保留特征信息,相对其他模型和传统织物疵点检测算法,测试精度最高,表现出了良好的泛化能力。因此综合模型的各种性能,改进的DenseNet201模型泛化性符合要求。4 结论本研究提出了基于DenseNet201网络的织物疵点检测算法,能够有效地识别正常织物、8种常见织物疵点。通过改进DenseNet201的第1层,使得在网络感受野不变的情况下,可以满足不同大小的织物疵点检测,同时还降低了整个网络的参数量。在自定义的全连接层前加入了SPP层,不管网络的输入尺寸大小,都可以产生固定的输出,能够降低过拟合的程度,使得网络更加容易收敛。本研究改进的DenseNet201网络进一步提升了织物疵点的识别精度和识别速度。该模型具有良好的泛化性和鲁棒性,基本满足现场工业生产检测的需求。在后期试验和研究过程中补充织物疵点的数据集,通过改进模型结构、优化模型参数等方式,训练出识别准确率更高、识别速度更快的织物疵点检测模型。

使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,

确定继续浏览么?

复制成功,请在其他浏览器进行阅读