基于深度学习的织物疵点检测研究进展
2023-02-16雷承霖何儒汉
王 斌,李 敏,雷承霖,何儒汉
(1.武汉纺织大学 湖北省服装信息化工程技术研究中心,湖北 武汉 430200;2.武汉纺织大学 计算机与人工智能学院,湖北 武汉 430200; 3.武汉纺织大学 纺织服装智能化湖北省工程研究中心,湖北 武汉 430200)
疵点检测是纺织企业提高产品质量的重要环节。目前,我国大多数企业仍然以人工目测为主,由于人体生理机能的限制,当织物运动速度过快时,手工操作不可避免地会造成人眼疲劳,进而导致误差,这无疑限制了高质量织物的生产[1]。不仅如此,人工检测结果容易受人的主观因素影响,准确率不高。产品质量控制是纺织品生产时必不可少的环节[2],由于疵点种类繁多,形状不一,如果采用传统的人工检测方法是无法满足效率需求的[3]。纺织企业如果想要提高织物疵点检测的效率,同时又不降低纺织产品的质量,那么有必要用智能检测取代人工检测。
迄今为止,研究者们已经提出了许多不同的疵点检测方法,如基于模型的方法、基于结构的方法、基于统计学的方法、基于谱分析的方法和基于机器学习的方法等。然而,由于纺织品种类多,生产工艺各异;疵点种类繁多,很多不同类型的疵点外观差别非常小;受图像采集背景的影响,同一类型的疵点又会呈现出很大差异,这使得疵点检测仍然具有很大的挑战性。
深度学习是近年兴起的新型人工智能技术,其通过高层神经网络的构建,用简洁而有效的形式对物体的本质特征进行综合表达[4]。从2012年的ImageNet竞赛开始,深度学习在图像识别领域发挥出巨大威力,在通用图像分类、图像检测、光学字符识别、人脸识别等领域,基于深度学习的系统均能取得较高的准确率。不仅如此,深度学习模型已被应用到工业品表面缺陷检测中,并且取得了良好的效果。
本文对基于深度学习的织物疵点检测方法进行了综述和分析,结合最新的研究成果分析各个方法的优缺点,并从数据集、评判标准以及通用性3个角度提出了对未来发展的构想,为今后更深入的研究提供参考依据。
1 深度学习与疵点检测的关系
传统的织物疵点检测算法[5-7]一般为先使用图像预处理的方法得到便于检测的图像,然后借助统计机器学习方法来提取图像特征,进而实现疵点的检测[8]。
图像预处理通常包括直方图均衡化、滤波去噪、灰度二值化、再次滤波等部分,以得到前后景分离的简单化图像信息;随后利用傅里叶变换、Gabor变换等算法以及机器学习模型完成疵点的标记与检测。
虽然传统算法在某些特定的应用[9-11]中已经取得了较好的效果,但仍然存在许多不足。例如:图像预处理步骤繁多且具有强烈的针对性,鲁棒性差;多种算法计算量惊人且无法精确地检测疵点的大小和形状,而深度学习可以直接通过学习数据更新参数,避免人工设计复杂的算法流程,并且有着较高的鲁棒性、速度和精度。
1.1 在线疵点检测的速度需求
对于工业生产而言,检测速度过慢会导致成本增加,降低企业收益。在传统的织物疵点检测方法中,杨晓波[12]提出基于高斯-马尔可夫随机场模型(GMRF)的纹理模型用于自动识别不同种类的统计特征畸变织物疵点,对于尺寸为512像素×512像素的待检织物图像,整个检测过程(不包含对织物进行建模)耗时1.81 s;杨晓波[13]还根据织物特征设计织物自适应Gabor滤波器,再利用设计好的Gabor滤波器对方向性特征畸变织物疵点进行增强,对于1张尺寸为512像素×512像素的待检织物图像,检测过程耗时2.34 s。目前实时检测的标准为1张图像检测时间不超过0.7 s,显然这样的检测速度是无法满足企业要求的。
引入深度学习模型可大大提高疵点检测的速度。Jing等[14]提出了一种基于改进的YOLOv3模型的实时性更高的织物疵点检测方法,样本图片大小为416像素×416像素,网络模型的平均检测效率为21.8 张/s左右。晏琳等[15]将更快的区域卷积神经网络(Faster RCNN)与残差网络(ResNet101)相结合的方法应用于坯布疵点检测,由于ResNet101的层数较深,导致对1张图像的检测时间稳定在0.13 s左右,即便如此,速度上的提升也是巨大的。由此可见,引入深度学习模型的织物疵点检测方法,能够在速度上满足工业生产的需求。
1.2 疵点检测的精度要求
在保证生产速度的前提下,更高的检测精度能带来更高的企业收益。传统的织物疵点检测算法,大都只是检测出是否存在疵点,但对于疵点的类别和位置并不能进行判断。杜磊等[16]分别用4种自适应阈值算法对平纹和斜纹织物疵点图像进行检测,准确率最好为76.92%和55%。管声启等[17]在研究织物纹理分类的基础上,通过傅里叶变换获得频谱图像,把灰度图像分割成若干子窗口,将统计子窗口方差作为特征值与设定的阈值比较,从而判别是否存在疵点。在实验采集的样本中,准确率最好为86.7%。
引入深度学习模型不仅能检测出疵点,还能判断疵点的类型和位置。晏琳等[15]将Faster RCNN与ResNet101相结合的方法应用于坯布疵点检测,数据集来自现场采集,迭代训练5 000次后,准确率可达94.71%,并且能在图像中标出疵点的位置;Zhao等[18]提出基于VGG16网络的多尺度卷积神经网络(MSCNN)检测方法,主要用于亚麻织物和图像织物的疵点检测,织物缺陷数据集为机器采集,每种疵点的平均检测精度约为92%。由此可见,引入深度学习模型的织物疵点检测方法,能够在保证较高速度的前提下,获得较高的精度,可为企业带来更高的收益。
1.3 引入深度学习面临的困难与挑战
目前,虽然深度学习方法在很多领域取得了不错的效果,如智能驾驶、行人检测、物体分类等,但仍需要在克服过拟合问题和提高模型通用性之间进行权衡。深度学习模型想要取得良好的成效离不开大量实验数据的训练和模型的优化,但由于疵点数据集难以采集和疵点的特异性问题,疵点检测仍存在一些问题亟待解决。
1)实验数据的合理采集。疵点是织物在织制过程中由于原材料、生产设备及生产操作等因素的影响,在布面产生的各种缺陷[19]。常见的由纱线原因造成的疵点主要有竹节纱、错纬、条干不匀、粗经等;由于织前准备原因造成的疵点主要有浆斑、经缩、棉球、油纱等;此外,多数疵点是由织机机械状态不良和织布操作不当导致的,主要有稀纬、脱纬、双纬、跳花、百脚、经缩、纬缩、断经、毛边、破洞、边撑疵、云织、拆痕、穿错等。数据样本收集会耗费大量的人力成本,而且实际生产过程中并没有很多自然生成的疵点数据,所以多数情况下会对采集到的数据进行数据增强操作,用的较多的是对原始数据集进行裁剪、翻转等。综上分析,如何合理地采集实验数据是将深度学习引入织物疵点检测需要面临的挑战。
2)由疵点特征产生的难点。织物纹理的多样性致使对1种或几种疵点表现良好的学习器,对其它疵点可能出现“过拟合”或“泛拟合”现象。细化学习方法,针对不同种类织物选取不同学习方法有利于降低虚警率,但同时也增加了人工成本。
在疵点检测的过程中,通常有很多模型可供选择,对同一种模型使用不同的参数配置时,取得的效果也会有所不同。现实中通常是计算成本和性能估计综合考虑。
同时,目前绝大多数目标检测任务通常是在大型通用数据集进行预训练后,再在特定下游任务中进行迁移学习,然而因为通用数据集中的训练目标和织物图像相差太大,这种方式在疵点检测上不一定适用,导致训练难度增大。此外,一些特异性的疵点也是检测的难点所在,具体包括:极小的疵点,如棉球、断纱、小破洞、污点等,在检测时非常容易漏检。非规则的织物,在很多检测方法中将织物背景当成一种周期性循环往复的信号,疵点的出现则破坏了这种信号,非规则的织物则不能使用这种方法。疵点的判断依赖于背景信息,在提花织物中的花纹属于背景,但在白坯布中则是疵点,造成误检漏检。过于丰富的纹理和疵点类型,在深度学习方法中,存在着假设待预测的物体至少在训练样本中存在类似的分布,如果需要设计一套通用的疵点检测算法,就必须使得训练样本中包含可能出现的所有背景纹理和疵点的组合。
针对不同织物图像的不同特点,如何设计合理的深度学习模型,或者具有一定的普适性以适应不同织物图像数据集的深度学习模型,这也是目前将深度学习引入织物疵点检测领域的难点。
2 深度学习模型
深度学习主要由定义模型和损失函数、训练模型、寻找优化方法和循环迭代4步构成,其结构如图1所示。在第1步可以搭建自己的模型,也可以根据任务对经典模型进行细微调整;第2步使用数据对模型进行训练;第3步是分析训练结果并进行优化;最后一步是循环迭代直至获得最佳结果。
图1 深度学习基本步骤
目前主要的深度学习模型包括卷积神经网络和自动编码器等技术。
卷积神经网络由多层卷积层和多层下采样层重复叠加而成,具有良好的容错能力以及能够处理复杂环境下信息提取的自学习功能[20]。卷积神经网络是一种强大的可视化模型,在图像识别、图像检测等方面都已取得不错的效果。根据不同的需要,可以产生多种特征层次结构,但是随着网络层次的逐步加深,模型会变得十分复杂,更加依赖硬件性能。Zeiler等[21]提出的反卷积网络模型在实际的结构构成和实现方法上与卷积神经网络有所不同。反卷积网络更多的是充当可视化作用,对于一个复杂的深度卷积网络,通过反卷积的还原可以对模型的处理过程进行可视化处理。反卷积网络模型常应用于场景分割、生成模型等。
自动编码器[22](auto-encoder)是深度学习中较为简单的训练方式,通过复现输入信号逐层地调整整个网络,其可以学习输入数据的隐含特征,同时根据这些特征重构出原始数据。自动编码器常用来进行数据的降维、降噪处理,但由于其与数据高度相关,故泛用性较差。
Geoffrey等[23]提出的受限玻尔兹曼机(RBM)能够学习数据中复杂的规则,同时缩短训练的时间,常用于处理特征提取、协同过滤等问题。Geoffrey等[24]还提出了深度信任网络,它由若干个RBM的堆叠和1层有监督的反向传播网络组成,即使网络的层次较多,依旧可以合理优化参数,使得深度神经网络的学习更加高效。深度信任网络训练更快,常应用于运动捕捉等领域。
3 引入深度学习的疵点检测方法
织物疵点检测结果的评判标准与疵点检测涉及的目标有关,主要可分为3种:疵点召回与否,即是否检测出存在疵点;疵点分类与否,即是否检测出疵点的类别;疵点位置回归与否,即能否确定疵点的位置。
根据深度学习模型的特点,本文将织物疵点检测方法分为3类:基于卷积神经网络模型的疵点检测;基于自动编码器的疵点检测;基于其它深度学习模型的疵点检测。
3.1 基于卷积神经网络的检测方法
卷积神经网络由于其强大的非线性拟合能力在图像识别领域发挥出巨大威力,不少研究人员尝试将卷积神经网络引入到织物疵点检测领域,表1示出卷积神经网络模型的疵点检测方法。Zhao等[18]提出一种基于VGG16网络的检测方法用于亚麻织物和图像织物的疵点检测,可检测出破洞、污渍等6种疵点。实验结果表明,该方法对于采集到的织物疵点检测效果更好。随着模型结构日趋复杂,模型层次也在不断加深,Pandia等[25]将织物颜色作为重要特征设计了一种深度卷积神经网络,从各种缺陷数据集的训练阶段进行学习,在测试阶段利用了一种学习特性进行疵点分类。实验结果表明,与传统的浅层学习方法相比,可以提高疵点分类的准确率。Wu等[26]构造了改进的两级疵点检测器,以实现更好的通用性。实验结果表明,与当前的检测器相比,端到端的体系结构提高了基于区域的目标检测器的性能。对于简单背景纹理的织物图像中的疵点检测效果良好,但不擅长检测复杂背景纹理中的疵点。
表1 基于卷积神经网络模型的疵点检测方法
Faster RCNN算法是基于候选区域的目标检测算法中的代表算法,在目标检测领域展现了优异的性能。晏琳等[15]在原始Faster RCNN的基础上进行改进,对坯布的疵点目标进行分类与检测。实验对比了Faster RCNN分别与VGG16、ResNet101结合时的检测结果,结果表明,该方法可有效解决坯布疵点检测问题,检测准确率较高。安萌等[27]基于Faster RCNN网络模型,对卷积神经网络进行优化,将不同尺度的特征金字塔网络模型引入区域生成网络(RPN)以增加细节化的浅层特征,通过对Softmax分类器进行正则化来减小类内间距、增大类间间距,不断更新网络参数来提高网络收敛能力。实验结果表明,相对于原始模型,改进后的模型对于织物疵点的检测具有更高的准确率、泛化能力和鲁棒性,但是检测速度仍有待提高。
针对织物图像采集过程中存在疵点样本分布不均,现有织物样本缺乏多样性的问题,Liu等[28]提出了基于生成对抗网络(GAN)的织物疵点检测框架,能够在已有样本的基础上学习生成新的样本,通过对各种代表性的织物样品进行综合实验,验证提出的方法能有效地检出织物疵点。李明等[29]提出应用GAN和Faster RCNN相结合的疵点识别算法。先采用GAN对采集的样本数据进行扩充,然后再利用Faster RCNN进行检测。实验结果表明,该方法可提高色织物图像库中的疵点图像检测效率,并能准确获取疵点位置和类别。Hu等[30]提出了基于深度卷积生成对抗网络的无监督织物疵点自动检测方法。在实验过程中与其它方法进行了比较,证明该方法在织物疵点检测中的有效性,但检测速度仍有待提升。通过数据增强的方式扩大样本的方法也存在不足之处:一是生成新样本的过程仍然需要相应背景的真实疵点图像;二是需要花费更多的时间训练生成对抗网络来生成图像。
相比于上述基于候选区域的检测算法,基于回归分析的算法在检测速度上更具优势。Jing等[14]提出了一种基于改进的YOLOv3模型的实时性更高的织物疵点检测方法。实验结果表明,与YOLOv3相比,该方法可更有效地检测和标记织物疵点,并有效降低误检率。但是此方法在对复杂纹理背景的织物进行检测时,检测性能会有所下降。为了提高织物疵点检测和定位的准确性,缩短检测时间,Peng等[31]提出了基于先验锚定卷积神经网络的织物疵点检测方法。实验结果表明,该方法显著提高了织物疵点检测的准确率和检测速度,适用于织物疵点的自动检测。Xie等[32]使用RefineDet作为基础模型对特征提取模块进行改进,在TILDA数据集上新模型的平均准确率可达80.2%。在香港图案纹理数据集和DAGM2007数据集上,以多种检测模型做对比,实验结果显示改进的模型效果更佳,可以实现较高的准确率和较好的实时性。
针对计算资源受限的应用场景,Liu等[33]提出一种浅层网络DLSE-Net来判断图像中是否存在疵点。该网络采用弱监督学习方法和三分支结构来缓解不同层之间连接造成的语义鸿沟,实验结果表明,在DAGM2007和自建数据集上,该方法能够较高精度地定位疵点。Jun等[34]提出,采用稀疏卷积网络来提取特征,可大大减少网络中的参数数量和计算量。以天池竞赛2 560像素×1 920像素的数据集中的破洞、污渍和折痕3种疵点为主,训练后的模型可以准确地检出疵点所在位置。
对基于卷积神经网络的织物疵点检测方法的数据集和检测性能进行了整理,如表2所示。疵点检测性能指标主要包括精度和运行速度(实时性),同时列出了疵点类型(种类)和所使用的硬件资源。
从表2可以看出,引入深度学习模型的疵点检测方法整体上取得了不错的检测效果。其中一些方法取得了较高的精度,同当时最好的机器学习等其它类型的方法比,检测精度有明显的提高;部分方法在保证较高精度的同时可以满足或基本满足实时性要求。
3.2 基于自动编码器的检测方法
自动编码器是深度学习中最简单的一种训练方法, 通过复现输入信号来逐层地调整整个网络, 其可以学习输入数据的隐含特征, 同时可以根据这些特征重构出原始数据。Li等[38]通过基于Fisher准则的堆叠去噪自动编码器将织物贴片分类为无疵点类别和疵点类别,首次把深度学习引入该领域,为疵点检测的研究提供了新的思路。实验结果表明,该方法对周期性花纹织物和较为复杂的提花经编织物的疵点检测是有效的。
针对传统织物疵点检测手工提取特征困难,疵点样本有限的问题,Mei等[39]提出了基于无监督学习的自动检测和定位织物疵点的方法,实验结果表明,该模型具有较好的鲁棒性和整体性能,具有较高的查准率和召回率。景军锋等[40]结合卷积自动编码器,提出基于Fisher准则的栈式去噪自动编码器算法。实验结果表明,该算法能够有效地提取织物图像的分类特征。为了克服在工业领域很难获取大量的实际疵点数据这个难题,Han等[41]提出了一种基于堆叠式卷积自动编码器的疵点检测方法。自动编码器仅使用非疵点数据和基于专家知识的疵点特征生成的合成疵点数据进行训练。
基于自动编码器的织物疵点检测方法的数据集和检测性能如表3所示。由于自动编码器依据特定的样本进行训练,因此其适用性很大程度上被局限于与训练样本相似的数据,容易过拟合。
表3 基于自动编码器的织物疵点检测方法性能
3.3 基于其它深度学习模型的检测方法
基于卷积神经网络的疵点检测方法取得了不错的成果,但是存在一定的局限性。刘洲峰等[42]提出了基于稀疏优化的织物疵点检测算法。首先,通过稀疏表示原理从待检测粗点图像中学习自适应字典库;然后求解出稀疏表示系数矩阵,重构出不包含疵点的正常图像,将正常图像与待检测的疵点图像相减,突出疵点区域,利用阈值分割定位疵点。
以外,Chen等[43]从算法的角度出发,提出了一种基于遗传算法优化的Gabor滤波器和Faster RCNN相结合的方法,针对纹理干扰问题,利用Gabor滤波器在频率分析中的优势,结合遗传算法确定最佳Gabor滤波器参数,然后通过将Gabor内核嵌入Faster RCNN中进行改进,得到了比单独使用神经网络更好的结果,然而推理速度有所下降。
Li等[35]提出了基于特征序列的注意力网络,通过标注信息结合特征生成注意力图,以根据输入图像的整体情况校正特征图的响应。长短期记忆网络(LSTM)被用来从连续的疵点中提取上下文信息。在做出判断时,与逐个像素独立做出的判断相比,考虑顺序信息可以减少意外误判的数量。
基于上述其它深度学习模型的织物疵点检测方法的数据集与检测性能如表4所示。这些方法在利用卷积神经网络优势的同时发掘了其它方法与之结合的可能性,提供了一条探索疵点检测的新思路,与单独使用卷积神经网络相比,加入先验信息后,精度得到了提高,然而检测速度仍是需要提高的方向。
表4 基于其它深度学习模型的织物疵点检测方法性能
4 结束语
本文总结了近年来基于深度学习的织物疵点检测方法,对于不同模型在不同目标下能够获得的效果进行了对比,分析了模型的优缺点和适用范围,并对引入深度学习模型的织物疵点检测方法的未来发展做出了展望。目前通过引入深度学习模型可以更好地提高检测效率,但是仍存在不足。为更好地优化织物图像疵点检测的准确度,未来应从以下几个方面进行突破。
1)更加完善的数据集。目前,有关织物疵点检测方法的研究都认为可以通过在织物生产过程中获取或者实地采集拍摄从而创建自己的织物数据库,而多数数据库需要付费或者并没有收集到足够多的信息。为更好地评估一个模型的有效性和通用性,应该考虑创建一个公共免费的大型数据库。
2)更加明确的评判准则。实际生产过程中,生产环境复杂,容易受光照、粉尘等因素影响,在不同生产环境和设备上采集的织物图像会略有差异,因此如何在各样的生产环境中克服环境因素是需要考虑的问题。因为实际生产数据中,人工标注的标签不一定准确,不同标准下一个标签可能时好时坏,所以一个统一的疵点检测标准是必不可少的。
3)更好的适用性。随着纺织技术的发展,织物的纹理结构变得越发复杂和精细,使得细小疵点被检测识别的难度加大。不同的处理方法在不同尺度上检测效果不同,单一的处理方法往往具有一定的局限性,采用混合方法在处理织物结构和疵点类型的变化方面具有更好的适用性。