【论文阅读】Using deep learning for image-based plant disease detection

本文是一个使用plant village数据集,AlexNet和GoogleNet两个网络,针对不同比例的train/test和三种不同格式的图片color/grayscale/segmented做的实验,plant village数据集就在作者Mohanty的github上

数据集链接:https://github.com/spMohanty/PlantVillage-Dataset

 

论文下载地址:https://www.frontiersin.org/articles/10.3389/fpls.2016.01419/full

作物病害是粮食安全的主要威胁,但由于缺乏必要的基础设施,在世界许多地区仍然难以迅速查明它们。全球智能手机普及率的不断提高,以及深度学习带来的计算机视觉的最新进展,为智能手机辅助疾病诊断铺平了道路。利用在受控条件下收集到的54,306张病叶和健康叶的公共数据集,我们训练了一个深度卷积神经网络来识别14种作物和26种疾病(或没有)。训练后的模型在给定的测试集上达到了99.35%的精度,证明了该方法的可行性。总体而言,在越来越大且公开可用的图像数据集上训练深度学习模型的方法,为大规模全球范围内的智能手机辅助农作物疾病诊断提供了一条清晰的道路。

INTRODUCTION

为了开发用于植物病害诊断的准确的图像分类器,我们需要一个大的、经过验证的疾病和健康植物图像数据集。直到最近,这样的数据集还不存在,甚至更小的数据集也不能免费使用。为了解决这个问题,PlantVillage项目已经开始收集成千上万健康和患病作物的图片(Hughes和Salathe, 2015),并公开和免费提供这些图片。在此,我们报告了利用54,306幅图像和卷积神经网络方法对14种作物的26种病害进行分类。我们根据模型预测正确的作物-疾病对的能力来衡量模型的性能,给出了38种可能的分类。性能最好的模型F1平均得分为0.9934分(总精度为99.35%),说明了我们方法的技术可行性。我们的研究结果是迈向智能手机辅助植物疾病诊断系统的第一步。

METHODS

Dataset Description 

我们分析了54,306张植物叶片的图片,这些图片有38个类别的标签。每个类别标签都是一个作物病害对,我们试图只使用植物叶片的图像来预测作物病害。图1显示了PlantVillage数据集中每个作物-疾病对的一个示例。在本文描述的所有方法中,我们将图像大小调整为256×256像素,并对这些缩小后的图像进行模型优化和预测。

在所有的实验中,我们使用了整个PlantVillage数据集的三个不同版本。我们从实际的PlantVillage数据集开始,用颜色表示;然后我们实验的灰度版本PlantVillage数据集,最后我们分割版本。因为删除了所有额外的背景信息,这些信息可能会在数据集中引入一些固有的偏差,因为在PlantVillage数据集的情况下,数据收集的过程是规范化的。分割是通过一个脚本自动实现的,该脚本经过调优,可以在我们的特定数据集上执行得很好。我们选择了一种基于一组掩模的技术,这些掩模是通过分析图像在不同颜色空间(Lab和HSB)中不同部分的颜色、亮度和饱和度组成而生成的。该处理的一个步骤还允许我们轻松地修复颜色转换,而在数据集的某些子集中,颜色转换非常强,从而消除了另一个潜在的偏差。

这组实验的目的是了解神经网络是否真的学习了植物疾病的“概念”,或者仅仅是学习了数据集中固有的偏差。图2显示了随机选择的一组叶子的相同叶子的不同版本。

Measurement of Performance 

想知道我们的方法对一个全新的数据的效果,同时跟踪我们的方法是否存在过度拟合,所以我们通过分割一系列的训练测试集来运行我们所有的实验。即80 - 20(80%的整个数据集用于培训和测试)为20%,60 - 40(60%的整个数据集用于培训和测试)为40%,50 - 50(50%的整个数据集用于培训和测试)为50%,奖金(40%的整个数据集用于培训,60%的测试),最后20 - 80(20%的整个数据集用于培训和测试)为80%。必须指出的是,在许多情况下,PlantVillage数据集具有相同叶子的多个图像(取自不同方向),在54,306幅图像中,我们有41,112幅图像的这种情况的映射;在这些测试序列分割中,我们确保所有相同叶子的图像要么在训练集中要么在测试集中。此外,对于每一个实验,我们计算平均精度,平均召回率,平均F1分数( mean precision, mean recall, mean F1 score),以及在整个训练期间(在每个epoch结束时)的总精度。我们使用最终的平均F1分数来比较所有不同实验配置的结果。

Approach

我们评估了深度卷积神经网络对上述分类问题的适用性。我们关注两种流行的架构,AlexNet (Krizhevsky etal., 2012)和GoogLeNet (Szegedy etal.,2015),它们是在“大规模视觉识别挑战”(ILSVRC)(Russakovskyetal.,2015)为imagenet数据集设计的(Deng etal., 2009)。

AlexNet体系结构(参见图S2)遵循与20世纪90年代的LeNet-5 (LeCun et al., 1989)体系结构相同的设计模式。LeNet-5架构的变体通常是一组堆叠的卷积层,然后是一个或多个完全连接的层。卷积层可选地在它们之后有一个归一化层和一个池化层,并且网络中的所有层通常都有与之相关的ReLu非线性激活单元。AlexNet由5个卷积层组成,然后是3个完全连接的层,最后是一个softMax层。前两个卷积层(conv{1,2})后面分别是标准化和池化层,最后一个卷积层(conv5)后面是单个池化层。最后一个完全连接层(fc8)在我们的AlexNet的改编版本中有38个输出(等于数据集中类的总数),它提供了softMax层。softMax层最终以指数形式规范化它从(fc8)获得的输入,从而在38个加起来等于1的类中生成值的分布。这些值可以解释为网络的置信度,即给定的输入图像由相应的类表示。AlexNet的前7层都有一个相关的ReLu非线性激活单元,前2个完全连接的层(fc{6,7})都有一个相关的dropout层,dropout比为0.5。

另一方面,GoogleNet体系结构是一个更深更广的体系结构,有22层,但是网络中的参数数量(500万个参数)仍然比AlexNet(6000万个参数)少得多。以inception模块的形式应用“网络中的网络”架构(Lin et al., 2013)是GoogleNet架构的一个关键特性。inception模块使用并行的1×1、3×3和5×5卷积,并并行地使用最大池层,因此它能够并行地捕获各种特性。在实现的实用性方面,需要控制相关计算量,这就是为什么在上面提到的3×3,5×5卷积之前(以及在max-pooling层之后)添加1×1卷积来降维的原因。最后,过滤器连接层只是连接所有这些并行层的输出。虽然这形成了一个inception模块,但是我们在实验中使用的GoogLeNet体系结构版本中总共使用了9个inception模块。这个架构的更详细的概述可以参考(Szegedy et al., 2015)。

我们分析了这两种架构在PlantVillage数据集上的性能,方法是在一种情况下从零开始训练模型,然后使用迁移学习调整已经训练好的模型(在ImageNet数据集上训练)。在迁移学习的情况下,我们在AlexNet的情况下重新初始化fc8层的权重,在GoogLeNet的情况下重新初始化{1,2,3}/分类器层的损失。然后,在训练模型时,我们不限制任何层的学习,这在迁移学习中有时是这样做的。换句话说,关键区别这两种学习方法(迁移vs从头训练)在哪几层的权重是初始状态,这使得迁移学习方法可以利用从ImageNet中提取的预先训练过的AlexNet和GoogleNet模型已经学习的大量视觉知识(Russakovsky et al., 2015)。

综上所述,我们总共有60种实验构型,其参数各不相同:

1. Choice of deep learning architecture: AlexNet, GoogLeNet.
2. Choice of training mechanism: Transfer Learning, Training from Scratch.
3. Choice of dataset type: Color, Gray scale, Leaf Segmented.
4. Choice of training-testing set distribution: Train: 80%, Test: 20%, Train: 60%, Test: 40%, Train: 50%, Test: 50%, Train: 40%, Test: 60%, Train: 20%, Test: 80%.
在本文中,我们使用了体系结构:训练机制:数据集类型:训练-测试集分布的符号来引用特定的实验。例如,为了参考使用GoogLeNet architecture的实验,我们将使用GoogLeNet:TransferLearning:GrayScale: 60-40表示法,在训练集分布为60-40的灰度PlantVillage数据集上使用transfer learning进行训练。

这60个实验中的每一个都运行了30个epoch,其中一个epoch定义为特定神经网络完成整个测试集的完整遍历的训练迭代次数。根据经验观察,在所有这些实验中,学习总是在30个时代内很好地收敛(从所有实验的聚合图(图3)可以看出)。

为了使所有实验配置的结果能够公平比较,我们还尝试对所有实验的超参数进行标准化,我们在所有实验中都使用了以下超参数:

• Solver type: Stochastic Gradient Descent,

• Base learning rate: 0.005,

• Learning rate policy: Step (decreases by a factor of 10 every 30/3 epochs),

• Momentum: 0.9,

• Weight decay: 0.0005,

• Gamma: 0.1,

• Batchsize:24(incaseofGoogLeNet),100(incaseofAlexNet).

以上实验都是使用我们自己的Caffe fork进行的(Jia et al., 2014),这是一个用于深度学习的快速开源框架。基本的结果,例如总体精度,也可以使用caffe的标准实例进行复制。

RESULTS

首先,我们注意到,对于具有38个类标签的数据集,随机猜测的总体准确率平均只能达到2.63%。所有我们的实验配置,其中包括三个视觉表征图像的数据(参见图2),我们获得的总体精度PlantVillage数据集变化从85.53%(例如AlexNet:: TrainingFromScratch::灰度::80 - 20)到99.34%(例如GoogLeNet:: TransferLearning::颜色::80 - 20),因此表现出强烈的承诺的深度学习方法类似的预测问题。表1显示了所有实验配置的F1平均得分、平均精确度、平均召回率和总体精确度。所有的实验配置都运行了总共30个epoch,并且在学习速度下降的第一步之后,它们几乎一致收敛。

为了解决过拟合问题,我们改变测试集来训练集比和观察,在极端情况下只有20%的训练数据和测试在其余80%的数据训练模型,该模型实现了98.21%的总体精度(平均F1得分0.9820)对于GoogLeNet:: TransferLearning::颜色::20 - 80。正如预期的那样,如果我们继续增加测试集与训练集的比例,AlexNet和GoogLeNet的整体性能都会下降(参见图3D),但是如果模型确实过度拟合,性能的下降并不像我们预期的那么剧烈。图3C还显示验证损失和训练损失之间没有差异,这证实了过拟合并不是我们在所有实验中得到的结果的贡献因素

在AlexNet和GoogLeNet体系结构中,GoogLeNet的性能始终优于AlexNet(图3A),基于训练的方法,迁移学习总是产生更好的结果(图3B),这两者都是预期的。

当我们保持其余实验配置不变时,数据集的三个版本(颜色、灰度和分段)在所有实验中都表现出多种结果。对于数据集的彩色版本,模型执行得最好。在设计实验时,我们担心神经网络可能只学会捕捉与光照条件有关的固有偏差,即收集数据的方法。因此,我们对同一数据集的灰度版本进行了实验,以测试模型在没有颜色信息的情况下的适应性,以及学习特定作物和疾病典型的高层次结构模式的能力。正如所料,与彩色版本的数据集实验相比,性能确实有所下降,但即使在性能最差的情况下,观察到的F1评分均值为0.8524(总准确率为85.53%)。整个数据集的分割版本也准备调查背景图像的整体性能,如图3E,模型的性能使用分割模型的图像始终比使用灰度图像好,但略低于模型的使用图像的彩色版本。

虽然这些方法在受控环境下收集的PlantVillage数据集上取得了很好的结果,但我们也评估了该模型对可信在线资源(如学术农业推广服务)采样的图像的性能。这样的大量图像不可用,使用自动化的组合从Bing下载图片搜索和IPM图像视觉验证步骤,我们获得了两个小,验证数据集121(数据集1)和119年的图像数据集(2),分别为(见补充材料的详细描述过程)。利用这些数据集上的最佳模型,我们成功预测了正确的类标签(即),从38个可能的类别标签。我们注意到,随机分类器的平均准确率只有2.63%。在所有的图像中,数据集1中有52.89%的预测结果是正确的,数据集2中有65.61%的预测结果是正确的。两个数据集的最佳模型分别是egooglenet: segmentation:TransferLearning: 80-20fordataset1和GoogLeNet:Color:TransferLearning: 80-20 fordataset 2。图4显示了来自这些数据集的示例图像,以及它对AlexNet体系结构初始层中的激活的可视化。

到目前为止,所有的结果都是在假设模型需要同时检测作物种类和病害状态的前提下报告的。我们可以将挑战限制在一个更现实的场景中,即提供作物种类,因为种植作物的人可以预期知道这些作物种类。为了评估此场景下模型的性能,我们将自己限制在至少有n > = 2(为了避免琐碎的分类)或n > = 3个类的作物上。在n > = 2的情况下,数据集1包含分布在9个作物中的33个类。在这样一个数据集中随机猜测的准确率为0.225,而我们的模型的准确率为0.478。在n > = 3的情况下,数据集包含分布在5个作物中的25个类。在这样一个数据集中随机猜测的准确率为0.179,而我们的模型的准确率为0.411。同样,在n > = 2的情况下,数据集2包含分布在4个作物中的13个类。在这样一个数据集中随机猜测的准确率为0.314,而我们的模型的准确率为0.545。在n > = 3的情况下,数据集包含分布在3个作物中的11个类。在这样一个数据集中随机猜测的准确率为0.288,而我们的模型的准确率为0.485。

DISCUSSION

近年来,卷积神经网络在目标识别和图像分类方面取得了巨大的进展。(Krizhevsky等,2012;Simonyan和Zisserman, 2014;Zeiler和Fergus, 2014;He et al., 2015;Szegedy等,2015)。以前,传统的图像分类方法是基于人工工程的特征,如SIFT (Lowe, 2004)、HoG (Dalal和Triggs, 2005)、SURF (Bay等,2008)等,然后在这些特征空间中使用某种形式的学习算法。因此,这些方法的性能在很大程度上依赖于底层预定义的特性。特性工程本身是一个复杂而乏味的过程,每当手头的问题或相关数据集发生重大变化时,都需要重新审视它。这个问题发生在所有使用计算机视觉检测植物病害的传统尝试中,因为它们严重依赖于手工设计的特性、图像增强技术和许多其他复杂且劳动密集型的方法。

此外,通过机器学习来进行疾病分类的传统方法通常集中在一种作物内的少量类别上。例如,为了将番茄白粉病与健康番茄叶进行分类,使用热图像和立体图像进行特征提取和分类管道(Raza等,2015);RGB图像检测非受控环境下白粉病(Hernandez-Rabadan et al., 2014);使用RGBD图像检测苹果黑星病(Chene et al ., 2012)的使用荧光成像光谱检测柑橘huanglongbing (Wetterich et al ., 2012)的检测柑橘huanglongbing使用近红外光谱模式(Sankaran et al ., 2011)和机载传感器(Garcia-Ruiz et al ., 2013)番茄黄卷叶病毒的检测使用一组经典的特征提取步骤,然后使用支持向量机管道进行分类(Mokhtar et al., 2015),以及许多其他方法。最近一篇关于机器学习在植物表型中的应用的综述(Singh et al., 2015)广泛讨论了这一领域的工作。而神经网络应用在植物病害识别(黄,2007)(等蝴蝶兰属幼苗疾病的分类和检测细菌性软腐病、细菌性褐斑病、疫霉黑腐病),代表图像的方法需要使用精心挑选的纹理特征列表前的神经网络分类。

我们的方法是基于最近的工作Krizhevsky et al。(2012) whichshowedforthefirsttimethatend-to-endsupervised培训使用深卷积神经网络体系结构是一个实际的可能性甚至对图像分类问题,大量的类,击败了传统方法使用hand-engineered特性的标准基准测试。由于没有特征工程的劳动密集型阶段和解决方案的通用性,使得它们成为一种实用的、可扩展的植物病害计算推理方法的非常有希望的候选方案。

利用深度卷积神经网络结构,我们在植物叶片图像上训练了一个模型,目的是在模型从未见过的图像上对作物种类和病害的存在和识别进行分类。在PlantVillage的54,306幅图像中,包含了14种作物的38个分类和26种疾病(或没有),这一目标已经通过99.35%的最高精度得到了证明。因此,在没有任何特征工程的情况下,该模型从1000幅图像中的993幅中正确地分类了38种作物和病害。重要的是,虽然模型的训练需要大量的时间(在高性能GPU集群计算机上需要多个小时),但分类本身非常快(在CPU上不到一秒),因此可以很容易地在智能手机上实现。这为全球范围内智能手机辅助农作物疾病诊断提供了一条清晰的道路。

然而,在未来的工作中,仍有一些局限需要解决。首先,当对一组不同于用于训练的图像在不同条件下拍摄的图像进行测试时,模型的准确性大大降低,仅有31%。需要注意的是,这种准确性比随机选择38个班级(2.6%)的准确率要高得多,但是,需要一组更加多样化的训练数据来提高准确性。我们目前的结果表明,更多的(和更多的变量)数据将足以大幅提高准确性,并相应的数据收集工作正在进行中。

第二个限制是,我们目前限於单一叶子的分类,面朝上,在同一背景下。虽然这些都是简单的条件,但真实世界中的应用程序应该能够对疾病的图像进行分类,因为它直接显示在植物上。事实上,许多疾病并不仅仅出现在叶子的上部(或者根本没有),而是出现在植物的许多不同部位。因此,新的图像收集工作应该尝试从许多不同的角度获取图像,最好是从尽可能真实的场景中获取。

与此同时,通过使用包含作物种类和疾病状况的38个类,我们使挑战变得更加困难,从实际的角度来看,这是不必要的,因为种植者需要知道他们正在种植哪些作物。由于PlantVillage数据集的精度非常高,限制疾病状态的分类挑战将不会产生可测量的效果。然而,在真实世界的数据集上,我们可以测量出明显的精度改进。总的来说,所提出的方法对许多不同的作物品种和病害都能很好地发挥作用,有望在今后的研究中得到推广。

最后,值得注意的是,这里提出的方法并不是要取代现有的疾病诊断解决方案,而是对它们进行补充。实验室测试最终总是比仅凭视觉症状进行诊断更可靠,而且通常仅凭视觉检查进行早期诊断是具有挑战性的。尽管如此,考虑到到2020年全球智能手机将超过50亿部,其中非洲将接近10亿部(GSMA Intelligence, 2016),我们确实认为,这种方法是一种可行的额外方法,有助于防止产量损失。更重要的是,在未来,智能手机的图像数据可能会补充位置和时间信息,以进一步提高准确性。最后但并非最不重要的一点是,要谨慎地记住过去几年移动技术发展的惊人速度,并将继续保持这种速度。随着移动设备上传感器数量和质量的不断提高,我们认为通过智能手机进行高度准确的诊断可能只是时间问题。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章