邢文宇, 邓 娜, 辛斌杰, 于 晨
(1. 上海工程技术大学 电子电气工程学院, 上海 201620; 2. 上海工程技术大学 服装学院, 上海 201620)
在纺织工业及服装制造领域,羊毛与羊绒一直是十分重要的纺织材料,但是二者的价格、性能差别显著。由于羊毛和羊绒的形态结构、颜色特征较为相似,直接用肉眼进行区分比较困难,所以市场上会出现用羊毛冒充羊绒的现象;因此,快速、准确、高效地鉴别羊毛和羊绒纤维具有非常重要的现实意义[1]。
羊毛与羊绒纤维的鉴别主要可分为物理鉴别法、化学鉴别法、生物鉴别法以及图像法4类[2]。2001年,在用扫描电子显微镜(SEM)进行鉴别的基础上,我国检验验疫机构研发出计算机辅助检测系统[3],建立了贝叶斯鉴别模型,鉴别的准确率超过90%;陈国华等[4]对羊绒、羊毛在不同条件下NaOH溶液中的溶解度进行测试分析,研究发现,在温度为65 ℃、碱质量分数为0.75%的溶液中处理30 min时,二者的碱溶度差异达到最大,并依此进行羊毛、羊绒含量的定量分析;TANG等[5]提出一种基于线粒体脱氧核糖核酸(DNA)的纤维分析方法,通过设计聚合酶链式反应引物与探针和纤维的线粒体12S核糖体基因进行特异性反应,实现羊绒与羊毛混合物中各组分的定量分析。以上方法对设备要求较高,实验较为复杂,因此不能被广泛应用。此外,目前存在的利用图像法进行纤维识别,主要采用单一纹理特征提取算法,无法较完善地提取纤维信息,导致识别率较低。
图2 羊绒的图像预处理过程图Fig.2 Preprocessing diagram of cashmere images. (a) Original image; (b) Gray image; (c) Contrast stretching; (d) Logarithm nonlinear transformation; (e) Histogram equalization
本文将计算机视觉、数字图像处理技术应用于纤维识别,提出了一种基于多特征融合的羊毛与羊绒鉴别方法。该方法主要分为3部分:1)预处理,对采集到的羊绒、羊毛图像进行预处理操作,得到较为清晰且满足需求的纤维图像;2)多特征提取,利用灰度共生矩阵提取纤维图像的纹理特征,并通过中轴线法提取纤维的直径形态特征;3)纤维自动分类识别,依据所提取的纤维纹理及形态特征融合成一个多维数组作为聚类算法的输入,即可对羊绒、羊毛纤维进行自动分类识别。
图1示出在光学显微镜下观察到的羊绒和羊毛的原始图像。可以观察到二者的形态结构较为相似,无法直接利用肉眼进行识别,而且在图像采集过程中,难免会出现一些水泡或其他杂质,因此,需要通过预处理来得到清晰的纤维图像,进而更好地进行纤维特征的提取与纤维识别。
图1 原始羊绒和羊毛显微镜图像(×400)Fig.1 Original microscope images of cashmere (a) and wool (b) (×400)
由于实验需要采集羊绒与羊毛的纹理特征以及直径形态特征,考虑到2类特征参数提取所需要的纤维图像不同,又因为羊绒与羊毛图像预处理过程较为相似,因此,本文分别以图1中羊绒与羊毛的纤维图像为例提出2类预处理流程,并经过大量的纤维图像进行验证。
以羊绒图像为例介绍用于灰度共生矩阵纹理提取的第1类图像预处理流程,如图2所示,其对应的原始图像和增强后图像的灰度直方图如图3所示。
图3 原始图像和增强后图像的灰度直方图Fig.3 Gray-level histogram of original image (a) and enhanced image (b)
首先将原始羊绒图像进行分割,得到去除背景的单一纤维图像(见图2(a))。其次将分割后的彩色纤维图像转化为图2(b)所示的灰度图像,并求解其灰度直方图(见图3(a))。然后将灰度图像通过对比度拉伸、对数非线性变换以及直方图均衡等方法进行图像增强,增强后图像分别如图2(c)~(e)所示。从3类增强后的图像可观察到灰度直方图均衡后的图像增强效果更好,增强后纤维图像的灰度直方图如图3(b)所示,因此,本文实验将利用直方图均衡算法增强后的纤维图像用作灰度共生矩阵的纹理特征参数提取。
图4 羊毛的图像预处理过程图Fig.4 Preprocessing diagram of wool images. (a) Contrast stretching; (b) Logarithm nonlinear transformation; (c) Histogram equalization; (d) Morphological processing; (e) Subtraction operation; (f) Fiber binary image
以羊毛图像为例介绍用于中轴线法提取纤维直径形态特征的纤维图像预处理流程,如图4所示。
首先将原始羊毛纤维图像进行灰度化处理,然后同样利用对比度拉伸、对数变换、直方图均衡化3种方法进行纤维图像增强处理。从3幅处理后图像可以看出,对于含有背景的纤维图像,采用对比度拉伸进行图像增强时效果最为突出,其灰度直方图如图5所示。然后对对比度拉伸后的图像进行形态学腐蚀运算处理,并将得到的图像与增强后的图像进行减法运算,增强纤维轮廓线特征,同时去除纤维背景,最后对得到的图像进行二值化处理并去除小的噪声点,即可得到最终用于水平集中轴线法的二值图像。
图5 对比度拉伸增强后图像的灰度直方图Fig.5 Gray histogram of image enhancement
本文实验主要采用灰度共生矩阵算法进行纤维纹理特征参数的提取。灰度共生矩阵[6-7]是通过研究灰度的空间相关特性来描述纹理的常用方法。假设f(x,y)为M×N的二维数字图像矩阵(M×N为图像分辨率),灰度级别为h,则满足一定空间关系的灰度共生矩阵为
P(i,j)=#{(x1,y1),(x2,y2)∈M×N|
f(x1,y1)=i,f(x2,y2)=j}
式中:#(X)表示集合X中的元素个数,显然P为h×h的矩阵;若图像中像素点(x1,y1)与(x2,y2)间距离为d,二者与坐标横轴的夹角为θ,则可得到各种间距及角度下的灰度共生矩阵P(i,j,d,θ)。其中:d一般可取1、2、3、4等像素个数值;θ则一般选取0°、45°、90°、135°。
通过灰度共生矩阵,可提取纤维图像的二次统计量作为纹理特征参数,本文主要采用角二阶距(能量)、熵、惯性矩、相关4个特征来描述羊毛与羊绒纤维图像的纹理特征。
构造灰度共生矩阵过程中,纤维图像的灰度级、像素间距以及生成的角度三者的选取都会对灰度共生矩阵的构造产生影响[8-9],因此,首先需要确定实验最优的像素灰度等级、像素间距以及生成角度。为此,根据采集到的羊绒与羊毛各200幅纤维图像作为样本进行相关研究。
1)生成角度的选择。为避免纤维纹理信息的丢失,需取0°、45°、90°、135°共4个角度的纹理特征参数的均值作为实验所需要的特征参数。
2)像素间距的选择。保持像素灰度等级不变(本文实验选取灰度等级为16级),依次取像素间距d的值为1、2、3、4、5、6、7、8,计算不同d值时各特征参数变化趋势,由文献[8]可知,d=4时可作为构造灰度共生矩阵的最佳像素间距。
3)像素灰度等级的选择。随着像素灰度等级的增加,羊毛与羊绒的特征参数较为相近,其变化呈现出的趋势如图6所示,其中能量与相关2个特征参数值分别以实际值的100倍和10倍进行展示。由图中特征参数变化曲线可知,当像素灰度等级大于64时,羊毛与羊绒的能量、熵以及相关3个特征参数逐渐趋于稳定。此外,考虑到构造灰度共生矩阵的时长问题,像素灰度等级选择采用64级。
图6 纹理特征变化曲线Fig.6 Texture feature change curves
纤维直径的求取过程为:首先将预处理过的羊毛或羊绒纤维二值图像通过区域生长分割算法得到纤维的轮廓线;其次通过中轴线算法拟合纤维的中轴线,并求取其切线;然后过中轴线与切线的交点做中轴线的垂线,该垂线与纤维轮廓线相交于2点,求取2交点之间的距离即为纤维的直径。
区域生长[10-11]主要是根据预先定义的生长准则,把像素或子区域集合成较大区域的处理方法。其基本处理方法是以一组“种子”点开始,将与该“种子”点具有相似或相同性质的点进行合并,并继续向外生长,直至没有满足条件的像素点被包括进来为止。区域生长一般有3 个步骤:1)选择初始点;2)定义生长准则;3)定义终止条件。
由于纤维轮廓线不是完全封闭的,因此在利用区域生长对其进行轮廓线提取时,本文采用了2次区域生长算法分别进行纤维左右轮廓线的提取,如图7所示。首先,在纤维二值图像的左轮廓线上选取种子点(如图7(a)所示的白色圆形标记区域)并进行区域生长,得到纤维左边轮廓线的区域生长图像(如图7(b)所示),由于纤维内部存在与纤维边缘黏连的部分,所以区域生长时将会产生除纤维轮廓线之外的干扰点(如图7(b)所示的白色矩形框标注部分),因此,可将其看作噪声,并对这些孤立的噪声点进行去噪处理,得到左边纤维轮廓线,如图7(c)所示。然后,将其进行细化处理,便可得到单像素的纤维轮廓线,以减少计算纤维直径时产生的误差,如图7(d)所示。同样纤维右边轮廓线的提取也是按照此算法操作。最后,只需要将2次区域生长提取出来的左右2条轮廓线图像进行融合,便可得到所需要的纤维轮廓线图像,如图8所示。
图7 纤维轮廓线提取过程Fig.7 Process images of fiber contour extraction. (a)Seed selection; (b) Region growth; (c)Noise removal; (d)Thinning of contour lines
图8 纤维轮廓图Fig.8 Image of fiber counter
水平集方法[12-13]的核心思想是把n维描述视为高一维的水平集,将低维的一些计算上升到更高一维。用在纤维中轴线求取时,其精度可达到亚像素级别,同时可得到连续、光滑的纤维中轴线。
基于水平集的中轴线提取算法主要包括4个步骤[14],分别为:
1)利用水平集算法对纤维的二值轮廓图进行分割处理,得到沿着纤维的等值面和水平值信息。
2)使用快速匹配算法计算处理后图像内部的所有像素点与纤维边缘的最短距离,获得最短距离分布图。
3)根据最短距离分布图信息,利用同样的方法计算距离纤维轮廓线最远的像素点A。同时,再次计算纤维内部与点A具有最远距离的像素点B,以及与点B具有最远距离的像素点C。
4)运用梯度下降回溯法以C为起点,沿着纤维的方向依次计算所有的纤维中心点,得到完整的纤维中轴线。
提取结果如图9所示。
图9 纤维中轴线图Fig.9 Image of fiber axis
对于纤维直径的测量[14],主要是计算过中轴线与其切线相交切点的垂线与纤维2条边缘相交于2点间的直线距离,其直径求取算法流程如图10所示。
图10 直径求取算法流程Fig.10 Flow chart of algorithm
常用的聚类算法有K均值聚类、层次聚类、自组织映射网络(SOM)聚类等,考虑到运行时间及准确性问题,本文实验采用K均值聚类算法[15]对数据进行分类识别。K均值聚类算法主要以K为参数,将m个对象分成K个簇,使簇内对象具有较高的相似度,而簇间各个对象的相似度较低。
该算法主要处理过程如下:1)随机选取K个对象,作为每个簇初始的聚类中心;2)对剩余的每个对象,计算其与各簇中心的距离(主要采用欧氏距离),将其赋给最近的簇;3)重新计算每个簇的平均值;4)以上过程不断重复迭代,直到准则函数收敛。
本文实验样品为南宫市鹰月绒毛有限公司提供的产自澳大利亚的山羊绒与绵羊毛,且纤维是从不同时间段生产的原毛中随机抽取的。通过OLYMPUS CX41型光学显微镜,以400倍的放大倍数观察预先制成的羊毛、羊绒纤维样本,并通过Pooher PDS50相机进行拍照储存,分别采集了200幅羊绒与200幅羊毛图像作为实验用图像。
将采集到的纤维图像经过MatLab 2015b进行预处理后,通过灰度共生矩阵算法提取其能量、熵、惯性矩、相关4个纤维纹理特征,并通过水平集中轴线法测取纤维直径形态特征,将这5个特征作为描述纤维的五维数组,共提取到羊绒与羊毛各200组数据。最后,通过K均值聚类算法对400组数据进行分类识别。
当使用单一灰度共生矩阵算法进行纤维特征的采集,并将数据利用支持向量机进行神经网络训练与识别[16],且选取的数据集中羊毛与羊绒样本数量相近或相等时,其识别率如表1所示,识别率平均值达到了91.93%。而利用本文提出的基于多特征融合算法提取纤维特征并利用K均值聚类算法进行羊毛与羊绒自动分类识别时,其实验结果如表2所示。可以看出,羊毛与羊绒的识别率达到了95.25%,较传统方法识别率有所提升。
表1 单一灰度共生矩阵算法识别率Tab.1 Identification rate of single level co-occurrence matrix algorithm
表2 本文提出算法的识别率Tab.2 Recognition rate of method proposed
本文提出的基于多特征融合的羊毛与羊绒的鉴别方法,对采集到的大量羊毛与羊绒样本进行预处理后,利用灰度共生矩阵算法与水平集中轴线算法相结合的方法提取纤维的纹理与形态特征,并利用K均值聚类算法对采集到的纤维特征进行纤维的分类识别。其结果显示,羊绒与羊毛的根数识别率达到95.25%,与传统的识别方法相比,识别率较高,因此,本文方法能够作为一种识别羊毛与羊绒的方法。但是本文研究仅对普通的羊毛与羊绒进行鉴别,由于纤维种类繁多且在生长过程中容易发生变异,因此还需要采集更多的羊毛与羊绒纤维样本补充实验数据,进而更好地提高鉴别的精确程度。
FZXB