贺智明,彭亚楠
(江西理工大学 信息工程学院,江西 赣州 341000)
在纺织工业中,机器故障、纱线断裂等各种不利因素易造成面料缺陷并影响产品品质,给企业造成巨大的经济损失,因此织物疵点检测是品质控制的重要环节之一。疵点种类多样、形状不一,传统的检测过程主要依靠人眼识别,但此方法受到灯光强度、检验员疲劳程度和经验等因素的影响,人工检验的准确率只有60%~75%。理想的织物疵点检测方法应从人工构建的数据集中自动学习知识检测缺陷,这使得基于机器学习的疵点检测成为近年来的热门检测方法。深度学习是机器学习的一个新领域,能通过构建多层网络自动学习织物图像的特征,对实现织物疵点自动化检测具有重要意义[1]。本文在总结近几年相关文献的基础上,简要综述了几种常用的织物疵点检测方法及其优缺点,并着重介绍了基于深度学习织物疵点检测的研究现状,为相关学术研究提供参考。
目前织物疵点检测方法主要分为5类:基于结构的方法、基于频谱的方法、基于统计的方法、基于模型的方法和基于学习的方法。常用的织物疵点检测方法对比如表1所示。
基于结构的方法将织物纹理看作是纹理基元按某种放置规则的排列组合,具有周期性和方向性。结构纹理分析分提取纹理特征、整体织物图案建模2个步骤。在基于结构的方法中,纹理基元的建模方式不一,如CHEN J等[2]将纹理基元定义为二值化织物图像中前景像素的运行,通过分析与运行位置和长度相关联的直方图来识别缺陷;而BODNAROVA等[3]将纹理基元定义为与二值化图像重叠区域的纹理块,通过比较纹理基元的最大频率差来识别缺陷。基于结构的方法虽计算简单,但可靠性较低,只适用于纹理规整的织物图案。
表1 常用的织物疵点检测方法对比
织物疵点检测需要空间域和频域信息,基于频谱的方法是利用织物图案的周期性来检测疵点,具有适用性强、准确率高等优点,应用最为广泛,主要有傅里叶变换、小波变换、Gabor变换和其他滤波方法等。
1.2.1 傅里叶变换
傅里叶变换将图像空间域信号转换为频域信号进行频谱分析,它反映了整个信号的时间频谱,具有平移不变性和表征周期性,因此可以很好的描述平稳信号的整体特征,但该方法不能对空间域上的疵点区域定位,只适用于全局检测。近年来,单独基于傅里叶变换的疵点检测越来越少,大多采用混合的方法进行检测。
刘伟斌等[4]根据傅里叶变换后的疵点频谱图提出一种新的频域滤波器设计方法,该方法具有很好的检测效果和时效性,不足之处在于抑制正常纹理背景的同时也抑制了部分织物疵点信息。朱丹丹等[5]对织物图像进行傅里叶变换得到频谱图,计算待检图像特征值与正常织物图像特征值之间的相关系数来确定阈值,实现织物疵点检测。当阈值设定为 0.80时,该算法能够实现稀密路、断经、吊经、纬缩、破洞等常见疵点的准确检测。
1.2.2 小波变换
小波变换是继傅里叶变换后的一种突破性信号分析技术,从根本上克服了傅里叶变换只能以单个变量描述信号的缺陷。小波变换利用联合的时间-尺度函数分析非平稳信号,能有效地从信号中提取信息,具有多尺度多分辨率的特点,不同的子小波可以识别不同的疵点类型,因此十分适用于局部疵点检测[6]。近年来,利用小波变换检测织物疵点的研究也越来越多。
花良浩等[7]通过分析各种疵点在频域上的特性,利用小波算法检测出空间域内无法检测出的孔洞、异物类型疵点,与Gabor算法相比较,小波算法的实时性和准确率都有所提高。杨亚等[8]采用正交小波变换对织物图像进行分解,分解后的子图像只分别经过经向和纬向的2次间隔采样。该方法能够保留大部分疵点信息,计算量较小,检测速度较快,具有实时性。
1.2.3 Gabor变换
Gabor滤波器可以看作是由复正弦函数调制而成的高斯分布函数,根据纹理结构可以设计不同尺度和角度值的Gabor滤波器对织物纹理进行空间和频域分析[9-10]。汤晓庆等[9]和王传桐等[10]分别采用不同尺度方向的Gabor滤波器对疵点图像进行滤波,经过后续处理,均取得了良好的检测效果。唐旭晟等[11]利用Gabor滤波器的能量值来描述帘子布纱线疵点特征,对不同尺度参数的Gabor滤波器进行疵点检测,当尺度参数取0.6且方向参数取90°时,检测准确度达到99.2%,但该方法存在一定的误停次数,在纱线交叉严重的情况下还存在一定数量的漏报。Gabor变换虽在一定程度上解决了傅里叶变换的时频分离问题,但在分析信号或数值计算时采用非正交的冗余基,增加了不必要的计算量和存储量,且Gabor变换的时频窗难以调节,对于非平稳信号难以得到满意的结果。
基于统计的方法利用一阶统计量和二阶统计量来提取织物图像的标准差、方差、平均值等纹理特征,经典的统计方法主要有直方图统计法、灰度共生矩阵法、数学形态学等。
1.3.1 直方图统计法
直方图包含图像的灰度像素分布的统计数据,常见的直方图属性有均值、标准差、方差和中值等[6]。孙国栋等[12]提出基于灰度直方图反向投影的疵点图像分割算法,与Gabor滤波方法和灰度共生矩阵方法相比,该方法不仅效果好,而且用时短,复杂度低。刘海军等[13]将梯度方向直方图作为图像特征,采用最近邻分类器和卡方距离进行分类,准确率达到96.85%。直方图技术简单、计算成本低,有着广泛的应用,不足之处是对噪音敏感,误检率高。
1.3.2 灰度共生矩阵法
灰度共生矩阵法是通过测量颜色强度之间的相关性来分析图像纹理特征的二阶统计法[14]。灰度共生矩阵的数据量较大,一般将它构建的统计量作为纹理特征,如能量、熵、对比度、相关性、和方差、最大相关系数等。王孟涛等[15]利用灰度梯度共生矩阵对预处理后的图像提取15个特征值,通过单分类器SVDD训练和测试,检验正确率达97%,漏检率为4.5%,误检率为1.4%。NEELAMBUR等[16]提取基于灰度共生矩阵的统计特征并输入人工神经网络进行检测分类,也取得良好的实验效果。灰度共生矩阵的准确率高,但计算量大,在高分辨率图像中性能较差。
1.3.3 数学形态学
数学形态学是一种基于物体几何信息的特征提取方法,它通过物体和结构元素相互作用的某些运算得到物体更本质的形态,基本运算包括腐蚀、膨胀、开运算和闭运算[6]。牛生鹏等[17]提出了一种单色织物疵点区域的快速检测方法,将图像自适应阈值分割、数学形态学和边缘检测算法相结合进行疵点检测,该方法适用于常见的疵点类型,具有效率高、准确定位疵点等优点。LI等[18]和ZHAO等[19]利用数学形态学消除疵点图像中的噪声,提高了疵点检测准确率。数学形态学对非周期性图像疵点的检测有效且适用于随机纹理,但由于织物纹理大多具有周期性,所以它的实用性不高。
基于模型的方法是在建立正常织物纹理模型的基础上采用假设检验的方法判断被测织物图像是否符合该模型。该方法适用于断纱、针刺断头等疵点的检测,但计算量大、检测的疵点类型有限,适用性和实用性并不高,近几年的研究也相对较少,常用的基于模型的方法有自回归模型和高斯马尔科夫随机场模型。
1.4.1 自回归模型
自回归(AR)模型反映的是纹理图像中不同像素间的线性相关性,它只需要对线性方程组求解,计算时间短、成本低,但近几年的相关研究较少,且大多实验基于有限样本,准确率不高。
朱俊岭等[20]针对线状疵点采用灰度值的方差序列求得AR谱估计,再根据疵点图像与正常纹理图像的相关系数来确定疵点及其位置,并将方差序列与步红刚等[21]的平均值列在同等条件下进行比较,相比之下,方差序列的检测效果较好,平均值序列误检率高,效果不理想。ZHOU等[22]充分利用织物纹理的周期性和方向性特征,提出一种基于织物图像一维投影序列的疵点检测方法,该方法将纹理信息从二维降到一维,大大降低了计算复杂度,并采用Burg算法对AR谱进行谱估计,最后通过t检验验证了AR谱分析的有效性和适用性。
1.4.2 马尔科夫随机场模型
马尔科夫随机场模型(MRF)利用无噪声织物图像中像素点间的依赖性,计算局部区域每个像素的密度值来测量像素与突变之间的关系。杨晓波[23]研究了基于高斯马尔科夫随机场(GMRF)模型的疵点自动检测方法,该方法能通过模型参数简洁地表示多种织物,适用于统计特征畸变疵点的自动检测,但不适合区域面积较小的疵点。VERMAAK等[24]对灰度共生矩阵、离散小波变换和高斯马尔科夫随机场模型3种织物疵点检测方法的性能进行了比较,研究表明基于灰度共生矩阵的疵点检测性能最高,小波变换次之,但在随机纹理织物中,基于马尔科夫随机场模型的方法要比基于小波变换的方法好。
基于学习的方法主要通过字典学习实现疵点图像的稀疏表达,从而完成疵点检测。字典学习算法包括构建字典和利用字典稀疏表示样本2个阶段,每个阶段都可选择不同的算法。占竹等[25]使用K-SVD算法学习得到正常纹理信息的字典,利用该字典对疵点纹理图像进行重构,并计算出重构图像与疵点图像间的均方误差、峰值信噪比和相关系数等指标。该方法能有效对疵点图像进行评定,但适用性和准确率还有待提高。LI等[26]构造出正常样本和疵点样本的学习字典,并利用稀疏编码计算每个图像块的显著性,最后基于改进的强调波谷法对疵点区域进行分割。该方法适用性广,能有效定位和识别复杂织物的疵点区域。
深度学习是机器学习研究中的一个新的领域,通过模仿人脑机制构建神经网络对数据进行表征学习,解决了传统疵点检测模型中特征提取和分类器分开训练等问题[1]。基于深度学习的织物疵点检测是近年来研究的重点,主要包括BP神经网络、自动编码器和卷积神经网络等技术。
BP(Back Propagation)神经网络是按照误差反向传播算法的多层前馈性神经网络,目前应用最为广泛,其本质是以网络误差平方为目标函数,采用梯度下降法来计算目标函数的最小值[27]。
近年来,很多学者将不同的图像处理方法与BP神经网络相结合,徐晓峰等[27]对织物疵点图像进行线灰度分析,将提取到的特征参数送入BP神经网络,可有效检测出4种常见疵点;李鹏飞等[28]和KANG Z等[29]采用小波变换对预处理后的图像进行分解,最后将提取到的特征参数送入BP神经网络中,能准确快速的检测出常见疵点,但识别率有待提高;张五一等[30]采用Gabor滤波器对帘子布疵点纹理进行滤波,再使用最大熵阈值分割提取特征值并输入到BP神经网络中,识别率达到94%。BP神经网络具有优良的分类能力和多维函数映射能力,同时也存在网络收敛速度慢、容易陷入局部极小值等不足。
自动编码器(AutoEncode)是深度学习中最简单的一种训练方法,通过复现输入信号来逐层地调整整个网络,其可以学习输入数据的隐含特征,同时能根据这些特征重构出原始数据。自动编码器通过对输入数据的压缩或解压缩来实现对织物疵点的检测,正因如此,它只能压缩那些与训练数据类似的数据,而且解压缩的输出与原始的输入相比是退化的、有损的。常用的几种自动编码器有降噪自编码器(Denoising Autoencoder,DAE)、堆叠自编码器(Stacked Autoencoder,SAE)和稀疏自编码器(Sparse Autoencoder,SAE)等。
LI等[31]利用堆叠自编码器根据以像素为中心的上下文预测每个像素属于疵点区域的概率,提出基于Fisher准则的堆叠自编码器(FCSAE),使提取的特征更具识别性;景军锋等[32]提出基于Fisher准则的栈式去噪自编码器算法(FSDAE),利用稀疏自编码器得到小块图像的稀疏性特征对卷积自编码网络参数进行初始化,最后将提取到的特征送入FSDAE网络进行疵点检测分类。该方法能有效提取织物图像的分类特征,提高检测率,但对于纹理背景复杂,疵点信息较少的织物图像检测效果不理想;而LI[33]作出了进一步改进,提出的基于Fisher准则的堆叠去噪自动编码器(FCSDA)对周期性图案织物和提花经编织物的缺陷检测更具有效性。
在BP神经网络中,每一层都是全连接的,导致训练困难。卷积神经网络(CNN)通过共享卷积核和池化技术降低了网络参数的数量级,但卷积神经网络训练参数多、样本量大,极易陷入过拟合。目前,已有很多研究者对卷积神经网络模型作出不同的改进方案,改进后的模型计算成本降低,准确率提高且具有一定的普适性。
JING等[34]用批量归一化层替代卷积神经网络AlexNet中的本地响应规范化层,提高了系统的计算效率和分类准确性,在染色织物缺陷分类方面具有良好的性能;景军锋等[35]在迁移学习的基础上,利用微调卷积神经网络Alexnet对织物疵点图像进行特征提取,该方法比原始Alexnet模型和深度学习(GoogLenet)模型的准确率高、训练样本量小且能避免陷入过拟合,但该方法只限于原网络的用途与目标领域相似才能使用迁移学习。
为了更有效地检测复杂纹理的织物图像缺陷,LIU等[36]提出基于卷积神经网络的端到端自动检测,采用快速区域的卷积神经网络(Fast R-CNN)来检测织物图像缺陷。与现有技术相比,该方法能够更准确地定位织物缺陷区域,并且具有更好的适应性;李明等[37]将生成对抗网络(GAN)与Faster R-CNN相结合对7种色织物进行疵点检测,平均准确率可到93%。
通过查阅国内外近年来的相关文献,本文简要综述了基于结构、频谱、统计、模型、学习的5种常用的织物疵点检测方法,并对这些方法的原理做了概括和比较,分析了其优缺点。着重回顾了近几年基于深度学习的织物疵点检测方法,并对织物疵点检测方法的未来发展方向作出了展望,得出:
①为更好地评估一种检测方法的有效性和通用性,应考虑发展公共免费的大型数据库。
②不同的检测算法适用于不同的织物纹理,因此发展更具通用性的检测算法是未来的研究方向之一。
③目前只有小波变换、深度学习等少数疵点检测方法具有实时性,如何将计算效率高并有准确率的检测方法应用于实时场景,未来还需要进行大量研究。