基于数字图像处理的羊绒与羊毛识别研究
2019-10-22许忠保李春桥宋丛珊
刘 爽 许忠保 李春桥 陈 威 宋丛珊
(1.湖北工业大学,湖北武汉,430068;2.湖北省纤维检验局,湖北武汉,430060)
羊绒、羊毛产品的评定和鉴别已越来越被毛纺行业所重视。由于羊绒、羊毛在物理形态结构特征等方面极其相似,因此准确鉴别羊绒、羊毛一直是纤维检测的一个难题。长期以来,我国纤维检验部门主要采用显微投影法对该类别进行人工鉴别,此方法对鉴别人员的技术和经验要求高,且检测结果稳定性较差。 近年来,随着计算机技术的发展,数字图像处理技术逐渐运用到纤维识别技术中。但在实际运用中,由于传统显微镜的成像限制,无法观察到清晰的纤维纹理特征,大多检测方法仅通过提取羊绒与羊毛的形态特征来识别,识别正确率较低[1-5]。
本文采用螺旋相位相衬显微镜采集纤维图像,此显微镜增强了纤维局部特征对比度,能够获得清晰表征纤维纹理特征的图像。利用图像处理技术提取纤维的形态特征和纹理特征,提高了识别的准确率及效率。
1 图像预处理
显微镜采集到的纤维图像受光照等因素影响,不可避免地存在各种噪声,增加了纤维图像识别的难度,因此有必要采取合适的图像降噪技术来消除噪声污染的影响,以实现目标纤维与图像背景的分离。纤维预处理过程如图1所示。
(a)高斯滤波
(b)Canny检测
(c)膨胀图
(d)漫水填充
(e)单根纤维区域
(f)Canny检测目标纤维图
(g)鳞片骨架图
s(h)单根纤维灰度图
图1 纤维预处理过程图
本文首先采用4邻域拉普拉斯算子与图像做空域卷积,该变换能够增强图像中灰度突变处的对比度,使纤维图像轮廓和鳞片边缘的细节变得清晰。
因为噪声主要集中于高频信号,很容易被识别伪边缘。应用高斯滤波去除噪声[6],降低伪边缘的识别,如图1(a)所示。
Canny算子检测提取的目标边缘连续性比较好[7]。利用Canny算子来检测纤维的边缘,能够得到比较好的结果,如图1(b)所示。
Canny算子提取纤维的边缘后,会存在鳞片线条断裂、杂质线段较多等问题。为此采用3×3的椭圆模板对其进行膨胀处理,连接目标纤维中的断裂部分,确保纤维边缘及鳞片闭合联通,如图1(c)所示。
膨胀后得到的纤维图像会出现内部空洞,则对膨胀图进行漫水填充来填补空洞[8],如图1(d)所示。
由于膨胀后纤维图的尺寸会比纤维本身稍大,则对漫水填充图进行腐蚀处理,使纤维恢复本身的大小,然后利用种子生长区域法可以获得单根纤维的区域,如图1(e)所示。
将单根纤维区域图与Canny检测图相乘可以获得Canny检测目标纤维图,如图1(f)所示。
由于Canny检测目标纤维图也会存在鳞片线条断裂、杂质线段较多等问题。为此将Canny检测目标纤维图进行形态学膨胀处理,填补缺失断裂处,并细化和旋转得到鳞片骨架图[9],如图1(g)所示。
将单根纤维区域图与原灰度图相乘可以获得单根纤维灰度图,如图1(h)所示。
2 特征提取
2.1 形态特征提取
羊绒纤维较细且鳞片稀疏,羊毛纤维较粗且鳞片密集。其形态特征的不同主要体现在纤维直径、鳞片高度、鳞片周长、鳞片面积、径高比、鳞片相对周长、鳞片相对面积、鳞片密度这8个特征参数上。分段扫描提取直径示意如图2所示。
图2 分段扫描法提取直径
首先提取目标纤维区域的外轮廓且旋转至竖直,并将图像的左上角定为坐标原点,水平向右为x轴,竖直向下为y轴。然后扫描遍历整个图像,直到某点的像素值为255时,停止扫描,此点所在的位置则为纤维的上端。由于纤维切片制备的因素,纤维的两端会存在缺损,因此只截取纤维中间的部分。将纤维头端(x0,y0)向下10 pixel处的纵坐标记为y1,沿y轴方向向下,以单位像素为间距给纤维分段,分段各处纵坐标依次记为y2,y3,…,yn,直至图像底端向上20 pixel处为止,则将此根纤维分成了n段。从y1到yn分别沿x方向向右对纤维边缘进行搜索,将每一行搜索到的第一个和最后一个像素值为255点的横坐标记下来,分别记为xi1,xi2,1≤i≤n。两点之间横坐标之差即为分段纤维直径,计算公式为di=|xi1-xi2|。
图3 鳞片骨架法高度提取
以上求出的纤维直径和高度都是平均值,进而可求出鳞片周长P=2×(d+h)、鳞片面积A=d×h、径高比dh=d/h、鳞片相对周长Pd=2×(d+h)/d、鳞片相对面积Ad=d×h/d2、鳞片密度ρ=1/h。
2.2 纹理特征提取
羊绒纤维表面纹理较为整齐,表面平滑;相比之下,羊毛纤维表面纹理较为密集,表面粗糙。羊绒与羊毛纹理之间的差异性会呈现出不同的纹理特性。因此本文采用灰度共生矩(Grey Level Co-occurrence Matrix,以下简称GLCM)来提取羊绒和羊毛纤维的纹理特征[10]。
为了能够有效地描述羊绒、羊毛纤维的纹理特征,分别提取了θ为0°、45°、90°、135°共4个方向上的灰度共生矩的能量、熵、对比度、相关性等4个特征值,最后计算出不同方向上同一特征值的均值及标准差,得到能够描述纹理特征的8个特征值。
由于在计算GLCM时需要遍历整幅图像,为了能够提高效率,利用外接矩设置感兴趣区域得到裁剪后单根纤维灰度图,如图4(a)所示。同时由于计算GLCM时,是对图像的灰度信息进行统计,图像背景像素值为0会影响特征提取,则将背景像素值设置为原始灰度图的平均灰度值,如图4(b)所示。
(a)裁剪后单根纤维灰度图
(b)背景设为平均灰度的纤维图
本文通过螺旋相位相衬显微镜采集的羊绒、羊毛纤维图像具有明显的纹理特征,增强了纤维细微结构清晰度,因而能够通过GLCM获得能量、熵等描述纹理特征的8个特征值,同时结合之前所提取的纤维直径、鳞片高度等描述形态特征的8个特征值,得到的16个特征参数能够较为完善地反映出纤维差异的特征。部分羊绒、羊毛纤维的特征值见表1和表2。
表1部分纤维的形态特征值
纤维纤维直径/μm鳞片高度/μm鳞片周长/μm鳞片面积/μm2径高比鳞片相对周长鳞片相对面积鳞片密度/个·mm-1羊绒1羊绒2羊绒3羊绒4羊绒5羊毛1羊毛2羊毛3羊毛4羊毛515.8515.6616.8116.3913.5624.1323.1317.5119.9320.8519.3114.7813.2121.5914.7813.3714.4813.5014.6611.0570.3560.9160.0675.9656.7175.0177.2462.0569.1963.80305.60234.81219.41351.49200.64319.54346.17234.37290.58226.960.821.051.270.750.911.801.661.291.351.884.433.883.574.634.173.103.203.543.473.061.210.950.771.301.080.540.590.760.730.5251.7667.6275.6546.3167.6274.7669.0174.0268.2190.46
表2部分纤维的纹理特征值
纤维能量能量标准差熵熵标准差对比度对比度标准差相关性相关性标准差羊绒1羊绒2羊绒3羊绒4羊绒5羊毛1羊毛2羊毛3羊毛4羊毛50.748 30.837 10.808 60.822 40.418 70.357 50.717 50.653 60.469 70.610 70.003 60.005 90.003 50.005 30.014 10.010 60.005 60.004 20.014 80.004 30.847 80.591 30.650 70.620 21.882 02.028 00.982 50.934 41.405 41.077 70.027 60.033 10.026 00.028 40.137 40.124 80.044 00.032 30.102 90.042 50.345 70.317 90.317 30.325 90.680 50.620 00.395 10.129 70.406 60.109 70.200 30.184 70.179 30.210 90.327 80.261 60.228 90.063 10.212 50.044 80.855 91.433 31.304 81.302 20.387 30.256 30.705 01.194 01.046 60.626 10.109 60.449 20.304 30.370 40.036 30.011 00.082 40.054 40.245 50.010 5
3 分类识别
3.1 BP神经网络
BP神经网络是一种多层前馈神经网络,其学习过程是一种误差反向传播的过程,由正向传播和反向传播组成[11]。BP神经网络大多采用 3 层结构,输入层、隐含层和输出层,如图5所示。
图5 3层BP神经网络
本文采用Matlab建立一个3层BP神经网络模型。将上述得到的16个羊绒、羊毛特征参数作为神经网络的训练数据,输出为羊绒和羊毛共2 个类别,故输入层节点数设为16,输出层节点数设为2;网络训练函数选定为trianer,自适应学习函数选定为learngdm,隐含层传递函数选定为tansig;学习速率定为0.6,误差精度设为1×10-2,训练步长最大设定为1 000。
对于分类识别而言,如果隐含层节点数太少,会导致网络的训练和识别精度比较差;如果节点数过多又会导致训练时间过长。因此隐含层节点数根据经验公式(1)~(4)来最终确定。
(1)
(2)
(3)
m=2n+1
(4)
式中:m为隐含层节点数,n为输入层节点数,l为输出层节点数,μ∈[1,10][12]。
为了保证BP神经网络的稳定运行,在进入样本训练之前,需要对选用的16个特征参数进行归一化处理,统一数据的数量级。采用公式(5)进行数据的归一化处理。
(5)
式中:x和X分别为归一化前和归一化后的数据,xmax和xmin分别为归一化之前的最大值和最小值。
3.2 识别结果
本试验中采集了600根羊绒和600根羊毛的显微图像,其中450根羊绒和450根羊毛作为训练集,150根羊绒和150根羊毛作为测试集。利用之前所提取羊绒、羊毛纤维的形态特征及纹理特征所获得的16个数据作为特征向量。通过试验得出,当隐含层节点数为26时,其识别率最佳。基于以上的BP神经网络模型对纤维进行分类识别,分类结果如下。可以看出总体识别正确率为93.3%。
纤维种类 羊绒 羊毛 合计
识别正确数/次 143 137 280
总识别数/次 150 150 300
识别正确率/% 95.3 91.3 93.3
4 结语
对螺旋相位相衬显微镜采集的羊绒与羊毛纤维图像进行识别,预处理后采用种子生长区域法得到目标纤维区域图和纤维鳞片骨架图,通过裁剪单根纤维灰度图并将其背景灰度设置为平均灰度,分别提取羊绒与羊毛的形态特征和纹理特征,最后应用BP神经网络进行分类识别。试验结果表明:通过数字图像处理提取羊绒与羊毛纤维特征,结合BP神经网络分类识别羊绒与羊毛纤维的效果较好,识别正确率较高。