牛潘婷,张宝林,2,3,潘丽杰,郭建鹏,李瑞鑫
(1.内蒙古师范大学 化学与环境科学学院,内蒙古 呼和浩特 010022;2.内蒙古自治区环境化学重点实验室,内蒙古 呼和浩特 010022;3.内蒙古节水农业工程研究中心,内蒙古 呼和浩特 010022)
病虫害对农业生产的影响巨大,是全球粮食安全面临的严峻挑战,不利于农业的可持续发展。根据联合国粮农组织(FAO)的估计,全球每年因植物病害而导致粮食产量损失为总产量的10% 左右[1]。中国是一个农业大国,应该更加关注病虫害监测与识别技术,以减少农业损失;然而,在大规模的农业生产中,依靠从业者自身经验来监测病虫害发生,工作量大且效率低[2]。要在保护生态的基础上提高病虫害防治,需要增强、优化病虫害识别技术[3],减少病虫害的发生频率与强度。农作物病虫害的无损检测是农业可持续发展的关键之一[4],是智慧农业发展的必然需求。
病虫害图像识别技术可替代传统的人工识别手段,为防止病虫害的传播提供必需信息。早期病虫害防治依赖于人工识别,得益于农耕人员的自身经验,有一定的局限性、主观性,识别效率低且准确率低。近年来,由于深度学习在图像识别、图像分类、视频处理、自然语言处理等领域取得了重大突破,也成为农业领域的研究热点。随着科学技术的发展,农作物病虫害识别监测已进入第三个阶段,即基于深度学习技术的人工智能阶段。
深度学习技术给农作物病虫害防治提出了新的方法。基于国内外学者的研究成果,本文总结了深度学习技术在农作物病虫害方面的应用及其研究进展,概述深度学习技术研究发展以及各算法的优点和存在的问题,对深度学习实际应用的关键技术进行总结,并对未来农作物病虫害识别、监测、研究趋势进行展望。
为了模拟人脑学习,借鉴人脑机制进行解释数据,2006 年Hinton 等[5]提出的深度学习成为机器学习的一个新领域。深度学习最大的特点是具有复杂的网络结构和庞大的数据样本。随后,出现了许多深度学习网 络,例如深 层信念网络(deep belief network,DBN)[6]、卷积神经网络(convolutional neural networks,CNN)[7]、循环神经网络(recurrent neural network,RNN)[8]、生成式对抗网络(generative adversarial networks,GAN)[9]、胶囊网络(capsule network,CapsNet)[10]等。
深度学习的发展分为三个阶段。20 世纪40 年代到80 年代,第一代神经网络MCP(mcculloch-pitts neuron)[11]出现,是深度学习的起源阶段;1986 年,适用于多层感知器的反向传播算法(back propagation,BP)[12]的提出,开始了深度学习的第二次热潮,但随后由于梯度消失问题,发展进入了低谷;2012 年,AlexNet[13]在ImageNet 图像识别大赛中夺冠,开启了深度学习的爆发式发展阶段。AlexNet 问世后,深度学习体系结构随着时间的推移而演变[14](图1),各种深度学习模型被广泛用于图像识别、分割和分类等。
图1 深度学习模型结构的发展Fig.1 Development of structure of deep learning models
在深度学习进入农作物病害识别领域之前,病虫害识别方法基于机器学习算法,通过训练算法分类能力,达到病虫害图像识别的目的。近年来,深度学习技术与农业科技相融合,使病虫害识别更智能化、便捷化、精确化。基于深度学习的农作物病虫害研究技术日趋完善,涵盖了10 余种农作物的20 余种病虫害。深度学习技术的优势之一是具有良好的自动特征提取功能[15],其中,应用最广泛的算法是CNN[16],具有很强的泛化能力,无需特意设计分类器。
基于深度学习的农作物病虫害识别大致包括病虫害数据集的创建、数据预处理、模型选取与训练、模型评价与验证几个步骤(图2)。
2.1.1 数据集创建 数量大、质量高且标签完备的数据集对网络模型的训练大有裨益。自2015 年以来,已经建立了许多公开的图像数据集,如PlantVillage[17]、ImageNet[17]和Corn Leaf Diseases(NLB)[17]等,但是高质量的公共图像数据集仍然缺乏[17]。PlantVillage 提供了几十种植物健康和患病状态图像[18](图3)。余小东等[19]采用“AI Challenger 2018”农作物病虫害数据集,开展了基于迁移学习的农作物病虫害检测研究。
图3 玉米常见病害Fig.3 Common diseases of maize
获取农作物病虫害图像的方法有田间实地拍摄、公开数据集、网络搜集、参加相关会议或研讨会进行交流等[20]。可根据实际需求,采用相机或智能手机自行采集、从网络下载或使用高光谱成像仪获取等。在病虫害识别研究中,常用数据图像是由专业相机、智能手机拍摄的RGB 图像。随着传感器及遥感技术的发展,农业领域图像数据更加多元化,为网络训练提供了极大便利[21]。
2.1.2 数据预处理 数字图像常存在噪声。农作物病虫害图像背景复杂,病害部位与健康部位可能无明显的界线;同时,也可能存在病害面积较小、不易识别等情况,给病害的精准识别、分类研究带来了很大挑战[22]。数据预处理主要是为了消除数字图像中的噪声,增进特征提取[20]的有效性与准确性。图像预处理[23]主要包括平滑滤波、消除噪音、图像增强等操作,以实现二值化[24],区分目标与背景。深度学习网络模型训练需要大量的数据样本。为了扩大数据集,数据增强是一种常用技术[25],包括镜像、旋转、随机裁剪、添加噪声和光度变换等(图4)。数据增强可以使CNN 模型具有更好的泛化能力,提高模型的鲁棒性[26]。
图4 数据增强Fig.4 Data augmentation
2.1.3 网络架构选择 由于深度学习在众多领域均成功应用,国内外学者将深度学习与农业领域高度融合,使CNN 等技术得到广泛应用。CNN 基本结构包括卷积层、池化层[27-28]、激活函数[28]、归一化层[28]和全连接层[28-29]等。农作物病虫害图像特征可以通过卷积层提取,应用池化层减少数据量并保留有用特征,通过完全连接层利用权重矩阵重建局部特征[21]。
农作物病虫害识别相关研究中常用CNN 模型有LeNet[7]、AlexNet[13]、VGG[30]、ResNet[31]、GoogLeNet[32]、DenseNet[33]和YOLO[34]等,各自具有独特的优势(表1)。根据模型的复杂度,深度学习技术可分为基于简单网络(如LeNet、AlexNet)与复杂网络的病害识别技术。LeNet 是早期的神经网络,具7 层神经网络结构,参数量较少,但识别效率较高;AlexNet 由5 个卷积层和3 个全连接层构成,网络性能较LeNet 有所提升;VGG 是较为成熟的CNN 结构。GoogleNet(Inception)采用不同大小的卷积核和池化层来解决网络规模可能造成的过拟合问题;ResNet 通过残差块解决梯度爆炸和梯度弥散问题,可以构建更深层次的网络架构;DenseNet 的特色在于加强了特征传递,更加有效地利用特征;YOLO 作为目标检测算法,具备体积小,背景误检率低等优点。如何选择并构建合适的网络模型,必须掌握网络模型特点,构建适用的网络结构。
表1 常用神经网络模型比较Tab.1 Comparison of neural networks in common use
2.1.4 模型评价与验证 基于深度学习的农作物病虫害监测识别中,常用于评价分类模型的指标主要有准确度、灵敏度、特异性、精确度和F1分数等[38]。
准确性(accuracy)是正确预测占所有预测的比例,
其中,TP(true positive)是被网络模型预测为正类的正样本,TN(true negative)是被网络模型预测为负类的负样本,FP(false positive)是被网络模型预测为正类的负样本,FN(false negative)是被网络模型预测为负类的正样本。
灵敏度(sensitivity)[38]是TP 与(TP+FN)的比值,表达了在数据集中找到所有相关实例的能力,
特异性(specificity)为真阴性评价的数量除以所有预测为阴性评价的数量,
精确度(precision)是对网络模型判断出的所有正例(TP+FP)来说,真正例(TP)占的比例,
当在精确度和灵敏度之间寻求平衡时,F1-Score 能更好地衡量不正确分类的情况。F1-Score 可以表示为
当精确度值高,说明错误率低,网络模型分类效果好;F1-Score 值越高,说明网络模型分类效果越好[38]。如果模型性能参数接近于1,即模型达到稳态,则该模型的性能更好。
2.2.1 模型架构与性能比较 AlexNet 的诞生掀起了深度学习的热潮(表2)。AlexNet 采用ReLu 函数替换传统的sigmoid、tanh 函数作为激活函数提升了训练速度,使用随机丢弃技术(dropout)选择性地忽略训练中的单个神经元缓解过拟合。AlexNet 参数量巨大,需要GPU 进行特征图的运算和融合。由于模型卷积核与部分特征进行卷积获取特征,模型泛化能力会有所降低,可以通过数据增强、增加网络深度改进训练以增强模型分类精度。VGG 通过将卷积层堆叠改进AlexNet,成功构建16~19 层卷积神经网络,表明网络深度增加可以对网络性能造成一定的影响,提高网络的准确率;缺点是会耗费更多的计算资源,相对其他网络而言,网络参数量非常高。GoogLeNet(Inception Net)通过堆叠卷积层模块,增加网络的宽度提升网络的性能,去除最后的全连接层,采用了全局平均池化层,同时采用Inception Module,提高了参数的利用率。
表2 基于深度学习网络的农作物病虫害研究Tab.2 Studies on crop diseases and pests based on deep learning
随着神经网络深度越来越深,精度达到了饱和,梯度就会出现爆炸或者消失;通过采用ResNet 残差思想,不采用全连接的方式,可以在一定程度上解决上述问题。使用ResNet,可以设计更深的CNN 网络而不损失网络的生成能力,解决了深层网络模型的梯度爆炸和梯度消失问题,并不断得到改进,出现了DenseNet、ResNeXt[45]等。DenseNet 是将所有层彼此连接起来,每一层都接受其前面所有层作为额外的输入,缓解了梯度消失的问题,并减少了计算量;但是DenseNet 耗费GPU 算力,普通显卡无法存储更深层次的DenseNet 模型,需要对其进行细致优化。
随着人工智能的发展,出现了轻量级卷积神经网络,可在计算资源受限的移动端和嵌入式应用CNN,如ShuffleNet、SqueezeNet 和MobileNet 等。ShuffleNet 存储要求低,训练时间短,但仍然可以实现较高的精度[42]。MobileNet 是利用深度可分离式卷积网络,将标准卷积分解成深度卷积与逐点卷积,大幅度地降低模型的参数量和运算量。李玲等[43]基于改进的MobileNet 模型,实现了苹果斑点落叶病、褐斑病、灰斑病、花叶病与锈病的识别,平均准确率达到99%。除此之外,自编码器、GAN、RNN 等其他网络结构也被用于病虫害研究(表2)。贾俊杰和李捷[46]利用训练好的SS-GAN 网络,生成病虫害的仿真图像,有效地解决数据集不足的问题,获得不错的图像识别效果。
2.2.2 网络架构选择及超参数优化 在农业领域中,应用最普遍的深度学习技术为CNN。在实际应用CNN 中有一定的局限性,容易出现梯度消失或爆炸问题[59]。在构建模型时,可采用优化算法改善模型的性能。当出现梯度爆炸时,可采用合理的初始化参数、选用非线性激活函数(如ReLU)、进行批量规范化处理或者使用残差网络等。
通常采用的神经网络优化方法有Adam、随机梯度下降法[38]等,使用正则化技巧[60]、超参数调优等。随机梯度下降法是在每轮的迭代中,随机选择一组样本进行训练并按梯度进行更新,相比普通的梯度下降更为快速,效率更高,并可实现在线更新,没有计算冗余。Thenmozhi 等[39]采用随机梯度下降法对CNN 进行优化,对昆虫进行分类,并与其他深度学习体系结构(AlexNet、ResNet、GoogleNet 和VGG)进行比较,结果表明优化后的CNN 识别精度更高。
在训练神经网络模型时,过拟合也会对网络的性能造成一定的影响。造成过拟合的原因主要有训练集的数量级和模型的复杂度不匹配、学习迭代的次数过多、训练集的数量级小于模型的复杂度。为了避免过拟合问题,可以采用缩小网络宽度和减少网络深度适当地调小模型复杂度,也可以采用数据增强技术增加数据量,使其与自己训练集的数量级相匹配。
以玉米叶片锈病、大小斑病和灰斑病研究为例,采用迁移学习构建DenseNet121,优化器为Adam,采用交叉熵损失函数。模型训练的迭代次数分别设置为100、150 和200。每经过10 次迭代,学习率减半。模型batchsize 设置为32 和64。实验共4 组,进行对比实验,选出更适合本研究的超参数。
实验的数据集由公开数据集、实地拍摄和网络下载的图像构成。经数据扩充后,玉米健康叶片图像为3 324 张,锈病图像3 717 张,大小斑病图像3 286 张,灰斑病图像3 330 张,共计13 657 张。研究中按8∶2的比例随机划分数据集为训练集与测试集。选用DenseNet121 进行玉米叶片病害的识别分类,对神经网络模型中的超参数进行设置,进行对比实验。
通过对不同的迭代次数和batchsize 进行设置,得到不同的识别准确率。不同的batchsize 对训练结果有很大的影响(图5,表3),batchsize 为64 时效果较好。因此,确定batchsize 为64 进行不同迭代的对比实验(图5,表4)。在实验中,batchsize 为64 时模型收敛效果较好,准确率可达99.1%。迭代次数也影响模型的识别准确率,随着迭代次数的增加,模型的准确率有所提高。通过对比模型训练结果,可以发现模型迭代次数设置为200、batchsize 为64 时模型识别准确率最高,可达到99.4%。
表3 不同batchsize 时训练集和测试集识别准确率Tab.3 Identification accuracy of train data and test data with different batchsize
表4 不同迭代次数时训练集和测试集识别准确率Tab.4 Identification accuracy of train data and test data with different epoch
图5 不同batchsize 的模型训练效果Fig.5 Model training results for different batchsize
随着深度学习在农作物病虫害识别中的广泛应用,一些问题也逐渐显露。如在深度学习网络模型训练中存在的问题。(1)数据资源少。采用深度学习技术进行病虫害识别时,需要庞大的数据资源,数据的质量直接影响模型训练与验证。在创建数据集时,高质量、完整标注、大规模的数据集对网络训练非常重要[25]。但是,在农业领域,还缺乏相应的大量标签数据集,建立相关数据库是一难题。(2)数据预处理耗时长。病虫害图像背景复杂,可能包含一些无用信息,尤其是实地拍摄的照片,还可能存在光照、角度等因素的影响[61],使数据预处理过程耗时较长。(3)模型训练时间长。当采用深度学习技术识别农作物病虫害时,需要对大量网络模型参数进行调整,网络模型训练时长达十几个小时甚至更久,才能获得最佳识别精度。(4)深度学习网络可能会出现梯度消失问题。为了获得更好的性能,神经网络的加深,可能会引起梯度消失问题,还可能出现过拟合问题。
数据集的多样性、多源性和规模对深度学习网络的性能有重大影响。拥有大规模数据集对于提高机器学习模型性能是非常必要的,公共图像数据集的稀缺性是影响深度学习在农业领域发展的重要因素。目前,农业领域的数据集相对较少且单一,建成资源充足且多样化的数据集,可大大缩短数据获取和模型优化所需时间:(1)建设包含农作物不同生育时期病虫害图像数据集;(2)完善重要农作物数据集整理,如玉米各生长发育时期病虫害图像(如蚜虫、螟虫、红蜘蛛、粘虫等)数据集汇总;(3)建立多源数据集,根据图像获取途径的不同,可通过智能手机、数码相机、无人机、多光谱、高光谱遥感等手段,建设相应的数据库;(4)建设不同病害类型的数据库,包括细菌性、真菌性、病毒性、生理性等农作物病害类型;(5)相较于病害数据库,虫害数据集更为少见,需要建立重要农作物虫害的数据集,例如常见的玉米螟、红蜘蛛、粘虫、双斑荧叶甲等;(6)采用深度学习的方法扩充数据集,可使用GAN(generative adversarial network)对病虫害数据集进行扩充,探索使用CycleGAN 实现图像风格迁移,由健康叶片转移生成为病害图片。
训练网络模型时,可以进行网络结构优化以提高网络模型性能。研究表明,在模型训练时,对模型结构进行优化,可以提升模型分类精度、减少模型运行时间、减少计算量等。常用优化手段有添加正则项、添加Dropout 层、改变池化组合、添加Inception 块、融合多尺度特征、使用密集连接、使用非线性(如ReLu)函数等减少训练参数。
在深度学习领域中,很多学者使用迁移学习(transfer learning)开展研究工作[62]。迁移学习是将在某个任务上训练出来的网络模型参数,经过微调后直接运用到新的任务中。迁移学习的好处包括:(1)减少模型训练时间,使模型的泛化能力得到提高;(2)降低训练费用,采用导出特征向量的方法进行迁移学习,后期的网络模型训练费用会很低,电脑运行压力减小,在没有深度学习机器的情况下也可以进行迁移学习;(3)适用于小数据集,迁移学习利用CNN 在大数据集上已经训练获得的特征提取能力,可以最大效率地使用某些任务的无标签数据,解决部分数据不足或原有数据不存在的问题。
基于深度学习的农作物病虫害识别、监测研究与应用进展,建议未来开展以下研究工作:(1)构建病虫害图像数据库,大规模数据集对于提高网络模型的性能是非常重要的,尤其是农作物虫害数据更少,是农业领域相关研究进展缓慢一个重要原因;(2)利用迁移学习思想进行农作物病虫害识别,更有效地使用可利用的数据,提高模型的泛化能力;(3)优化深度学习神经网络架构,由于网络模型对于背景复杂,成像模糊的图像识别精度不高,应积极优化、改进模型,例如添加Inception 模块、扩展卷积层、增加网络深度等;(4)构建移动深度学习平台,轻量化网络结构,研究应与实际需求相结合,以病虫害图像识别技术为核心,注重研发轻量级、移动端可用的病虫害防治的软件;(5)农作物病虫害图像分割是研究热点和难点,虫害图像识别相对于病害图像识别发展较慢,混合病害研究尚属罕见,农作物病害区域可能与健康区域没有明显的界线,同一植株叶片也可能有多种病害,病虫害特征的定位、识别和混合病害的研究将是今后一段时间内的研究重点,农作物病虫害图像分割领域应引入最新科技,寻求最有效的图像识别方法[63];(6)近地无人机遥感、高分辨率卫星遥感与地面观测技术高度融合,实现大面积农作物病虫害的识别与检测。
深度学习技术的研究与应用正处于高速发展阶段,为农作物病虫害检测与识别分类提供了新的研究思路与方法。目前研究的主要数据源为使用专业相机、手机获取的彩色图像。基于CNN 架构改进或自建CNN 是农作物病虫害识别的核心技术,以CNN 为骨干的深度学习技术简单高效,发展较快且较为成熟,基于迁移学习的深度学习技术是农作物病虫害研究的热点。基于神经网络的深度学习技术已被广泛应用于农作物病虫害的识别和分类,并显示出巨大的应用潜力。基于深度学习图像目标检测与识别技术有助于病虫害识别,做到及时防治,降低对农作物产量和品质的影响,对于保障农业高质量生产、推动农业绿色发展具有重要意义。