邓中民,胡灏东,于东洋,王 文,柯 薇
(武汉纺织大学 省部共建纺织新材料与先进加工技术国家重点实验室,湖北 武汉 430200)
在对针织品密度的检测中,人工检测费时费力且效率低下;运用图像法检测有效快速,能极大地提高效率,实现在线检测。目前织物密度测量的图像方法大致可分为频域法和空间域法2种方法。频域法包括傅里叶变换和小波变换等[1-3]。空间域法包括灰度曲线统计法及基于织物特征求解法等。
频域法[4-6]是将织物图像转到频域求解织物密度。考虑到纬编针织物是由线圈周期性地排列组成,采用频域法能很快得到周期规律。采用二维傅里叶变换[6]测定密度,是通过滤波对整个针织物图像进行计算,然后进行水平以及垂直方向的投影[7],分析频谱图得到针织物密度。采用频域法将图像转换到频域,由于织物倾角未知,频谱图亮斑较多,所以亮斑的处理过程较为复杂。在处理亮斑过程中,频域图像中心会存在白色背景噪声,采用理想低通滤波与图像锐化处理无法确定截止频率,且效果较差。在放大倍数不同的纬编针织物图像中仅仅依靠二维傅里叶变换,在横向无法区分亮斑是由线圈区域产生还是由圈柱间隙区域产生,方法适用性有待改进。
对于空间域方法,在针织物图像空间,采用横向纱线提取以及核密度估计方法来测量针织物密度[8],该方法对图像要求较高,当线圈以及圈柱间隙区域难以区分时就会影响纱线提取的精确度,导致划分区域混乱。并且提取出来线圈的二值图像并非封闭的区域,质心求解也较为复杂。
为解决基于图像处理的纬编针织物测量结果不太准确、适用性较差等问题,本文利用频域结合空间域的方法对纬编针织物的密度测量进行研究,先利用离散小波变换对纬编针织物进行分解重构,凸显线圈区域。再通过灰度曲线结合波谷坐标校验算法设定临界值,通过线圈坐标校验算法来定位线圈所在列的坐标,再利用八邻域广度优先搜索算法来求得纬编针织物横、纵线圈的数量。
首先使用图像灰度曲线结合波谷坐标校验算法来定位消除针织物圈柱间隙列的坐标;再使用图像灰度曲线结合线圈坐标校验算法来定位形态学操作后线圈列的坐标,如图1所示,以此完成纬编针织物的横密与纵密的测定。
图1 织物结构示意图Fig.1 Schematic diagram of fabric structure
纬编针织物密度测定总体流程如图2所示。
图2 总体流程图Fig.2 Overall flow chart
针对针织物图像倾斜,本文采用霍夫(Hough)[9]变换矫正,以此来消除图像采集时可能存在的一定角度倾斜,使图像灰度曲线更加准确地反映出针织物结构信息。矫正前后的图像灰度曲线如图3所示。
图3 图像倾斜矫正Fig.3 Image tilt correction.(a) Image gray curve correction without Hough correction;(b)Image gray curve after Hough correction
从图3看出:原图像的灰度曲线较为杂乱,没有周期性,波谷坐标不能定位线圈列及圈柱间隙列;通过Hough变换后图像的灰度曲线有周期性,波谷坐标可正确定位线圈列及圈柱间隙列。
考虑到纬编针织物中线圈排列分布具有较强的周期性,通过离散小波变换(DWT)将纬编针织物图像转换到频域空间,通过处理可凸显线圈所在区域。对纬编针织物图像进行N级离散小波(DWT)分解,原图及分解后的图像如图4所示。
图4 离散小波分解图Fig.4 Discrete wavelet decomposition diagram.(a)Original image;(b)N=1;(c)N=2;(d)N=3;(e)N=4;(f)N=5;(g)N=6;(h)N=7;(g)Reconstructed image
由分解后的图像可知:线圈信息属于高频信息,在分解到3、4、5级可以较为清晰地辨别;光照不匀等属于较低频信息,如分解图像的6、7级;更高频的是图像存在的一些噪声以及背景信息,如分解图像的1、2级。保留线圈所在高频信息,将其他频率图像剔除,再对剩余图像进行重构。
处理后效果如图4(i)所示。由分解的各级图像可以看出,每一级图像代表了原图像中不同频次的信息,由此可以剔除针织物图像中如纱线毛羽等高频信息(见图4(b)、(c))以及光照不匀等低频信息(见图4(g)、(h))。将剩下的分级图像(见图4(d)~(f))合并重构,就可得到保留了线圈结构的图像,且线圈结构与原图相比较为突出。即使在原图像(见图4(a))成像效果不是很理想的情况下,通过分解重构依旧可得到如图4(i)所示的较为清晰的线圈结构图像,为后续空间域的处理奠定了基础。
将针织物图像灰度化后,就可以统计得到该图像的灰度曲线。在统计灰度曲线灰度值时,为减少纱线自身疵点、毛羽以及图像录入时产生的信息误差等原因形成的干扰信号,本文以图像每一列灰度值的平均值来统计灰度曲线,灰度曲线的计算公式如下:
(1)
式中:M为图像列像素点个数;f(x,y)为灰度值。
通过获取针织物灰度曲线波谷坐标就可依据波谷横坐标来定位线圈列及圈柱间隙列。
由于针织物线圈在横向上均匀排列,所以代表着线圈列及圈柱间隙列的波谷坐标在横向上应该是均匀分布的,统计波谷坐标,灰度曲线会存在杂质波谷,如图5(a)所示(图中波谷位置用黑色实心圆标出),杂质波谷不能正确反映线圈以及纱线间隙位置,如果将所有波谷全部统计,结果会存在较大误差。在同一针织物中每对线圈列与圈柱列相近,所以波谷间的间距相近。由图5(a)可知,杂质波谷较少,且杂质波谷与前波谷间距很小。
图5 图像灰度曲线Fig.5 Gray scale curve of image.(a)Coordinate map of though obtained from original gray curve;(b) Trough coordinate map obtained after removing impurities from original gray curve
基于上述原因,波谷坐标校验算法通过概率统计的方法,统计相邻波谷之间的距离L(x,y)= (k1,k2,…,kn)(n是波谷间距类别个数)及每个距离所占的比率Pi=P1,P2,…,Pn,重新按降序排列Pi。通过式(2)得到的波谷间隙的临界值TH来剔除杂质波谷。经实验验证,临界值取2TH/3时准确率最高。
在灰度曲线中通过临界值TH去杂后的波谷如图5(b) 所示,图中去杂后波谷位置用黑色实心圆标出。
由图5可知,通过波谷坐标校验算法,利用概率统计的方法对图像灰度曲线的波谷坐标进行统计分析,得到除杂后的波谷坐标,即线圈列及圈柱间隙列实际横坐标。
3.3.1 局部自适应阈值法
为精确统计纬编针织物图像中线圈的个数,需要消除图像中的圈柱间隙列。本文将针织物的灰度图像转换为二值图像,通过线圈坐标校验算法来获取针织物线圈列的二值图像。
二值化一般采用大津算法(OTSU)来实现,但通过实验发现,OTSU算法设定全局的阈值,不能很好地让二值化的图像凸显线圈区域与其他区域的不同。为凸显线圈所在区域,采用局部自适应阈值法[10]来二值化。以需要二值化像素点为中心,定义一个核Am×m。以图像左上角为坐标原点,若坐标(x,y)对应的灰度值为f(x,y),则用该核卷积整个图像,其中(xi,yj)点均值g(xi,yj)为
(3)
式中,mean(xi,yj)为核Am×m中的权重值。
若g(xi,yj)≥f(xi,yj),则二值化图像中该点像素值为0;若g(xi,yj) 图6 二值化处理对比图Fig.6 Contrast diagram of binarization treatment. (a)OTSU processing image;(b)Local adaptive threshold binarization image 3.3.2 八邻域广度优先搜索算法 为得到只有线圈区域的图像,本文利用灰度曲线结合波谷坐标校验算法得到波谷坐标,在此基础上通过八邻域广度优先搜索算法来消除二值图中的多余区域。八邻域广度优先搜索是按层来处理像素点,搜索与该像素点邻接的8个像素点,广度优先搜索算法采用递归方式来完成对圈柱间隙区域的遍历,极大地提高了遍历的效率。 本文采用八邻域广度优先搜索算法求解只有线圈区域图像的主要步骤为:1)采用相邻波谷横坐标值取平均值,使该列的像素值全部为1的方法,断开圈柱间隙列与线圈列可能存在的连接,如图7所示;2)对波谷横坐标奇数列及偶数列分别求取八邻域独立区域个数,数值小的那一组坐标就是圈柱间隙列所在坐标;3)通过广度优先搜索算法可遍历到圈柱间隙列及与其相连接的所有像素点,进而可得到消去圈柱间隙列之后的针织物图像,如图8所示。 图7 纱线间隔区域与线圈区域断开示意图Fig.7 Simulation diagram of disconnection between yarn interval area and loop area 图8 消去圈柱间隙列前后图像Fig.8 Images before(a) and after(b) eliminating clearance column 由图7、8可知,通过对相邻的波谷坐标取均值,可以较好地断开纬编针织物二值图像中线圈列与圈柱间隙列之间的连接,结合依据圈柱列坐标进行的八邻域广度优先搜索算法消除圈柱间隙列,进一步证明了3.2节算法的准确性,为统计纵向线圈个数提供了条件。 3.4.1 形态学运算 通过3.3节的处理,线圈区域可能不是一个完整区域,相同列相邻线圈之间可能还存在连接情况,在后续统计线圈列上线圈个数时会产生误差。本文采用形态学运算,先通过2次膨胀再腐蚀来消除上述影响,使得线圈间相互独立,处理前后效果如图9所示。 图9 形态学运算前后的图像Fig.9 Images before(a) and after(b) morphological operation 3.4.2 线圈坐标校验算法 为统计每一列上线圈的数量,需要得到每一列线圈列中心横坐标。由于根据图5(b)灰度曲线所得到线圈列的横坐标并非一定对应每个线圈质心的横坐标,经3.3和3.4.1节步骤后图像形态发生改变,所以需要第2次利用灰度曲线得到线圈列所在的横坐标。 绘制消去圈柱间隙列之后的针织物图像灰度曲线,为凸显波谷、波峰之间的差距,绘制灰度曲线取每列像素值和,消去圈柱间隙列之后的针织物图像灰度曲线如图10所示。波谷横坐标值是线圈列所在横坐标,但是由于图像处理效果不太理想、消除圈柱间隙列有残留区域等问题,会存在杂质波谷。 图10 二值图像灰度曲线Fig.10 Gray scale curve of binary image.(a)Coordinate map of trough obtained from original gray curve;(b)Trough coordinate map obtained after removing impurities from original gray curve 采用线圈坐标校验算法可得到真实的线圈列所在的横坐标,主要步骤如下:1)通过K-Means聚类算法[11]消除高点的杂质波谷点,如图10(a)中的三角形点;2)通过3.2节的波谷坐标校验算法剔除低点的杂质波谷,如图10(a)中的正方形点。得到的正确波谷坐标个数即为该针织物图像横向上的线圈数量Nh。利用3.3.2节八邻域广度优先搜索算法,通过得到的线圈列坐标,对线圈列进行像素搜索。将八邻域连接在一起的区域视为一个线圈,可以求得每一列线圈的数量n=n1,n2,…,ni。计算得到该针织物图像列方向上的线圈数量: (4) 针织物密度是指针织物横向及纵向 5 cm 长度上线圈的数量。针织物图像可通过照相机得到,光源设置在针织物上方。经过标定可知,图像实际对应的大小为14 mm×8.2 mm。由此可计算图像对应针织物的横纵密: (5) 式中:ρh为针织物的横密,纵行/(5 cm);ρz为针织物的纵密,横列/(5 cm)。 4.2.1 实验结果 本文针对针织物密度测量进行研究,采用纬平针组织进行实验验证。取多块纯色纬编针织物,对每块针织物在光线充足的条件下进行拍摄取样,保证拍摄图像的线圈形状较为清晰。将拍摄到的图像用本文方法进行密度检测,将所得结果与文献[8](方法1)的空间域方法、二维傅里叶变换方法(方法2) 以及人工测量结果进行比较,以人工测量值为标准值,则误差ρ为 (6) 式中:ρ人工为人工测量值;ρ图像为图像测量值。分别对不同的方法进行测试,测试结果、处理时间、计算误差如表1所示。 表1 部分实验测量结果及对比Tab.1 Part of experimental measurement results and comparison 4.2.2 实验结果对比分析 由于经过离散小波(DWT)分解重构图像可获得纬编针织物线圈结构较为突出的图像,在此基础上进行图像空间域的统计分析得到纬编针织物的密度,可以得到较为准确的结果。由表1实验数据可知,经过本文方法测得的数据误差在1.7%以内。因为不论是离散小波(DWT)分解重构图像或是八邻域的广度优先搜索算法都是较为快速的算法,由表1实验数据可知,本文方法平均用时为0.45 s,检测速度相较于其他2种方法来说较为快速。 采用方法1测试试样5时,由于线圈的图像并不太理想,导致在骨干化剔除分叉后不能得到正确的横向线圈区域划分,从而使结果失常,如图11所示。 图11 方法1处理流程图Fig.11 Processing flow chart of method 1.(a)Corrected process flow;(b)Abnormal processing flow 采用方法2测试试样1时,间隙区域过于接近,二维傅里叶变换后频谱图上光斑都很明亮,导致统计时横向间距变小,产生较大的误差。 采用t检验方法来比较本文方法与人工检测方法之间的差异性。 检验假设: H0∶μ0=0 μ0表示二者结果有明显差别,假设H0的显著水平为0.05的拒绝域为 (7) 由t检验方法的计算公式可得: 所以不拒绝H0,认为2种方法无显著差异。 本文提出了一种结合频域和空间域的纬编针织物密度测定方法。该方法先基于离散小波变换增强纬编针织物图像,然后分别2次统计图像灰度曲线,在此基础上结合基于概率密度统计的波谷坐标校验算法及线圈坐标检验算法来测定纬编针织物密度。与现有图像处理方法以及人工方法进行比较发现,本文方法适用性好、准确率高、稳定性好。 FZXB3.4 纵向线圈个数统计
4 针织物密度计算及对比验证
4.1 针织物密度计算
4.2 实验验证及对比
5 结束语