APP下载

一种基于卷积神经网络的烟叶等级识别方法

2022-03-09焦方圆

食品与机械 2022年2期
关键词:烟叶分级准确率

焦方圆

申金媛1

郝同盟2

(1. 郑州大学,河南 郑州 450001;2. 华北水利水电大学,河南 郑州 450045)

烟叶是卷烟工业的重要原料,烟叶分级[1-3]是烟草公司产业运作中的一个至关重要的环节,关乎种烟农户和行业工商企业利益,影响卷烟原料的高效利用。现行烤烟评级标准[4]主要是基于人工经验,具有一定的主观性。随着烟草产品质量[5]的不断提高和图像处理、人工智能等技术的快速发展,越来越多的学者研究将烟叶的智能识别技术代替人工的方法[6]。

目前常用的烟叶分级方法主要分为传统方法和深度学习方法。传统的特征提取方法是进行图片处理的常用方式,在烟叶分级中,通过提取烟叶图片的颜色、脉络等相关的显式特征,再根据人工经验来判断烟叶的等级。常用的传统分级方法有支持向量机、粒子群算法、遗传算法等。但是传统方法无法对图片的深度特征进行提取,存在分级准确率和分级效率不高的问题。针对传统方法存在的不足,文献[7]在主成分分析、遗传算法和支持向量机的基础上提出了一种PCA-GA-SVM烟叶分级方法,在烟叶分级效率方面有一定的提高;文献[8]通过近红外光谱技术,并结合粒子群—支持向量机(PSO-SVM)算法实现了烟叶更深层特征的提取;文献[9]从烟叶图像中提取用于分类定级的关键信息,实现了烟叶的智能识别和分级,这种特征提取的技术对烟叶分级效率和准确性都有一定提高;文献[10]通过手持式近红外光谱仪和粒子群优化—极限学习机算法的组合,直接从烟草叶中无损地收集训练样品的光谱数据,利用粒子群优化—极限学习机算法建立了不同类别的训练模型,并使用开发的模型来预测测试样本的类别,为烟叶分级提供了一种新颖的分类方法。

由于卷积神经网络能够快速提取图片更深层次的特征,且具有良好的非线性特性,因此采用深度学习的方式对烟叶进行分级的研究较多。常用的深度学习烟叶分级模型有VGG16网络、残差网络、AlexNet网络等。文献[11]在经典AlexNet网络的基础上提出了一种全卷积AlexNet网络模型, 增加了模型的学习能力,提高了烟叶分级的准确性;文献[12]提出了用训练好的烟叶分组模型迁移学习烟叶分级的低维深层特征表达,解决了烟叶分级过程中训练样本少,准确率不高的问题;文献[13]在inception V3网络模型的基础上提出了一种基于深度学习的烟叶分级算法,改善了人工烟叶分级的差异性大、合格率低等现象。但以上研究仍存在烟叶分级准确率不够高、分级种类不够多的问题。

经典VGG16网络模型包括卷积层和全连接层,卷积层由5个block块组成,结构规整简洁,没有繁多复杂的超参数,一方面有效控制了网络模型的计算量,另一方面有利于对模型进行分解。与AlexNet和ZF-Net网络相比,VGG16网络的卷积核更小,通过多层非线性层增加网络深度,因此对于给定的感受野,可以提取更多的特征信息,采用堆积的小卷积核可以学习更复杂的模式,增加了模型的表达能力,有利于图片的特征提取与分类。鉴于以上特点,文章拟以VGG16网络模型为原型来改进深度学习算法。针对烟叶分级准确率不高的问题,主要从卷积模块和激活函数两部分对网络结构进行改进;以41种等级的烟叶样本进行分类,通过增强数据的方式来增强网络的识别能力;并将试验改进的算法分别与原始模型和传统特征提取的方式进行结果对比,以此来验证试验算法在烟叶分级准确率方面表现出的优越性。

1 数据预处理

1.1 数据增强

为了增强模型的健壮性,需对现有的数据集进行平移、翻转、旋转、缩放、亮度增强等操作[14],以生成新的多样化图片来参与训练或测试。为了保持样本的原始性和真实性,使用Python的PIL模块,通过将图片旋转实现图像增强技术。一般情况下,图像的原点位置在左上角,令图像的高度为H,宽度为W,原始点为(x0,y0),变换后的点为(x1,y1),则变换公式为:

(1)

试验使用的烟叶由平顶山烟草公司提供,采集的烟草透射图像经增强后的部分图片示例如图1所示。

图1 部分图像增强后的图片Figure 1 Picture of part of the image after enhancement

1.2 图像增强

由于采集到的烟叶图片背景含有大量噪声和杂质[15],需对样本集进行背景分割和去噪。使用阈值迭代法进行背景分割,具体步骤如下:

(1) 计算图像的灰度值,并遍历出图像灰度的最大值和最小值,分别记为Zmax和Zmin,令初始阈值T0=(Zmax+Zmin)/2。

(2) 根据提出的阈值TK确定图像的前景和背景,分别求出两者灰度的平均值Z0和ZB。

(3) 求出新阈值TK+1=(Z0+ZB)/2。

(4) 若满足关系式TK=TK+1,则所得结果即阈值;否则返回第(2)步。

背景分割后再进行去除噪声处理,使用卷积滤波的方式进行去噪,其具体步骤如下:

(1) 用一个3×3的矩阵在图像中由上到下,由左到右进行卷积,边缘部分进行补零。

(2) 求出对应像素的灰度值,并将灰度值按从小到大的顺序排序。

(3) 将第5个像素的结果赋给对应模板中心位置。

卷积滤波后的图像如图2所示。

图2 预处理后的图片Figure 2 Picture after preprocessing

2 VGG16网络结构改进

2.1 经典VGG16网络

CNN网络结构主要由输入层、卷积层、ReLU层、池化层和全连接层等构成,根据不同的应用场景可以将这些层叠加不同的深度,从而构建一个完整的卷积神经网络。通常将卷积层与ReLU层并称为卷积层,因此在卷积层经卷积操作后,需通过激活函数来增强网络的非线性建模能力。一般来说,卷积层和全连接层(CONV/FC)对输入执行变换操作时,不仅会用到激活函数,还会用到较多参数,即神经元的权值w和偏差b;而ReLU层和池化层则是进行一个固定不变的函数操作。随着梯度的下降,对卷积层和全连接层中的参数进行训练,使卷积神经网络计算出的分类分数对应训练集中每幅图像的标签[16]。

如图3所示,原始VGG16的输入被设置为224×244大小的RGB图像,网络对输入图像计算RGB均值,然后将图像作为输入传入VGG16卷积网络。经典VGG16网络模型包括卷积层和全连接层,卷积层包括5个block块,卷积核大小为3×3,卷积层步长设置为1。池化操作采用最大池化的方式,池化单元尺寸为2×2。激活函数为ReLU函数。最后通过3层全连接层完成维度向量的转换。

图3 VGG16网络原理图Figure 3 VGG16 network principle diagram

2.2 卷积模块的改进

传统的卷积过程是卷积核在二维输入数据上扫描,每次扫描的面积与卷积核的尺寸大小相同,并将对应元素加权求和(见图4)。

图4 传统CNN卷积Figure 4 Traditional CNN convolution

在深度学习网络中,为了进一步抽取更高阶的特征,需在卷积操作后以池化的方式进行下采样[17],而下采样的同时也忽略了一些特征信息,大量使用池化操作会损失部分图像特征,不利于烟叶等级的识别。

为避免上述信息缺失的问题,提出将空洞卷积代替block中传统卷积的方法。假设空洞卷积的卷积核大小为k,空洞数为d,其等效卷积核大小k′,则:

k′=k+(k-1)×d-1。

(2)

当前层的感受野:

(3)

RFi+1=RFi+(k-1)×Si,

(4)

式中:

Si——除当前层外前面所有层的步长的乘积;

RFi+1——当前层的感受野;

RFi——上一层的感受野;

k′——卷积层中卷积核的大小。

空洞卷积的具体工作过程如图5所示。

图5 空洞卷积Figure 5 Convolution with holes

假设空洞数量为d,则在一定的像素区域中,每隔d个像素对像素点进行采样,然后再将采样点与卷积核进行卷积,故在不增大卷积核尺寸的同时扩大了感受野,避免了因池化带来的特征信息损失,且保持像素的相对空间位置不变。

2.3 激活函数的改变

传统的VGG16网络的激活函数采用ReLU函数,其函数曲线如图6所示。

由图6可知,当x<0时,ReLU硬饱和,其函数值为0,当x>0时,则不存在饱和问题。因此,ReLU函数能够在x>0时保持梯度不衰减,有效缓解了梯度消失的问题。这使得能够直接以监督的方式训练网络模型,而无需依赖无监督的逐层预训练。样本集训练过程中,可能存在部分输入落入硬饱和区的情况,这将导致无法更新对应权重。这种现象被称为“神经元死亡”。与sigmoid类似,ReLU的输出均值也>0,对于网络的收敛性而言,偏移现象和神经元死亡都有着重要影响。

图6 ReLU激活函数曲线Figure 6 ReLU activation function curve

针对x<0的硬饱和问题,文章对ReLU函数作出相应的改变,将ReLU激活函数改为Leaky_relu,其数学表达式为:

(5)

式中:

a——梯度值,也可以作为一个参数来学习,一般初始化α为0.25,不采用正则。其函数曲线如图7所示。

由图7可知,Leaky_relu函数保留了x<0时的梯度,这样既修正了数据分布,又能保证网络中相应权重的更新,避免了负轴信息丢失。Leaky_relu函数的分布特点决定了其以下特点:

图7 Leaky_relu激活函数曲线Figure 7 Leaky_relu activation function curve

(1) 神经元不会出现死亡的情况。

(2) 对于所有的输入,不管是大于等于0还是小于0,神经元不会出现饱和现象。

(3) 由于Leaky_relu线性、非饱和的形式,在梯度下降时能够快速收敛。

(4) 由于Leaky_relu函数只有线性关系,不需要指数的计算,因此计算速度会有所增加,不管在前向传播还是反向传播,计算速度均比sigmoid和tanh快。

3 试验验证与结果分析

试验使用的原始烟叶数据集有1 498张,共41种等级,通过对原始数据进行±5°的旋转增强,数据集扩充为4 494张,其中3 371张烟叶图片作为训练集,1 123张烟叶图片作为测试集。

使用Pycharm工具,运用keras、tensorflow等框架,对数据集进行结果验证,其详细参数信息见表1,试验结果见图8。

表1 试验的详细参数Table 1 Detailed parameters of theexperiment

由图8可知,改进后算法的准确率收敛速度较快,分级准确率更高;原始VGG16网络模型的准确率为88.02%,改进后算法的分级准确率达到95.89%,提高了7.87%。

图8 原始VGG16网络与改进算法的分级准确率

由图9可知,算法改进后的损失率收敛速度较快,且损失率更小;原始VGG16网络模型的损失率为0.39,算法改进后的损失率为0.13,算法改进后损失率有所降低。

图9 原始VGG16网络与改进算法的分级损失率

由表2可知,改进模型的分级准确率更高,最终的损失率更小,且试验改进的模型训练过程中更加稳定,收敛速度较快。

表2 不同算法的试验结果Table 2 Experimental results of different algorithms

值得说明的是,使用不同性能的计算机,计算速度和计算时间有很大的差别。试验所用计算机的算力为7.5,通过GPU-GTX1650来计算。从运算时间上来看,与VGG16算法相比,改进算法没有明显的优势,但比传统SVM算法的速度稍快;从准确率上来看,改进算法的准确率均优于SVM和原始VGG16算法,且损失率有所减小,与文献[12]中的CNN算法相比,试验算法的分级准确率仍略高一些,且识别了更多的烟叶等级。因此试验改进算法具有较好的烟叶预测与分类性能。

为了考察试验改进模型的预测能力,将改进算法的训练结果与测试结果进行对比,结果如图10所示。

图10 试验改进算法的训练与测试结果对比

由图10可知,当迭代次数≤21次时,测试曲线波动较大,而训练曲线稳步上升,但从第21次之后,测试曲线开始快速收敛,从整体上来看预测曲线与训练曲线趋势相同,且能够与训练曲线收敛一致,表明模型有较好的预测能力。

4 结论

文章从经典VGG16网络出发,自定义搭建卷积神经网络结构,将空洞卷积技术运用到网络中,在不增大卷积核尺寸的同时扩大感受野,避免了因池化带来的特征信息损失,并通过改变激活函数来提高算法的泛化性和鲁棒性,使用烟叶数据集分类的层次结构来增强从各种深度CNN架构获得的预测的一致性。结果表明,与传统SVM算法、原始VGG16网络以及文献[12]中的CNN算法相比,试验算法在分级准确率和损失率上有更好的优越性。但试验算法并不能考虑到烟叶内部的化学特征对烟叶分级的影响,后续将通过多模态数据融合或者进一步地优化网络模型,来实现烟叶分级准确率和分级速度的进一步提升。

猜你喜欢

烟叶分级准确率
贵州主产烟区烤烟上部烟叶质量的差异
欢迎订阅4-6年级《新课标 分级阅读》
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
欢迎订阅4-6级《新课标 分级阅读》
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
不同成熟度烟叶烘烤过程中大分子物质代谢动态研究
不同素质烟叶烘烤过程中生理及质地变化研究
关于新形势下烟叶生产可持续发展的思考