目前我国玉米的播种面积约为2×107 hm2,种植面积和总产量居世界第2位[1]。由于受天气、地理、品种和生态环境破坏等因素影响,玉米螟Pyrausta nubilalis虫害日益加重,在我国北方尤为严重,严重降低了玉米产量。玉米螟多以老熟幼虫在玉米的秸杆、根茬及穗轴中越冬,主要危害表现为:叶片抽出后呈现出许多排孔,抽雄时蛀食雄穗主枝,造成果穗缺粒或茎杆易倒折[2]。一般春玉米受害导致减产约10%,夏玉米减产约20%~30%。因此,对玉米螟进行早期诊断和防治是保证玉米高产稳产的重要措施之一。
随着计算机技术的不断发展,利用图像识别技术进行病虫害诊断,己成为农作物病虫害诊断检测的重要研究方向[3-4]。传统的基于机器学习的作物病虫害识别方法,需要针对病虫害类型精心设计提取出图像特征[5]。由于植物类型、生长阶段、病虫害种类、环境光照等因素的复杂性,同时离不开专业人员的指导,植物病虫害症状特征提取困难[6],在一定程度上制约了机器学习技术在农业领域的快速发展。卷积神经网络[7](Convolutional neural network, CNN)算法自20世纪90年代被提出后,分别在图像分类[8-9]、语音识别[10-11]和自然语言处理[12]等模式识别领域取得了重大突破,到21世纪初已经成为一种流行的高效机器学习方法。CNN通过引入局部连接、权值共享、池化操作、非线性激活等方式,允许网络自动从数据中学习特征,与传统的机器学习方法相比具有更强大的特征学习和表达能力[13]。卷积神经网络等深度学习方法在农业领域也得到了广泛应用,为智慧农业和精准农业的发展提供了新的契机[14]。
2009年刘立波等[15]设计了3个多层感知分类器进行病斑识别及准确率的对比验证,分别采用叶片正常区域和病斑区域的纹理特征、颜色特征以及纹理和颜色的组合特征作为不同分类器的输入单元,准确率要比单独使用纹理特征或颜色特征高10%~15%,研究结果为进一步实现水稻病害自动诊断打下了基础。2016年Tan等[16]拓展了机器学习理论及其应用范畴,构造了基于机器学习的作物病变图像识别的数据结构和算法,为面向作物病害图像识别深度学习的农业智能系统产品开发设计提供了参考。2017年孙俊等[17]针对卷积神经网络训练收敛时间长、模型参数庞大等问题,提出了1种批归一化与全局池化相结合的卷积神经网络识别模型,用于训练识别14种不同植物共计26类病害的最优模型,改进后模型识别准确率能达到90%以上。同年,梁万杰等[18]提出了一种基于卷积神经网络模型的水稻二化螟识别方法,试验通过设计1个10层的卷积神经网络模型,可有效地提取图像的特征,对水稻二化螟识别具有很好的抗干扰性和鲁棒性,模型命中率、分类精度分别为86.21%和89.14%。2018年马浚诚等[19]基于图像处理和深度学习技术,构建了基于卷积神经网络的病害识别分类器,同时采用数据增强方法构建了温室黄瓜病害识别分类器的输入数据集,该病害识别系统能够快速、准确地实现对含有光照小均匀和复杂背景的温室黄瓜病斑图像的分割。
以上这些基于机器视觉和卷积神经网络算法的识别模型,相对于常规的农作物病虫害识别方法均取得了较好的试验结果,但是,卷积神经网络在玉米等作物虫害识别方面的应用还较少,识别准确率也不高[18, 20]。通过对卷积神经网络和前人的方法进行深入学习,针对卷积神经网络训练周期长、识别准确率不理想等问题,本研究构建了1种基于优化Inception-v4卷积神经网络结构的玉米螟虫害识别模型,并将优化后的模型与对照的卷积神经网络算法进行了对比试验和结果评估。本研究可为进一步开发基于手机等移动终端的作物病虫害识别APP提供技术支撑,也可为辅助玉米虫害识别诊治系统提供决策支持。
1 材料与方法 1.1 试验环境模型的训练在TensorFlow框架下完成,硬件环境:Intel C1612 chipset服务器主板、E5-2680V4 2.8 G双路CPU、四GPU,64 GB DDR3 1600 RECC内存;GTX 1080TI 11 GB显存。软件环境:CUDA Toolkit 9.0,CUDNN V7.0;Python 3.5.2;TensorFlow-GPU 1.8.0;Windows 7 64位操作系统;编程语言为Python。
1.2 数据来源与处理 1.2.1 数据来源试验采集了“国家星火计划”吉林省农安县试验田中基于复杂背景下的玉米螟虫害图像和公开数据集中的图像作为卷积神经网络的建模输入。农安县数据采集试验田网格如图1所示。
|
图 1 数据采集试验田网格图 Fig. 1 Grid map of field for data collection and experiment |
农安县地处松辽平原腹地,东经124°31′~125°45′,北纬43°55′~44°55′,海拔250~270 m,年平均降水量507.7 mm,年平均温度4.7 ℃,是玉米螟虫害自然诱发的地区。试验数据的采集装置为安卓系统手机,后置1 200万像素摄像头,拍摄距离约为35 cm,采集日期为7—8月。这种自然环境下采集试验数据的研究方式,有利于本文研究方法在大田环境下的适用性。
1.2.2 数据增强与处理试验共选取了921张玉米图像样本,其中健康图像318张,标记为0,剩余603张为虫害图像,标记为1。为了提高模型识别的准确率,卷积神经网络模型在训练过程中需要大量样本数据。由于虫害样本采集数量较少,目前还没有大型的病虫害图像公开数据集,试验采用数据增强方法对已有图像样本进行数据扩充。通过对TensorFlow平台ImageDataGenerator类中参数的调节来增强数据,各项参数设置如下: rotation_range为40,width_shift_range、height_shift_range和shear_range均为0.2,fill_mode为‘nearest’。
对于构建GoogLeNet模型的二分类问题,为了避免由于正负样本集数量相差较大导致模型出现训练失偏的问题,该研究通过随机裁剪、旋转等变化将感染虫害的图像随机扩大了4倍后得到1 272个正样本,未感染虫害的图像随机扩大了2倍后得到1 206个负样本,使正负样本基本达到平衡,以满足试验需求。
为了方便后续试验,提高特征抽取、图像分割、匹配和识别的准确性,试验在TensorFlow平台中编写了数据预处理程序代码,使用图像处理辅助模块中的ImageDataGenerator类创建生成器,将图像文件自动转化为处理好的张量批量,以长边为基准按比例生成大小为299×299的RGB图像;再使用fit_generator方法对数据进行拟合,同时传入nalidation_data生成器参数,用来验证数据批量。以一组玉米螟虫害图像为例(图2)。
|
图 2 玉米螟虫原图(a)和经过数据增强和预处理的图像(b、c、d) Fig. 2 Original image (a) and images after data enhancement and preprocessing (b,c,d) of corn borers |
GoogLeNet通过设计Inception模块,引入多尺度卷积提取多尺度局部特征的特性,在增加网络宽度和深度的同时,克服了因深度和宽度增加带来的参数量爆炸和优化计算量剧增的问题,提高了深度网络模型质量。通过迁移学习的方法将GoogLeNet预训练模型在ImageNet数据集上学习到的知识进行特征迁移,获得Inception-v4的预训练权重,并将学习到的特征向量作为激活值重新训练模型。图3是本文所使用的Inception-v4模型的整体结构,图4是其中的Stem部分,用于对进入Inception模块前的数据进行预处理。Stem后使用了3种共计14个Inception模块,模块参数的取舍靠经验判断,3种Inception模块间的3种Reduction使用了并行结构来防止遇到瓶颈。
|
图 3 Inception-v4的整体结构 Fig. 3 Overall structure of Inception-v4 |
|
图 4 Stem部分结构示意图 Fig. 4 Structural diagram of Stem part |
从图3可以看出,GoogLeNet主体部分由多个Inception模块堆叠而成,模块通过设计引入1×1、3×3、1×3和1×3卷积核分支,对在不同部位、不同尺度的玉米螟虫害图像结构进行特征提取和特征学习。Inception模块接收前一层输入,通过不同尺度和功能分支的并行处理后级联形成该Inception模块的输出,实现多尺度特征融合。在Inception模块和Reduction模块之间引入1×1的卷积核来增加网络深度,改善网络非线性程度,同时减少大卷积核(例如3×3、5×5卷积核)对象的维度,降低运算量。考虑到设计的网络层次较深,本研究的网络中增加了批标准化(Batch normalization,BN)操作,规避因网络深度导致的配准漂移,同时在主干网络的旁侧增加了1条额外的全连接Softmax辅助分类器,用主干分类器和辅助分类器损失函数梯度之和更新网络模型参数,减少训练过程中梯度消失的问题。
1.3.2 模型优化经典的GoogLeNet模型将ReLu(线性整流函数)作为模型的非线性映射层。虽然在大部分的训练中ReLu都表现出了相当的性能,能够更快地收敛,但是在实际训练中发现,随着训练数据不断增多,越来越多卷积核的数值不再发生变化,也就是权重不再更新,导致了识别准确率下降的问题。为了提高对玉米螟虫害图像识别的准确率,增强模型的鲁棒性,试验重新选择了Sigmoid函数[f (x)]作为模型的激活函数:
| $ {{f}}(x) = \frac{1}{{1{\rm{ + }}{{\rm{e}}^{ - x}}}}{\text{,}} $ | (1) |
式中,
Sigmoid函数也叫Logistic函数,在特征相差比较复杂或是相差不是特别大时效果比较好,可以将一个权值映射到(0,1)的区间,加强模型的非线性表达能力。将Sigmoid作为激活函数,在反向传播算法中,要对激活函数求导,Sigmoid的导数[f ′(x)]表达式为:
| ${{{f}}}'(x)={{f}}(x)\left[ 1-{{f}}(x) \right]{\text{。}}$ | (2) |
由Sigmoid函数的导数公式可以发现,网络训练过程容易出现梯度消失的情况,从而无法完成深层网络的训练,该研究在此基础上选用小批量梯度下降算法(Mini-batch gradient descent,MBGD)算法优化模型。该算法增加了一次更新使用的训练数据量,使得目标函数收敛得更加平稳;通过矩阵运算,每次在一个批处理上优化神经网络参数并不会比单个数据慢太多,可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。相比ReLu函数,选取Sigmoid作为激活函数可以在一定程度上增加模型的鲁棒性和泛化能力,同时运用MBGD方法对模型优化,使得玉米螟虫害图像识别的准确率有了相当水平的提升。网络的pooling层采用Max-pooling(最大池化)方式[gmax(x)]和Avg-pooling(平均池化)方式[gave(x)]混合:
| ${g_{\max}}\left( x \right) = {x_{{i_{\max}}}}{\text{,}}$ | (3) |
| ${g_{{\rm{ave}}}}(x) = \frac{1}{N}\sum\limits_{i = 1}^N {{x_i}}{\text{。}} $ | (4) |
为了进一步降低过拟合,本文在模型密集链接分类器之前添加了1个Dropout层,具体步骤总结如下:1)调节参数,改变数据尺寸以及角度;2)定义1个Dropout层,添加到密集链接分类器之前;3)利用数据增强生成器训练网络;4)保存模型,绘制结果,验证曲线。
2 结果与分析 2.1 试验结果模型的训练与测试均采用GPU加速,部分参数设置为:初始学习率0.01、冲量0.9、权值衰减0.000 5、批处理大小50、测试间隔和显示间隔均设置为1个epoch(全部训练数据完成1次运算)、最大训练次数设置为4 000个epoch。本文随机选取85%数据集的图像用于训练,剩余15%数据作为测试数据用于评估算法的表现。对原始图像进行预处理后,将其作为输入放入CNN模型中训练模型参数。卷积层和池化层的激活函数均采用Sigmoid函数;全连接层的神经元与上一层的所有神经元连接,学习率更新策略采用指数衰减,最后由Softmax分类器对得到的特征进行计算,得到虫害和背景像素的识别概率,从而得到分类结果。表1展示了卷积神经网络改进前后各项参数及平均识别准确率的对比情况。
|
|
表 1 改进前后模型各项参数及识别准确率 Table 1 Various parameters and recognition accuracy of the model before and after improvement |
由表1可以看出,该研究提出的卷积神经网络模型在玉米螟害虫害图像识别任务上,图像平均识别准确率为96.44%,较改进前的卷积神经网络提高了7.27%;处理单张图像的平均时间快了0.08秒,识别效率提高了17.02%。
2.2 模型性能影响因素分析 2.2.1 MBGD优化GoogLeNet模型性能变化趋势卷积神经网络模型优化的实质就是迭代最小化损失函数的过程,本文采用MBGD算法优化GoogLeNet模型,通过对迭代过程中损失函数值的变化趋势以及对玉米螟虫害识别准确率进行分析,可以得到采用MBGD优化方法对模型性能的影响。
由图5可以看出,随着模型迭代次数的不断增加,训练损失函数值呈下降趋势,表明经过MBGD优化的模型在训练过程中,其预测损失偏差逐渐降低;同时,模型在测试集上的预测准确率呈整体上升趋势。模型识别准确率逐渐上升且损失函数值逐渐下降的变化趋势反应出模型在不断迭代更新参数过程中性能得以优化,经过MBGD优化的模型收敛速度很快,在4 000次的试验后达到了较好的收敛状态。
|
图 5 训练迭代次数对识别准确率和损失函数的影响 Fig. 5 Effects of iteration number in training on recognition accuracy and loss function |
数据增强为模型训练提供了强大的数据支撑,通过对数据增强前后4 000次迭代试验识别准确率变化值的测定,绘制了数据增强前后识别准确率随训练迭代次数变化的曲线,如图6所示。
|
图 6 数据增强前后训练迭代次数对识别准确率的影响 Fig. 6 Effects of iteration number in training on recognition accuracy before and after data enhancement |
由图6可以看出,在前1 000次训练过程中,数据增强前后2个神经网络模型的识别率相差不大,当模型的迭代次数超过1 000后,经过数据增强后训练出的神经网络模型识别准确率均高于仅使用原始图像数据训练的神经网络模型。试验结果表明,数据增强对模型准确率有较大影响,对识别准确率的提高有重要意义。
2.2.3 BN操作对模型性能的影响由于网络模型的深度较大,为了避免出现因前期网络中细微的变化引起后面几层网络中数据分布改变,本研究在网络中引入BN操作对神经元进行处理。试验发现,通过将BN操作引入到模型训练过程中,网络模型训练可以选择较大的初始学习率,同时可以对每个小批数据进行规范化,让每个隐层节点的激活输入分布固定下来,同时可避免因规范化操作引起的局部特征信息丢失问题,在更大程度上保留了训练集的先验信息,以便后面的网络获得更精准的数据。
2.2.4 ROC曲线评价模型分类结果为了判断改进的卷积神经网络算法的优劣,本文绘制了接收者操作特征(Receiver operating characteristic,ROC)曲线并计算了相关曲线下面积(Area under curve,AUC),如图7所示。真正类率(True positive rate,TPR)为分类器所识别出的正实例占所有正实例的比例,计算公式为:
|
图 7 模型识别性能评估曲线 Fig. 7 Evaluation curve of model identification performance |
| $ {\rm{TPR}}={\rm{TP}}/({\rm{TP}}+{\rm{FN}}){\text{,}} $ | (5) |
式中,TP是真阳性值,FN为假阴性值;假正类率(False positive rate, FPR)为分类器错识别为正类的负实例占所有负实例的比例,计算公式为:
| $ {\rm{FPR}}= {\rm{FP}}/({\rm{FP}} + {\rm{TN}}){\text{,}} $ | (6) |
式中,FP是假阳性值;TN为真阴性值。
由图7可以看出,随着预测次数的增加,模型预测对的次数增多,模型预测数据的真正类率大于假正类率;由曲线的变化趋势可以得出,模型ROC的曲线靠近纵轴,且曲线上升迅速,模型性能表现良好。根据ROC曲线来量化评价该模型的性能,试验通过计算得到AUC=0.960 17,表明模型的分类性能良好,具有较高的分类平衡性能。
3 结论针对常规的玉米螟虫害识别方法存在准确率和效率低的问题,本文提出了基于卷积神经网络的玉米螟虫害识别模型,与经典的卷积神经网络算法相比,其优越性在于利用了Inception结构在目标识别、图像分类等任务上可以对多尺度特征进行提取,加宽加深网络的同时降低网络识别时长,同时试验选取了更加适合的激活函数和梯度下降算法得到了最优模型,获得了更高的识别准确率,也在一定程度上提高了模型识别效率。本文作者对模型性能的影响进行了对比分析,现将试验结果及结论总结如下:
1)改进的卷积神经网络模型对于玉米螟虫害平均识别准确率为96.44%,较改进前的网络识别准确率提升了约7%,识别效率提高了约17%,可以用于实际生产应用;
2)采用MBGD优化GoogLeNet模型,可以在降低损失值的同时明显提高模型的识别准确率,使模型得到更好的收敛;
3)数据增强技术对整个网络的影响很大,通过数据扩充方式避免了因数据量不足导致模型训练精度不佳的问题,丰富了数据的多样性,减少了模型的过拟合现象,同时提升了模型的识别准确率;
4) 引入BN操作的网络模型训练可以选择较大的初始学习率,同时可以对小批数据进行规范化,在一定程度上加速模型的收敛,模型识别准确率趋于平稳。
研究与试验结果证明,改进的卷积神经网络模型对玉米螟虫害图像识别具有较高的实用性,对于其他农作物害虫识别具有较强的应用价值。该优化模型将应用于吉林省榆树市和农安县的玉米精准作业示范基地,为以后大田玉米等农作物精准喷药提供决策支持和技术支撑。
| [1] |
杨虎. 20世纪中国玉米种业发展研究[D]. 南京: 南京农业大学, 2011.
( 0) |
| [2] |
王连霞. 齐齐哈尔市玉米螟发生规律的演变及应用赤眼蜂防治技术的研究[D]. 北京: 中国农业科学院, 2014.
( 0) |
| [3] |
苏一峰, 杜克明, 李颖, 等. 基于物联网平台的小麦病虫害诊断系统设计初探[J]. 中国农业科技导报, 2016, 18(2): 86-94. ( 0) |
| [4] |
汪京京, 张武, 刘连忠, 等. 农作物病虫害图像识别技术的研究综述[J]. 计算机工程与科学, 2014, 36(7): 1363-1370. DOI:10.3969/j.issn.1007-130X.2014.07.026 ( 0) |
| [5] |
王翔宇, 温皓杰, 李鑫星, 等. 农业主要病害检测与预警技术研究进展分析[J]. 农业机械学报, 2016, 47(9): 266-277. DOI:10.6041/j.issn.1000-1298.2016.09.037 ( 0) |
| [6] |
SLADOJEVIC S, ARSENOVIC M, ANDERLA A, et al. Deep neural networks based recognition of plant diseases by leaf image classification[J]. Comput Intel Neurosci, 2016, 3289801. DOI:10.1155/2016/3289801 ( 0) |
| [7] |
李松, 魏中浩, 张冰尘, 等. 深度卷积神经网络在迁移学习模式下的SAR目标识别[J]. 中国科学院大学学报, 2018, 35(1): 75-83. ( 0) |
| [8] |
黄双萍, 孙超, 齐龙, 等. 基于深度卷积神经网络的水稻穗瘟病检测方法[J]. 农业工程学报, 2017, 33(20): 169-176. DOI:10.11975/j.issn.1002-6819.2017.20.021 ( 0) |
| [9] |
王春华, 韩栋. 自适应控制深度学习和知识挖掘图像分类[J]. 沈阳工业大学学报, 2018, 40(3): 334-339. DOI:10.7688/j.issn.1000-1646.2018.03.17 ( 0) |
| [10] |
包晓安, 徐海, 张娜, 等. 基于深度学习的语音识别模型及其在智能家居中的应用[J]. 浙江理工大学学报(自然科学版), 2019, 41(2): 217-223. ( 0) |
| [11] |
戴礼荣, 张仕良, 黄智颖. 基于深度学习的语音识别技术现状与展望[J]. 数据采集与处理, 2017, 32(2): 221-231. ( 0) |
| [12] |
王飞, 陈立, 易绵竹, 等. 新技术驱动的自然语言处理进展[J]. 武汉大学学报(工学版), 2018, 51(8): 669-678. ( 0) |
| [13] |
龙满生, 欧阳春娟, 刘欢, 等. 基于卷积神经网络与迁移学习的油茶病害图像识别[J]. 农业工程学报, 2018, 34(18): 194-201. DOI:10.11975/j.issn.1002-6819.2018.18.024 ( 0) |
| [14] |
陈桂芬, 李静, 陈航, 等. 大数据时代人工智能技术在农业领域的研究进展[J]. 吉林农业大学学报, 2018, 40(4): 502-510. ( 0) |
| [15] |
刘立波, 周国民. 基于多层感知神经网络的水稻叶瘟病识别方法[J]. 农业工程学报, 2009, 25(S2): 213-217. ( 0) |
| [16] |
TAN W, ZHAO C, WU H. CNN intelligent early warning for apple skin lesion image acquired by infrared video sensors[J]. High Technology Letters, 2016, 22(1): 67-74. ( 0) |
| [17] |
孙俊, 谭文军, 毛罕平, 等. 基于改进卷积神经网络的多种植物叶片病害识别[J]. 农业工程学报, 2017, 33(19): 209-215. DOI:10.11975/j.issn.1002-6819.2017.19.027 ( 0) |
| [18] |
梁万杰, 曹宏鑫. 基于卷积神经网络的水稻虫害识别[J]. 江苏农业科学, 2017, 45(20): 241-243. ( 0) |
| [19] |
马浚诚, 杜克明, 郑飞翔, 等. 基于卷积神经网络的温室黄瓜病害识别系统[J]. 农业工程学报, 2018, 34(12): 186-192. DOI:10.11975/j.issn.1002-6819.2018.12.022 ( 0) |
| [20] |
刘永波, 雷波, 曹艳, 等. 基于深度卷积神经网络的玉米病害识别[J]. 中国农学通报, 2018, 34(36): 159-164. DOI:10.11924/j.issn.1000-6850.casb18030031 ( 0) |
2020, Vol. 41



0)