基于改进Faster R-CNN 网络的烟叶分级*

2023-09-29 05:52吴雪梅刘红芸张富贵黄华成
计算机与数字工程 2023年6期
关键词:网络结构烟叶卷积

吴雪梅 刘红芸 王 芳 张富贵 张 康 黄华成

(贵州大学机械工程学院 贵阳 550025)

1 引言

烟草是我国主要农业经济作物,烟叶的分级有着至关重要的作用[1~2]。随着机器视觉技术广泛应用,已有研究利用该技术结合烟叶的颜色[3~6]、形状[7~9]、纹理[10~11]等特征进行烟叶分级建模,但这些方法对图像获取、预处理及特征提取具有较强的依赖性。也有研究利用红外光谱[12~13]对烟叶进行分级得到可靠结果,但光谱特性是在确定组和颜色的前提下,且红外光谱成本较高,不适合推广使用。

卷积神经网络(CNN)具有良好的特征提取及泛化能力,目标检测速度快,模型准确度高[14],因此被广泛应用于各领域。目前,利用深度学习进行目标检测方法有基于候选框和基于回归的方法[15];基于候选框的方法有RCNN[16]、SPP-Net[17]、Fast-RCNN[18]、Faster-RCNN[19]等。其中,以Faster-RCNN 为代表的检测精度高于基于回归方法检测的精度[20],该网络模型是将区域建议网络(Region Proposal Networks,RPN)方法与Fast R-CNN 进行融合,实现了高精度的实时检测[21]。但是随着卷积神经网络层数的增加,带来高精度的同时伴随有梯度弥散、梯度消失、网络模型难以优化以及抑制了浅层网络参数的收敛等问题,导致训练效果差。若直接将该模型训练烟叶图像数据集,会出现一下几个问题:1)烟叶同部位不同等级之间特征过于相似以及数据集不足等问题,导致分级准确率不高;2)由于烟叶在拍摄过程中需要将烟叶铺平,但是烟叶存在卷曲、皱缩的问题,很难将烟叶完全铺平,因此在深层卷积层提取特征时目标的信息量不够,影响烟叶分类的识别精度。为此,本文提出一种改进的Faster-RCNN 网络模型,并利用改进的网络模型对数据集进行训练和验证分析。

2 试验数据

采集样本品种为云烟87,共采集了下橘2(X2F)、中橘2(C2F)、中橘3(C3F)、中橘4(C4F)、上橘1(B1F)、上橘2(B2F)、上橘3(B3F)7个等级的烟叶图像,各等级拍摄的图像不少于1000幅。

拍摄的有效图像共计7156 幅,每个等级选出300 幅烟叶图像作为测试集,其余图像作为训练的原始数据集。原始数据集通过Photoshop CS6 软件进行剪裁,大小为608×342,图像的储存格式为.jpg格式,图像统一命名,由6 位长度的数字组成,例如:000001.jpg 格式,序号连接。对处理后的原始样本分别进行上下翻转和顺时针旋转90°、180°、270°扩增,形成扩增后的训练数据集,扩增后的数据集共计29416 幅烟叶图像。根据POSCAL VOC2007数据集格式,借助开源软件LabelImg对烟叶数据集进行标注,生成xml类的标签。

3 试验环境及试验方法

3.1 试验环境

试验环境为64 位Ubuntu16.04 操作系统,在深度学框架caffe 下完成数据集的训练与验证分析,具体试验环境如表1所示。

表1 试验环境

3.2 试验方法

以Faster R-CNN 网络模型为检测图像的基础网络,在该框架下有三种不同大小训练模型,分别是VGG16、VGG_CNN_M1024 以及ZF,其中VGG16模型具有13 层卷积层,属于大型网络训练模型;VGG_CNN_M1024 模型具有5 个卷积层,属于中型网络训练模型;ZF 模型具有5 层卷积层,属于小型网络训练模型。利用三种网络模型分别对烟叶图像进行分级识别检测,不同网络训练的精度以及检测结果如表2。由表2 知,使用VGG16 模型训练时,其训练的MAp(Mean average accuracy)达到89.93%,使用VGG_CNN_M1024 模型训练时其MAp 达到87.98%,使用ZF 训练时其MAp 达到85.79%。由此可见随着卷积神经网络层数的增加,其检测出的目标矩形框与标注的矩形框重叠度越高,训练精度越高。因此,本文后续试验将以VGG16网络为基础模型对烟叶图像进行特征提取。

表2 基于不同卷积网络模型下各等级烟叶检测精度及结果比较

3.3 模型的试验分析

利用改进的Faster R-CNN 网络模型与7 个调整网络模型,分别对训练图像数据集进行训练和测试分析,并对各网络模型的识别性能进行了对比,模型的说明见表3。针对不同的网络模型,不同的测试集下对模型进行测试,模型的性能指标采用召回率以及准确率作为评价指标。计算公式为

表3 测试模型

式中,P为烟叶图像检测的准确率,R为烟叶图像检测的召回率,Tp为烟叶图像检测正确的正例数量,Fp为烟叶图像检测误以为正确的正例数量,FN为烟叶图像检测误以为错误的负例数量。

4 改进算法及烟叶图像识别的实现

4.1 模型参数的改进

为了提高模型的识别准确率,增加模型的收敛速度,对模型参数进行调整。基于试错的思想调整参数,对模型进行多次的预训练及验证分析,得到较优的模型参数如表4。全连接层参数改进前后的网络模型平均识别准确率分别为88.37%和90.73%,平均识别准确率提高了2.36%。

表4 Faster R-CNN网络模型主要调优参数

4.2 特征提取部分的改进

为了卷积层更准确地提取烟叶的纹理、颜色、形状以及目标轮廓等更具区分性的特征,故对Faster R-CNN模型的特征提取部分进行改进,在原VGG16 网络模型的基础上去掉第8 层、12 层、15 层3 个卷积层,同时引入Inception 网络结构。在Google Net 提出的Inception[22]网络结构之前,通过增加网络的深度和宽度提升网络性能,虽然有较高的网络检测精度,但也面临参数过多、梯度弥散以及计算量增加等问题,为了解决上述方法的不足,Inception 网络结构应运而生。Inception 网络结构主要由1×1,3×3,5×5 的卷积核和3×3 的池化层堆叠构成。为了与原有VGG 网络结构相匹配,Inception 网络结构的具体网络参数为128#1×1,128#3×3 reduce,128#3×3,64#5×5,24#5×5 reduce,64#pool proj,其中,128#3×3 reduce,24#5×5 reduce 表示在3×3,5×5 的卷积层前增加的降维层滤波器1×1,目的是为了降低特征图的维度,增加网络的宽度,减少原网络结构的参数,增加网络尺度的适应性。

4.3 感兴趣区域的校准

为解决区域不匹配问题,对网络结构的感兴趣区域进行校准。原有网络中的ROI pooling 对候选框及每个小网格位置进行量化时,两次量化操作可能使得候选框的位置有偏差,造成区域不匹配问题。而ROI Align 的提出很好地解决了ROI Pooling操作中两次量化造成的区域不匹配(mis-alignment)的问题[23]。ROI Align 取消了量化操作的过程,采用双线性内插的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作。改进的模型框架如图1。

图1 改进的Faster R-CNN网络

conv1×1、conv1×2、…、conv5×3为VGG卷积层,卷积核的大小为3×3;64、128、256、512 为卷积层输出的通道数;pool3 为2×2 的最大池化层,Inception1×1、Inception2×1 为新加入的网络结构,ROI Align为感兴趣区域的校准;FC为全连接层。

4.4 模型训练

以caffe 为实验平台,利用改进的Faster R-CNN 网络对数据集进行训练。随机从29416 幅图像中抽取23533 幅(70%)作为训练验证集(trainval),其余的5883(20%)作为验证集,未参与训练的2100 幅图像对最终模型性能评价。采用四步交替训练的方法,RPN 和Fast R-CNN 2 个网络进行训练,设置参数:总迭代次数为4.4×106,mini-batch为128,冲量为0.9,weight_decay 为5×10-4,最大迭代次数1.2×105。RPN 第一、二阶段的训练次数均为1.2×105,Fast R-CNN 第一、第二阶段的训练次数均为106,其中RPN、Fast R-CNN 第一阶段学习率设置为10-4,第二阶段的学习率设置为10-3。在8×105迭代后,每迭代105次保存一个模型,并在保存的模型中选取精度最高的作为最终模型。

5 结果与分析

5.1 感兴趣区域对比分析

对感兴趣区域改进后训练数据集,并与未改进之前的训练精度进行对比分析,结果见图2。由图可知,感兴趣区域池化采用ROI align 训练后平均分级准确率比采用ROI pooling 的提高了2.77%,改进后的检测矩形框精度明显提升,且改进后每个等级的烟叶识别准确率均有所提升,说明改进后的模型识别效果较好。

图2 感兴趣区域测试结果

5.2 去除卷积层,增加Inception结构的效果

增加网络层数虽可提高模型的训练精度,但会出现过拟合现象,因此本文去掉网络模型特征提取的卷积层,构建了改进的VGG16、VGG16-A、VGG16-1A、VGG16-2A、VGG16-3A 网络模型进行训练对比分析,结果如图3。得到了去掉特征提取的卷积层识别效果优于原有Faster R-CNN 的网络的模型,去掉网络的不同卷积层,每个等级烟叶识别准确率比VGG16-A 网络模型分别提高了1.4%、1.8%、1.7%、0.5%、0.9%、0.93%、1.7%,表明适当去掉卷积层以及对感兴趣区域进行调整,有利于图像的特征提取与学习,从而提升模型的识别性能。但减少不同的卷积层后的准确率与模型的卷积层数量并不一定存在确定的数量关系,表明适量的卷积层个数才能获得较好的识别准确率。

图3 去掉部分卷积层测试结果

在减少模型不同卷积层基础上加入Inception结构,构建改进模型VGG16-D1A、VGG16-D2A、VGG16-D3A 以及本文改进的最终网络模型,基于测试集的测试结果如图4。由图可知,本文改进后模型的准确率总体上比其他模型要高,识别准确率最低为90.62%,最高为92.46%,召回率最低为91.72%,最高为92.87%,平均识别准确率达到92.35%,说明模型能较好地学习烟叶的类别特征,识别鲁棒性更优;对于不同的烟叶等级,上部烟叶的识别准确率明显的没有其他两个部位的高,说明在分级时可能将其他级别的烟叶混淆在上部烟叶等级中,而对于同一品种的烟叶等级,下部烟叶的识别准确率较为稳定,说明不容易将下部烟叶与其他部位的烟叶混淆;从图还可以看出,模型的识别准确率波动较大,一方面是因为烟叶的样本量不够,另一方面是在制作标签时人为的误判所致。

图4 模型改进测试结果

5.3 模型的精度

Faster R-CNN网络训练模型时,网络模型中的损失值(loss)可用来评估模型参数是否合适。使用改进后的模型对烟叶图像数据集进行训练,分析训练完成后的日志文件中保存网络训练各个阶段的loss 值,RPN 第一阶段以及RPN 第二阶段为区域生成候选框阶段,主要是判别候选框与目标框的重合度,并利用RPN 阶段的网络权重对Fast-RCNN 网络参数进行初始化,RPN 阶段的输出region proposal 作为Fast R-CNN 阶段的输入训练Fast R-CNN,并对输入的检测框背景与目标进行判别,将结果返回感兴趣区域信息的网络参数去初始化RPN。基于python 编程语言,读取网络的迭代次数,绘制模型不同阶段的损失率曲线。训练各阶段损失率曲线如图5所示。

图5 改进的网络模型下训练的各阶段Loss曲线图

图5(a)和(b)为训练RPN 两个阶段的损失曲线,可以看出,RPN损失曲线的损失率较低,接近于0,说明候选框的重合度高;图5(c)和(d)为训练FastRCNN 两个阶段的损失曲线,从图5(c)到图5(d)可看出,当迭代次数到达105次时,RCNN 损失率曲线收敛,损失率约为0.02%,训练效果较为理想。

6 结语

1)为了实现对烟叶图像的自动识别与分类,本文对Faster R-CNN 框架下VGG16、VGG_CNN_M1024 以及ZF 模型分别进行训练测试分析,得出VGG16模型对烟叶的识别准确率较高。

2)通过调整VGG16 网络模型全连接层参数训练数据集,在此基础上将ROI Pooling 改进为ROI Align,再去掉网络模型第8层、第12层和第15层卷积层,同时引入Inception网络结构为本文的最终分级模型。本文算法对图像中烟叶分级的识别准确率最低为90.62%,最高为92.46%,召回率最低为91.72%,最高为92.87%,平均识别准确率达到92.35%,识别速度达到0.2s/幅。改进后的模型平均识别准确率相比原始网络平均识别准确率(88.37%)提高了3.98%。

猜你喜欢
网络结构烟叶卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
关于新形势下烟叶生产可持续发展的思考
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
烟叶主要真菌病害的发生与防治
基于互信息的贝叶斯网络结构学习
知识网络结构维对于创新绩效的作用机制——远程创新搜寻的中介作用
沪港通下A+ H股票网络结构演化的实证分析
复杂网络结构比对算法研究进展
一种降低造纸法再造烟叶平滑度的方法