交叉毛羽的凹点匹配分割算法
2019-06-03景军锋宁小翠李鹏飞张缓缓
景军锋,宁小翠,李鹏飞,张缓缓
(西安工程大学 电子信息学院,陕西 西安 710048)
纱线毛羽对于纱线的质量有着很大的影响,也会影响纺织品的外观以及手感,故对于纱线毛羽的检测是纺织行业的重要一环[1]。Uster公报对于纱线毛羽的评价包括毛羽长度指数、CV值等,纱线单位长度上毛羽根数对于毛羽指数有着很大的影响,因此对于纱线毛羽的准确计数至关重要。
目前毛羽统计的方法有投影计数法,如采用YG172毛羽仪测试;图像处理法,如等高线统计法[2]、像素追踪法等,然而这些方法中多数忽略了重叠交叉毛羽以及圈毛羽的影响[3],因而对于重叠交叉毛羽的分割计数鲜有涉及。传统的图像分割方法包括基于聚类的方法[4],形态学方法[5],分水岭方法[6],最大类间方差法[7]等。 形态学方法包括形态学开运算和形态学闭运算,其需要运用膨胀腐蚀轮廓边缘线, 但膨胀腐蚀的次数需要人工手动设置,存在效率低、普适性不足的问题。分水岭方法的计算简单,精度高,但对噪声敏感,会产生过分割现象,造成较大的误差,故该方法在实际的纤维重叠交叉图像中并不实用。最大类间方差法是应用最广泛的图像分割方法,然而交叉毛羽的灰度值相近,导致将重叠部分多根毛羽连为一体,常用的分割方法难以分割准确。
1 图像采集
实验采用XSP-06-1600X光学显微镜进行纱线毛羽图像的采集,显微镜放大倍数为40倍。首先利用载玻片搭载纱线,通过调节显微镜的光圈来得到清晰的纱线毛羽图像,然后进行图片抓取。
2 图像处理
2.1 图像预处理
首先对采集到的图像进行灰度化处理,纱线毛羽图像见图1,纱线图像灰度化处理结果见图2。
图1 纱线毛羽图像
图2 纱线图像灰度化处理结果
图3 纱线图像形态学重建结果
2.2 纱线毛羽轮廓提取
边界提取方法有Canny边缘检测、Sobel算子[13]边缘检测等。Canny边缘检测具有准确度高、使用方便的优点,但在检测中会造成边缘不连贯存在断层,从而给后续处理带来障碍。水平集的测地活动轮廓模型对于图像的拓扑变化具有良好的适用性,该特点对于复杂的纱线毛羽轮廓来说十分有利。水平集方法的基本思想是引入偏微分方法将n维空间的演化问题表达为n+1维空间的高维演化问题。将活动轮廓模型转化为求解最小化能量泛函的值,这样可以有效地改善在曲线演化过程中拓扑结构改变问题。测地活动轮廓模型是基于边缘的图像分割方法,如果图像中的对象与背景的分界处存在像素值上的差异,那么对象的轮廓就会形成明显的边缘,也就是说图像的梯度模值在图像的边缘处会达到局部最大值。在该理论的基础上,Caselles等提出了测地活动轮廓模型(GAC),对于Snake模型的部分不足进行了改进,解决了模型初始条件影响较大、无法自动处理拓扑变化的问题[14]。GAC模型可以用式(1)泛函表示:
(1)
引入Heaviside函数,可以得到变分水平集方法表示,如式(2)所示:
E(φ)=∬Ωg|H(φ)|dxdy+cΩ1g[1-H(φ)]dxdy
(2)
GAC模型的梯度下降流表达式如式(3)所示:
(3)
式中:c为常速度系数;g为边缘停止函数;z为纱线图像的梯度模值;r为选择的一个值为正的常数;H(z)为Heaviside函数;δe为所选择的Heaviside函数的导数;ε为控制函数从0变为1的速度快慢参数。其中δe、c、g可以使函数在纱线图像平坦区域的演化速度加快。
基于水平集的测地活动轮廓模型的处理结果以及Canny边缘检测结果图的对比见图4。
现以第十期监测数据为例展开分析,此阶段所有的检测点均已布设完毕,其中21个监测点被破坏、遮挡或存在积水无法观测,其余98个测点数据均在平差后录入数据库,并生成相应图表。
2.3 轮廓角点提取
在图像的识别和图像处理中,许多重叠或者黏连物体的分割都需要图像轮廓的凹点信息。凹点提取的前提是纱线毛羽边缘的角点检测。在利用水平集测地活动轮廓模型获取纱线毛羽的连续边界轮廓后,进行角点提取。
角点即曲线上局部曲率最大的点,是图像重要的特征,对图像图形的理解和分析有着重要的作用[15]。目前的角点检测算法可以归纳为3类:基于灰度图像的角点检测,基于二值图像的角点检测,基于轮廓曲线的角点检测。对于连续曲线来说,可以直接计算其曲率,而数字图像由一组离散坐标点组成,故无法直接计算纱线毛羽轮廓线上各个像素点的曲率,因此采用离散曲率公式计算各个像素点的曲率大小。常用的离散曲率计算方法有增量曲率,点到弦距离累加,k转交曲率,k余弦曲率等。然而增量曲率以及点到弦距离累加的角点检测算法存在角点定位低,算法时间复杂度高的问题。故采用k余弦曲率检测方法。使用k余弦曲率计量图像轮廓曲线上的曲率值,通过控制输入的参数得到曲率,曲率的局部极值点输出为角点。
将第t条轮廓曲线表示为:
S={Pi:(xi,yi)|i=1,2,…,n}
(4)
式中n为第t条轮廓线上点的个数。
对于点Pi(xi,yi)找出前移和后移的第k个点Pi-k(xi-k,yi-k)以及Pi+k(xi+k,yi+k),k余弦示意图见图5,向量Pi-kPi以及向量Pi+kPi之间夹角的k余弦定义如式(5)所示:
(5)
图5 k余弦示意图
将在Pi两侧计算曲线上所有点与P形成的向量夹角的余弦值进行比较,可以得到余弦值最大的夹角,记作Cmax,当前的k值记作km。曲率的极大值点应该满足余弦值极大,然后设定阈值Ct,若某点的余弦值大于阈值就意味着该点是轮廓曲线的曲率极大值点,即角点。纱线毛羽的角点检测结果见图6。
图6 纱线毛羽角点检测结果
图6角点中,有一部分是毛羽的不规则轮廓形成的,称之为伪角点,伪角点会对检测造成干扰引起误差,因此通过对轮廓边界点与其的前继点和后继点形成夹角进行非极大值抑制来实现伪角点剔除。伪角点剔除后的检测结果见图7。
图7 剔除伪角点后的检测结果
为了使纱线交叉毛羽的角点更加清晰可见,对角点提取的图片放大20倍。纱线毛羽角点检测局部放大图见图8。
图8 纱线毛羽角点检测局部放大图
2.4 纱线毛羽轮廓凹点匹配
计算每一个候选角点P与其等距离的前继点Pi-k和后继点Pi+k组成向量的逆时针夹角θ, 设定角点与前继点和后继点所组成的夹角阈值为α,若向量OPi-k沿逆时针方向到向量OPi+k的夹角值θ大于等于设定的夹角阈值α,那么该角点是凹点;否则该点是非凹点。凹点和非凹点的示意图见图9。
图9 凹点和非凹点示意图
采用凹点匹配算法表示纱线毛羽图像轮廓边界上的凹点是黏连毛羽分割中重要的特征,也是确定分割线的依据。在纱线毛羽的图像中,对于交叉的毛羽来说,重叠交叉区域包含4个凹点。通过将凹点进行匹配,然后连接匹配的凹点即可实现交叉黏连毛羽的分离。算法的主要流程为:将纱线毛羽轮廓边界的凹点按照顺时针方向存储,坐标从凹点集中的第1个凹点开始,为每一个凹点找到匹配的凹点。设起始的凹点为Pi,按顺序寻找该点处理相邻点之外的匹配凹点,需满足2个条件:①2个凹点之间的欧氏距离最短;②2个凹点连线的中点处在纱线毛羽轮廓的内部。此时2个匹配凹点的连线即为重叠交叉毛羽的分割线。凹点匹配示意图见图10。
图10 凹点匹配示意图
2.5 实验验证及结果分析
仿真实验在MATLAB2016a环境下进行编译,实验采用32 tex和40 tex 2种规格的新疆纯棉纱线作为样本进行验证。样本分为2组,每种规则的纱线采集500幅纱线图片,图片放大45倍。2根毛羽交叉,3根毛羽交叉以及多根毛羽重叠交叉的凹点匹配结果分别见图11、12、13。
图11 2根毛羽重叠交叉的凹点匹配结果
图12 3根毛羽重叠交叉的凹点匹配结果
图13 多根毛羽重叠交叉的凹点匹配结果
由图11~13可以看出,对于纱线的交叉毛羽,2根毛羽的情况利用提出的凹点匹配可以较为准确的得到分割线,而对于3根毛羽交叉的情况,凹点匹配存在欠分割的情况,对于多根毛羽交叉的情况存在过分割的情况。 对于2根毛羽的重叠交叉情况分割准确率较高,可以达到96.8%;对于3~5根毛羽重叠交叉情况随着毛羽交叉黏连情况的复杂度增加,分割准确率有一定程度的下降,但分割准确率可以达到73.4%。因为在设置凹点匹配条件时,取了凹点对的最短欧氏距离,利用显微镜拍摄的纱线毛羽图像不均匀,导致干扰的凹点过多,所以出现了欠分割和过分割现象,使得本文算法对于超过3根毛羽交叉的情况准确率有所下降。
3 结束语
为了解决纺织行业纱线毛羽检测中存在的纱线毛羽重叠交叉问题,提出利用凹点匹配来进行毛羽分割的方法。利用形态学重建消除了采集过程中过多的噪声影响,采用水平集活动轮廓模型得到了连续流畅的纱线毛羽轮廓边界曲线,再通过焦点检测结合凹点检测原则提取凹点,最后进行凹点匹配进行分割线的连接。通过大量的样本进行验证,本文提出的算法对于2根重叠交叉毛羽的分割准确率达到了96.8%,2根以上的重叠交叉毛羽分割准确率达到73.4%,具有一定的普适性。