吴 莹, 占 竹, 汪 军,4
(1. 浙江理工大学 服装学院, 浙江 杭州 310018; 2. 浙江理工大学 服装数字化技术浙江省工程实验室, 浙江 杭州 310018; 3. 东华大学 纺织学院, 上海 201620; 4. 东华大学 纺织面料技术教育部重点实验室, 上海 201620)
从理论上而言,机织物的织造工艺使得纹理呈现出一定规律性;但由于实际操作的误差和织物结构参数的不断变化,市场需求多变等因素,机织物品种丰富、种类繁多,相应的纹理特性也是风格多变的[1]。现有文献中涉及到的织物纹理分析算法主要是根据先验知识、滤波器以及特征值等来实现,而织物纹理的随机性差异增加了普适性纹理特征或滤波器的提取难度。此时学习算法为织物纹理表征提供了另一种思路,即绕开纹理特征的提取环节,直接对织物样本进行学习,其中常见的有字典学习法等。字典学习法已广泛应用于人脸识别、图像压缩和图像去噪等计算机视觉领域。
传统的纹理分析方法大都用于织物疵点检测算法[2-4],由于训练参数过多和特征不灵活致使该类算法的通用性较差,故纹理在线检测仍是一个充满挑战且悬而未决的问题[5]。为此,本文从机织物纹理分析的基础研究入手,采用字典学习法来对织物纹理进行表征。根据字典构建方式的不同,字典可分为固定字典和学习字典2类[6]。对于各式各样的织物纹理,固定字典耗时短,却不能自适应织物纹理;学习字典可有效自适应织物纹理,但耗时长。固定字典需要先选取字典,即字典形状固定,原子形态不会随着图像本身的复杂结构而改变,字典与图像的匹配不是最佳的。为了更好地表征织物纹理,提高字典的通用性和实时性,本文对某种组织结构类型的织物图像进行字典学习,获得拥有该组织结构特征的学习字典,结合固定字典快速稳定的优势,设计织物纹理稳定表征的通用字典算法。
任意给定信号矩阵X=[x1,x2,…,xn],xi∈Rm,i=[1,2,…,n]字典学习的目标就是寻找一个字典D以及相关的系数矩阵α来线性表达信号,即xi=Dαi。对于该线性表达,需要预先确定字典,可见字典的构建是本文算法的核心。
为了进一步优化字典,可将字典学习添加不同的约束条件,如正交约束、非负约束以及稀疏约束,而本文主要在l2范数近似条件下对稀疏约束下的字典学习进行研究,其问题表示如式(1)所示。
(1)
鉴于正交匹配追踪(OMP)算法的简洁有效性、求解唯一性,本文通过OMP算法对式(1)进行求解[7]。通用字典是训练得到的,其数值固定,加上OMP求解的唯一性,因此本文算法可对机织物纹理稳定表征。
选取一系列正常织物图像作为训练样本,经子窗口划分后,对子窗口样本图像进行字典学习,得到学习字典,即通用字典,如图1所示。
图1 通用字典表征织物纹理的流程图Fig.1 Process of general dictionary to represent fabric texture
任意未知织物纹理图像Y,经子窗口划分后,根据通用字典和OMP算法对式(1)进行求解,重构图像的模型,如式(2)所示。
(2)
最优方向法(MOD)[8]和K-奇异值分解法(K-SVD)算法[9]是2种经典的字典学习法。它们的区别主要有2点:MOD是更新整个字典,而K-SVD是逐个字典原子进行更新(1个字典原子是字典的某列);前者只需实施一次最小二乘法即可完成字典更新,而后者的字典更新需要K次奇异值分解(K由字典个数所定)方可完成。为了选取合适的方法,分别采用MOD算法和K-SVD算法对样本图像进行纹理表征。其中织物样本是256像素×256像素的8位灰度图像,并设定统一实验条件:字典大小k=256,子窗口大小8像素×8像素,稀疏基数T=4,程序迭代5次[10]。实验程序是在Windows 10(64 位)操作系统下的MATLAB R2016A上运行,计算机配置为INTEL CPU(3.40GHZ)和8G内存。
图2 学习字典Fig.2 Learned dictionary. (a) MOD dictionary; (b) K-SVD dictionary
2.1.1 表征结果比较
分别采用上述2种算法对1#、2#织物样本图像进行纹理表征,通过文献[10]中图像的峰值信噪比(PSNR)、算法实时性和结构相似性(SSIM)这3个量化指标来评价。2种算法所得的学习字典如图2所示,表征结果如表1所示。对于1#样本,显然K-SVD算法的表征效果优于MOD 算法,不足的是K-SVD算法运行所需的时间多几秒,但差异不大。总之,上述2种字典学习算法都可自适应织物纹理,获得相似的表征效果。
表1 2种字典学习算法的结果比较Tab.1 Comparable results for two algorithms
2.1.2 通用字典表征结果比较
任意选取8种正常织物样本图像,经子窗口划分后,从中选取超过6 000个8像素×8像素的子窗口样本图像组成训练样本,织物样本图像如图3所示。分别采用K-SVD算法和MOD算法对训练样本进行字典学习,所得2种类型的通用字典,详见图4。观察图3、4可知,通用字典包含织物纹理特征,原子形态也更为丰富。
图3 织物样本原始图像Fig.3 Fabric original sample images
图4 通用字典Fig.4 General dictionary. (a) K-SVD general dictionary; (b) MOD general dictionary
以1#、2#样本为例,表2给出了2种通用字典的表征效果。比较表1、2发现,通用字典算法的实时性较学习字典好,表征效果次之。不过这种差异可通过优化实验参数进行弥补,如若通用字典的稀疏基数T增大到6,此时样本1#的峰值信噪比(PSNR)和结构相似性(SSIM)分别为43.80 dB、0.95,且实时性155.16 s<566.5 s(K-SVD学习字典的实时性)。
表2 2种通用字典的量化测试结果Tab.2 Quantitative test results for two general dictionaries
综上所述,K-SVD 可有效表征织物纹理,缩短了2种字典学习算法实时性的差异。此外,通用字典还可通过优化实验参数拉近与学习字典的差异,且实时性的优势明显。为此选用K-SVD字典学习来获得通用字典。
稀疏基数是求解系数矩阵的关键,需要在织物纹理表征实施前预先确定的参数,这是因为T对表征结果有着直接的影响。若T太小,重构效果差,实时性好,且随着T的增大,计算量的激增给算法实际运行增加了困难;所以稀疏基数的合适与否直接关系到织物纹理能否有效表征。为此,本文选取10个T值对2#样本进行实验,并从主客观2方面来分析稀疏基数对纹理表征的影响。
主观方面,织物重构图像的视觉效果随着稀疏基数T数值的增大而变好,如图5所示。T为1时,所提算法仅表征出样本2#的主要纹理,且所得表面纹理模糊。增大T使得重构图像纹理特征逐渐清晰,到T为6时,肉眼较难区分重构与原始图像之间的差异。
图5 2#样本在稀疏基数T值的重构图像Fig.5 2# sample′s reconstructed images with different sparse cardinality T values
客观方面,图6示出稀疏基数T的量化测试结果。稀疏基数的增大使得样本2#的表征结果更优,如PSNR值增大,SSIM值先增大后接近收敛。如稀疏基数为6时,PSNR和SSIM的值分别为30.0 dB左右和0.9,此时持续增大稀疏基数,PSNR增幅逐渐平缓,SSIM也愈发接近1并趋于收敛,可见一味地增大稀疏基数是不可行的。此外,本文将结合算法实时性来优选稀疏基数,算法在不同稀疏基数下的实时性详见图6(c)。观察图6(c)不难发现,稀疏基数和算法的实时性呈现正相关,稀疏基数从6增加到8,实时性也从150 s 增大到200 s。为此,最终选用T=6来表征织物纹理。
实验部分所涉及到的字典个数、稀疏基数、子窗口尺寸分别为256、6和8像素×8像素(下同),采用基于K-SVD算法的通用字典(因为其织物图像是任意选取的,所以本文将其称为普通通用字典)对样本数据集进行表征,与离散余弦变换字典(DCT字典,本文简称固定字典)[6]的比较结果见图7。需要说明的是所有实验是在同一水平下进行比较。织物样本图像的表征结果表明通用字典的表征结果优于固定字典,即PSNR值和SSIM值较固定字典的大。由此可见,普通通用字典较固定字典对织物纹理的适应性更好,且对表征效果有明显的改善。
图7 2种字典的对比实验Fig.7 Comparative test for two kinds of general dictionaries
图8 织物样本图像Fig.8 Fabric sample images
上述普通通用字典具有较为广义的普适性,为了进一步优化通用字典算法,将针对某种组织或多种组织结构的字典学习得到不同种类的通用字典。针对2#~5#样本的4种组织结构(见图3、8),通过字典学习得到相应的组织结构通用字典及集合4种组织结构的联合组织结构通用字典。值得注意的是每种组织结构涉及到的训练样本由5种不同密度的样本组成,且其余织物结构参数一致;联合组织结构有20个训练样本(4种组织结构训练样本的集合)。
对于3种通用字典,表3给出了它们的量化测试结果。经比较发现织物纹理表征效果由好到坏依次为:组织结构通用字典、联合组织结构通用字典和普通通用字典。比较3种通用字典对于样本3#的表征结果可知,联合组织结构通用字典的表征结果次于组织结构通用字典, 但较普通通用字典优。实验结果表明,通用字典的专用性较好,可为织物纹理分类提供借鉴。
表3 3种通用字典的对比结果Tab.3 Comparative test results for different general dictionaries
本文所提通用字典是由K-SVD字典学习算法训练所得,然后通过主观视觉、客观量化和实时性来优选稀疏基数。为了优化通用字典的性能,本文训练了3种不同类型的通用字典,并对其进行了实验验证。实验结果表明:在相同参数下,与固定字典相比,普通通用字典对织物纹理有更好的适应性;在此基础上,针对组织结构类型,分别训练得到组织结构通用字典和联合组织结构字典。普通、组织结构和联合组织结构3种通用字典的表征结果表明:组织结构通用字典的专用性能最优,普通通用字典具有较好的通用性,联合组织结构通用字典介于二者之间。
综上所述,通用字典可在一定程度上自适应织物纹理,为织物纹理的分析与分类提供理论依据和借鉴。此外,通用字典是离线训练所得,对于织物纹理分析的在线处理速度影响不大,以后还可研究通用字典的织物疵点检测。
FZXB