APP下载

基于Halcon多层感知机的木材纹理识别

2024-01-05

唐山师范学院学报 2023年6期
关键词:木板直方图特征值

孙 静

(黎明职业大学 智能制造工程学院, 福建 泉州 362000)

目前传统的木材识别几乎完全依赖于人工目测,识别结果往往受主观判断、过往经验等因素影响。自然界中有成百上千种不同的木材,即使是有经验的科学家都很难识别。所以,仅仅依靠人工识别已远不能满足相关木材行业的发展。近年来,随着机器视觉、图像处理技术的进一步发展,纹理分析与识别技术也取得了很大发展。纹理的检测主要包括灰度直方图法、灰度共生矩阵法(GLCM)、灰度游程长度法等[1-3]。灰度直方图只能反应图像的灰度分布情况,但因为木板纹理的灰度级都集中在较窄的范围内,识别效果不佳。GLCM是灰度图像中一种基于二阶直方图统计计算的方法,是目前最常见且效果最好的纹理分析法。为此,系统采用灰度共生矩阵法获取木板纹理特征。

1 灰度共生矩阵法

1973年Haralick等人提出了用灰度共生矩阵来描述纹理特征[4-6]。其定义为:从图像灰度值为i的像素点(x,y)出发,统计与其相隔距离为d、相邻方向为θ、灰度值为j的点的像元(x+a,y+b)的概率P(i,j,d,θ),即所有估计的值可以表示成一个矩阵的形式,表达式为:

P(i,j,d,θ)={[(x,y),(x+a,y+b)|f(x,y)=i;f(x+a,y+b)=j]}

(1)

灰度共生矩阵的运算量很大,进行特征区分时通常选取该矩阵构建的某些统计量[7]。为了更直观地了解木材纹理情况,根据其特征值的不同识别不同的木材,本系统选取能显著代表木板纹理特征的对比度(contrast)、能量(Energy)、均匀性(Homogeneity)、相关性(Correlation)4个参数[8]进行木材纹理特征提取。这4个参数分别体现了木材纹理的深浅程度、粗细变化、均匀度及灰度的相关性,通过这些参数值的不同能较好地区分木材种类。

2 MLP神经网络训练

本系统使用Halcon视觉软件进行图像检测处理并进行训练学习、识别分类。该软件提供了多种不同分类器,本文选用多层感知机MLP分类器对木板纹理进行训练分类。该分类器相比于其他几种分类器,识别的准确率更高且分类识别的速度也相对较快。网络结构如图1所示。

图1 MLP网络结构

进行训练时,样本数据X首先通过输入层输入,经过中间的隐含层进行连接。从图1的网络中可以看出,从采样数据输入到最终数据输出,相邻层间均是通过全连接。即各层中的任意一个节点都会与下一层的所有节点进行网络连接。经过全连接后,每一个神经元都能够实现对原始数据的拟合,最后经过输出层将所得的数据进行输出[9,10]。

采用MLP进行样本训练时,利用BP算法。该算法从输入层输入训练样本特征,经隐含层处理后传入输出层,当得到的误差值与理想值相差较大时,则将输出误差反向传播回隐含层,最后根据隐含层神经元的误差[11],修正各单元的权重值,反复训练直到误差降低到期望值范围内,结束训练。

3 基于Halcon的木板纹理识别系统

对不同木板进行分类时,根据木板不同纹理特征,利用Halcon软件进行纹理图像采集处理,通过灰度共生矩阵、灰度直方图等方法识别木板纹理特性,并使用MLP分类器对不同木板纹理进行分类识别,得到分类结果。系统识别过程如图2所示。

图2 木板纹理识别系统流程

3.1 图像预处理

图3 6种木材样本

系统选取杉木、海棠、橡木、泡桐、红檀、落叶松共6种不同木板纹理图像(木板如图3),图像大小均为350*300,木板图像采集时会受到光线、周围环境、相机性能等多种因素影响,需要对采集的图像进行预处理操作。首先将采集到的木板彩色图像通过rgb1_to_gray转化成灰度图,然后使用threshold算子对灰度化处理后的图像进行阈值分割,实现木板图像和其背景的分离,为后续纹理特征提取做准备。

3.2 木板图像特征提取

二值化分割后的木板图像区域仍为一个整体,先通过connection算子分割连通域,再借助select_shape算子根据木板区域形态特征将木板纹理所在区域分离出来,然后利用算子cooc_feature_image得到纹理区的共生矩阵和描述共生矩阵的标量,该算子根据共生矩阵对应的木板纹理区域、对应灰度值的木板图像、被识别的灰度值的数量、共生矩阵的方向等4个参数,计算并输出对应区域内灰度值的能量、相关性、均匀性和对比度4个特征值大小。本系统共有6种不同木板纹理,即被识别灰度值的数量为6,共生矩阵的方向选择90°。系统经过计算得到的部分图像纹理特征值如表1所示。因6种木板的训练样本得到的特征值较多,表中仅显示了橡木、海棠、落叶松3种木板各4张不同纹理图像所计算出的对应纹理特征值。从表1中可以看出:不同种类的木板对应的特征值所在范围不同。其中3种木板纹理特性值中的能量值和对比度的数值相差显著,其他两个特征值差异较小。如橡木的纹理对比度基本在15~19之间,海棠的对比度值在32~36之间,而落叶松的纹理对比度相对较小,在5~6之间。对比度的大小反映了纹理的深浅程度,其值越大,表示沟纹越深,即说明3种木板纹理最深的为海棠纹理。

表1 部分木板纹理特征值

为了进一步识别特征值,系统采用了边缘检测,更准确地找出所求纹理区域。边缘实质是灰度变化剧烈的地方。灰度变化越大求得导数值较大。使用边缘检测算子sobel_amp提取木板纹理目标边缘幅度图像,输入木板纹理图像,输出对应边缘幅度图像。该算子中滤波器选择sum_abs,掩膜大小为3,即选用A、B两个3*3的模板进行计算。通过求取木板图像一阶导数最大变化值得出木板边缘特征,找出木板纹理所在区域。

得到边缘检测图像后再通过gray_histo_abs算子为木板区域内的图像计算灰度值的绝对直方图。算子中输入的对应参数包括需要计算的灰度直方图区域、需计算的灰度直方图的图像和量化因子。其中输入区域选取边缘幅度图像,量化因子取8。得出绝对直方图后,综合灰度共生矩阵得到的纹理特征得出木板区域的所有特征向量,并计算隐含节点个数。隐含层节点数可根据输入、输出层所对应的节点数及表达式(2)确定其取值范围。

(2)

式中i,j,k分别对应输入层、隐含层、输出层节点个数。系统通过特征提取计算纹理图像区域所有特征向量作为输入节点数,输出节点为木板实际种类,这里为6种。m为1-10之间的整数,根据经验确定。

3.3 创建MLP分类器

系统选取6个不同种类木板图像作为训练样本,分别构建MLP神经网络。利用create_class_mlp算子创建MLP分类器。实验中通过计算灰度共生矩阵提取纹理特征值为4、计算木板纹理区域灰度直方图的统计特征为32,得到所有特征值共计36个;输出层节点数量对应杉木、海棠、橡木、泡桐、红檀、落叶松6种木板类型,隐含层节点数量可根据式(2)得到j的范围在7~16,结合网络训练情况,本文j设为12。输出层激活函数类型为’softmax’,变化特征数量取默认值10,随机种子点数默认42,输出得到分类器句柄信息。

3.4 添加训练样本

分别将6种木板训练样本的特征分量添加到训练数据库中,通过算子add_sample_class_mlp实现。算子参数使用上述得到的分类器句柄、输入的当前木板样本特征向量值和对应木板索引号。

3.5 训练MLP分类器

训练MLP分类器,得到木板纹理检测模型,采用train_class_mlp,训练最大迭代次数200次,两次迭代权重差的阈值为1,均方误差为0.0001。

4 实验与结果

实验基于halcon视觉软件平台,按照木板纹理识别流程,分别对每个木板类别选取6张样本图像,即共36张木材纹理图像,其中24张作为训练样本,12张作为测试样本。部分图像取样和识别结果如表2所示。表中第一行为3种木板的测试图像,第二行为经过训练识别后的最终结果。最后一行为识别结果的置信度,表示图像识别结果的可信程度。从表2中看出,通过以上方法,能正确识别木板种类,且样本识别的置信度均达到99%以上,识别效果较好。

表2 部分图像识别结果

因这6种木料纹理的原始图像较少,故对6种木料纹理图像从不同角度、不同部位获取图像共90张建立训练样本和测试样本。其中训练样本60张,测试样本30张。进行30次识别,共成功识别出26次,识别率为86.7%。

5 结论

根据木材纹理特性不同,采用灰度共生矩阵法得到木板纹理主要特征值,结合边缘检测、灰度直方图等方法得到整个木板区域的特征值,构成特征向量,根据MLP进行训练,最后用于木板分类识别。实验在Halcon视觉软件环境中进行。通过对6种木板90张不同纹理图片进行训练测试,木材的准确识别率达86.7%,证明采用该方法能有效地对木材进行自动识别。

猜你喜欢

木板直方图特征值
符合差分隐私的流数据统计直方图发布
一类带强制位势的p-Laplace特征值问题
单圈图关联矩阵的特征值
木板上的世外桃源
用直方图控制画面影调
木板
不会上浮的木板
基于空间变换和直方图均衡的彩色图像增强方法
基于商奇异值分解的一类二次特征值反问题
基于直方图平移和互补嵌入的可逆水印方案