2. 广西甘蔗生物学重点实验室,广西 南宁 530004;
3. 中国农业大学 现代精细农业系统集成研究教育部重点实验室,北京 100083;
4. 广西捷佳润科技有限公司,广西 南宁 530001
2. Guangxi Key Laboratory for Sugarcane Biology, Nanning 530004, China;
3. Key Laboratory of Modern Precision Agriculture System Integration Research, Ministry of Education, China Agricultural University, Beijing 100083, China;
4. Guangxi Jie Jia Run Technology Co., Ltd., Nanning 530001, China
作为重要的经济作物,香蕉非常容易受病害影响,病虫害是限制香蕉种植业的主要因素之一。香蕉病害的早期发现和诊断有助于农户及时采取防控措施,减少经济损失。因此,病害的诊断是香蕉生产中的重要环节。传统的疾病监测和识别,主要依靠经验丰富的农户或专家,这种方法耗时费力,且结论存在主观性,导致生产效率较低。研究者探索了许多其他的方法来提高疾病诊断的准确性[1-2],例如化学分析法[3]、高光谱分析法[4-6]等。但是这些方法步骤较为复杂,且设备成本较高。
随着计算机技术的飞速发展,利用图像处理技术自动识别病虫害受到越来越多的关注。尤其是进入21世纪后,基于计算机视觉和机器学习的方法[7-9]来实现病虫害诊断的研究越来越多。这些方法主要通过获取作物染病部位的图像来提取不同的疾病特征,然后建立分类器以识别疾病。最常见的方法是通过定向梯度直方图法(Histogram of gradient, HOG)[10-11]和尺度不变特征变换法(Scale invariant feature transform, SIFT)[12]来提取特征,然后再结合SVM分类器进行分类识别。近十年来,深度学习方法又逐渐替代传统机器学习方法,成为病虫害识别的主流方法。与手动提取特征的传统机器学习方法不同,深度学习网络会自动从数据集中学习更深层次的特征。国内外学者在利用深度学习诊断病虫害方面展开了大量研究与实践,并取得一定成果,尤其是卷积神经网络(Convolutional neural networks, CNN),已应用于不同作物的病害鉴定,并取得了良好的效果[13-16]。但是,深度网络的训练耗时较长,为了改善这一问题,不少研究者采用迁移学习的方式来对网络进行训练[17-18]。现有网络的模型参数稳定,使用迁移学习的方式进行训练,时间花费较少,但是部分场景识别精度受到限制。国内外学者通过改变网络的一部分卷积层数、卷积核大小、激活函数等方法来提高识别精度,已取得初步成效[19-21]。
深度学习在植物病虫害诊断方面取得了很大的进展,但在香蕉作物中却鲜有报道。香蕉在热带、亚热带地区被广泛种植,是我国重要的经济作物之一,且香蕉极易受到枯萎病、束顶病、叶斑病等病虫害的侵袭。本文基于现有的GoogLeNet网络模型,利用迁移学习的方式对7种常见的香蕉病害数据集进行训练,构建诊断模型。将该模型进一步集成到软件系统中,该软件系统包括一个移动应用程序(APP)和一个远程服务器,用户可以通过移动终端将染病部位的图像上传至远程服务器进行在线诊断,以期实现实时、便捷的香蕉常见病害的诊断。
1 香蕉病害诊断系统和模型训练 1.1 系统总览本文是基于GoogLeNet深度模型架构进行香蕉病害模型的训练。训练得到的诊断模型被集成到远程服务器中,终端APP将采集的染病部位图像发送至服务器进行在线诊断,实时获取诊断结果。系统的总体结构如图1所示。
![]() |
图 1 香蕉病害诊断系统总体结构 Fig. 1 Overall structure of the banana disease diagnosis system |
研究共搜集了香蕉常见的7种病害图像及健康植株的图像,共741张,图像来自蕉园现场拍摄及网络。其中枯萎病危害整株香蕉,最终呈现出整株发病的特征,数据样本多为整体或接近整体的图像,但也包含约1/5的局部样本,主要采集病害特征明显的叶片。健康类别的样本为局部和整体样本各占一半。其余病害均为局部病害,采集的样本也以局部图像为主。图2显示了香蕉常见病害及其典型症状。
![]() |
图 2 健康及染病的香蕉植株 Fig. 2 Healthy and diseased banana plants |
本研究的原始数据集样本数量较少、相似度较高,对模型性能会造成不利影响,尤其是深度学习框架(例如复杂的卷积神经网络)。增加图像的数量及多样性对模型的识别精度、鲁棒性和稳定性都具有积极的影响。当原始样本数量难以满足精度需求时,通常采用数据增强的方式来扩展数据集[14, 19, 22]。考虑到用户上传图像时,不同拍摄手法、角度、光线等会对诊断结果产生影响,本文采用了图像旋转、水平翻转、缩放、对比度增强等数据增强方法[23],增加数据集的复杂性,使其更符合实际情况,最终将数据集扩展到5944幅图像,详情见表1。
![]() |
表 1 各类别样本图像数量 Table 1 Number of sample images in each category |
GoogLeNet架构是具有22层深度的卷积神经网络,最初的输入数据是图像的一个小区域,然后通过多层次的卷积运算得到每一层的代表性特征。GoogLeNet架构在卷积神经网络的基础上通过增大网络的深度(层数)在图像识别方面取得了更好的效果。GoogLeNet的核心模块Inception模块(本研究采用的是Inception-V3 模块)的结构如图3所示。
![]() |
图 3 Inception-V3结构 Fig. 3 Inception-V3 structure |
每个Inception模块从输入层获取前一级的卷积特征图像,然后使用并行的卷积以及一个最大池化,并行捕获输入图像的多种特征。每个Inception模块都将原来的n×n卷积,优化为2个卷积1×n和n×1,可以提升计算速度、减少计算成本,同时网络深度也进一步增加。为了改变每个并行卷积层输出特征图的数量,在各层之间方便进行计算,每个模块起始添加1×1卷积,最后经过滤波器连接层(Filter concatenation),将并行卷积获得的所有特征图像按照深度链接起来。GoogLeNet总共使用了9个Inception模块,并在所有卷积层采用ReLU激活函数。该网络在中间层还具有2个辅助分类器,以有效地对所有层进行反向传播[3, 24],帮助更新网络参数。
由于GoogLeNet架构的复杂性,从头开始进行培训需要大量数据集,且用时过长,因此本文选择迁移学习的方式。迁移学习的主要思想是将一个训练好的模型参数直接迁移到另一个场景或数据集,以帮助训练新需求下的分类模型[15]。本文固定GoogLeNet网络中一定层数的权重,并对分类层进行调整以适用于新的数据集分类,重新训练后几层的现有权重,实现快速模型训练。
利用TensorFlow框架、Jupyter Notebook开发环境和Python语言在计算机上训练和测试该模型。该计算机的处理器为Intel Core i5-4590,内存为16 G,显卡为NVIDIA GeForce GT 1030。模型训练时,学习率设置为0.01,训练批量大小为100,采用Top-1作为模型性能评价指标。整个数据集按7∶1∶2的比例分为训练集、验证集和测试数据集。模型的训练选取了GradientDescentOptimizer (GDO)、AdamOptimizer(AO)、MomentumOptimizer(MO)这3个不同的优化器,以及5000、10000、50000这3个不同的迭代次数来对比不同参数对模型性能的影响。
2 结果与分析用Top-1准确性和模型损失评估模型的性能,模型的训练结果、验证结果以及最终的测试结果如图4和表2所示。
![]() |
表 2 模型的训练时间和平均测试精度 Table 2 Model training time and average test accuracy |
![]() |
图 4 不同优化器不同迭代次数下的模型训练结果 Fig. 4 Model training results using different optimizers with different iteration times |
从表2可以看出,5个模型的测试精度均高于94%;其中,采用MO优化器迭代10000次和采用GDO优化器迭代50000次的模型分类精度最高,达到了98.0%。从图4可以看出,随着迭代次数的增加,GDO优化器的验证精度越来越高,损失越来越小,但模型的训练时间几乎是线性增加的。从收敛速度来看,GDO优化器在迭代3000次左右时收敛,而AO和MO优化器在迭代300次左右时收敛,说明GDO优化器的收敛速度明显慢于AO和MO优化器。从损失函数趋势特点来看,在相同迭代次数(10000次)下,GDO优化器的损失函数较大,AO优化器的损失函数波动较大,而MO优化器的损失较小且最平稳。所以,综合考虑训练时间、分类精度及收敛速度等要素,MO优化器迭代10000次获得的模型具有最全面与稳定的性能,被选为最终的诊断模型。
混淆矩阵可用来比较实际类别与预测结果的关系,是表达分类准确性的有效方式。本模型测试结果的混淆矩阵如表3所示。计算了各类别的生产者精度(Producer’s accuracy,PA)和用户精度(User’s accuracy,UA),结果如表4所示。PA是某类别被正确识别的图像数量和该类别实际包括的图像数量的比率;UA则是被正确识别的某类别的图像数量和被识别为该类别的图像总数的比率。从表3和表4可以看出,大部分类别的PA和UA都高于95%。进一步分析引起误差的类别可以看出,黑星病和炭疽病的UA相对较低,分别为94.5%和93.7%,模型较容易将叶斑病误识别为黑星病,将叶斑病和黑疫病误识别为炭疽病,原因是叶斑病、黑疫病和炭疽病在发病初期均会产生褐色至黑色的斑点,后期病斑均会扩大至相互交汇,叶片大面积黑死,后期可以通过进一步扩大数据集的样本降低识别错误率。另外,鞘腐病的PA为94.9%,也相对较低,引起误差的样本主要是模型将2例鞘腐病误识别成枯萎病;同时,也有1例被识别为鞘腐病的样本实际上感染的是枯萎病。鞘腐病类别的样本数量较少可能是造成该类别识别错误率较高的主要原因。
![]() |
表 3 模型测试的混淆矩阵 Table 3 Confusion matrix of model testing result |
![]() |
表 4 模型测试精度 Table 4 Model testing accuracy |
根据得到的诊断模型进一步开发了香蕉病害远程诊断系统。整个系统主要由终端APP和远程服务器2部分组成。终端APP用来获取、处理、上传香蕉植株图像,并接收诊断结果。远程服务器主要有2个功能:与终端通信,收取图片、下发诊断结果;内嵌诊断模型,实现病害的快速识别。软件系统结构如图5所示。
![]() |
图 5 软件系统总体结构图 Fig. 5 General structure of the software system |
终端APP是针对Android系统开发的,开发环境为Android Studio和IDE。它的主要功能是拍摄、查看、预处理和上传植物图像,接收和显示诊断结果。另外还包括病虫害科普知识,香蕉病虫害的典型症状及常用防治措施。APP可使用终端内置相机原位捕获图像或从其相册中进行选择,必要时还可进行一些基本的图像预处理,如裁剪、旋转、灰度化等,然后将图像发送到远程服务器,并实时接收诊断结果。
服务器采用Java socket模块开发。通过设置监听程序对相应端口进行监听,一旦检测到图像,就调用诊断模型对图像进行识别,并快速地将诊断结果反馈给移动终端。本文共设计了2个端口,一个用于接收图像信息,另一个用于反馈诊断信息。
系统通过整体调试,在4G网络下,从图像上传到获得诊断结果,平均用时3.1 s,APP可实现快速原位诊断香蕉病害类别,测试结果如图6所示。
![]() |
图 6 APP测试结果 Fig. 6 APP test result |
随着5G技术的快速发展和推广,数据传输的带宽、速度、稳定性等都将得到跨越式地发展。未来在5G网络下,该应用能获取的图像质量将更有保障,测量时间还将明显缩短,甚至可实现视频流的诊断,进一步提高诊断精度及可靠性。
4 结论研究通过收集并扩展7种主要的香蕉病害数据集,利用深度卷积网络之一的GoogLeNet Inception-V3模型,通过迁移学习训练获得了香蕉病害诊断模型。通过对比不同网络优化器和迭代次数对模型性能的影响,最终选择了MO优化器迭代10 000次的模型,平均测试准确率达到了98%,大部分类别的用户精度及生产者精度均达到了95%以上。误差产生的主要原因有:一是部分病害在不同的发病阶段会出现相似的特征,如叶斑病、黑星病和炭疽病在发病初期均会产生褐色至黑色的斑点,后期病斑均会扩大至相互交汇,叶片大面积黑死,这2个阶段三者的特征相似度高;二是数据集样本数量偏少,如鞘腐病的测试集仅包含39个样本。后期可通过扩大数据集进一步提高模型的精度。为了使用户能够快速、准确地判断香蕉的病害,进一步开发了基于该诊断模型的在线诊断软件系统。该系统有效地提高了香蕉病害诊断的精度与速度,并解除了传统的高度依赖有经验的人工识别的局限性,可以作为香蕉种植者监测病害的高效诊断工具。
[1] |
MARTINELLI F, SCALENGHE R, DAVINO S, et al. Advanced methods of plant disease detection: A review[J]. Agron Sustain Dev, 2015, 35(1): 1-25. DOI:10.1007/s13593-014-0246-1 ( ![]() |
[2] |
黄文江, 师越, 董莹莹, 等. 作物病虫害遥感监测研究进展与展望[J]. 智慧农业, 2019, 1(4): 1-11. ( ![]() |
[3] |
ALVAREZ A M. Integrated approaches for detection of plant pathogenic bacteria and diagnosis of bacterial diseases[J]. Annu Rev Phytopathol, 2004, 42(8): 339-366. ( ![]() |
[4] |
李翠玲, 姜凯, 马伟, 等. 基于高光谱的番茄叶片斑潜蝇虫害检测[J]. 光谱学与光谱分析, 2018, 38(1): 253-257. ( ![]() |
[5] |
POLDER G, BLOK P M, VILLIERS H A C, et al. Potato virus Y detection in seed potatoes using deep learning on hyperspectral images[J]. Front Plant Sci, 2019, 10(1): 1-13. ( ![]() |
[6] |
杨晨, 董丽芳, 赵海士, 等. 基于模糊判别成分分析法的高光谱作物信息提取与分类[J]. 农业工程学报, 2019, 35(21): 158-165. ( ![]() |
[7] |
AKHTAR A, KHANUM A, KHAN S A, et al. Automated plant disease analysis (APDA): Performance comparison of machine learning techniques[C]//IEEE. International Conference on Frontiers of Information Technology. New York: IEEE, 2013: 60-65.
( ![]() |
[8] |
SANNAKKI S S, RAJPUROHIT V S, NARGUND V B, et al. Diagnosis and classification of grape leaf diseases using neural networks[C]//IEEE. Fourth International Conference on Computing, Communications and Networking Technologies. New York: IEEE, 2014: 13-18.
( ![]() |
[9] |
MOKHTAR U, EL-BENDARY N, HASSANEIN A E, et al. SVM-based detection of tomato leaves diseases[C]// Springer, Cham. Intelligent Systems 2014. Berlin: Springer-Verlag, 2015: 641-652.
( ![]() |
[10] |
MIZUNO K, TERACHI Y. Architectural study of HOG feature extraction processor for real-time object detection[C]//IEEE. IEEE Workshop on Signal Processing, New York: IEEE, 2012: 197-202.
( ![]() |
[11] |
KOBAYASHI T. BoF meets HOG: Feature extraction based on histograms of oriented p. d. f. gradients for image classification[C]//IEEE. IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2013: 747-754.
( ![]() |
[12] |
PUN C M, LEE M C. Extraction of shift invariant wavelet features for classification of images with different sizes[J]. IEEE T Pattern Anal, 2004, 26(9): 1228-1233. DOI:10.1109/TPAMI.2004.67 ( ![]() |
[13] |
ANDREAS K, PRENAFETA-BOLDÚ F X. Deep learning in agriculture: A survey[J]. Comput Electron Agr, 2018, 147(1): 70-90. ( ![]() |
[14] |
ALVARO F, SOOK Y, KIM S C, et al. A robust deep-learning-based detector for real-time tomato plant diseases and pests recognition[J]. Sensors, 2017, 17(9): 2022-2043. DOI:10.3390/s17092022 ( ![]() |
[15] |
ZHANG X H, QIAO Y, MENG F F, et al. Identification of maize leaf diseases using improved deep convolutional neural networks[J]. IEEE Access, 2018, 6: 370-377. ( ![]() |
[16] |
陈桂芬, 赵姗, 曹丽英, 等. 基于迁移学习与卷积神经网络的玉米植株病害识别[J]. 智慧农业, 2019, 1(2): 34-44. ( ![]() |
[17] |
RONNEL R, PARK D. A multiclass deep convolutional neural network classifier for detection of common rice plant anomalies[J]. J Netw Comput Appl, 2018, 9: 67-70. ( ![]() |
[18] |
RAMCHARAN A, BARANOWSKI K, MCCLOSKEY P, et al. Deep learning for image-based cassava disease detection[J]. Front Plant Sci, 2017, 8: 1852-1859. DOI:10.3389/fpls.2017.01852 ( ![]() |
[19] |
MWEBAZE E, OWOMUGISHA G. Machine learning for plant disease incidence and severity measurements from leaf images[C]//IEEE. International Conference on Machine Learning and Applications. New York: IEEE, 2017: 158-163.
( ![]() |
[20] |
FERENTINOS K P. Deep learning models for plant disease detection and diagnosis[J]. Comput Electron Agr, 2018, 145: 311-318. DOI:10.1016/j.compag.2018.01.009 ( ![]() |
[21] |
吴华瑞. 基于深度残差网络的番茄叶片病害识别方法[J]. 智慧农业, 2019, 1(4): 42-49. ( ![]() |
[22] |
SRDJAN S, MARKO A, ANDERLA A, et al. Deep neural networks based recognition of plant diseases by leaf image classification[J]. Comput Intel Neurosc, 2016, 2016: 1-11. ( ![]() |
[23] |
SI M M, DENG M H, HAN Y. Using deep learning for soybean pest and disease classification in farmland[J]. Journal of Northeast Agricultural University (English Edition), 2019, 26(1): 64-72. ( ![]() |
[24] |
SZEGEDY C, LIU W, JIA Y Q, et al. Going deeper with convolutions[C]//IEEE. Conference on Computer Vision and Pattern Recognition. New York: IEEE, 2015: 1-9.
( ![]() |