APP下载

基于轻量级CNN的植物病害识别方法及移动端应用

2019-11-11王书志

农业工程学报 2019年17期
关键词:识别率番茄卷积

刘 洋,冯 全,王书志

基于轻量级CNN的植物病害识别方法及移动端应用

刘 洋1,冯 全1※,王书志2

(1. 甘肃农业大学机电工程学院,兰州 730070;2. 西北民族大学电气工程学院,兰州 730030)

为了实现在手机端植物病害叶片检测,对MobileNet和Inception V3 2种轻量级卷积神经网络进行迁移学习,得到2种作物病害分类模型,将2种分类模型分别移植到Android手机端,在识别精度、运算速度和网络尺寸之间进行平衡,选择最优模型。试验表明,MobileNet和Inception V3在PlantVillage数据集(共38类26种病害)上平均识别率分别是95.02%和95.62%。在自建图像集葡萄病害叶片的识别中MobileNet和Inception V3平均识别率分别是87.50%、88.06%,Inception V3的整体识别精度略高,但MobileNet在所有类别的识别上均衡性更好;在模型尺寸方面Inception V3的模型尺寸大小为87.5 MB,MobileNet的模型尺寸为17.1 MB,大约是后者5倍;2种模型移植到手机端时,MobileNet和Inception V3的APP所占内存分别是21.5 和125 MB;在手机端单张图片的识别时间方面,Inception V3平均计算时间约是174 ms,MobileNet的平均计算时间约是134 ms,后者的平均计算时间比前者快40 ms;在手机端MobileNet相比于Inception V3占用内存更小,运算时间更快。说明MobileNet更适合在手机端进行植物病害识别应用。

植物;病害;图像识别;MobileNet;Inception V3;Android

0 引 言

植物病害种类繁多,传统的识别方式是专家依靠肉眼和经验来判别这些病症信息,速度慢、强度大、主观性强[1-3]。为了解决这个问题,国内外研究者采用图像处理和机器视觉等技术对植物病害进行识别研究,例如油茶[4]、棉花[5]、玉米[6]、黄瓜[7]等。目前大部分识别过程是在个人电脑(personal computer,PC)上完成的,对农民来说,PC机在农业现场使用非常不方便。目前智能手机已经非常普遍,一些研究者开始尝试采用手机进行病害识别。如杨林楠等[8]提出了一种基于手机端的玉米病害检测系统,但该系统需要人工选择植物茎、叶上的病害特征,并将这些病害特征上传到服务器端的专家系统完成识别后,再将结果回传至手机端。Prasad等[9]提出了一种基于Gabor小波变换与灰度共生矩阵相结合的移动端叶片病害诊断系统,该系统将现场拍摄的病害图像上传到服务器端,由服务器中分类器完成识别并将结果返回给手机。以上这些基于手机的病害识别APP的核心程序都运行在服务器端,对网络的依赖性较强,手机只起到信息采集和显示结果的作用,这种方式在很多情况下使用不方便。本文开发了一种操作方便、全自动、完全运行在手机端的病害识别APP,方便农民在现场使用。

自2012年以来,研究者提出了多种性能优秀的卷积神经网络(convolutional neural network,CNN),如AlexNet[10]、VGG[11]、GoogleNet[12]、ResNet[13]等,CNN在图像分类、图像分割、目标检测等方面全面超越传统机器视觉的方法,在各种视觉任务中得到广泛使用。CNN在农业领域也得到了应用[14-16],Lu等[17]提出了一种基于弱超视觉的小麦病害诊断系统,对小麦的识别精度达到97.95%。张建华等[18]在原有VGG-16网络模型基础上通过优化全连接层数提出了一种改进VGG卷积神经网络的棉花病害识别模型,识别效果达到89.51%。郑一力等[19]提出一种基于迁移学习的卷积神经网络植物叶片图像识别方法,使用AlexNet和InceptionV3模型得到的识别准确率分别达到95.31%、95.40%。Grinblat等[20]开发一种基于CNN的叶片叶脉模式识别方法,成功地识别了3种不同的豆科植物。

通常CNN的性能随着网络层数的加深会更加出色,如从16层VGG到GoogLeNet的22层,再到152层的ResNet,随着网络层数的增加,对设备的内存需求和计算负担也随之增加。这些经典CNN网络由于参数太多,只能在PC上运行,无法在移动手机上直接使用。为了在手机端直接使用CNN实现作物病害识别,就必须解决数百层网络中大量的权值参数存储问题和网络计算量大的问题。Google公司研发了2种轻量化卷积神经网络,分别是MobileNet[21]和Inception V3[22]。在保证这些网络高准确性前提下,主要通过以下措施减小网络的复杂度:减少链接或非全连接的层,减少通道数量、卷积核大小和磁盘使用量,剔除一些特征图,修剪和离散化一些不重要的权重等。

本文为了研究手机端植物病害识别的方法,首先在PC端使用上述2种轻量化卷积网络模型,采用迁移学习的方法,利用PlantVillage数据集和自建葡萄病害数据集分别对2种网络进行迁移训练;综合比较2种网络的病害识别精度、模型尺寸和运算速度,选择综合性能更适合在手机端使用的网络,利用智能手机开发平台Android Studio软件对优选模型做了移植,开发了相应网络的植物病害识别APP。

1 叶片病害识别网络结构

1.1 MobileNet网络

MobileNet v1是Google于2017年发布的网络架构,旨在移动设备和嵌入式端应用。MobileNet v1也可以像其他流行模型(如VGG,ResNet)一样用于分类、检测、嵌入和分割等任务提取图像卷积特征。

MobileNet的核心单元是深度可分离卷积(depth-wise separable convolution),深度可分离卷积是1种将标准卷积分解成2部分的操作:深度卷积(depth-wise convolution)和逐点卷积(point-wise convolution),如表1所示。传统的标准卷积运算在一步中就包含了滤波和合并计算,然后直接将输入变成一个新的尺寸的输出。而深度可分离卷积将其分成了2步,首先是深度卷积利用滤波器对输入的每一个通道进行卷积,然后采用逐点卷积是利用深度卷积计算出来的结果进行了一个1×1的卷积核运算,进而得到输出结果。这种运算方式与传统的标准卷积相比能够有效地减少计算量以及模型参数量。

注:DF是输入的长和宽;M是输入的通道数和卷积核数;输出的尺寸长宽与输入相同。1´1是卷积核大小,N是输出的通道数。

深度可分离的卷积方式相比于传统的卷积计算量为

如果采用3x3(D=3)卷积核的话,由于很大,MobileNet中深度可分离卷积(depth-wise separable convolution)的计算量大约只有标准卷积的1/9。

表1 MobilNet的网络结构

注:Conv表示标准卷积,Conv dw表示深度卷积,Avg Pool表示平均池化,FC表示全连接层。普通卷积层的尺寸如3´3´3´32,其中3´3表示卷积核的长和宽,3是输入通道数,32是输出通道数,其他普通卷积层尺寸表示与之一样。深度卷积层的尺寸如3´3´32,其中3´3表示卷积核的长和宽,32是输入通道数,其他深度卷积层尺寸表示与之一样。

Note: Conv, Conv dw, FC and Avg Pool denote standard convolution, deep convolution, full connection layer and average pooling, respectively. If the size of Conv is 3´3´3´32, its filter size is 3´3 and 3 is number of input channels and 32 is the number of output channels. If the size of Conv dw is 3´3´32, its filter size is 3´3 and 32 is the number of output channels.

1.2 Inception V3网络

Inception V3是2015年由Google公司提出的一种网络结构,Inception V3整体上采用了Inception V2[23]的网络结构,但是在优化算法、正则化等方面做了改进,在优化算法方面使用均方根算法(root mean square,RMS)替代随机梯度下降算法(stochastic gradient descent,SGD),使用标签平滑正则化(label smoothing regularization,LSR)损失方法。Inception V3网络主要有两大方面的优势,一方面是将1个较大的2维卷积拆成2个较小的1维卷积,比如将7´7卷积拆成1´7卷积和7´1卷积,或将3´3卷积拆成1´3卷积和3´1卷积,这不仅节约了网络参数还增加了一层非线性扩展模型的能力,可以处理更多、更丰富的空间特征,增加特征的多样性。另一方面,Inception V3优化了Inception module结构,分别包含有3种不同的结构35´35、17´17、8´8,并且在Inception module中使用分支,这也极大地减少网络参数,Inception V3的网络结构如表 2所示。

该网络大致分为3部分,首先是几个3´3的卷积层和池化层组成,完成图像特征的提取。接下来是3个连续的Inception模块组,每个模块组由多个Inception module组成,分别自动学习滤波器的内容。最后的部分是辅助Logits、全局平均池化、Softmax分类。首先辅助Logits,作为辅助分类的节点,先得到特征张量,之后连接1个平均池化层,最后将辅助分类节点(logits)的输出存储到字典表中。对最后1个卷积层的输出进行1个8×8的全局平均池化,输出张量变为2 048维,继续连接1个Dropout层,随着连接1个输出通道数为1 000维的1×1卷积,最后通过Softmax分类层得到一个{0,1}的分类结果。

表2 Inception V3网络结构

注:输入的图像尺寸为229´229像素;卷积层1~6的卷积核大小均为3´3,滑动步长分别为2、1、1、1、2、1。池化层1~2的卷积核大小均为3´3,滑动步长均为2。

Note: Image size of input layer is 229´229 pixels. For covn1, covn2, covn3, covn4, covn5, and covn6 layers, the filter size are 3´3, strides are 2, 1, 1, 1, 2 and 1, respectively. For pool1 and pool2 layers, kernel size are 3´3, strides are 2.

2 Android手机端开发环境

本文在PlantVillage和自建葡萄病害数据集上对MobileNet和Inception V3的识别效果进行了测试,优选出最佳的网络模型以开发Android系统下的植物病害识别APP。

2.1 手机端操作系统简介

Android系统主要包括应用程序层、应用框架层、系统运行层和Linux内核层等几个部分。其中应用程序层的采用JAVA语言编写,为用户构建应用时提供API接口,开发者可以通过使用这些API构建自己的应用程序。系统运行层是通过一些C/C++库来为Android系统提供主要的特性支持。Android核心的系统服务依赖于Linux2.6内核,Linux内核也是作为硬件与软件的抽象层,这一层为Android设备的各种硬件提供了底层驱动,如显示驱动、音频驱动、照相机驱动、电源管理等[24-26]。

Android操作系统支持触屏、视频等功能,本文采用的深度学习框架Tensorflow亦为Google开发,能与Android系统无缝结合,Android系统同时也支持图像识别技术,为本文APP开发提供方便。

2.2 APP开发环境的搭建

本文的开发环境是在Linux操作系统下进行,Android系统的开发环境主要包括JDK(Java development kit)、Android Studio软件和Android SDK(Software development kit)3个部分,JDK是整个JAVA开发的核心,包含了JAVA的运行环境(JVM+JAVA系统类库)和JAVA工具;Android Studio是作为Android应用程序开发IDE(integrated development environment);Android SDK是Google公司为开发者提供的免费Android软件开发工具包,该开发工具包包括开发代码示例、接口文件(API)、开发文档和开发工具4个部分[27-32]。

3 训练数据集

3.1 PlantVillage数据集

PlantVillage是一个植物病害图像数据库[33],该数据库的图像都是在实验室中拍摄,背景非常干净。本文采用了PlantVillage所收集的54 306张植物病害叶片图像,其中包含13种植物共26类病害叶片。表3给出了该数据集中38个类别的样本图像。根据MobileNet和Inception V3的输入尺寸,分别将图像大小尺寸调整到224×224像素和299×299像素进行训练和测试。通过统计样本总数以及类别样本分布情况,随机抽取数据集中的80%张图片作为训练集,剩余的20%图片作为测试集。对于原始训练集按C1~C38的编号将各种叶片归类并制作成训练标签。

表3 PlantVillage数据库图像信息

3.2 自建数据集

本文采集了6种葡萄病害叶片作为自建图像集,包括炭疽病、灰霉病、褐斑病、霜霉病、白粉病和黑痘病,共2 100张葡萄病害叶片;与PlantVillag数据集不同,该数据集中所有病害叶片图像均为自然光照下拍摄。图 2给出了自建图像集中6种葡萄病害叶片的例子。训练方式同上训练集和测试集分别占总数据集的80%和20%。

图2 自建葡萄病害集中6种葡萄病害样本

3.3 迁移学习

迁移学习(transfer learning)[34-36]根据任务、领域、数据可用性,大致分为3大类:归纳迁移学习、无监督迁移学习和直推式迁移学习。当前几乎所有的卷积神经网络都需要在大型图像数据集上进行充分训练,学习图像分类识别所需的大量特征、权重等。本文利用MobileNet、Inception V3预训练模型在ImageNet数据集[37]上学到的大量知识,然后在本文的数据库上进行迁移学习,实现植物叶片病害的识别。常用的迁移方法有2种,一种是特征迁移,该方法移除最后几层(一般是最后分类器),将特征向量送入向量机等分类器进行分类训练,另一种是模型迁移,只需重新初始化网络的少数几层(如最后一层),其余层直接采用预训练网络的权重参数,再利用新的数据集对网络参数进行精调。本文采用模型迁移的方式,将MobileNet和Inception V3在ImageNet数据集上的训练模型,使用本文数据库进行2次训练,可节约大量时间并且有利于网络快速收敛。

4 结果与分析

4.1 试验平台和试验参数设置

试验软件环境为Ubuntu 16.04 LTS 64位系统,采用Tensorflow深度学习开源框架,选用Python作为编程语言,硬件环境:计算机内存64 GB,搭载Intel® Xeon(R)CPU E5-2683V3@ 2.00GHz x56处理器,GPU是英伟达TESLA K20。软件环境:CUDA Toolkit 9.0,CUDNN V7.0;Python 2.7,Tensorflow-GPU 1.8.0。

将PlantVillage数据集和自建数据集按照4∶1的比例分成训练集和测试集。利用训练集对MobileNet和Inception V3网络分别进行迁移训练,获得2种分类模型。训练中2种网络参数均设置为:学习率为0.01,迭代次数为4 000,采用批量训练的方法将训练集与测试集分为多个批次,每个批次训练100张图片,即train batch设置为100。

4.2 网络训练结果

MobileNet和Inception V3网络训练过程中的训练精确度(accuracy)和交叉熵(cross entropy)的曲线变化分别如图3所示。从曲线可以看出MobileNet训练过程中,精度上升与交叉熵的下降较快,曲线波动不大,迭代到2 000次左右曲线就趋于稳定,而Inception V3精度的上升和交叉熵的下降相对较慢,达到稳定所需时间较前者多,训练曲线的波动也比前者大。

图3 MobileNet 和Inception V3网络训练过程的精确度和交叉熵

4.3 评价指标

单个类别识别的准确率(accuracy,Acc,%)计算如下

式中N是单个类别正确的预测数;T表示单个类别样本总数。

模型识别的平均准确率(average accuracy,AA,%)计算如下

式中为样本类别总数,38。

2种网络识别模型MobileNet和Inception V3检测器和分类器对54 306张图像(38个对象类别用C1~C38标号表示)的数据集进行预处理。采用迁移学习来调节训练参数,训练完成后,分别得到训练模型。

4.4 2种网络在PlantVillage数据集测试结果

4.4.1 PlantVillage数据集测试结果

利用MobileNet、Inception V3在ImageNet数据集上进行了预训练,获得了预训练模型,之后在PlantVillage数据集进行迁移学习,实现植物叶片病害的识别,试验结果如表4所示。从表4可以分别计算出MobileNet和Inception V3网络在PlantVillage数据集下预测的平均准确率(AA)为95.02%、95.62%,2种网络都具有很高的病害识别率。

MobileNet对38个类别中的苹果锈病(C3)、健康蓝莓叶(C5)、辣椒细菌斑点病(C19)、健康覆盆子叶(C24)、南瓜白粉病(C26)和草莓叶焦病(C28)等6种类别病害的识别Acc是100%;而对玉米灰斑病(C8)、健康土豆叶(C22)、番茄早疫病(C30)、番茄晚疫病(C32)、番茄斑枯病(C34)和番茄轮斑病(C36)的识别Acc均低于90.00%,分别是83.5%、83.83%、70.00%、84.25%、83.9%和81.14%。Inception V3网络对38个类中的苹果锈病(C3)、无病蓝莓叶(C5)、玉米锈病(C9)、健康玉米叶(C10)、健康葡萄叶(C14)、健康覆盆子叶(C24)和番茄花叶病(C37)等7种类型的识别Acc达到了100%;而对番茄早疫病(C30)和健康番茄叶(C31)的单个类别识别Acc在90%以下,分别是68.00%和89.31%。

表4 PlantVillage测试集分类结果

Mohanty等[38]在PC上使用AlexNet和GoogleNet 2种卷积网络分别对PlantVillage数据集进行病害识别,AA分别为99.27%、99.34%,而本文中MobileNet和 Inception V3平均准确率仅下降4个百分点左右,说明与PC端的常规深度神经网络相比,手机端使用轻型网络进行病害识别时准确率下降幅度很小。

4.4.2 2种网络的误识别分析

为了区分病害错误分类的分布情况,对于识别Acc低于90.00%,即误识别率高于10.00%的6种病害类型,图4给出了它们被误识别为其他病害种类的情况,图中一个柱子总高度对应一种病害叶片总的误识别率,不同颜色矩形代表被误分类为其他病害的概率,图中仅对误分类率高于2.00%的类型给出了独立的矩形,低于2%的则合计在一起用矩形表示。

从图4可以看出番茄病害是引起误识别率高的主要的因素:1)番茄早疫病(C30)很容易被误识别为番茄细菌性斑点病(C29)、番茄斑枯病(C34)、番茄晚疫病(C32)、番茄叶霉病(C33),这几种病害分别占前者整体误识别率的36.67%、18.33、15.00%、13.30%;2)番茄晚疫病(C32)容易被误识别为番茄叶霉病(C33)和番茄早疫病(C30),后两者分别占前者整体误识别率的55.60%、24.20%;番茄斑枯病(C34)最容易被误识别为番茄叶霉病(C33)和番茄细菌性斑点病(C29),后两者分别占前者整体误识别率的43.90%、29.80%;3)番茄轮斑病(C36)最容易被误识别为番茄二斑叶螨病(C35)、番茄细菌性斑点病(C29)和番茄叶霉病(C33),后3种植物病害分别占前者整体误识别率的43.00%、22.60%和18.50%。此外,玉米灰斑病(C8)很容易与玉米枯叶病(C11)混淆,后者占前者整体误识别率的94.10%;健康土豆叶(C22)最容易被误识别为健康黄豆叶(C25)和土豆晚疫病(C23)后两者分别占前者整体误识别率的61.80%、20.60%。

图5给出了MobileNet中识别率最低的5种类型以及相应最容易被误判成的类型的比较图像例子,图中第1行为识别率最低的5种类型的例子,第2行是对应的最容易误判成的类型的例子。

图4 MobilNet下6种误识别率最高类型分布

图5 MobileNet中容易混淆的病害叶片的例子

从图5看出,玉米灰斑病(C8)与玉米枯叶病(C11)2种病害叶片病斑均是沿叶脉方向扩展成长条斑或呈现矩形状,病斑颜色为灰褐色,2种病害叶片病斑症状相似度很高,造成了模型的误识别。健康土豆叶(C22)和健康黄豆叶(C25)在叶片形状和纹理上很相像,从而造成了模型的误识别。番茄早疫病(C30)和番茄细菌性斑点病(C29)均是在叶尖处颜色开始泛黄,斑点呈黑褐色并开始腐烂,2种病斑症状相似。番茄晚疫病(C32)和番茄叶霉病(C33)叶面出现大面积不规则的褐色斑块,叶片开始萎蔫,2种病害引起的叶片症状相似。番茄轮斑病(C36)叶片处于发病的早期,叶面有红褐色斑点,但并不明显,番茄二斑叶螨病(C35)主要是二斑叶螨寄生在叶片的背面取食造成的,二斑叶螨会释放毒素使叶片变成暗褐色,2种病害叶片在病害特征上相近,叶片纹理相似,从而造成模型的误识别。

Inception V3网络中单个类别识别Acc在90.00%以下的有番茄早疫病(C30)和健康番茄叶(C31),分别是68.00%和89.31%,其中番茄早疫病(C30)识别率远低于AA。2种病害叶片的误识别率分别如图6所示。

番茄早疫病(C30)最容易被误识别为番茄斑枯病(C34)、番茄晚疫病(C32)、番茄轮斑病(C36)和番茄细菌性斑点病(C29),后几种植物病害叶片分别占前者整体误识别率的39.10%、20.30%、15.60%和14.10%。健康番茄叶(C31)最容易被误识别为番茄轮斑病(C36),后者占前者整体误识别率的70.60%。Inception V3网络对病害误识别原因同MobileNet类似,都是不同病害之间在叶片纹理和症状等方面非常接近。

4.5 自建葡萄病害集的测试结果及误识别分析

自建数据集也采用与PlantVillage数据集相同的训练方法,表5是2种模型在自建数据库的测试结果。

表5 葡萄病害分类结果

由表5可知,自选数据集中6种病害样本在MobileNet、Inception V3模型下识别的平均准确率(AA)分别是87.50%、88.06%。MobileNet模型下灰霉病识别效果最为显著,Acc为96.67%,其次是白粉病,其Acc为90.00%;霜霉病的识别效果最差,Acc仅为76.67%,误识别率达到了23.33%,霜霉病最容易被误判为白粉病,占到了其误识别率的78.61%。Inception V3模型下白粉病识别效果最为显著,Acc为96.67%,黑痘病、炭疽病、灰霉病的Acc均在90.00%以上;霜霉病病的识别效果最差,其误识别率高达31.67%,最易被误识别为白粉病,占霜霉病整体误识别率的68.40%。在2种网络中霜霉病的Acc均为最低,图7给出了霜霉病和白粉病图例,可以看出2种病害叶片的病害症状相似,均呈现白色粉末状,造成霜霉病很容易被误识别为白粉病。

图6 Inception V3中2种误识别率最高的类型图例

图7 葡萄霜霉病和白粉病

5 手机端病害识别软件开发

综合2种轻量型卷积神经网络(MobileNet和Inception V3)在2个数据集的识别结果,图像识别精度方面MobileNet在单个类别的识别效果不如Inception V3,但MobileNet和Inception V3在PlantVillage数据集上最低的病害识别Acc分别是70%(番茄叶早疫病,C30)、68%(番茄叶早疫病,C30),在自建葡萄病害数据集上最低的病害(葡萄霜霉病)识别Acc分别是76.67%、68.33%,可以看出MobileNet最低的病害识别率比Inception V3要高,这说明前者比后者在多类别病害识别的准确率方面更为均衡,适合在实际中使用。2种轻量卷积神经网络在计算机端训练后,MobileNet训练完成后的模型尺寸是17.1 MB,Inception V3训练完成后的模型尺寸是87.5 MB。迁移到手机端后MobileNet的运行内存是21.5 MB,而Inception V3的运行内存是125 MB。Inception V3手机端平均运算时间约是174 ms,MobileNet手机端的平均计算时间约是134 ms,后者的计算时间比前者少40 ms,综合考虑2种网络的识别精度、模型尺寸和运算时间,MobileNet以牺牲微小精确度为代价,模型尺寸小,运行时间短,因此本文认为MobileNet在手机端应用时比Inception V3更加有优越性,故本文在手机端APP开发时采用MobileNet。

APP的开发软件是Android Studio,前期在计算机端使用得到的MobileNet模型,与Android Studio同属于Google公司,减少诸多限制因素。前面的分类模型导入流程包括:1)模型准备,2)软件安装和配置,3)模型导入和参数修改,4)测试与验证。模型准备主要是得到模型.pb文件和标签文件.txt文件,这2个文件是前期在计算机端训练结束后生成的。软件安装和配置主要是开发工具的安装和相对应的SDK的安装。模型导入和参数修改是在Android Studio中打开Project view,把.pb文件和.txt文件放在app/src/main/assets下,定义变量和Tensorflow接口初始化,配置文件对应的(build gradle)的版本,在APP页面添加3个标签按钮,分别是照片、相机、识别图像,之后配置按钮对TF模型的调用,执行“Build APK(S)”,即可生成可安装文件包(APK文件)。然后,通过4G/无线网络传输到Android手机,也可以通过有线方式把安装包移至Android手机,即完成了基于Android的植物病害叶片APP的移植。APP的测试机型是荣耀V10,Android手机端点击安装APP,安装成功后选择植物病害图像进行测试和验证。

手机端图像识别例子如图8所示,分别有相机、照片、识别3个按钮。点击相机按钮可以打开手机摄像头选择拍摄图片,点击照片按钮可在本地内存选择照片,选好照片后点击识别按钮,在照片下部将会显示分类概率最高的3种,通常可认为分类概率最高的即为本张植物病害叶片的最终识别结果,这种方法为用户提供了一种自行判断植物病害的选择。图中显示该图像被分类为葡萄叶枯病(C15)的概率是0.87。

图8 手机端识别的例子

6 结 论

基于图像处理与深度学习技术,本文采用2种轻量化卷积神经网络MobileNet和Inception V3在公开的作物病害图像集PlantVillage和自建葡萄病害叶片图像集上进行迁移学习,得到2种植物病害分类模型。对2种模型在识别准确率、模型尺寸、运算速度等方面进行了对比分析,得到如下结论:

1)PlantVillage测试集上MobileNet和Inception V3的平均准确率值分别达到95.02%和95.62%,在自建图像集上2种网络的平均准确率是87.50%、88.06%,2种网络的识别精度非常接近。

2)MobileNet和Inception V3在PlantVillage图像集上最高的误识别率分别为30.00%和32.00%,前者的识别率比后者高2个百分点;在自建图像集上最高的误识别率分别是23.33%和31.67%,前者的识别率比后者高8个百分点左右,MobileNet的误识别率低于Inception V3。

3)手机端模型尺寸方面MobileNet仅为Inception V3的1/5左右,前者能极大地节省手机的运行内存。

4)手机端的平均识别时间MobileNet比Inception V3少40 ms,MobileNet在很大程度上节省用户时间,提高使用效率。

上述结果说明MobileNet更适合在手机端使用。本文开发的手机端的植物叶片病害APP简单易用,对多种植物病害识别精度较高,在实际应用过程中可对农户科学、合理、有效地防治植物病虫害起到积极的作用。

目前的模型局限在背景单一的PlantVillage数据库叶片图像,PlantVillage数据库的图像均在室内拍摄,在自然条件中采集的自建图像集上则识别精度有所下降,说明本模型会受到光照变化等外部坏境的影响。在后续研究中我们将采集更多自然条件下拍摄的植物病害叶片加入到训练集中,选择和设计更适合自然条件下进行分类的深度网络,提高网络的分类精度,开发更加实用的手机端植物病害识别软件。

[1] 贾建楠,吉海彦,基于病斑形状和神经网络的黄瓜病害识别[J]. 农业工程学报,2013,29(25):115-121. Jia Jiannan, Ji Haiyan. Recognition for cucumber disease based on leaf spot shape and neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2013, 29(25): 115-121. (in Chinese with English abstract)

[2] 孙俊,谭文军,毛罕平. 基于改进卷积神经网络的多种植物叶片病害识别[J]. 农业工程学报,2017,33(19):209-215. Sun Jun, Tan Wenjun, Mao Hanping. Recognition of multiple plant leaf diseases based on improved convolutional neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2017, 33(19): 209-215. (in Chinese with English abstract)

[3] 魏丽冉,岳峻,李振波,等. 基于核函数支持向量机的植物叶部病害多分类检测方法[J]. 农业机械学报,2017,48(S1):166-171. Wei Liran, Yue Jun, Li Zhenbo, et al. Multi-classification detection method of plant leaf disease based on kernel function SVM[J]. Transactions of the Chinese Society for Agricultural Machinery, 2017, 48(S1): 167-171. (in Chinese with English abstract)

[4] 龙满生,欧阳春娟,刘欢,等. 基于卷积神经网络与迁移学习的油茶病害图像识别[J]. 农业工程学报,2018,34(18):194-201. Long Mansheng, Ouyang Chunjuan, Liu Huan, et al. Image recognition of Camellia oleifera diseases based on convolutional neural network & transfer learning[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2018, 34(18): 194-201. (in Chinese with English abstract)

[5] 张建华,祁力钧,冀荣华. 基于粗糙集和BP神经网络的棉花病害识别[J]. 农业工程学报,2012,28(7):161-167. Zhang Jianhua, Qi Lijun, Ji Ronghua. Cotton diseases identification based on rough setsand BP neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2012, 28(7): 161-167. (in Chinese with English abstract)

[6] 许良凤,徐小兵,胡敏. 基于多分类器融合的玉米叶部病害识别[J]. 农业工程学报,2015,31(14):194-201. Xu Liangfeng, Xu Xiaobing, Hu Min. Corn leaf disease identification based on multiple classifiers fusion[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2015, 31(14): 194-201. (in Chinese with English abstract)

[7] 马浚诚,杜克明,郑飞翔,等. 基于卷积神经网络的温室黄瓜病害识别系统[J]. 农业工程学报,2018,34(12):186-192. Ma Juncheng, Du Keming, Zheng Feixiang, et al. Disease recognition system for greenhouse cucumbers based on deep convolutional neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2018, 34(12): 186-192. (in Chinese with English abstract)

[8] 杨林楠,郜鲁涛,林尔升. 基于Android系统手机的甜玉米病虫害智能诊断系统[J]. 农业工程学报,2012,28(18):163-168. Yang Linnan, Gao Lutao, Lin Ersheng. Intelligent diagnose system of diseases and insect pests in sweet corn based on mobile terminal with Android system[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2012, 28(18): 161-167. (in Chinese with English abstract)

[9] Prasad S, Peddoju S K, Ghosh D. Multi-resolution mobile vision system for plant leaf disease diagnosis[J]. Signal, Image and Video Processing, 2016, 10(2): 379-388.

[10] 焦计晗,张帆,张良. 基于改进AlexNet模型的油菜种植面积遥感估测[J]. 计算机测量与控制,2018,26(2):186-189. Jiao Jihao, Zhang Fan, Zhang Liang. Remote sensing estimation of rape planting area based on improved AlexNet model[J]. Computer Measurement & Control, 2018, 26(2): 186-189. (in Chinese with English abstract)

[11] Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL]. [2017-09-04]. https://arxiv.org/abs/1409.1556v6.

[12] Ballester P L, Araujo R M. On the performance of GoogLeNet and AlexNet applied to sketches[C]// AAAI. AAAI Press, 2016.

[13] 尼加提·卡斯木,师庆东,刘素红,等. 基于卷积网络的沙漠腹地绿洲植物群落自动分类方法[J]. 农业机械学报,2019,50(1):217-225. Nijiat Kasim, Shi Qingdong, Liu Suhong, et al. Automatic classification method of oasis plant community in desert hinterland based on VggNet and ResNet models[J]. Transactions of the Chinese Society for Agricultural Machinery, 2019, 50(1): 217-225. (in Chinese with English abstract)

[14] 赵志衡,宋欢,朱江波,等. 基于卷积神经网络的花生籽粒完整性识别算法及应用[J]. 农业工程学报,2018,34(21):195-201. Zhao Zhiheng, Song Huan, Zhu Jiangbo, et al. Peanut grain integrity recognition algorithm based on convolution neural network and its application[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2018, 34(21): 195-201. (in Chinese with English abstract)

[15] 王丹丹,何东健. 基于R-FCN深度卷积神经网络的机器人疏果前苹果目标的识别[J]. 农业工程学报,2019,35(3):164-171. Wang Dandan, He Dongjian. Recognition of apple target before fruit thinning by robot based on R-FCN deep convolution neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2019, 35(3): 164-171. (in Chinese with English abstract)

[16] 李云伍,徐俊杰,刘得雄,等. 基于改进空洞卷积神经网络的丘陵山区田间道路场景识别[J]. 农业工程学报,2019,35(7):150-159. Li Yunwu, Xu Junjie, Liu Dexiong, et al. Field road scene recognition in Hilly and mountainous areas based on improved void convolution neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2019, 35(7): 150-159. (in Chinese with English abstract)

[17] Lu Jiang, Hu Jie, Zhao Guannan, et al. An in-field automatic wheat disease diagnosis system[J]. Computers and Electronics in Agriculture, 2017, 142: 369-379.

[18] 张建华,孔繁涛,吴建寨,等. 基于改进VGG卷积神经网络的棉花病害识别模型[J]. 中国农业大学学报,2018,23(11):167-177. Zhang Jianhua, Kong Fantao, Wu Jianzhai, et al. Cotton disease identification model based on improved VGG convolution neural network[J]. Journal of China Agricultural University, 2018, 23(11): 167-177. (in Chinese with English abstract)

[19] 郑一力,张露. 基于迁移学习的卷积神经网络植物叶片图像识别方法[J]. 农业机械学报,2018,49(S1):354-359. Zheng Yili, Zhang Lu. Plant leaf image recognition method based on transfer learning with convolutional neural networks[J]. Transactions of the Chinese Society for Agricultural Machinery, 2018, 49(S1): 354-359. (in Chinese with English abstract)

[20] Grinblat G L, Uzal L C, Larese, et al. Deep learning for plant identification using vein morphological patterns[J]. Computers and Electronics in Agriculture, 2016, 127: 418-424.

[21] Howard A G, Zhu M, Chen B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[EB/OL]. [2017-04-17]. https: //arxiv. org/abs/1704. 04861.

[22] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision [EB/OL]. [2015-12-02]. https://arxiv.org/abs/1512.00567

[23] Loffe S, Szegedy C. Batch normalization: accelerating deep network training by reducing internal covariate Shift[EB/OL]. [2015-02-11]. https: //arxiv. org/abs/1502. 03167.

[24] 宋小倩,周东升. 基于Android平台的应用开发研究[J]. 软件导刊,2011,10(2):104-106. Song Xiaoqian, Zhou Dongsheng. Development and research of application based on android platform[J]. Software Tribune, 2011, 10(2): 104-106. (in Chinese with English abstract)

[25] 尚明华,秦磊磊,王风云,等. 基于Android智能手机的小麦生产风险信息采集系统[J]. 农业工程学报,2011,27(5):178-182. Shang Minghua, Qin Leilei, Wang Fengyun, et al. Information collection system of wheat production risk based on Android smartphone[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2011, 27(5): 178-182. (in Chinese with English abstract)

[26] 杨莉. 基于Android的移动学习平台的设计[J]. 计算机光盘软件与应用,2014(6):79-80. Yang Li. Design on mobile learning platform based on Android[J]. Computer CD Software and Application, 2014(6): 79-80. (in Chinese with English abstract)

[27] 戴建国,王守会,赖军臣,等. 基于智能手机的棉花苗情调查与决策支持系统[J]. 农业工程学报,2017,33(21):200-206. Dai Jianguo, Wang Shouhui, Lai Junchen, et al. Cotton growth statuses investigation and decision support system based on smart phone[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2017, 33(21): 200-206. (in Chinese with English abstract)

[28] 路文超,赵勇,罗斌,等. 基于android手机的水稻剑叶角测量系统[J]. 农业机械学报,2015,46(11):296-301. Lu Wenchao, Zhao Yong, Luo Bin, et al. Measurement system of rice flag leaf angle based on android smart phone[J]. Transactions of the Chinese Society for Agricultural Machinery, 2015, 46(11): 296-301. (in Chinese with English abstract)

[29] 马艳娜,唐华,柯红军. 基于移动终端的遥感监测数据采集系统设计与实现[J]. 测绘与空间地理信息,2017,40(4):120-122. Ma Yanna, Tang Hua, Ke Hongjun. The System design and implementation of remote sensing data acquisition based on mobile terminal[J]. Geometrics & Spatial Information Technology, 2017, 40(4): 120-122. (in Chinese with English abstract)

[30] 戴建国,赖军臣. 基于图像规则与Android手机的棉花病虫害诊断系统[J]. 农业机械学报,2015,46(1):35-44. Dai Jianguo, Lai Junchen. Image-rule-based diagnostic expert system for cotton diseases and pests based on mobile terminal with android system[J]. Transactions of the Chinese Society for Agricultural Machinery, 2015, 46 (1): 35-44. (in Chinese with English abstract)

[31] Prasad S, Peddoju S K, Ghosh D. Multi-resolution mobile vision system for plant leaf disease diagnosis[J]. Signal, Image and Video Processing, 2016, 10(2): 379-388.

[32] He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Deep residual learning for image recognition[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 27-30

[33] Hughes D P, Salathe M. An open access repository of images on plant health to enable the development of mobile disease diagnostics[EB/OL]. [2015-11-25]. https: //arxiv. org/abs/1511. 08060.

[34] Pan S J, Yang Q. A survey on transfer learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10): 1345-1359.

[35] 杨国国,鲍一丹,刘子毅. 基于图像显著性分析与卷积神经网络的茶园害虫定位与识别[J]. 农业工程学报,2017,33(6):156-162. Yang Guoguo, Bao Yidan, Liu Ziyi. Localization and recognition of pests in tea plantation based on image saliency analysis and convolutional neural network[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2017, 33(6): 156-162. (in Chinese with English abstract)

[36] 叶海建, 郎睿. 基于Android的自然背景下黄瓜霜霉病定量诊断系统[J]. 农业机械学报,2017,48(3):24-29. Ye Haijian, Lang Rui. Cucumber downy mildew severity quantifying diagnosis system suitable for natural backgrounds based on Android[J]. Transactions of the Chinese Society for Agricultural Machinery, 2017, 48(3): 24-29. (in Chinese with English abstract)

[37] 葛芸,江顺亮,叶发茂,等. 基于ImageNet预训练卷积神经网络的遥感图像检索[J]. 武汉大学学报:信息科学版,2018,43(1):67-73. Ge Yun, Jiang Shunliang, Ye Famao, et al. Remote sensing image retrieval using pre-trained convolutional neural networks based on ImageNet[J]. Geometrics and Information Science of Wuhan University, 2018, 43(1): 67-73. (in Chinese with English abstract)

[38] Mohanty S P, Hughes D P, Marcel S. Using deep learning for image-based plant disease detection[J]. Frontiers in Plant Science, 2016, 7: 14-19

Plant disease identification method based on lightweight CNN and mobile application

Liu Yang1, Feng Quan1※, Wang Shuzhi2

(1.,,730070,; 2.,,730030,)

Because of the cultivation environment, management level, climate and other conditions, there are a variety of different types of diseases over the plant growth period. The problem of plant diseases in agricultural production has become one of the important factors that restrict crop growth. Timely and accurate identification of disease types is of great significance for effective disease control. The disease identification methods based on deep neural network have achieved very high recognition accuracy. However, the ordinary deep neural networks are too large in size and mainly running on computers. At present, smart phones are more and more popular, and a disease recognition system is very meaningful if it can be run on the phones directly. In this paper, the lightweight convolutional neural network (CNN) was employed to design a mobile APP for plant disease identification, which could be easily used in the field. The lightweight networks used in this paper included MobileNet and Inception V3. We had compared the performance of the 2 methods in several aspects in order to get the best model and transplant to the mobile phone. We pre-trained the 2 network models on the ImageNet dataset and then migrated on the PlantVillage dataset and the self-built grape disease dataset. Disease classification test experiments were performed on the 2 sets using the 2 training models obtained. The experimental results showed that MobileNet and Inception V3 had an average recognition accuracy of 95.02% and 95.62% over the PlantVillage dataset (a total of 38 species), and 87.50%, 88.06% respectively over the grape disease dataset. The recognition accuracy of the 2 networks was generally consistent. For the PlantVillage dataset, the recognition rates of tomato leaf early blight were the lowest in the 2 databases, 70% and 68%, respectively for MobileNet and Inception V3. For the grape downy mildew on the dataset, the 2 networks also showed the lowest recognition rates, which were 76.67% and 68.33%, respectively. MobileNet's lowest disease recognition rate was higher than that of Inception V3, which meant that MobileNet was more balanced than Inception V3 in the accuracy of multiple species of disease identification and was more suitable for practical use. In terms of model size, Inception V3 was 87.5 MB, and MobileNet was 17.1 MB. The former was about 5 times larger than the latter. The APP with Inception V3 and MobileNet occupied 125 and 21.5 MB of mobile phone memory respectively. To identify a single picture on the phone, APP with Inception V3 took 174 ms while APP with MobileNet took only 134, 40 ms faster. In summary, the classification accuracy of the 2 network was very close, but MobileNet required less memory and ran faster than Inception V3, indicating that the former was more suitable for mobile phone applications. The images in the PlantVillage dataset were taken indoors and the background image was simple, thus the recognition accuracy over it was high. However, the accuracy decreased over the grape disease dataset in which the images were collected in natural conditions, indicating that the network was significantly affected by external environment such as illumination changes and background. In the follow-up study, we will collect more plant disease leaves taken under natural conditions for training to develop a more robust APP for plant disease identification.

plant; diseases; image recognition; MobileNet; Inception V3; Android

2019-05-18

2019-08-26

甘肃农业大学学科建设专项基金(GAU-XKJS-2018-188);国家自然基金(61461005)

刘 洋,主要从事图像处理、模式识别。Email:842491107@qq.com

冯 全,教授,博士,博士生导师,主要从事图像处理、农业信息化。Email:fquan@sina.com

10.11975/j.issn.1002-6819.2019.17.024

S43; TP391.41

A

1002-6819(2019)-17-0194-11

刘 洋,冯 全,王书志. 基于轻量级CNN的植物病害识别方法及移动端应用[J]. 农业工程学报,2019,35(17):194-204. doi:10.11975/j.issn.1002-6819.2019.17.024 http://www.tcsae.org

Liu Yang, Feng Quan, Wang Shuzhi. Plant disease identification method based on lightweight CNN and mobile application[J].Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2019, 35(17): 194-204. (in Chinese with English abstract) doi:10.11975/j.issn.1002-6819.2019.17.024 http://www.tcsae.org

猜你喜欢

识别率番茄卷积
番茄炒蛋
秋茬番茄“疑难杂症”如何挽救
基于3D-Winograd的快速卷积算法设计及FPGA实现
番茄果实“起棱”怎么办
基于类图像处理与向量化的大数据脚本攻击智能检测
从滤波器理解卷积
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
提升高速公路MTC二次抓拍车牌识别率方案研究
基于傅里叶域卷积表示的目标跟踪算法
高速公路机电日常维护中车牌识别率分析系统的应用