张领先,田 潇,李云霞,陈运强,陈英义,马浚诚
1. 中国农业大学信息与电气工程学院,北京 100083 2. 中国农业科学院农业环境与可持续发展研究所,北京 100081
温室黄瓜在种植过程中由于各种原因导致病害发生,造成产量降低和品质下降[1-2]。霜霉病是温室黄瓜常见病害之一[3]。目前,随着计算机视觉和机器学习技术在作物病害诊断领域的应用,对于黄瓜霜霉病的准确识别已经取得了丰富的研究成果。彭占武[4]、马浚诚[5]、Wei[6]、和Zhang[7]等分别利用模糊聚类、支持向量机、BP神经网络和卷积神经网络等机器学习方法对黄瓜霜霉病进行识别诊断,取得了良好的效果。但是,这些研究大部分是对温室黄瓜霜霉病的定性识别。
病害程度的不同,其用药剂量也不一样。所以,准确掌握病害严重度,能够指导农民科学合理用药,减少农药残留,提高蔬菜品质。叶海建等[8]构建了基于Android的自然背景下黄瓜霜霉病定量诊断系统,采用超G法和GrabCut进行背景减除,利用生成显著图的方法进行病害区域的识别,最后计算病害区域占整个叶片面积的百分比,得出相应的病害等级。在进行病害等级估算的过程中需要进行病斑的分割,由于受到图像中背景和光照的影响,病斑分割的准确率难以得到保证。Wang等[9]采用5种不同的卷积神经网络结构对植物病害严重度进行估算,准确率能够达到79.3%。除此之外,该研究利用迁移学习对已有网络模型(包括VGG,inception-v3和ResNet50)进行微调,进一步将准确率提升到90.4%。虽然取得了相对较高的准确率,但是该方法在对病害严重度进行估算时使用的是分类思想,将病害严重度划分为4类标签,并没有对病害严重度有一个定量的诊断; 另外,病害严重度标签是由人工评估决定的,具有一定的主观性。
随着机器学习的应用越来越广泛,为病害严重度的定量估算提供了新的思路。拟采用卷积神经网络(convolutional neural network,CNN)、支持向量机回归(support vector machine regression,SVR)和BP神经网络(BP neural network,BPNN)构建估算模型,通过定量分析、对比不同模型的估算准确率,从而选择准确率高、使用便捷的模型,实现温室黄瓜霜霉病严重度的准确、定量估算,以期为温室黄瓜霜霉病的诊断研究提供理论和技术上的支持。
试验数据采集于天津市农科院农业创新基地日光温室5号棚,共140幅图像。图像采集时天气状况晴朗,光照良好,采集时间为2016年4月20日8:00—17:00,采集设备为Nikon Coolpix S3100数码相机,采用自动拍照模式,采集过程中不使用光学变焦,并保持闪光灯关闭。采集的原始图像尺寸为2 592×1 944像素,为进一步提高运算速度,将图片尺寸统一调整为800×600像素,同时为减少图像背景对估算结果的影响,本文使用Photoshop统一将图像背景人工剔除。
目前,温室黄瓜霜霉病严重度分级并没有统一的标准。通过文献分析发现,黄瓜霜霉病严重度分级的指标主要有3种[10-11]: 根据发病植株个数占总植株个数的百分比、单棵植株病叶数占全株叶片数的百分比和单片病叶病斑面积占叶片面积的百分比。本工作基于单片黄瓜叶片图像进行黄瓜霜霉病严重度估算,故采用单片黄瓜叶片病斑面积占叶片面积的百分比作为分级依据。根据行业标准《NY/T 1857—2010 黄瓜主要病害抗病性鉴定技术规程》,进一步根据温室黄瓜霜霉病病害严重度定量估算结果进行病害严重度分级,分级标准见表1。
表1 黄瓜霜霉病严重度分级
(1)基于CNN的估算模型
CNN是近年兴起的一种深度学习方法,在植物病害识别领域应用广泛[12-14]。卷积神经网络能够通过大量训练数据进行特征的自动提取,无需手动选取特征,已成为植物病害识别与诊断领域的研究热点[15]。以温室黄瓜霜霉病图像作为输入,构建适用于病害严重度估算的卷积神经网络结构,以病斑占其叶片面积百分比为输出,定量估算病害严重度,根据病害分级标准,计算得出温室黄瓜霜霉病病害等级。卷积神经网络结构如图1所示,输入图像为黄瓜霜霉病RGB图像,尺寸为128×128×3(宽128像素、高128像素、3个颜色通道)。该网络结构共包含5个卷积层,每个卷积层中卷积核的个数分别为32,64,128,256和512,所有卷积层中均采用大小为5×5的卷积核。为保持卷积层的输出数据和输入数据在空间维度的不变,在第2个和第3个卷积层使用边界填充。为提高模型训练速率,在卷积层后设置了批标准化层。卷积神经网络中包含4个池化层,其中卷积核大小为2×2,步长为2,池化函数为平均池化。网络包含2个全连接层,神经元个数分别为1 000和1。为抑制过拟合现象,在全连接层之前,设置丢弃率为50%的dropout层。本网络结构中卷积层和全连接层全部采用线性校正单元(ReLU)激活函数。
图1 卷积神经网络结构
采用随机梯度下降法(stochastic gradient descent,SGD)进行CNN模型的训练,Mini-batch大小设为64。学习率初始化为0.001,并且每20次训练以0.1的下降因子下降,最大训练次数设定为300。
在网络训练之前,将140张样本图像以8∶2的比例划分为训练集和测试集。为提升训练效果,进一步扩充数据量,采用旋转、翻转等方式分别对训练集和测试集进行扩充,扩充后的数据集共包含3 640张温室黄瓜霜霉病图像,其中训练集2912张,测试集728张。
(2)基于浅层机器学习的估算模型
SVR[16]和BPNN[17]是目前应用广泛的机器学习模型,采用SVR和BPNN这2种浅层机器学习模型构建黄瓜霜霉病严重程度估算模型。在构建模型之前,需要对黄瓜霜霉病病斑图像进行分割并提取特征。病斑分割的准确率是影响病害严重度估算结果的重要因素。为确保估算模型的准确率,基于可见光光谱颜色特征(combination of three visible color features,CVCF)结合支持向量机实现初始病斑分割,并采用SURF(speeded up robust features)特征及形态学操作对分割结果进行优化[3]。CVCF的检测方法见式(1)。
CVCF=exp(-β|α(pb(r)*IExR)+
DoG(σa, σb)*IH+pb(r)*Ib*)
(1)
其中,α为ExR参数,取值为0.1,此时CVCF受光照不均匀的影响最小。I为输入图像,IExR为ExR特征图像,IH为H颜色分量图像,Ib*为b*颜色分量,pb(r)为以r为半径的圆形区域均值滤波器,r=3,β=3,σa=5,σb=4,*为二维离散卷积操作。
病斑图像分割后进行病斑特征提取。由于霜霉病病斑与正常叶片在颜色上存在明显差异,因此,以颜色特征作为区分病斑与叶片的分割特征。提取的特征包括病斑图像RGB,HSV,L*a*b*,YCbCr和HSI共5个颜色空间15个颜色分量的平均值(average)和标准差(standard deviation)2个颜色特征,以及在此基础上结合灰度共生矩阵提取各颜色分量的对比度(contrast)、相关性(correlation)、熵(energy)和平稳度(homogeneity)4个纹理特征,共计90个特征。将提取的病斑图像特征与温室黄瓜霜霉病严重度的实际值进行相关性分析,结果如表2所示。从表中可以看出,共有18个特征与温室黄瓜霜霉病病害严重度的实际值具有较高的相关性,因此,采用这18个特征构建浅层学习模型,进行温室黄瓜霜霉病严重度估算。进一步的,从选择结果中可以看出,R_Average,G_Average,B_Average,a*_Average,Y_Average,I_Average共6个特征与温室黄瓜霜霉病严重度的实际值为正相关,其余12个特征为负相关。
表2 特征选择结果
**: 相关性在0.01水平上是显著的
**: Correlation is significant at the 0.01 level
构建的原始数据集中共包含140个样本,依据不同估算模型的要求进行相应的数据处理。将构建的原始数据集分为训练集、验证集和测试集,其中训练集包含84个样本,验证集包含28个样本,测试集包含28个样本。以温室黄瓜霜霉病病斑图像特征作为模型的输入,以病害严重度作为模型输出,构建基于浅层机器学习的病害严重度估算模型,其中,基于SVR的估算模型采用高斯核函数作为支持向量机模型的核函数,核大小设置为17。基于BPNN的估算模型采用Sigmoid函数作为传递函数,隐含层神经元个数为10。
(3)模型评估
采用决定系数(coefficient of determination,R2)和归一化均方根误差(normalized root-mean-squared error,NRMSE)定量分析严重度估算结果的准确率,进而对构建的模型进行评估。决定系数是度量拟合优度的统计量,取值范围为(0,1),R2的值越接近1说明估算的病害严重度和实际值拟合程度越好,反之,拟合程度越差; 归一化均方根误差用来衡量估算的病害严重度与真实值之间的偏差,其取值越小,表明估算准确率越高[18]。
采用CVCF结合支持向量机进行病斑分割,部分病斑图像分割结果如图2所示。采用病斑分割错分率对分割结果进行评估。由于在病害图像预处理时将背景进行了剔除,因此病斑分割取得了较好的准确率,错分率仅为9%,为下一步病害严重度定量估算奠定了良好的基础。
不同模型的估算结果如图3所示。从结果中可以看出,基于CNN的估算模型取得了最高的估算准确率,其R2为0.919 0,NRMSE为23.33%,其次是基于BPNN的估算模型,其R2为0.890 8,NRMSE为24.64%,基于SVR的估算模型的准确率最低,其R2为0.890 1,NRMSE为31.08%。
图2 黄瓜霜霉病病斑分割结果
从估算结果中可以看出,3种估算模型均取得了较好的估算结果,R2均达到了0.89以上,表明利用机器学习能够较好的实现黄瓜霜霉病严重度估算,其中基于CNN的估算模型取得了最高的估算准确率。SVR和BPNN的估算模型准确率较CNN的估算模型低的原因主要包含两个方面: 第一方面,基于SVR和BPNN的估算模型在估算病害严重度前需要进行病斑图像分割,因此,模型估算的结果会受到病斑分割准确率的影响。在温室现场环境采集的黄瓜霜霉病图像中,不可避免的会含有由光照条件不均匀和复杂背景环境产生的噪声,对病斑图像的准确分割造成了极大的挑战。第二方面,基于SVR和BPNN的估算模型以病斑图像的底层特征为输入,由于模型输入特征是人工设计的,其泛化能力较差,对病害严重度估算准确率也产生了一定的影响,而基于CNN的估算模型能够从温室黄瓜霜霉病训练图像中自动学习特征,并且选择病斑的特征进行病害严重度估算,因此模型的泛化能力较好,同时不需要病斑分割,能够取得较高的准确率。
根据黄瓜霜霉病严重度分级标准,将基于CNN的估算模型的728个测试样本进行分级,分级结果如表3所示。采用准确率、敏感度和F1值[19]进行准确率评估。其中,准确率指某一病害等级中正确分类的样本数占被分类为该病害等级的所有样本的百分比; 敏感度指某一病害等级中正确分类的样本数占该病害等级实际样本数的比例; F1值是指准确率和敏感度的调和均值。从分级结果中可知,针对728个测试样本,基于CNN的估算模型实现了670个样本的正确分级,准确率为92%。从单一病害等级的分级结果来看,基于CNN的估算模型对于温室黄瓜霜霉病严重度相对较低的情况,如1级和3级,能够取得较高的准确率,其F1值分别为0.97和0.88,而对于温室黄瓜霜霉病严重度相对较高的情况,如5级,其准确率出现了一定的下降,F1值为0.65。造成模型准确率下降的原因在于CNN模型训练集中,温室黄瓜霜霉病严重度相对较高的标签数据量较低。因此,在下一步的研究中,拟扩充病害数据量,进一步提升模型的准确率。
图3 温室黄瓜霜霉病严重程度估算结果
表3 温室黄瓜霜霉病严重度分级估算结果
基于可见光光谱图像,开展了温室黄瓜霜霉病严重度定量估算研究。利用温室黄瓜可见光图像数据,对比了3种机器学习估算模型,其中,基于CNN的估算模型取得了最高的准确率,其估算结果的R2为0.919 0,NRMSE为23.33%。结果表明,基于可见光光谱图像,利用卷积神经网络能够对黄瓜霜霉病严重度进行准确的估算,能够为黄瓜霜霉病的科学防治、合理施药提供指导意见。