APP下载

基于深度语义分割的重叠烟叶分级方法∗

2023-10-20刘松岳俞世康王艺斌李昀欣

计算机与数字工程 2023年7期
关键词:特征选择烟叶分类器

刘松岳 俞世康 赵 宇 王艺斌 李昀欣

(1.南京理工大学计算机科学与工程学院 南京 210094)(2.广元市烟草公司 广元 628000)(3.四川省烟草公司 成都610091)(4.南京焦耳科技有限责任公司 南京 210000)(5.云南烟叶复烤有限责任公司 昆明 650021)

1 引言

烟叶分级是烟草行业的一项基础性工作,其对烟草的种植业和制造业具有很大影响。烟叶分级前首先要进行分组,根据烟叶生长部位将烟叶分为上部组(B),中部组(C)和下部组(X),再根据颜色分为柠檬黄组(L),橘黄组(F)和红棕色组(R),生长部位和颜色相同的烟叶再归为同一大组。其次再根据成熟度、身份、油分等品质因素将每个大组的烟叶划分为3级~4级。长期以来,烟叶都是靠技师用感官结合经验去分级,且分级环境也相对严苛,必须保证干燥通风,不能有强光。因此,传统的人工分级存在较大的主观性和局限性,研究科学可靠的烟叶自动高效分级技术已势在必行。

国内外已有不少学者提出一些烟叶自动分级算法,同时做了大量理论研究。早在1984 年,Thomas CE 就提出将数字图像处理技术应用于烟叶外观识别中[1]。Han,L 提出使用SVM 来对烤烟的成熟度进行识别[2]。蔡健荣、方如明等通过提取烟叶的外观品质特征并输入人工神经网络中对烟叶进行分级[3]。1998年,韩力群等便致力于图像处理技术在烟叶自动分级中的研究[4]。此外,张明乾等使用神经网络结合烟叶化学成分来进行相关的研究[5]。D S Guru 等提取烟叶HSI 通道颜色特征,采用符号分类器进行分级[6]。杨帆等提取颜色(RGB,HSI)、形状、纹理特征,采用二进制粒子群(BPSO)以及SVM 实现分级[7]。庄珍珍等提取颜色及形状特征,采用模糊识别进行分级[8]。Pei 等提取颜色、形状、纹理特征,利用改进的聚类算法和随机森林实现分级[9]。Katta,Dasari 等采用卷积神经网络(CNN)实现分级[10]。姚学练等提取颜色(RGB,HSV)、形状、纹理特征,使用PCA 降维以及遗传算法,SVM来分级[11]。

本文运用相关技术研究自动烟叶分级方法。首先提取烟叶的传统图像特征,包括颜色、纹理、形状三种主要特征;其次使用特征选择来去除冗余特征以便后续分级;最后将多个SVM 集成作为烟叶分级器以提高分级准确率。进一步,针对重叠烟叶,我们使用语义分割网络DeepLabv3+来将重叠烟叶分割成单片烟叶,再分别对单片烟叶进行分级。

2 烟叶特征提取与分析

常用的传统图像特征有颜色特征,纹理特征以及形状特征。颜色特征通常是指图像中各个形状区域的彩色特征,它能反映图像的整体属性,是图像的一种全局特征。纹理特征是一种反映图像中同质现象的视觉特征,它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性,通过像素及其周围空间邻域的灰度分布来表现。形状特征包含轮廓特征和区域特征,图像的轮廓特征主要是对物体外边界的描述,而图像的区域特征则关系到整个形状区域。

本文使用的各种特征见表1。

表1 提取特征及说明

3 特征选择

将提取出的各特征连接后可得到1007 维的特征。直接用这些特征进行分级通常准确率会较差,由于特征维数较多,这些特征可能存在大量冗余特征,即许多特征对于分级起到很小的作用,甚至还可能干扰分类器的选择。因此,需要一些特征优化方法来改进特征,本文采用F-score 特征选择方法尽量选择对于分级有用的特征。

F-score 是一种较为简单且有效的特征选择方法。它能够较好地衡量某个特征对于分类的贡献程度,衡量特征在多类之间的辨别力大小[12]。其定义如下:

其中,c为类别数,nj为第j类的样本数。为第i个特征在整个数据集上的平均值,为第i个特征在第j类数据集上的平均值,为第j类第k个样本的第i个特征的值。

式(1)中分子表示的是各类的类间距离之和,分母表示总类内样本协方差。某个特征的F-score值越大,就表明该特征的分类辨别能力越强,即该特征在类内分布较密,在类间较疏。

按式(1)求出每个特征的F-score 值并降序排列,可得特征序列f,从f中选择前N(1 ≤N≤1007)维特征组成备选特征集合,再用SVM对当前选取的备选特征集合进行评价,使用训练集的交叉验证准确率作为衡量该备选特征集合的好坏,准确率越高说明该组特征集合更好,最后选择一组准确率最高的特征集合作为结果。

4 多支持向量机集成

集成学习指的是通过构建结合多个学习器来完成学习任务,因为多数情况我们只能得到多个有偏好的模型,即弱学习器,而集成学习就是把多个弱学习器组合到一起得到一个更全面的强学习器。

我们设计了多个SVM 集成学习框架来实现单片烟叶的分级,我们采用多分类AdaBoost的思想[13]来进行分类器的集成。具体的算法如下:

1)初始化训练样本权值(每个样本被选择用来训练分类器的概率):

其中,N为训练集样本个数。

2)for t=1,…,T(T为预先指定的弱学习器个数),执行以下七步:

(1)按照权值wt选择训练样本,权值越大,样本被选中的概率越大。当t=1,即训练第一个弱学习器时,所有样本参与训练。

(2)根据被选中的样本训练SVM 分类器ht,并对训练集进行分类测试,ht:X→Y。

(3)根据分类结果计算分类器ht的错误率εt:

其中,,xi,yi分别为训练集第i个样本第t次训练时的权值,特征值以及真实标签。ht(xi)即为第t个弱学习器的分类标签。

若表达式*为真,则[*]=1,否则[*]=0。

(4)计算分类器ht的权值αt:

其中,c为类别数。

(5)计算训练样本新的权值:

(6)计算:

(7)归一化:

3)计算测试集预测标签,考虑测试样本xi,i=1,…,M(M为测试集样本数)。

用分类器ht对xi进行分类,可得样本xi的c维标签概率向量。其中(j=1,…,c)表示分类器ht认为xi属于第j类的概率值。

计算样本xi的集成标签概率向量:

找到fi中值最大的元素及其在fi中的索引序号l1,次大元素以及v1,i中值最大的元素所在的索引序号l2。则样本xi的预测标签为

其中,TH为预先设定的阈值。只有当最大值与次大值的比值超过该阈值时,预测的标签才以集成结果为准,否则仍采用第一个分类器的预测结果作为最终预测结果。这是因为单一的SVM 分类准确率已经较高,若盲目相信集成的结果,准确率可能会不升反降。

5 重叠烟叶分割方法

在实际生产中,烟叶不可能一张张摆放好让我们去分级,更常见的情况可能是一堆烟叶叠在一起让我们去分级。因此需要将每一片烟叶从一叠烟叶中分割开单独进行分级,这是目前非常棘手的问题。本文使用语义分割模型DeepLabv3+来尝试分离两片叠在一起的烟叶。

DeepLabv3+是用于语义分割的DeepLab 的最新版本,它加入了类似于U-net 的解码器结构[14],其网络架构如图1 所示。DeepLabv3+将其上个版本的DeepLabv3 用作编码器,前面的深度卷积网络(DCNN)可以使用ResNet 等特征提取网络进行下采样,采样之后是一个空洞空间卷积池化金字塔(ASPP)模块,即使用不同rate 的空洞卷积(Atrous Convolution)来得到不同感受野的特征图,将这些特征图进行拼接并卷积。

图1 DeepLabv3+网络架构

解码器部分DeepLabv3+将ASPP 输出的特征图进行上采样后于主干网络的低层特征进行拼接来恢复边缘信息,之后进行卷积处理并进行上采样即可得到结果。

6 实验结果与分析

6.1 数据集建立

我们使用JaiLT-400-CL3CMOSRGB 线性扫描相机来采集烟叶图像,共采集了四个批次的烟叶,这些烟叶共包含五个等级,分别为B2F、B3F、C2F、C3F、C4F。将这四批的烟叶图像作为四个数据集,按7∶3 的比例划分为训练集和测试集。其中,第一个数据集共有训练集831张,测试集355张;第二个共有训练集770张,测试集330张;第三个共有训练集1540 张,测试集660 张;第四个共有训练集945张,测试集405张。烟叶图像样本图如图2所示。

图2 不同等级烟叶样本图

6.2 实验结果

6.2.1 单片烟叶分级结果

本文实验中SVM 分类器选用RBF 核函数,使用网格搜索并根据训练集5 折交叉验证的准确率来寻找惩罚参数C以及核函数半径g。本文按照第4节的方法训练了3个SVM分类器进行集成。

分级实验结果见表2~表4,其中表2 为未使用F-score特征选择以及SVM集成的训练集及测试集准确率,表3 为使用特征选择未使用集成学习的训练集及测试集准确率,表4 为既使用特征选择又使用集成学习的训练集及测试集准确率。

表2 各数据集训练集及测试集准确率

表3 特征选择后各数据集训练集及测试集准确率

此外,为了对比分级特征,我们还选用了不同的分类器来对比分级效果,包括K近邻分类器、XGBoost、ResNet152 以及极限学习机(Extreme Learning Machine,ELM)。利用第一个数据集的特征训练这些分类器进行分级,结果如表5 所示,单片烟叶的分级准确率均没有提出的方法高。

表5 不同分类器下训练集及测试集准确率

我们也选用已有文献里的方法进行对比,包括经典的vgg16 网络,用于细粒度分类的双线性CNN(B-CNN),以及一些基于传统特征的分级方法。同样使用第一个数据集进行测试,各分级方法的准确率如表6 所示,这些方法准确率也没有提出的方法高。

表6 不同分级方法下训练集及测试集准确率

6.2.2 重叠烟叶分级结果

对于语义分割网络DeepLabv3+的训练,本文选用4000张重叠烟叶图像作为训练集,800张重叠烟叶图像作为验证集,200张作为测试集。

实验中使用Resnet50 作为特征提取的主干网络。训练的总次数epoch 为100,每批训练大小batch_size 为1,损失函数使用交叉熵损失函数,使用adam 优化器,学习率为0.00001,且每7 个epoch进行一次衰减。分割结果如图3所示。

图3 分割结果图

对于重叠烟叶的分级准确率测试,本文选择第一批数据集进行实验,将测试集351 张图像两两重叠,得到200 张重叠烟叶图像。测试时用深度网络DeepLabv3+将200张图像分割成400张单片烟叶图像,对这400 张图像进行分级实验。实验结果见表7。此外,由于部分烟叶分割后形状不完整,因此对重叠烟叶的分级不使用形状特征。

表7 重叠烟叶数据集训练集及测试集准确率

6.3 实验分析

由上述实验结果可知,对于单片以及重叠烟叶的分级,特征选择和集成学习都能在一定程度上提高分级的准确率。虽然第四个数据集使用特征选择以及集成后测试集准确率反而降低,但实验显示,不采用特征选择时验证集的准确率为68.15%,然而特征选择后的准确率为70.26%。所以可能是训练集与测试集分布不一致造成的测试集准确率的下降。

然而,重叠烟叶的准确率只有48.49%。可能是由于分割的结果不一定准确,分割后的烟叶可能含有其他等级烟叶的信息。且叠在下面的烟叶分割后会丢失大量信息,虽然实验中去掉了形状特征,但提取出的颜色,纹理特征也会在一定程度上受到丢失信息的影响,从而增加了分级的难度。

此外,图4 为第一批数据测试集分级结果的混淆矩阵。矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。

图4 测试集分级结果混淆矩阵

由混淆矩阵可以看出,不同部位的烟叶(即B组烟叶与C 组烟叶)分级效果较好,但同时组内细分较为困难,可以看出有相当一部分C2F烟叶被分成C3F,同时也有大量C3F烟叶被分成C2F。

7 结语

本文提出了基于深度语义分割的重叠烟叶的分级方法。我们提取烟叶的颜色、纹理、形状三种特征,使用F-score进行特征选择,再采用多个SVM集成的方式来实现单片烟叶的分级。其次,对于两片重叠的烟叶,我们使用语义分割网络Deep-Labv3+将两片烟叶分割开,然后再分别进行分级。

下一步将再训练一个二分类器专门用来对C2F 和C3F 级别的烟叶进行区分。当原始的集成分类器预测一张烟叶的类别为C2F 或C3F 时,再使用此二分类器来做进一步的判断,以期进一步提高准确率。

猜你喜欢

特征选择烟叶分类器
关于新形势下烟叶生产可持续发展的思考
BP-GA光照分类器在车道线识别中的应用
烟叶主要真菌病害的发生与防治
Kmeans 应用与特征选择
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
联合互信息水下目标特征选择算法
一种降低造纸法再造烟叶平滑度的方法
基于LLE降维和BP_Adaboost分类器的GIS局部放电模式识别
湘西上部烟叶化学成分特征及聚类分析