何雨霜,王琢,王湘平,肖进,罗友谊,张俊峰
(武汉市农业科学院,武汉市,430345)
农作物病害识别是农业生产活动中的一个重要环节,病害识别的时效性和准确性将直接影响农作物后期的安全。原始的病害检测方法主要依赖于人类肉眼识别,这意味着观察员需要具备丰富的农业知识和充沛的体力,才能在大面积农场中准确并及时地判断出不同种类农作物所患有的不同类型病害,由于专业人才少、种植面积大、种植地形崎岖等客观因素的存在,这种高成本低收益的方法,并不适合在全国范围内进行大规模推广。
随着图像识别技术在各行各业的成功应用,基于机器视觉的农作物病害图像识别方法得到了越来越多的学者们的青睐,并逐渐取代了原始的人眼识别方法,该方法通过对人工或者机器拍摄得到的农作物图像进行判断以确定作物是否患病,具备可移植性强、时效性高、准确率高、成本低、使用简单等众多优点。根据使用方法的不同,现有的技术主要可以分为两种:基于传统机器学习算法的病害识别和基于深度学习的病害识别,传统机器学习算法的局限性较大,其模型性能严重依赖于人工设计特征的好坏,难以在复杂的真实自然环境中取得良好的检测结果[1-3]。在互联网大数据的加持下,基于深度学习的农作物病害识别方法在性能上远优于传统机器学习方法,是当前的研究热点,具有非常高的研究价值和广阔的应用前景。
因此,本文着眼于深度学习在农作物病害识别中的应用,对深度学习相关知识进行了简要概述,并介绍了近年来相关研究工作的进展,指出了运用深度学习的病害识别方法所面临的主要挑战,提出了可能的解决方案,对未来的发展方向进行了展望。
深度学习这一概念最早于2006年由Hinton等[4]提出,其核心思想是通过构建一个具有多层隐藏层的神经网络来处理海量的训练数据,以实现对数据本质特征的提取,从而提升模型检测或分类性能。伴随着各种存储设备和GPU的迭代升级,计算机的数据存储和处理能力得到增强,极大地推动了深度学习的发展。目前,深度学习技术广泛地应用计算机视觉、推荐系统、自然语言处理以及语音识别等众多领域,尤其是在计算机视觉领域取得了相当优异的成果,例如随处可见的人脸识别、车牌检测、文字识别、图文互搜等应用场景。
近年来,在众多研究者的努力下涌现出了一大批优秀的基于深度学习方法的神经网络模型,包括深度信念网络(DBN)[5]、深度玻尔兹曼机(DBM)[6]、卷积神经网络(CNN)[7]、循环神经网络(RNN)[8]、生成式对抗网络(GAN)[9]和胶囊网络(CapsNet)[10]等。其中,卷积神经网络是当前最常使用的深度模型之一,具备局部感知和权值共享两大特点,这也使得卷积神经网络相较于其他网络更适合于处理图像数据,在图像识别问题上使用十分广泛。如图1所示是使用卷积神经网络识别农作物病害的网络结构,从图中可知,卷积神经网络由输入层、卷积层、池化层、全连接层和Softmax层五种结构所组成。一张农作物病害图像经由输入层输入后,通过多层卷积和池化操作,由浅层提取出诸如图像颜色、边缘等简单特征,再由后续的深层提取出图像几何、语义等复杂的抽象特征,最后由全连接层和Softmax层完成分类功能,实现对作物患病类型的判断。
图1 CNN网络结构图
众所周知,深度学习模型普遍通过建立复杂的网络结构以实现强大的特征学习能力。几种常用的卷积神经网络,如VGG[11]、GooLeNet[12]、ResNet[13]和DenseNet[14]等,均包含数十甚至数百层的隐藏层,这意味着需要有足够多的样本才能满足这些深度模型的训练需求。而农作物病害图像识别领域面临着数据量不足的挑战,在数据采集阶段,由于作物生长具有季节性、病害发生具有不确定性等因素的影响,使得采集特定的农作物病害图像十分困难。在数据处理阶段,需要对采集到的大量图片进行病害类型标记,有些甚至还要详细地标注出每个病害所发生的准确位置,这是一件非常耗时费钱的工作,并且对标注人员的专业水平要求很高,其必须对不同病害所呈现出的不同特征表现有着充分的了解。
本文调研了多个相关论文和比赛,整理出一些当前公开可用的数据集以供后续研究参考,如表1所示。PlantVillage数据集由Hughes等[15]建立,是当前使用最为广泛的一个大型植物病害数据集[16-19],该数据集总计有超50 000张的健康或患病植物图片,涵盖了14种不同的作物,其中患病样本包含17种真菌性疾病、4种细菌性疾病、2种病毒性疾病、2种霉菌性疾病和1种由螨虫导致的疾病。Wiesner-Hanks等[20]针对玉米叶面常见的北方叶枯萎病(NLB)建立了一个玉米田间图像数据集,是目前为止最大的单一植物疾病公开图像数据集,研究人员在接种了NLB致病原菌的玉米试验田中进行数据采集,然后由专家对采集得到的病害图像进行注释,总共采集图片18 222张,标注NLB病变区域105 705个。Singh等[21]发布的一个真实场景下的数据集PlantDoc,总共包含13种植物和多达17种疾病的图像数据2 598张。Barbedo等[22]建立的PDDB数据库总计有涉及21种植物的171种疾病的样本图像2 326张。在此基础上,Barbedo根据特定标准对每个图像进行了细分,将图像数量扩增至46 513张,这个细分后的数据库称为XDB。Prajapati等[23]建立的一个非常小的水稻病害数据集,包含细菌性叶枯病、褐斑病和叶黑穗病三种疾病,每种疾病仅对应有40张样本图像。Thapa等[24]在各种不同的拍摄角度、照明、表面和噪声条件下进行采集,总计3 651张苹果叶部病害图像,其中包含1 200张苹果疮痂病、1 399张雪松苹果锈病、187张复杂疾病(即同一叶片上存在一种以上的病害类型)和865张健康叶片。
表1 农作物病害识别公开数据集Tab. 1 Public datasets for crop diseases identification
一些比赛和网站来源的数据集:在2018年举办的AI Challenger 2018全球AI挑战赛中提供了一个大型的多类别农作物病害数据集,其样本由PlantVillage数据集中的图像和一些来自真实场景的图片所构成,标注图片50 000张,涵盖10个物种,10个健康类型,27种病害,其中有24种病害又被细分为一般和严重两种病害程度,根据物种、疾病及其发生的严重程度来区分,总计有61个不同类别。农业病虫害研究图库(IDADP)是由中国科学院合肥智能机械研究所牵头、联合多个其他研究所建立的一个数据库,整合了大量的农业病虫害图像资源,涉及范围广泛,包含谷类、豆类、纤维类、蔬菜和果树等。
本章节对近年来基于深度学习的农作物病害图像识别方法进行了概述,根据训练样本采集环境的不同,可以将这些方法分为两类:实验室环境和野外环境下的农作物病害识别。由于卷积神经网络在图像识别问题上具有天然优势,绝大多数的方法都是基于卷积神经网络或其变种实现的,本文也主要关注于卷积神经网络相关的识别方法。
龙满生等[25]采集了藻斑病、软腐病、煤污病、黄化病和健康叶总计5类的油茶叶片样本,并将采集的样本放置于光照充足的室内环境的白色背景下进行拍摄,得到每一类样本750张,利用迁移学习中的参数迁移方法对AlexNet模型进行训练以实现油茶叶片病害的自动识别,从学习率、正则化、数据扩充和迁移学习四个方面出发,分别测试每项参数对模型性能的影响,在最优的参数选择下,模型的分类准确率高达96.53%。Karlekar等[26]基于深度学习技术提出一种用于复杂背景下的大豆叶片病害识别方法,所用的大豆样本总共有16类,包含14种大豆常见病害、健康叶片及未知种类,针对数据特点,研究者设计了一个图像处理模块(IPM),其目的是在训练CNN网络前减去图像中的复杂背景,从而分割出叶子部分,然后将分离出的叶片图像输入至由6个卷积层、6个池化层和2个完全连接层组成的SoyNet网络中进行训练,模型的识别准确率为98.14%。Liang等[27]基于卷积神经网络建立了一个植物叶病多功能分类诊断系统,可以同时识别植物物种、分类疾病类型和估计疾病严重程度,该系统以ResNet50网络作为基础结构,利用ShuffleNet单元提取不同植物种类和疾病的特征图,再使用3个并列的全连接层结合Softmax函数分别对植物种类、疾病和严重程度进行分类,最后在45类植物疾病严重程度估计,27种不同的植物疾病分类和9种植物物种识别的实验中分别取得了91%,98%和99%的总体准确率。
除了上述方法外,对现有深度学习模型的网络架构进行改进与创新也可以提升病害识别的精度。杨国亮等[28]提出了一种新的可学习的多参数的激活函数——参数指数非线性单元(Parametric Exponential Non-Linear Units, PENLU)来替代原残差网络中所使用的ReLU激活函数,用以识别脐橙叶片病变、缺素、正常及非此类物种4种类型病害,PENLU具有左侧软饱和,右侧不饱和且参数可调的性质,可以有效地缓解ReLU在训练过程中常出现的神经元死亡现象,多次实验结果表明,在相同的训练条件下,使用PENLU的模型精度相较于其他激活函数(ReLU、PReLU和ELU)更高,模型的识别准确率可达到98.86%。Hassan等[29]使用深度可分离卷积替代原始CNN模型中的标准卷积操作,有效地减少了参数量,降低了计算复杂度,在公开数据集PlantVillage上进行训练,所使用的InceptionV3,InceptionResNetV2,MobileNetV2和EfficientNetB0模型分别取得了98.42%,99.11%,97.02%和99.56%的识别准确率,与其他深度学习方法相比,该方法所需训练时间更少,准确率更高。
综合文献可以看出,上述研究均取得了突出的病害识别效果,每种方法的优缺点对比如表2所示。
表2 实验室环境下常用方法的优缺点比较Tab. 2 Comparison of advantages and disadvantages of common methods in laboratory environment
除表中所提及的缺点之外,这些方法存在着一个共同的局限性,正如Mohanty等[30]在研究中所提到的,尽管使用深度卷积神经网络可以在PlantVillage数据集上取得高达99.35%的识别准确率,但在测试一组来自野外环境的图像时,模型的表现非常差,准确率骤减,仅略高于31%。这是因为这些研究所使用的样本数据基本上都拍摄于受控的实验室环境,在此环境下得到的样本通常具备充足的照明、简单统一的背景和同一个拍摄角度等精心设计的条件,再经过农艺专家筛选和标注后,样本呈现出的病害特征也会更明显。事实上,在野外环境中采集的图像非常复杂。受环境地点、天气状况和拍摄角度等众多不可控因素的影响,这些样本多存在光照不均、阴影遮挡、叶片重叠和背景复杂的情况,这都给农作物病害图像识别带来了巨大的挑战。所以在实验室条件下训练得到的深度识别模型,并不适用于野外环境,也不能真正意义上的满足农户们的生产需求。
对于野外环境下的农作物病害识别问题,图像样本背景更复杂,识别难度更大,需要有大量的样本数据才能训练出一个优秀的深度学习病害识别模型,这是一项更具挑战性的任务,也已成为目前的研究热点。根据任务解决思路的不同,主要分为以下几种方法:迁移学习、生成式对抗网络、注意力机制和一些其他方法。
迁移学习[31]是深度学习领域最常用的方法之一,其原理很简单,指将处理源领域中的A任务时所学习到的知识迁移至另一个相关但不同的目标领域的B任务中,它可以充分利用源领域大型数据集中的知识来优化目标领域中的任务,减少深度模型对目标领域数据量的需求,减少训练时间和计算成本,提升泛化性能,在农作物病害识别领域常被用于解决野外环境下采集的病害图像数据量不足的问题。许景辉等[32]为识别复杂田间背景下玉米常见的大斑病和锈病2种病害,自行搜集建立了一个图片数量总计为600幅的田间玉米病害数据集,使用迁移学习将事先在ImageNet图像数据集训练好的VGG-16模型的卷积层迁移到自己的模型中,最终取得95.33%的平均识别准确率。类似的,陈桂芬等[33]和燕斌等[34]都是使用事先在ImageNet数据集上训练好的具有良好图像特征提取能力的Inception V3模型,并保留Inception V3模型中所有卷积层的参数来作为自己模型的特征提取部分,提取出的特征被输入至一个全新的全连接层,然后仅对全连接层进行参数更新训练,从而得到对应的农作物病害识别结果。
除此之外,随着GAN网络在图像生成领域的不断成熟[35-37],其生成的图像可以达到以假乱真的效果。因此,有部分学者尝试利用GAN网络生成新病害图像,以此满足深度神经网络对数据量的需求。Tian等[38]利用密集连接神经网络(DenseNet)对原始YOLO-V3模型进行优化以减少由多次卷积和降采样等操作所导致的特征损失问题,针对自然场景下由发病率低而造成的苹果表面炭疽类病变样本采集不足的问题,使用CycleGAN在健康苹果图像的基础上生成不同大小、形状和数量的新的患病苹果图像以扩充图像数据集,实现数据增强,丰富数据的多样性。尽管CycleGAN方法可以生成新的病变样本,但实际能带来的提升效果是有限的,因为其生成的图像分布接近于原始训练数据。此外,原始的CycleGAN更倾向于将整幅图像从源域转换到目标域,而不是图像中的某个特定对象,如叶片、果实等,因此,使用该方法生成的图像质量低、真实性差,不像自然环境下拍摄的图片。为此,Cap等[39]以CycleGAN为基础进行改进,提出了一种专门用于植物病害数据增强的图像生成网络—LeafGAN,与CycleGAN最大的不同之处在于,LeafGAN中引入了一个新的由弱监督分割网络组成的无标签叶片分割模块,无需昂贵的掩码标签数据即可从背景中分割出感兴趣区域,类似于注意力机制,该模块在训练期间为LeafGAN提供指导,引导模型在进行图像转换时关注于叶片区域,同时保留原背景信息,从而生成更真实的高质量图像,5类黄瓜分类实验结果表明,使用原始CycleGAN的平均分类准确率仅比baseline提高了0.7%,而LeafGAN将平均分类准确率提升了7.4%,相比之下,LeafGAN更有助于提高模型的泛化能力。
受注意力机制[40]的启发,Zeng等[41]从特征提取的角度进行改进,提出了一种基于自注意力的卷积神经网络(SACNN)以解决实际环境下复杂背景的干扰问题,该网络由一个基本的CNN网络和一个自注意网络所组成,分别用于提取图像的全局特征和病变区域的局部特征,在公共数据集MK-D2和数据集AES-CD9214上的实验表明,SACNN较其他方法的识别精度更高,抗干扰能力和鲁棒性更强,说明引入的自注意力机制使得模型更关注于叶片样本中的重点区域,能提取更具鲁棒性的病斑区域局部特征,从而提升作物病害识别准确率,在此基础上,还进一步探讨了自注意网络的位置、通道大小和网络数量对模型性能的影响。Chen等[42]在网络中使用了结合注意力机制的跳跃连接操作,利用位置注意模块和通道注意模块两种不同的方法,同时添加位置增强和通道增强特征,并采取消融实验对注意力机制的有效性进行验证,实验结果显示,消融模型的准确率明显低于初始模型,这说明注意块的使用有助于处理上下文语义信息和空间信息,能更充分地利用可区分特征,适用于复杂背景下的农作物病害识别。
除了上述常用的几类方法外,学者们也在尝试一些其他方法。曹英丽等[43]在不同的水稻品种、不同的施氮水平、不同的水稻生长时期以及不同的天气条件下共采集了900张水稻纹枯病的植株图像,综合借鉴YOLO和Faster R-CNN两种目标检测算法的优势,提出了用于水稻纹枯病检测的YRSNET网络,经过多次训练后,取得84.97%的平均精度和90.21%的查准率,可以准确地输出含有纹枯病病斑的最佳边界框,对于一张大小为450×800像素的图像,其平均检测时长仅32.26 ms,可以达到实时检测的需求。为解决田间真实样本中常存在的光照不均问题,陈善雄等[44]采取余弦相似度计算方法来代替常规卷积运算中所使用的点积计算方法,使用余弦相似度方法所得到的不同光照条件下的特征图无明显的光照明暗分界线,色调也更均衡,相较于传统点积计算方法,基于余弦相似度卷积计算的网络的收敛速度更快,平均准确率更高,提升了4.14%。为减少背景的负面影响,Saikawa等[45]提出了一种抗过拟合预处理(AOP)的方法,用于在训练疾病分类网络前对样本中的感兴趣区域(ROI)进行检测,从而去除图片背景,这是一种精细的像素级分割,在5万多幅真实黄瓜叶片图像上进行实验,结果显示对于包含7类黄瓜病害和健康叶片总计8类的识别任务,引入AOP后模型的识别准确率平均提升了12.2%。刘阗宇等[46]使用目标检测的方法实现6种葡萄叶片病害的定位和识别,以经典的目标检测算法Faster R-CNN作为基础网络结构,对其原始的区域建议网络进行优化改进以获取更紧致贴合的边界框,从而提升区域建议的质量,实验结果表明,相较于直接对初始图像进行检测,该方法的性能更优,更适用于自然环境下的葡萄叶片病害检测。野外环境下常用方法的优缺点对比如表3所示。
表3 野外环境下常用方法的优缺点比较Tab. 3 Comparison of the advantages and disadvantages of common methods in field environment
综上所述,对于农作物病害图像识别问题,无论是在简单的实验室环境还是复杂的野外环境下,各种精心设计的深度模型均已取得了可观的识别准确率,但真正运用于生产实践中的却少之又少,其主要存在有以下几个方面的问题。
深度学习方法的使用导致对训练数据量的需求激增,尽管已有一些公开的大型病害数据集如PlantVillage、AI Challenger等,但这些数据集的图像基本拍摄于受控的实验室环境,采集难度低、样本简单且病害特征突出,在这类数据集上训练出的模型并不能精准地识别出野外环境中的病害。对于野外环境病害识别任务,目前仍旧缺少大规模、多种类、多类型的公开病害数据库,研究者们要么自行去田间采集,要么搜集互联网上的图片资源,导致数据集的质量参差不齐,且这些数据集往往不对外公开,不利于对不同深度模型的优缺点进行客观比较,也很难在原模型的基础上进行优化升级。在野外环境下采集大规模的病害样本是非常困难的,首先,病害的发生具有随机性,伴随着农药的大规模使用导致病害发生的概率变得更低。其次,不同类型的疾病发生的时期不同,同一疾病在不同的生长阶段、不同的发病部位表现出的病害特征也不同,这意味着建立一个全面且多样性强的野外数据集需要投入大量的人力对作物生长的全过程进行监测并及时拍摄,显然这是不切实际的。最后,病害还具有地区性差异,不同地区的病害表现可能也会有所不同。
从自身任务特性出发,不同于常见的图像分类任务,农作物病害图像之间的差异多体现在细微的局部区域,这主要是由以下几点原因所造成的:不同类型的疾病所呈现出的病害表现可能相同或者差异很小;病斑面积小,往往只占据叶片中较小的区域;病斑与图像背景的对比度小,有的甚至用肉眼都难以分辨;纵观近年来的相关研究会发现他们的识别对象主要是单一叶片上的单一病害,对于多种不同病害共生于同一叶片的情况,识别难度非常大,目前鲜少有人涉足。除了这些病害图像本身所具备的难点外,由于野外天气的不确定性和人为因素等原因的影响,采集到的真实病害样本往往存在光照不均、叶片重叠、阴影遮挡、角度变换、杂物干扰等一系列噪声,给病害识别带来极大的挑战。
为了捕捉不同疾病间的细微差异,达到提升模型病害识别准确率的目的,一种简单且常用的方法是使用更深的卷积神经网络来提取图像特征,更深的网络层数意味着提取到的特征更抽象,也更具有语义信息,但计算成本和训练成本也随之增加,导致模型难以满足手持移动设备下的实时检测识别需求。如何对现有模型进行优化升级,在模型性能和实时性之间取得一个合理的平衡点是未来亟待解决的问题。
深度学习作为人工智能的核心技术,是发展智慧农业所必需的关键驱动力,对于推动农业农村高质量、现代化发展有着举足轻重的作用,具有非常广阔的发展前景。
生成式对抗网络通常由两个部分所组成,一个是生成器,另一个是判别器。生成器的作用是利用输入的随机噪声生成以假乱真的图像,用以欺骗判别器,相应地,判别器的作用是分辨图像的真假,判断输入样本是生成器生成的“假”图像还是来自训练集的“真”图像,对生成器和判别器采用交替训练的策略,在相互博弈的状态下两个模型的性能同时得到增强,生成器所生成的“假”图像也更接近于真实图像。在未来的工作中,针对农作物病害数据样本量不足的问题,可以考虑采用生成式对抗网络的方法合成新的野外病害图像,该方法从数据增强的角度有效解决了数据量不足、各类别样本数据不平衡等问题。除此之外,还要加强与其他国家和地区的科研院所、企业、种植基地的沟通交流,协作打造农作物种类覆盖广、疾病类型多的病害试验基地,实现资源共享,助力大规模、多种类、多类型病害数据库的建立。
结合注意力机制、目标检测算法和ROI分割等方法的优点,对现有的深度学习模型进行优化,设计出符合农作物病害图像识别任务特点的高性能模型,该模型不仅需要具备强鲁棒性和强抗干扰性,能够有效地解决样本背景复杂、光照明暗变化明显、病变区域面积小等问题,还应具备通用性,能够适用于不同农作物种类、不同疾病类型、不同病害严重程度的识别。此外,模型网络结构的简洁性也是不可忽视的重点改进方向,在保证模型精度的前提下,进一步对模型网络进行简化,减少参数冗余,降低计算复杂度,提升模型效率,达到实时识别的目标。
相较于原始的人眼识别和传统的机器学习方法,基于深度学习实现农作物病害图像识别无疑是未来的研究重点,但其面临着多重挑战,诸如数据样本不平衡、数据量不足、光照不均、明暗变化明显、野外真实图像背景复杂、病斑特征遮挡严重等。未来的研究目标应该着眼于模型在真实野外环境下的实用性问题,建立大规模、多种类、多类型病害数据库,开发便于部署在移动便携设备和农业机械设备上的高性能模型,真正地将研究成果应用于生产实践,帮助农户快速识别病害,减少损失,这对于保障民生、促进农业绿色可持续发展具有重要意义。