蒋清健,姚 勇,付志军,苏钰杰
(1.河南经贸职业学院,河南郑州 450018;2.河南省智慧农业远程环境监测控制工程技术研究中心,河南郑州 450018;3.郑州轻工业大学,河南郑州 450002)
番茄抗病害能力较弱,病虫侵害容易导致其品质下降。番茄病害主要通过叶片状态显现,因此通过对番茄叶片病害的准确识别,可及早预防和控制病害的发生[1-2]。
卷积神经网络(convolutional neural network,CNN)能够对番茄叶片病害作出较好的识别效果[3],但是训练过程中需要大量的图像数据集。在CNN多卷积特征与HOG融合算法(CNN multi-convolution feature and HOG,CNNMCFHOG)中,CNN提取番茄叶片病害的浅层特征与HOG特征进行合并[4],SVM分类器对其分类。分层深度卷积神经网络(hierarchical deep CNN,HDCNN)利用类别的层次结构[5],将分层CNN嵌入到类别层次结构中来引入分层深度CNN,粗、细分类器识别不同的类,可扩展用于大规模视觉识别。半监督分层卷积神经网络(semi-supervised hierarchical CNN,SSHCNN)将番茄图像分解为多个层次聚类[6],在父节点学习聚类级CNN,在子节点学习类别级CNN,该算法利用CNN特征的相似性,将视觉上相似的图像分组到同个聚类中,从而消除了不均匀的数据可分性约束,通过分层聚类级CNN获取特定的高级图像类别信息,可以用少量标记的图像进行训练。注意卷积二叉神经树结构(attention convolutional binary neural tree,ACBNT)通过树形算法融入卷积运算[7],利用节点的路由函数分析树根到叶的最短路径,深度卷积运算学习捕获对象的表示,树形算法描述粗、细分层神经网络的识别过程,使用注意转换器模块来加强网络分类的特征,负对数似然损失使用梯度下降法,利用反向传播以端到端的方式来训练整个网络。自我关注CNN 算法(self-attention CNN,SACNN),由基本网络和自我注意网络构成[8],基本网络主要进行提取图像的全局特征,自我注意网络主要进行获取病变区域的局部特征,识别准确率较高。
以上方法主要是通过CNN增加卷积次数以便获得较高的识别率,这样加深网络结构会使得数据的计算量加大,导致卷积神经网络优化训练的难度增大。本研究提出改进卷积神经网络(improved CNN,ICNN)算法对番茄叶片病害进行识别,四通道多核卷积神经网络对番茄叶片病害多特征进行提取,双重注意力对特征图的内容、位置进行关注,仿真结果验证了算法的有效性。
将番茄叶片通过Sobel算子得到水平方向、垂直方向、45°、135°对角方向的4个梯度图像,即获得4个通道方向的图像[9],如图1所示。将多个梯度图像输入到多层卷积神经网络,卷积神经网络从而学习图像不同方向梯度的特征,再将不同方向的特征进行随机化特征融合。将具有差异性的图像特征信息进行融合,以使融合后的特征信息可以方便地进行区分,提高图像的表达能力,对融合后的特征进行通道混洗,使得特征图的每一个区域都包含不同通道的特征,得到的图像融合信息更有鲁棒性。
卷积神经网络对番茄叶片图像的分类效果取决于卷积核的大小,卷积核越大则卷积神经网络的感受野范围越广,越方便进行番茄叶片图像全局信息分析,但同时会使得图像细节特征被忽视;卷积核越小则图像细节特征越易获取,但是无法获得番茄叶片图像全局信息。因此,为了获取图像准确的特征信息,需要多卷积核。四通道卷积神经网络为每个通道设计不同的卷积核以便提取番茄叶片图像特征[10]。四通道卷积神经网络算法是由4个不同结构的卷积神经网络通道CNN1、CNN2、CNN3、CNN4组成,每个卷积神经网络具有3层卷积层、2层下采样层、1层全连接层。CNN1、CNN2通道分别输入水平梯度方向、垂直梯度方向的图像,之后依次进入3个卷积层进行特征提取,其卷积核大小为7、5、3,个数分别为30、40、50,移动步长分别为3、2、1,第1层、第2层卷积层之后的池化层采用最大池采样方法,池化窗口大小分别为5、5,池化步长分别为3、3,最后为3个全连接层,输出节点为18。CNN3、CNN4通道分别输入45°、135°对角方向的图像,之后依次进入3个卷积层进行特征提取,由于45°、135°对角方向的卷积核大小为9、7、5,个数分别为40、50、60,移动步长分别为4、3、2,第1层、第2层卷积层之后的池化层采用最大池采样方法,池化窗口大小分别为3、3,池化步长分别为2、2,最后为3个全连接层,输出节点为18,各个通道的激活函数均选择ReLU,采用 Softmax对番茄叶片病害进行识别。
注意力可以使得卷积神经网络的计算资源较合理地分配到番茄叶片图像特征的分析过程中,数据计算量在不增加的同时进行网络深度加深[11]。双重注意力由空间注意力、通道注意力组成。空间注意力主要关注病害区域并对无关信息进行降噪,同时使得卷积神经网络保持尺度不变性。空间注意力机制包括局部注意力机制、全局注意力机制,局部注意力机制主要注意图像的局部特征,全局注意力机制主要注意图像的整体特征;空间注意力使用局部-全局交替注意力机制,减少了数据计算量。通道注意力主要进行加强番茄叶片图像的有用特征并抑制无用特征。卷积神经网络使用番茄叶片图像特征通道和空间维度进行预测,特征图的重点内容、位置得到注意,把注意力特征图与卷积神经网络的中间特征图相乘可以更新已学到的特征,计算公式为
F1=Mc(F)⊗F;F2=Ms(F1)⊗F1;Mc(F)=σ{MLP[AvgPool(F)]+MLP[Max-Pool(F)]};Ms(F)=σ{fN×M[AvgPool(F),MaxPool(F1)]}。
(1)
式中:F为输入特征图;⊗为点乘;Mc(F)为注意力运算;F1为输出特征图;Ms(F1)为在空间注意力运算;F2为空间注意力输出特征图;AvgPool为全局平均池化;MaxPool为全局最大池化;MLP为卷积神经网络的共享网络;最大池化和平均池化共享一个神经网络提取特征;σ为ReLU激活;fN×M为N×M卷积。
经过以上运算,最终可获得通道注意力特征图F1和空间注意力特征图F2。
由于番茄叶片病害识别属于单标签多分类算法[12],交叉熵函数计算分类损失:
(2)
式中:calss为样本标签;C为待分类总数;z=[z0,z1,…,zC-1]为神经网络输出。
损失函数更新通过动量随机梯度下降法:
(3)
式中:γ为动量因子;t为训练轮数;mt为训练轮数 的动量;ωt为训练轮数t的学习率;θ为权重。
当γ=0时没有动量作用影响,当γ=1时动量惯性影响最强,在训练初始阶段,需要的γ值较小,以便加速卷积神经网络优化;在训练结束阶段,较大的γ值能够提高番茄叶片病害的识别精度。因此卷积神经网络控制γ值随训练轮数的增加而线性变大,通过训练轮数对γ更新为
(4)
式中:γmax为0.95,γmin为0.05,tmax设置为300。
γ随t变化如图2所示。
从图2可以看出,当t为1时,γ为最小值0.05,随着t的增加,γ随t线性增加,最终γ达到最大值0.95,从而保证了动量因子的最优化。
权重更新为
(5)
式中:τ为识别误差率;θt初始值为0.000 1。
卷积神经网络训练过程中使用了历史梯度信息,计算较接近真实梯度,增强了算法的稳定性[13],通过非线性递减方式将ωt逐渐缩小,其变化公式为:
(6)
式中:初始值ω1=0.001。
ωt随t变化如图3所示。
从图3可以看出,当损失函数变化非常小或不变化了,通过学习率使得损失函数进一步下降,避免了损失函数被过度优化,学习率越来越小,从而保证了算法的最终收敛。
以病害部分为前景,通过K-means聚类方法划分出病害聚类区,每个病害聚类区为单独的封闭区域[14],由于番茄叶片有病害聚类区,则该封闭区域的形心为采样正方形的中心点,假设采样为边长100个像素单位的正方形,则:
(7)
式中:xi为病害聚类区横坐标;yi为病害聚类区纵坐标;Ai为病害聚类区的像素数。
当进行病害聚类时,由于病害离各自聚类中心距离不同,导致出现多个聚类区,一般取聚类中心最靠前的4个区域为当前番茄叶片图像的病害采样区。
通过边缘特征统计值避免图像噪声的影响[15],边缘特征值公式为
(8)
(9)
图4所示为识别算法流程。
计算机PC配置主要如下:CPU型号为Intel i510400F、内存为16 GB,显卡GTX 1650,Spyder3.0平台实现仿真。图像集利用Plant Village数据库中的Tomatoes图像,番茄叶片病害选择的类型有黄叶卷曲病、花叶病、蜘蛛螨病、七星斑病、叶霉菌病、早疫病,其展示图像如表1所示,每个类型各有300幅图像,图像大小为300×300像素,一共为1 800幅,其中训练集1 500幅图像,测试集300幅图像。
表1 番茄叶片病害图像
在算法训练过程中,使用批量训练把训练集与验证集划分为若干批次,其中训练批次设置为20,验证批次为10,共迭代60轮,为防止训练过程发生过拟合现象,将Dropout设置为0.5,训练与验证算法主要有ALexNet、GoogLeNet、VGGNet、ResNet、CNN、ICNN,其对比试验如图5所示。
从图5-a可以看出,随着迭代次数的增加,ICNN算法逐渐上升趋于稳定,并且上升速度高于其他算法,稳定状态早于其他算法的训练迭代次数。从图5-b可以发现,ICNN算法在训练过程中损失值最小,并且能够快速进行收敛,当训练迭代超过30次以后,损失值逐渐趋于稳定状态。因此ICNN算法的损失函数值较小、识别准确率较大,能够较好地进行番茄叶片病害识别。
在番茄叶片病害识别过程中,涉及算法有AlexNet、GoogLeNet、VGGNet、ResNet、CNN、ICNN,通过蒙特卡罗60次仿真试验,对番茄叶片病害黄叶卷曲病、花叶病、蜘蛛螨病、七星斑病、叶霉菌病、早疫病的识别准确率结果如图6所示。
表2 识别检测平均消耗时间
从图6可以看出,本研究算法对番茄叶片的各种病害识别准确率较高,对番茄叶片病害黄叶卷曲病、花叶病、蜘蛛螨病、七星斑病、叶霉菌病、早疫病识别准确率平均值为98.51%、97.92%、96.71%、94.12%、94.63%、94.22%。其他算法对番茄叶片病害识别准确率小于本研究算法,这是因为通过四通道输入番茄叶片图像,卷积神经网络学习图像不同方向梯度的特征,双重注意力机制提升了卷积神经网络算法的搜索能力,能够使得识别准确率提高。
各种算法对番茄病害黄叶卷曲病、花叶病、蜘蛛螨病、七星斑病、叶霉菌病、早疫病单张图像识别检测平均消耗时间如表2所示。
从表2结果可以看出,改进卷积神经网络算法对各种病害识别检测平均消耗时间表现更优,算法消耗占用内存较少,同时识别准确率较高。
本研究算法对卷积神经网络算法进行了改进,通过多通道多核提取图像信息,同时加入双重注意力机制关注图像全局、局部特征,试验仿真结果显示,本研究算法对番茄叶片病害黄叶卷曲病、花叶病、蜘蛛螨病、七星斑病、叶霉菌病、早疫病识别的准确率、消耗时间优于其他算法,因此为番茄叶片病害识别提供了一种新方法。