马金秀,张缓缓,景军锋,李鹏飞,王 震,仵景涛
(西安工程大学 电子信息学院,陕西 西安 710048)
印花织物作为一种附加值较高的织物,在服装制衣、高端家纺制品及家居装饰品中的应用十分广泛[1-2]。但在花型印制的过程中,由于机械故障、人工操作失误以及生产环境干扰等因素,不可避免地产生缺陷,而缺陷的存在直接影响了印花终端产品的质量及价格。因此,对印花织物的缺陷检测尤为重要。然而印花织物材质多样、纹理结构复杂、颜色多变、花型繁多,缺陷特征难以有效表征,极大地增加了计算机对缺陷检测的难度。
近年来,随着机器学习、图像处理与模式识别在纺织品工业质量控制方面的广泛应用,许多国内外学者针对原料布[3-4]、网状织物[5]和色织物[6-7]等面料纹理结构相对简单的织物瑕疵的研究取得了较多得成果。为了进一步解决具有复杂纹理和花型特性的印花织物缺陷,潘如如等提出了一种基于互相关的印花织物缺陷检测方法[8],该方法能实现印花织物的花纹偏移、颜色色差等缺陷的自动检测,但是这些缺陷都来自于软件的模拟,并没有对实际的印花样本进行验证。KUO等提出了一种基于RGB累计均值法的印花织物缺陷检测方法[9],并对断经、断纬等缺陷进行了有效检测,但RGB空间计算量大,对硬件要求较高且论文并未对非周期印花织物进行探讨。景军锋等提出采用曲线匹配算法对织物图像进行分割[10],完成圆网印花过程中对花误差的检测,但是在检测过程中必须以标准图像进行对比匹配,否则无法完成检测。刘茁梅等提出基于稀疏表示的印花织物缺陷检测[11],但其文中的印花织物并非严格意义上的印花织物,仍然属于纹理结构相对简单的织物类型。LIU等利用多级GAN网络对数量较少的印花织物进行样本扩充[12],提高分割网络的精度,成功完成对周期性印花织物的缺陷检测。JING等利用Mobile-Unet网络模型实现了对多种类型织物缺陷的检测[13],结果表现优秀,但是网络模型的训练需要人工标记大量的图片,费时费力、主观性强。李敏等使用高斯混合模型完成了对印花织物错花、色差以及花型歪斜等缺陷的检测[14],但该方法的检测目标仍然是周期性印花织物,且需要正样本的对比匹配。任欢欢等提出的一种基于黄金图像减法与傅里叶变换位移定理曲线匹配算法相结合的方法[15],实现了周期性印花织物的错花缺陷检测。
而这些方法目前解决的问题多是周期性印花织物缺陷,缺陷类型主要集中在错花、对花[16]等方面,并没有对非周期性印花织物的漏墨、破洞等缺陷进行验证,而且这些方法需要无缺陷图像作为正样本参考匹配,参数调节繁琐。因此,为了解决以上问题,文中以图像修复技术为基础,给出一种改进的Criminisi算法对织物缺陷进行检测,旨在修复印花织物的缺陷图像以达到最终检测的目的。
文中提出的基于Criminisi修复算法非周期性印花织物缺陷检测方法,先以FT算法和大津阈值处理后的显著二值图作为Criminisi算法的Mask掩码图,得到修复的印花图像,然后将修复图与原图做差,最终得到缺陷区域。该方法的优势在于不需要正样本的对比匹配,不需要参数的调节,操作简单,即可实现对非周期性印花织物漏墨、污渍的缺陷检测。检测流程如图1所示。
图 1 印花织物缺陷检测框图Fig.1 Flow chart of printed fabric defect detection
Mask掩码图用于印花织物的修复过程,用来确定待修复区域,对印花织物缺陷检测非常重要。虽然非周期性印花织物的背景纹理复杂多变,缺陷区域不易识别,但其缺陷区域有一定的显著性,因此本文利用FT显著性算法[17],获取印花织物的显著信息。算法原理为该方法先对图像进行高斯滤波,获得滤波后的图像,提取其像素点的Lab值Ic(x,y),然后计算图像在Lab空间的均值Iμ,最后通过计算欧氏距离,获得缺陷区域的显著图。
为了保证获取完整的印花缺陷显著区域,对显著性图有明确要求:①着重强调最大的显著性物体;②显著性区域的亮度均匀;③边界处明显;④丢弃有纹理、噪声产生的高频信息,避免对显著性检测的干扰;⑤算法高效,显著图与原图大小一致。
通过上述要求可以看出,得到的显著图像中需要保留目标部分低频信号,也要表征目标边缘对应的高频信号,同时要去除噪声的干扰等因素所对应的高频信号。为了解决这些问题,在计算显著图的过程中,选择不同频率分段的信号并进行组合,滤除非显著区域对应的频率,以获得满足要求的显著图。
FT将组合的高斯差分滤波器(difference of Gaussian,DoG)作为带通滤波器使用。DoG通过把原图像与高斯核函数卷积得到滤波结果F(x,y),可表示为
G(x,y,σ1)-G(x,y,σ2)
(1)
式中:x、y分别为图像像素的横、纵坐标;σ1和σ2为高斯标准差,且σ1>σ2。并且当DoG的标准差比ρ=σ1/σ2固定在1.6时[18],可以达到理想显著效果。
对于任意图像I的显著性图定义为S(x,y),得
S(x,y)=|Iμ-Ic(x,y)|
(2)
式中:Iμ为原图像素值的算术平均值;Ic(x,y)为经过DoG算子模糊后图像(x,y)处的像素值。
将式(2)加入颜色特征和亮度特征,其扩展公式为
S(x,y)=‖Iμ-Ic(x,y)‖
(3)
式中:‖‖为L2范数;Iμ为图像的特征向量;Ic(x,y) 是原始图像对应的高斯模糊图像的像素矢量。式(3)可以满足前面提出的要求。
为了进一步获取Mask掩码图,需要分割突出区域,即待修复区域。因此需要对显著性图进行自适应阈值二值化,白色像素(像素值为1)对应待修复区域,而黑色像素(像素值为0)对应印花织物背景,本文选用大津法[19]对显著图进行分割。
首先要计算显著图中的类间方差,类间方差定义公式为
g=ω0ω1(μ0-μ1)2
(4)
式中:g为类间方差;ω0为前景的像素点数占整幅图像的比例;μ0为其平均灰度;ω1为背景像素点数占整幅图像的比例;μ1为其平均灰度。然后根据计算的类间方差,获取Mask掩码图。
获取Mask掩码图之后,采用 Criminisi算法[20]对印花织物缺陷图像进行修复。Criminisi算法是一种基于样例的修复算法,它的优势在于用合适的方法填补图像缺失的部分,对合成图像和复杂纹理的全彩图像上的大物体遮挡和小划痕具有良好的修复作用。而印花织物的背景花纹纹理复杂,缺陷区域形状、大小不一。因此在获得Mask掩码图后,利用Criminisi算法修复缺陷印花织物。
1) 在需要修复区域(即印花的缺陷区域)的轮廓上计算优先权,选择优先权最大的轮廓点作为待修复点,优先权P(p)可表示为
P(p)=C(p)D(p)
(5)
式中:C(p)为置信度项,表示样本块中包含的已知像素点的多少;D(p)为数据项,表示结构信息量。C(p)越大,说明p中包含的已知信息所占有的比例越大,即置信度越大,应优先修复。D(p)越大,说明表面线性结构越复杂,应优先修复。随着修复的进行,待修复区域外层的像素将趋向于更大的置信值,因此会更早填充,待修复中心的像素将具有更小的置信值。其中,C(p)与D(p)分别定义为
(6)
(7)
2) 在该点周围邻域取一个一定大小的样本块,在图像其他区域内找该样本块的最近邻块。样本块的大小是n×n(其中n为像素的个数),修复过程中,本文选取Criminisi算法默认的9×9大小的样本块。
3) 将最近邻patch块对应到需要修复区域(即缺陷区域)的部分,复制到等待修复的区域,再重复上述步骤,直至所有点都填充完毕。
图2从左到右依次为Criminisi修复算法的某一次迭代过程。其中,Ω表示待修复区域,即缺陷区域,其轮廓用δΩ表示;Φ表示源区域,提供修复过程中使用的样本。假设要修复以点p为中心的方形模板Ψp∈Ω,源区域的最佳匹配样本来自于Ψq∈Φ,Ψq是与Ψp已修复部分最相似的部分。如果Ψp位于图像边缘的延续上,则最可能的最佳匹配将位于相同(或颜色相似)的边缘上。所有需要修复的等压线向内传播是通过一个简单的模式,即从最佳匹配的源图像块转移到待修复的块中。
图 2 Criminisi修复算法的一次迭代过程Fig.2 An iteration process of Criminisi repair algorithm
为验证所提方法的有效性,实验选取溢达织物裁片库和实地工厂采集的印花织物作为实验检测样本,包括迷彩印花图片和复杂印花图片,印花图片的缺陷类型主要集中在漏墨、污渍等,图片像素大小均为256×256。计算机处理器为Intel(R) Core(TM)i5-5200U CPU@2.20GHz,操作系统为64位Windows 10,软件编译环境为Matlab 2019a。
本文所提方法对非周期性印花织物的检测结果与其他方法的对比结果如图3所示,图3中1~4种织物为复杂印花织物,第5种织物为迷彩印花织物,图中红色框为缺陷所在位置。
(a) 各种印花织物缺陷原图
(b) 文献[13]方法检测结果
(c) 文献[14]方法检测结果
(d) 文献[21]方法检测结果
(e) 本文方法图 3 各种印花织物缺陷检测对比结果Fig.3 Defect detection and comparison results of various printed fabrics
从图3(b)可知,文献[13]基于Mobile-Unet网络模型的方法可以检测到部分印花样本缺陷,较好地保留了缺陷的细节部分,但是对迷彩印花织物检测结果并不理想,原因在于迷彩印花缺陷损坏程度较小,不易检测。另外,该方法需要对大量的样本进行人工标记,主观性较强。从图3(c)可知,文献[14]基于高斯模型的方法对印花织物的缺陷总体检测不准确,无法有效去除花纹背景纹理的影响,同样,迷彩印花织物的背景信息对检测结果的影响也较大。从图3(d)可知,文献[21]基于先验知识的最小二乘回归方法对印花织物的整体检测效果不佳,得到的不规则图是模糊的,定位的缺陷也是不准确的,原因在于印花织物过于复杂的背景纹理增加了该方法对缺陷检测的难度。
从本文方法的检测结果图3(e)可以看出,该方法能够有效检测到各类非周期性印花织物的漏墨、破洞、污渍等缺陷区域,并且基本保留了缺陷区域的完整性。所提方法的实验过程中无需正样本图像作对比参照,不涉及参数的调节,减少了检测的繁琐性,适用范围较为广泛。
在织物疵点检测中,客观评价指标主要从准确率RACC、漏检率M、误检率F和交占比4个指标来进行量化对比。成功检测到的缺陷被归类为真实阳性TP,错误检测被归类为假阳性FP,未检测到的缺陷被归类为假阴性FN。RACC、M、F可表示为
(8)
M=FN/(TP+FN)
(9)
F=FP/(FP+TN)
(10)
交占比是交集面积与理论真实面积和检测到的多边形区域的并集面积之比,比值越接近1,表示检测结果与实际情况越接近。本文方法和其他方法在RACC、M、F和交占比上的对比结果如表1所示,其中“-”表示无法获得。
表 1 评价指标对比结果Fig.1 Comparison of evaluation indicators
从表1可以看出,文献[21]无法检测到印花织物的缺陷,文献[14]对复杂印花织物的漏检率结果表现良好,文献[13]对复杂印花的交占比较高,但对其他参数指标,本文方法的结果都优于其他方法,检测准确度整体水平较高,误检率与漏检率较低,交占比高,能够达到检测要求。
本文针对非周期性印花织物背景纹理结构复杂、花型繁多、缺陷区域不易检测的问题,提出基于Criminisi修复算法对非周期性印花织物缺陷进行检测。首先,使用FT算法对印花织物原图进行显著性检测,用大津阈值法对显著图处理,得到Mask掩码图,确定待修复区域,其次,基于Criminisi修复算法对缺陷图像进行修复,最后,将修复图与原图做减法,从而得到缺陷检测区域。经大量实验验证,该方法无需正样本,无需复杂参数调节,准确率高,误检率与漏检率相对较小,既能检测非印花类织物缺陷,也能够分割出印花织物的缺陷区域。在未来的研究中,还需对该方法加以改进,使其在较短时间内完成更多复杂印花织物的不同缺陷类型的检测。