APP下载

基于光谱和图像特征的阔叶木材与针叶木材同时分类算法研究

2021-06-10王承琨

光谱学与光谱分析 2021年6期
关键词:管孔木材正确率

王承琨, 赵 鹏,2*

1. 东北林业大学信息与计算机工程学院, 黑龙江 哈尔滨 150040 2. 广西科技大学计算机科学与通信工程学院, 广西 柳州 545006

引 言

木材一般可以分为阔叶木材和针叶木材, 木材横切面是否具有管孔结构是判断木材为阔叶木材的重要依据。 目前已有大量学者通过不同手段对阔叶木材进行了分类, 产生了图像法、 光谱法、 声波法等分类方法, 又因阔叶木材横切面上的特征较多、 纹理复杂度较高, 学者们更加倾向于使用木材横切面的信息对木材进行分类。 de Andrade等[1]依托智能手机使用GLCM(gray level co-occurrence matrix)和SVM(support vector machine)在室外对21种木材进行了分类, 分类精度可达97.7%。 Oktaria等[2]使用CNN (convolutional neural network)算法对木材进行了分类。 Zamri等[3]以木材横切面的微观图像为研究对象, 使用I-BGLAM(improved Basic gray level aura matrix)纹理描述算子对木材进行了分类。 Ibrahim等[4]使用木材横切面的管孔特征和I-BGLAM特征相融合的方法对木材进行了分类。 Yusof等[5]使用GA (genetic algorithm)对木材横切面的管孔特征和纹理特征做了降维处理, 然后使用KDA(kernel discriminant analysis)和GSVD(generalized singular value decomposition)分解对GA提取到的特征向量做了非线性特征提取, 进一步提高了分类正确率。 Rajagopal等[6]考虑了木材图像采集过程中的模糊问题, 并在增强模糊图像后提取了相对较为稳定的管孔特征, 最后使用SVM对20种木材进行了分类。

上述方法均是以木材的图像信息或光谱信息为特征来源, 然而使用单一信息源并不能全面的描述木材特征, 这就导致木材分类方法往往只能适用于一些阔叶木材, 分类正确率也无法进一步的提高。 因此提出了一种基于木材图像信息和光谱信息的多特征木材分类方法, 同时考虑木材横切面的管孔特征、 纹理特征以及光谱特征, 实现了在某一特征不适合待分类样本或分类结果出现错误的情况下, 仍可以对木材进行正确的分类, 从而实现了对阔叶木材和针叶木材同时分类和提高分类正确率的目标。

1 实验部分

1.1 样本与数据采集

实验样本均来自北京潘庄木材市场和上海福人木材市场, 木材样本严格按照其销售周期进行购买避免同质化的出现, 表1中列出了所使用的20种木材的详细信息及树种编号。 实验样本的制作方法: 准备每个树种50块木板, 使用型号为110×0.8×20×108T圆盘锯将其切割成长宽高分别为2, 2和3 cm的小木块, 其横切面大小为2 cm×2 cm。 从每一个木板所切割出的小木块中随机挑选一个标准样本, 这样每个树种就拥有了50个样本, 将这50个样本随机分成两组, 训练集35个样本, 测试集15个样本。 因为木材的颜色、 含水率均会对光谱的采集有一定影响, 所以挑选木材样本时尽量选择颜色一致的样本, 其木材含水率应控制10%以下。

表1 样本详细资料

图1(a)中给出了光谱采集平台的示意图, 光谱仪采用的是美国海洋公司生产的Ocean Optics USB2000-VIS-NIR微型光纤光谱仪, 光谱波长范围为350~1 000 nm, 光谱仪的分辨率约为0.3 nm。 图1(b)中给出了微观图像采集平台, CCD相机拍摄到的图像分辨率为1 600×1 200。 采集实验数据时需将小木块放在平台的指定位置, 手动对显微镜进行调焦使图像清晰, 小倍率光学显微镜可以将木材表面放大10~100倍。

图1 数据采集平台

1.2 方法

1.2.1 基于Segnet的管孔分割方法及管孔统计特征

使用有监督图像分割方法, 需要对木材横切面的管孔标注标签, 在标注标签时应注意将管孔周边部分包含在内并记为标签1, 尽量保证管孔所对应的像素点不要归为背景0标签, 同时还需要制作全0标签用来标注针叶木材。 Segnet基于FCN和VGG16框架, 使用VGG16的前13层卷积网络, 每一个编码器层都对应着一个解码器层, 最终使用Softmax分类器将一幅图像的每个像素点按概率大小进行分类。 图2中给出了Segnet网络的整体架构, 从图2中可以看出该网络模型由编码网络、 解码网络和分类器三个部分组成, 在编码网络和解码网络中Segnet使用的是same卷积, Pooling使用的是max pooling, 更多的Segnet网络的相关信息不再赘述。

图2 Segnet网络结构示意图

Ibrahim已成功根据木材横切面的管孔特征对木材进行了分类[7], 并提出了管孔统计特征法SPPD(statistical properties of pores distribution)。 该方法将木材横切面的管孔分为白管孔和黑管孔两类, 并分别统计了这些管孔的平均管孔大小、 管孔大小的方差、 管孔的数量、 单孔和复孔数量、 小、 中、 大管孔的数量以及图像的平均灰度值。 然而所阐述的20个样本中含有白色管孔的树种数量极少, 而且也不涉及单孔和复孔的情况, 因此对原有SPPD进行了更新, 设计了较符合本实验样本的管孔统计特征, 如表2所示。

表2 管孔统计特征

1.2.2 基于BIGD的图像纹理特征提取算法

使用块强度和梯度差算子BIGD(block intensity and gradient difference)[8]提取木材横切面的纹理特征。 算法具体描述: 假设数字图像为I, 首先从I上随机选择M个大小为19×19的正方形小窗口wi(i∈[1,M]), 在小窗口wi上随机选择32个点坐标, 这些点的横纵坐标应满足独立同分布, 将这32个点坐标分为2组并表示为X和Y, 如式(1)和式(2)所示, 式中的mk和nk分别代表一个坐标点。

X=[m1,m2, …,mk, …,m16](k∈[1,16])

(1)

Y=[n1,n2, …,nk, …,n16](k∈[1,16])

(2)

(3)

最后使用VLAD(vector of locally aggregated descriptors)对样本进行编码。 具体方法: 首先需要找到训练集中所有的wi, 并将其特征向量vwi聚类成K类, 但因为vwi的数量太多, 只随机选择了500 000个vwi进行聚类得到了K个聚类中心cq,q∈[1,K]。 然后计算每一幅图像I(包括训练集和测试集)所生成的M个vwi(i∈[1,M]), 并计算每一个vwi与cq的欧式距离s, 找到最小s所对应的cq, 并将其划为第q组。 最后按式(4)分别计算每一类中的vwi与cq的残差和, 一共得到K个vq(q∈[1,K]), 将其连接在一起形成样本I的特征向量v。

(4)

1.2.3 光谱的预处理以及光谱特征的提取方法

由于木材横切面上不同位置的光谱反射率曲线略有差异, 在采集光谱时, 需使用光谱仪对木材横切面的不同部位反复采集光谱5次, 取平均值后作为该样本的光谱特征曲线; 为了得到更为精准的光谱反射率曲线, 需要每采集5个木材样本后, 使用白板和隔光板对光谱仪进行矫正[9]。 Optics USB2000-VIS-NIR微型光谱仪的有效波长范围为350~1 000 nm, 但实际采集到的光谱数据样本波长范围在339.8~1 026.63 nm, 波长受到的干扰较大, 从图3(a)中可看出在波长较低的范围内, 其光谱反射率远超100%。 因此去除了波长两端的光谱反射率, 只保留了350~1 000 nm之间的波段信息, 如图3(b)所示。

图3 光谱的预处理

使用SNV(standard normal variable)校正算法和一阶导数的方法对光谱曲线进行优化, SNV校正对光谱曲线进行归一化处理, 其校正方法如式(5), 图3(c)为SNV校正的结果; 一阶求导主要目的是突出光谱曲线之间的差异, 其具体方法如式(6), 图3(d)中给出了一阶求导的最终结果。 由于光谱维度较高, 因此需要对光谱曲线进行降维, 考虑了PCA (principal component analysis)降维方法和KPCA (kernel principal component analysis)降维方法下的木材分类正确率。

(5)

(6)

1.2.4 基于相似判据的木材分类方法

使用SVM分类器对测试样本进行分类, 有管孔组会产生3个分类结果, 无管孔组会产生2个分类结果。 参考集成学习中的相对多数投票法设计分类规则, 对于有管孔组, 若三个分类结果全部一致则分类无误; 若三个分类结果中有两个分类结果一致, 则按照分类结果一致的结果标签进行分类; 若这3个分类结果全不相同, 说明分类结果异常, 通过该样本的特征向量和它所对应分类结果的训练集样本之间的相似度进行进一步判断, 相似度最大的特征向量即为最佳特征向量, 所对应的分类结果即为最佳。 对于无管孔组, 如果两个分类结果全部一致则分类无误, 如果两个分类结果不一致则说明分类结果异常, 需要继续判断, 判断方法如前所述。

(7)

(8)

2 结果与讨论

2.1 管孔分割结果

管孔分割的效果与管孔特征的提取有着紧密的联系, 图4为使用Segnet图像分割的结果, 图4(a)为木材样本横切面原始图像。 从图4(b)中可以看出使用Segnet直接得到的二值图像里面存在着大量的噪声点, 为了去除这些噪声点, 首先去除像素点少于阈值α的所有连通区域得到图4(c)所示, 然后使用腐蚀运算进行腐蚀, 得到结果如图4(d)所示, 本文所使用的结构元素是“disk”, 大小设为β。 最后对二值图像再次进行扫描去除像素数量少于阈值α的所有连通区域, 如图4(e)所示。

图4 管孔分割结果

为了进一步说明管孔分割的效果, 手动标注了测试集中的样本, 将Segnet分割的管孔结果和手动标注的管孔结果做了比较。 设NA代表分割结果与标注结果相同的像素点数量,NS代表总的像素点数量,SA=NA/NS, 显然SA的数值越高说明分割结果越好。 图5(a—e)的上方分别为五种木材的横切面示意图, 图5(a—e)下方分别为这五幅图像β=1,β=2以及β=3时α(β值为结构元素的大小,α值为连通区域的阈值大小)值不断增加的SA变化特点。 通过图5可以发现对于每一个样本最佳的α均有一些变化, 有管孔的木材α值越大分割效果越差, 无管孔的木材α值越大分别效果越好, 因此取α=100,β=3, 这样的取值基本上可以照顾到所有样本的管孔特点。

图5 α与SA之间的关系树种

2.2 有管孔组和无管孔组的分类结果

α和β不仅和管孔特征有关, 还会影响测试集样本的分组结果, 图6(a)中给出了α和β变化时对测试集分组正确率的变化情况, 分组正确率指测试集木材被划分至正确分组的样本数量与总测试集样本数量的比值。 从图6(a)中可以发现随着α的增加分组正确率先升后降,α=100,β=3时分组正确率最高。 然而这样的分组依旧不算特别理想, 为了进一步提高分组的正确率, 记分割处理后的二值图像按像素累加和为s, 总的像素点数量为M。 当s/M小于某一个数值γ时认为该样本为无管孔木材; 当s/M大于γ时认为该样本为有管孔木材。 图6(b)中给出了γ对分组正确率的影响, 从图6可以发现整体正确率随着γ的增加先增后减, 在γ=0.1时取得最高分组正确率。

图6 α, β, γ分组正确率的影响

2.3 单独使用光谱特征、 管孔特征以及纹理特征分类结果与讨论

单独使用光谱特征对木材进行分类时, 影响分类正确率的主要因素包括降维的方法以及降维后的特征维数, 图7(a,b)分别为原光谱及一阶导数光谱分类正确率, 即降维后的维数与木材分类正确率之间的关系。 从图7(a,b)中可以看出PCA方法下的木材分类正确率高于KPCA方法下的分类正确率, 在对光谱进行一阶求导后的分类正确率整体高于原始光谱的分类正确率。

图7 使用光谱特征的分类正确率

表3给出了图7中的最高分类正确率, 从表3中可以看出使用光谱对木材进行分类的正确率最高可达93.00%。

表3 光谱特征分类正确率

使用管孔特征对木材进行分类的正确率与管孔分割的效果和前期有无管孔的分组有关, 图8中给出了2.1节中α,β以及γ对分类正确率的影响, 从图8(a,b,c)可以看出β=3时的分类正确率最高,α和γ值在图8中均体现为值越大分类正确率越高。

图8 使用管孔特征的分类正确率

表4中给出了有管孔组的样本数量、 有管孔组中分类正确的样本数量以及木材分类正确率。 由于实验样本共有13×15=195个有管孔测试样本, 所以将有管孔组中分类正确的样本数量除以195作为木材分类正确率。 令β=3,α=100,γ=0.1, 此时有管孔木材分类正确率为69.23%, 有管孔组样本数量为192个, 既可以兼顾分类正确率又可以保证有管孔组中的样本不会被分入无管孔组, 这也与之前的管孔分割结果相呼应。

表4 不同α, β以及γ的最高分类正确率以及有管孔组的样本数量

比较使用BIGD纹理特征对木材进行分类的结果, 影响BIGD算法分类效果的主要两个因素是VLAD聚类数量K以及在wi上取的坐标点对的数量ks, 前面描述算法时为了方便规定了ks=16。 表5中给出了ks=20时聚类数量K对分类正确率的影响。 木材分类正确率随K值增大逐渐增加, 当K值达到128时分类正确率最大, 但K值继续增加, 分类正确率却不升反降, 特征维数随着K的增加越来越多, 计算时间也成倍增加。 为了兼顾计算速度和正确率将K值定为128维。

表5中给出了在K=128情况下窗口数量ks变化时的木材分类正确率, 值得一提的是由于设计了4个尺度, 窗口数量必须为4的倍数, 从表5可以看出随着窗口数量K值的增加正确率逐渐增加, 特征维数也逐渐增加。 当窗口数量达到16以后正确率趋于平稳, 稳定在89.33%。

表5 聚类数量K和窗口数量ks对分类正确率的影响

2.4 选择最优特征后的分类结果

对管孔特征、 纹理特征以及光谱特征的分类结果进行最优选择, 以寻找到测试样本的最佳分类结果。 表6为三个特征分类结果, 按照之前的规定当三个特征分类结果完全相同或者有两个特征相同时以这些相同的分类结果作为最终分类结果, 在300个测试样本中这种分类一致的样本数量共有257个, 有管孔组中共有192个样本, 其中三个特征不一致的样本共有19个样本; 无管孔组共有108个样本, 其中两个特征分类结果完全不相同的样本数量为24个。

表6 三个特征的分类情况

使用欧氏距离时需要寻找到最佳的调节系数, 图9中给出了γ1/γ3和γ2/γ3在不同数值情况下的分类正确率, 同时表6中给出了经过最优特征选择后最高的分类正确率以及此时的γ1/γ3和γ2/γ3, 可以看出最高正确率为98.00%, 高于单独使用任何一种特征对木材进行分类的正确率。

图9 γ1/γ3和γ2/γ3对分类正确率的影响

2.5 与其他文献方法的对比实验

考虑本研究中数据集在主流木材分类方法中的分类效果, 主要包括文献[1]中的GLCM纹理分类算法、 文献[3]的I-BGLAM算法、 文献[2]的CNN算法、 文献[4,8]的管孔统计特征算法、 文献[5]的核遗传算法以及LBP算法, 其最高分类正确率如表7所示。

表7 其他算法的分类正确精度

从表7中可以看出, 使用管孔特征的分类正确率普遍偏低, 这是因为管孔特征SPPD在本文所使用的数据集中存在三个问题, 第一个问题是本文的数据集中并非所有样本均有管孔, 对于无管孔的木材树种显然无法提取管孔特征; 第二个问题是本文使用的样本数据集中的木材横切面不能使用简单的阈值分割法对其进行管孔分割; 最后一个原因是本文所使用的样本数据集中白色管孔并不十分明显, 无法得到有效的特征值。 另外使用纹理特征对木材进行分类时也并未取得较高的分类正确率, 这是因为所使用的数据集中树种间的纹理较为相似, 无管孔木材一般属于弱纹理样本, 纹理特征并不明显。 分类正确率较高的是卷积神经网络CNN和使用I-BGLAM特征的木材分类方法, 但是这两种方法与本研究所述方法相比依旧没有超过本文的分类正确率。

3 结 论

以20种木材树种的横切面图像特征和光谱特征为研究对象, 主要做了以下工作。 第一, 使用Segnet, 将测试集样本分成了有管孔组、 无管孔组, 同时对测试集样本中的图像做了管孔分割并提取了管孔特征; 第二, 使用BIGD算法提取了木材横切面的纹理特征, 并对光谱特征做了一定的处理以提高分类精度; 第三, 分别讨论了使用管孔特征、 纹理特征以及光谱特征情况下的木材分类情况; 第四, 使用相似性测度讨论了木材横切面上的管孔特征、 纹理特征以及光谱特征的最优性问题, 从而使各个样本能够以最佳的特征类型进行分类。 最终得出了以下几个结论: (1) 使用木材横切面的光谱特征和纹理特征可以对木材进行分类, 但只使用管孔特征无法得到较好的分类效果; (2) 使用样本间的相似度可以弥补不同特征之间存在的不足, 从而达到进一步提高分类正确率的目的; (3) 通过实验发现, 本文所述方法不仅适用于阔叶木材也适用于针叶木材, 具有较强的普适性。

猜你喜欢

管孔木材正确率
基于改进K-means聚类与分水岭的木材横截面管孔分割
一种快速检测管板管孔加工质量的工装
橘子皮用来开发透明木材
数字说
蒸汽发生器管板管孔锈蚀原因及控制措施
门诊分诊服务态度与正确率对护患关系的影响
木材在未来建筑设计中的应用分析
关于低压锅炉对流管胀接技术规范的探讨
生意
品管圈活动在提高介入手术安全核查正确率中的应用