APP下载

基于深度学习的农作物病害识别系统研发*

2023-10-09梁万杰曹静孙传亮曹宏鑫张文宇

中国农机化学报 2023年9期
关键词:正确率番茄作物

梁万杰,曹静,孙传亮,曹宏鑫,张文宇,2

(1. 江苏省农业科学院农业信息研究所,南京市,210014; 2. 江苏大学农业工程学院,江苏镇江,212013)

0 引言

我国是农业大国,常见的农作物病虫害达1 400多种,具有种类多、影响大、局部暴发成灾和灾害损失大等特点。病害是引起农产品减产和品质下降最重要的因素之一,也是制约高产、优质、高效农业持续发展的主要因素之一[1]。根据全国农技中心预测,2022年我国水稻病虫害将呈偏重发生态势,发生面积0.82亿公顷次[2]。及时准确地识别农作物病虫害是准确测报灾情和合理防治的前提[3-4]。病虫害识别的不及时、不准确,及大面积使用生物制剂、化学农药等非绿色防治方法,引发农药残留,严重影响农产品产量和品质[5-7]。我国农民普遍缺乏病虫害识别能力和防治知识,拥有农业病虫害诊断和防治的专家受地域和人数制约,在时间和精力上难以满足实际需求[8]。因此,研发便捷、快速、准确识别农作物病虫害和精准提供病虫害防治策略的智能化系统对现代农业的发展具有重要意义。

基于计算机视觉的作物病害识别一直是农业信息学研究热点。早期基于计算机视觉的病害识别主要通过图像分割获得病斑区域,提取病害图像特征,如:颜色空间特征[9]、YCbCr色彩空间[10]、形态、纹理特征[11]、综合颜色特征[12]等,结合分类器进行病害识别。深度学习模型,特别是卷积神经网络(Convolutional Neural Network, CNN)模型,具有自主学习特征能力,可从原始图像中重构图像的高层语义特征[13]。目前,深度学习已成为农作物病虫害实时监测与智能诊断研究热点。宋晨勇等[14]通过对GoogleNet模型的改进,实现了较高精准度的苹果病害识别,并减少了模型参数量,提高了计算效率。王国伟等[15]利用深度卷积神经网络模型构建玉米病害识别模型,平均识别率达96%,平均计算时间为0.15s。Lu等[16]提出基于多示例学习弱监督的深度学习模型用于小麦病害诊断。Lu等[17]提出改进的深度卷积神经网络模型用于水稻病害识别。Ma等[18]利用深度卷积神经网络研究黄瓜病害识别方法,在自然生长环境对黄瓜病害识别具有更好鲁棒性。随着智能手机的普及,物联网和深度学习模型的发展,农作物病虫害智能识别系统已成为应用研究一个重要方向。苏一峰等[19]基于物联网监控系统平台,研发了一个小麦病虫害诊断系统。赵建敏等[20]利用CNN模型实现了马铃薯叶片病害的准确识别,结合Web服务器和手机端APP设计实现了一个马铃薯病害智能识别系统。李昊等[21]采用物联网技术和深度学习方法,基于尺度可变视频流信息,研发了一套柑橘叶片病虫害动态识别系统。

本文以苹果、玉米、葡萄和番茄4种作物18种病害为研究对象,通过数据预处理、数据增强构建病害数据集。利用VGG16和Resnet50两种深度学习模型,通过模型参数优化、模型交叉验证等,构建单作物多病害识别和多作物多病害识别模型。并对识别模型性能进行对比分析。构建识别模型后,结合智能手机、Web技术和网络编程技术,研发一个农作物病害智能识别系统。

1 材料与方法

1.1 数据集

作物病害图像数据主要来自AI Challenger 2018数据集。该数据集按照物种—病害—程度分类,包含10个物种,共61个病害。带标签的数据包含32 768幅训练集图像和4 992幅验证集图像。本文主要选用苹果、玉米、葡萄和番茄4个作物,18个病害和健康,共22个类别建立模型。

图像按1∶1比例裁剪病害区域,并将图像统一缩放为256像素×256像素。由于部分病害类别图像样本数量较少,为提高模型的泛化能力和鲁棒性,通过增加图像对比度与亮度、添加噪声和旋转90°等方法对样本数较少类别的原始图像进行数据增强。另外,通过各种途径收集病害图片,使病害样本数量得到补充。表1展示数据集基本信息,图1展示部分病害图片。

表1 数据集信息Tab. 1 Information of dataset

图1 作物病害图像示例Fig. 1 Example of crop disease image

根据5-flod交叉验证需求,数据集被均分成5份,4份作为训练集,1份作为测试集,即80%作为训练集,20%作为测试集。

1.2 识别模型

目前,应用较广泛,识别效果较好的CNN模型有VGG16、GoogLeNet、Resnet和DenseNet等。由于VGG16和Resnet50在图像识别方面的出色表现,本文选择VGG16和Resnet50建立病害识别模型,通过对比分析选择出识别能力最佳的模型架构。VGG16模型的结构和参数如图2所示,Resnet50模型的结构和参数如图3所示。图中Conv代表卷积层,数字为卷积核大小;C为输出特征图个数,S为步长,P为填充值。模型结构图中省略了归一化层和激活函数层。

图2 VGG16模型结构和参数Fig. 2 Model structure and parameters of VGG16

图3 Resnet50模型结构和参数Fig. 3 Model structure and parameters of Resnet50

VGG模型的中心思想是使用3×3的卷积核和2×2的池化核,来减少模型参数和计算量,同时加深网络结构来提升模型识别能力。VGG16模型主要由13个卷积层、3个全连接层、5个池化层和1个dropout层构成。卷积层共分为5个卷积块,每个卷积块由一组卷积层与激活函数,及一个最大池化函数组成。VGG16通过卷积层提取图像特征,池化层降低特征维度,全连接层对数据进行分类,最后一层为softmax层,计算出输入图像属于每个类别的概率,最后得到每个类的预测值。

残差网络(ResNet),引入残差模块、恒等映射、瓶颈层等技术,通过增加网络层数使其具有更好的特征表达能力,巧妙地解决了网络深度引发的梯度消失或梯度爆炸问题;有效地控制了网络参数和计算复杂度。模型的激活函数采用Leaky ReLU。Leaky ReLU激活函数可以使梯度正常传播,并能避免神经元处于“死亡”状态。

1.3 模型运行环境

模型基于Darknet深度学习开发平台实现。Darknet是一个比较小众的深度学习框架,但该框架具有以下优点:(1)没有任何依赖项,易于安装;(2)结构明晰,源代码查看、修改方便;(3)易于移植,有利于模型系统与其他系统集成及应用开发。模型训练、测试和运行的GPU是NVIDIA GEFORCE RTX 3090,该GPU采用第2代NVIDIA RTX架构,搭载了全新的RT Core、Tensor Core及SM流式多处理器,CUDA核心数10 496,存储24 GB。操作系统是Ubuntu20.04。

1.4 模型训练与评价

1.4.1 模型训练

采用5-flod交叉验证方法,数据集被均分成5份,4份作为训练集,1份作为测试集,即80%作为训练集,20%作为测试集。分别用苹果、玉米、葡萄、番茄病害数据集对模型进行训练,建立4个作物的单作物多病害识别模型。然后用这4个作物病害数据集对模型进行训练,并建立多作物多病害识别模型。

VGG16和Resnet50模型训练采用随机梯度下降法Stochastic Gradient Descent(SGD)对模型参数进行更新学习。模型学习速率为0.01,权重衰减率为0.000 5,冲量为0.9,迭代次数为30 000次,每次批次128张图片。训练输入图像大小为256像素×256像素,损失函数采用softmax。

模型训练和验证阶段,首先按图2和图3的模型结构和参数建立模型配置文件。然后,根据Darknet系统要求,建立包含训练数据集、验证数据集、测试数据集、类别等数据配置文件。最后调用Darknet系统的模型训练、验证和测试功能,完成模型训练、验证和测试。

1.4.2 模型性能分析

采用5-flod交叉验证方法,对每个模型进行交叉验证,统计每个模型的平均正确率,结果如表2。VGG16病害识别模型正确率都达到96%以上。Resnet50病害识别模型识别正确率达到86%以上,与VGG16识别模型相比识别率偏低。Resnet50模型对番茄和葡萄的识别能力较低,与VGG16模型相比识别率分别下降9.12%和12.4%。Resnet50模型对玉米和苹果的识别能力与VGG16模型相比正确率相差较小,分别下降1.68%和3.3%。Resnet50模型对多作物多病害的识别能力与VGG16相比识别率分别下降8.14%、7.03%和5.02%。在GPU支持下,VGG16和Resnet50识别一张图片的平均时间分别是19.63 ms和18.82 ms,相差不大。因此,在此数据集上VGG16模型比Resnet50模型识别能力更强。

表2 各识别模型识别性能Tab. 2 Recognition performance of different models %

对比分析VGG16建立的7个病害识别模型。番茄和葡萄病多作物害识别模型的正确率为96.75%,低于番茄病害识别模型的正确率(97.61%)。玉米、番茄和葡萄多作物识别模型的正确率为97.83%,与番茄病害识别模型的识别率仅相差0.22%。苹果、玉米、番茄和葡萄4作物多病害识别模型的正确率为96.80%,与苹果病害识别模型的识别率仅相差0.34%。从以上的对比结果可知,多作物多病害识别模型的正确率,与识别率最低的单作物多病害识别模型正确率相当,即多个单作物识别模型比一个多作物识别模型具有更好的识别能力。

表3统计了VGG16单作物和多作物识别模型对每种病害的识别正确率、召回率和精度。与单作物识别模型相比多作物识别模型对一些病害的识别能力有明显下降,其中苹果的3种病害的各项指标变化不大。玉米叶斑病的召回率和精度分别下降5.41%和7.31%,玉米花叶病毒病在召回率不变的情况下,精度下降了1.23%。葡萄黑腐病在精度不变的情况下召回率下降了3.8%,葡萄褐斑病在召回率不变的情况下精度下降了23.08%。番茄受影响的病害种类较多,其中番茄早疫病的召回率和精度分别下降7.41%和5.17%,番茄晚疫病的召回率和精度分别下降0.63%和8.19%;在精度不变的情况下番茄叶霉病、番茄斑枯病和番茄花叶病毒病的召回率分别下降了1.24%、2.85%和7.44%。综上所述,在多作物识别模型中玉米、葡萄和番茄的病害识别性能都受到影响,平均识别正确率以及部分病害的精度和召回率都有明显下降。结果表明多个单作物识别模型比一个多作物识别模型具有更好的识别能力。

表3 VGG16单作物模型和多作物模型性能Tab. 3 Recognition performance of VGG16 single crop and multi crop models

基于以上分析结果,本文提出了根据作物生长阶段和作物类型分类建立单作物多病害识别模型的方法。该方法可以更好地利用作物生长环境、病害发生特点、病害发生规律、发展阶段等先验知识,建立性能更好的识别模型。

2 系统实现

1) 系统总体设计。基于智能手机和深度学习模型的农作物病害智能识别系统的整体架构如图4所示。系统由智能手机客户端、Web服务器、套接字服务器和农作物病害识别模型组成。系统模块和流程图如图5所示。

图4 系统总体架构Fig. 4 System architecture

图5 系统主要模块和流程图Fig. 5 Modules and flow chart of the system

系统主要功能模块包括:用户注册、用户登录、信息采集、网络服务管理、知识库管理和结果展示等。病害识别的主要流程是:首先采用智能手机拍摄农作物病害图像,通过网络上传到服务器,同时上传作物类型和采集时间信息;服务器接收到信息后,首先解析信息,判断要调用的识别模型并加载模型参数和权重,然后对图像进行识别,得到准确的识别结果;Web服务器根据识别结果,精准查询对应的病害知识和防治方法,并把识别结果、病害信息和防治方法展示给用户。

2) 网络服务设计与实现。套接字网络服务器的功能是提供TCP/IP网络链接接口,并根据接收到的信息调用识别模型。网络接口可以根据协议接收Socket链接请求。网络服务器可以作为独立的平台,除为本文系统提供服务,还可以为农业专家系统、农业机器人、智能农机和无人机等提供病害识别服务。

套接字网络服务器基于Darknet、C语言和Socket网络编程实现。Darknet是用C语言开发的深度学习开发平台,可使识别模型与Socket服务无缝集成。识别模型采用配置文件的方式进行配置和管理。首先为每个模型建立网络结构文件、病害类别文件、模型权重文件,然后采用作物类别和病害类别,建立模型相关文件的索引,从而实现模型的分类管理。网络服务器接收到网络链接请求后,建立处理线程。处理线程接收作物类型、发病时间和病害图像数据,查询模型索引文件,并精准调用识别模型对病害进行识别。最后,通过TCP/IP链接把识别结果发送给客户端。

3) 手机端设计与实现。手机客户端基于响应式H5页面、JAVA、JSP、Struts架构等技术实现。手机端网页通过标签设置页面元信息,使其自动适应手机界面。手机客户端主要功能包括:用户注册、用户登录、农作物病害数据采集、农作物病害识别、识别结果展示、病害防治方法展示等。手机客户端部分界面如图6所示。

(a) 用户登录

(b) 病害信息采集

(c) 识别结果图6 手机客户端界面Fig. 6 Interface of smartphone

用户登录界面如图6(a)所示,包括账号/手机号、密码输入接口,登录和重置按钮。新用户需要点击下方的注册进行账号注册。用户登录系统后进入病害信息采集界面(图6(b))。采集信息包括采集时间和作物类型。病害图像有图片库选择和现场拍照两种输入方式。网页信息提交后由自定义Action与Socket服务器建立TCP/IP链接,并发送图像和相关参数到Socket服务器。Socket服务器解析接收到的信息并根据作物类型、发病时间调用对应的识别模型。识别结果和正确率通过TCP/IP链接发送给自定义Action。自定义Action根据识别结果查询对应的病害知识和防治办法,并把相关信息发送到客户端,显示在手机屏幕上,如图6(c)所示。在GPU支持下,页面响应时间1~2 s,满足应用需求。

3 结论

1) 本文以苹果、玉米、葡萄和番茄4种作物18种病害为研究对象,采用VGG16和Resnet50构建识别模型,通过数据预处理、数据增强、模型参数优化、模型交叉验证等,构建了单作物多病害识别模型和多作物多病害识别模型。验证结果表明基于VGG16建立的病害识别模型的识别正确率都达到96%以上,性能优于基于Resnet50构建的识别模型。分析基于VGG16建立的病害识别模型性能后发现根据作物类型和发病时间构建的单作物多病害识别模型性能优于单个的多作物多病害识别模型。因此,本文提出了根据作物类型和发病时间构建病害识别模型的方法,该方法可以有效利用作物生长环境、病害发生规律、发展阶段等先验知识,建立单作物多病害的病害识别模型,从而实现最佳的识别效果。这种模型构建方法也更适合应用场景。

2) 基于智能手机的农作物病害智能识别系统可为农户、基层植保人员及其他用户提供精确的识别结果、病害知识和防治方法。系统具有以下特点:(1)根据作物类别和发病时间构建病害识别模型体系,使系统的病害识别能力更强、准确度更高。(2)系统通过网络服务器实现模型调用,降低了功能子系统间的耦合,增加了系统的可扩展性,随着更多识别模型的建立将极大地提升系统的识别能力。(3)Socket网络服务器可同时为农业机器人、智能农机、无人机及其他农业专家系统提供作物病害识别服务。(4)基于手机网页形式,可以减少占用手机端系统资源,系统安装部署、升级方便。随着更多作物识别模型的建立并集成到系统,将形成更完整的识别模型体系,系统功能会更加完善,并加快系统的落地应用。

猜你喜欢

正确率番茄作物
番茄炒蛋
秋茬番茄“疑难杂症”如何挽救
作物遭受霜冻该如何补救
四种作物 北方种植有前景
番茄果实“起棱”怎么办
门诊分诊服务态度与正确率对护患关系的影响
内生微生物和其在作物管理中的潜在应用
生意
品管圈活动在提高介入手术安全核查正确率中的应用
无人机遥感在作物监测中的应用与展望