江祥奎,丁 锐,胡浩昌,邬 游
(西安邮电大学 自动化学院,陕西 西安 710121)
在农产品种植中,植物的病虫害影响着最终农作物的产量和品质。操作不当时,会导致农作物大面积减产,若无法准确地针对病虫害进行对症施肥,也会对农作物的成长造成二次损害[1]。因此,针对植物病虫害的准确检测和识别尤为重要。目前,农业中对植物病虫害的检测主要还是依靠人工识别的方式进行,存在识别效率低、速度慢、准确度低和难度大等问题。
近年来,随着深度学习为首的机器学习技术的发展,越来越多的人工识别方式逐渐被取代[2-4]。以卷积神经网络(Convolutional Neural Networks,CNN)为核心的深度学习技术被广泛用于图像分类和目标检测[5]当中。文献[6]采用小样本模型作为病害分类器,使用3种小样本学习框架和多种特征提取网络进行组合训练,得到原型网络+ResNet34最佳组合方式,准确率达到89.66%。文献[7]提出一种基于Xception模型的植物病害识别方法,以10种植物作为研究对象,最终达到91.9%的准确率,计算量和参数量相比原Xception模型分别降低了33.6%和33.1%。针对复杂环境下的植物病害识别问题,文献[8]首先使用区域生成网络(Region Proposal Network,RPN)实现对叶片的检测定位,然后使用 Chan-Vese 算法分割图像得到包含病斑特征的叶片,最后,将分割后的叶片输入经过简单背景下病害叶片数据集训练后的迁移学习模型,实现复杂环境下的植物病害识别。针对传统CNN参数训练量大,无法应用于硬件条件受限的场合的问题,文献[9]提出一种轻量级CNN农作物病害识别模型,对辣椒、番茄和马铃薯的病害图像进行分类识别,最终达到98.32%准确率。除一般深度学习的方法外,文献[10]采用红外光谱技术实现了对植物病害的检测识别。
随着深度学习与目标检测的发展,多数的研究侧重于检测识别的模型优劣及识别准确率的高低,并未形成实际的应用系统,因此,拟基于卷积神经网络相关技术[11-13],设计一个植物病虫害识别系统。先运用迁移学习的技术对VGG19模型进行适配性改进,优化模型,再基于Python平台使用PyQt5设计图形用户系统。最后,导入植物病虫害识别模型,并将系统上传到云服务器,以期实现移动端具体植物病虫害识别。
植物病虫害识别模型采用视觉几何小组19[14](Visual Geometry Group,VGG19)作为主干网络,主要包括5个卷积块和3个全链接层,每个卷积块中含有多个卷积层和1个池化层,所有的卷积核均采用3×3大小且步长为1,由输入层输入图像数据,输出层输出分类结果。模型具体结构示意图如图1所示。
图1 VGG19网络模型结构示意图
对原VGG19模型进行适配性改进,将原有的“4 096+4 096”组合的全连接层调整为“2 048+2 048”组合的全连接层,同时将最终分类层的分类数调整为38类。
构建好基本的卷积神经网络模型后,对一些超参数进行调试。将模型训练的学习率设置为0.001,学习率代表网络权重更新的速度,设置太大会影响模型准确率,过小则会增加模型的训练时间。每次训练样本大小和训练轮数都会对模型训练产生影响,将每批样本大小设置为32,训练轮数设置为30。同时,在模型当中加入数值为0.5的Dropout层,训练中可随机舍弃部分神经元,防止过拟合的发生。
在模型训练过程中,采用迁移学习的方法,对模型进行初步的预训练。迁移通过Imagenet数据集训练模型的权重。相比从随机权重开始训练模型,通过迁移学习的方法赋予合理的初始权重,极大地减少了模型的训练时间和运算量,使模型可以更快地达到较高的准确率,同时在一定程度上提升模型的泛化性能。
使用迁移学习的方法进行网络训练时,依据数据集的训练情况对最终层进行重构,并进行微调。对于一个多层的网络模型,低层网络将学习检测到图像的通用特征,层数越深检测到的特征越详细,最后一层往往检测到的是图像的具体特征。
在模型训练过程中,冻结不同的网络层数进行再训练,随着冻结层数的减少,需要重新训练的模型层数增加,训练所需时间也在增加。当模型冻结层数为前18层时,准确率达到较高的水平[15]。因此,选择冻结前18层的再训练模型作为植物常见病虫害识别系统的基础模型。
选取PlantVillage数据集中部分图像,同时收集网络图像数据,组成混合数据集,共38类70 295张图像。数据集按植物所属种类和病虫害种类进行归类,将所有数据按照7∶3的比例划分为训练集和测试集。混合数据集部分图像数据样例如图2所示。
在真实拍摄环境条件下,植物的图像受到环境实况、设备条件和拍摄人员的专业性等多种因素的影响,导致不同来源的植物图像数据差异较大,甚至存在质量不佳的图像数据,这对植物病虫害识别模型的训练造成一定的干扰。因此,在正式开始对模型的训练前,要对图像进行预处理,提高模型训练效率的同时提高最终模型识别准确率。
首先,对图像背景进行简单化处理,剪去和植物病状不相关的背景。其次,经过多年的研究发现,植物的病状主要体现在叶片当中,因此,提取植物的叶片为主要区域,剪去根部、花朵和果实等部位。考虑到数据集图片多数来源于网络,存在各个类别样本数目分布不均衡,因此采用数据增强的方式对数据集进行扩充,平衡各个数据集样本的同时增强训练模型的鲁棒性和可靠性[16]。增强策略包括旋转、裁剪和缩放等。最后,将数据集图像进行尺寸归一化,统一将图像尺寸大小设置为224×224。
使用原始VGG19网络,改变网络的分类层,经过数据集训练后模型的准确率为95.32%。为了提升模型准确率,增强模型泛化能力,分别在模型的全连接层组合、迁移学习冻结层数和Dropout取值方面进行实验改进。
迁移经过预训练的VGG19网络,删除网络的全连接层,剩余网络结构不变,加入数值为0.5的Dropout层,设计不同全连接层组合并冻结网络的前18层,在相同的数据集和训练参数下对模型再训练。不同组合的全连接层对应的模型准确率如表1所示。
表1 不同全连接层组合对应的准确率
由表1可知,“2048-2048”的全连接层结构的模型准确率最高。
固定模型“2048-2048”的全连接层结构,加入数值为0.5的Dropout层,分别冻结网络的前18层、前19层和前20层,在相同的数据集和训练参数下对模型再训练。冻结不同层再训练模型准确率如表2所示。
表2 冻结不同层数再训练模型准确率
由表2可知,冻结网络前18层的模型准确率最高。
固定模型“2 048-2 048”的全连接层结构,冻结网络的前18层,设置不同Dropout值,在相同的数据集和训练参数下对模型再训练。不同Dropout层对应模型的准确率如表3所示。
表3 不同Dropout层对应训练模型准确率
由表3可知,加入数值为0.5的Dropout层的模型准确率最高。
因此,由表1、表2和表3结果可得,“2048-2048”的全连接层结构、数值为0.5的Dropout层和冻结网络前18层的模型为最优改进模型。
将最优改进模型训练30轮,训练结果如图3所示。
图3 模型训练结果曲线
由图3可以看出,训练准确率曲线在训练了12轮之后虽有小幅度波动但总体保持平稳,大部分在0.99~1.00之间波动,损失也下降到了0.025 0附近且波动很小。最终训练后的模型准确率为99.58%,损失为0.020 6,相比原始VGG19模型准确率提升了4.26%,经过适配性改进后模型更适合作为系统的基础识别模型,保存训练好的模型。
系统主要采用Qt5进行设计。PyQt5是Qt5的Python平台接口,包括一整套用于界面开发的组件,能够方便调用功能函数进行数据分析和图形处理。通过设计图形用户界面(Graphical User Interface,GUI),直观地展示内部模型所实现的功能。
植物病虫害识别系统主要由系统登陆、密码修改和识别界面等3部分组成。程序开始运行后直接弹出的系统初始界面如图4所示。
图4 系统初始界面
注册登陆或者直接游客访问进入系统识别主界面如图5所示,包括打开文件、识别、清除和退出。
图5 系统识别主界面
进入系统识别主界面后,通过“打开文件”可以直接选取要识别的植物图片,相应的图片可以在展示区看到。通过“识别”按钮,系统首先将输入的图片进行预处理,自动调整图像大小为224×224并矩阵化后输入到改进的VGG19模型当中进行识别。最后,输出识别后的病虫害名称并对用户展示相应病虫害简介信息。“清除”操作可以终止当前识别任务并清除界面信息,方便下次识别。“退出”可以直接返回系统初始界面。具体植物病虫害识别案例如图6所示。
图6 植物病虫害识别案例
近年来,随着5G和互联网的飞速发展,出现越来越多的智能应用软件。基于电脑端的检测控制系统向着小型化、便携化的智能应用软件发展。
将植物病虫害识别系统上传到云服务器,采用“后台服务器+小程序”结构,以微信作为软件平台,利用腾讯云服务器存储数据信息,同时可以直接使用微信账号登陆小程序,免除了程序用户注册这一流程,使软件应用更加便携、可信。构建的植物病虫害识别小程序,不仅可以应用到农业种植当中,在居家生活中,亦可应用于盆栽养护中。同时,以微信为平台的植物常见病虫害识别小程序具有良好的通用特性及广泛的用户群体。在小程序具备一定用户后,通过大量用户的使用和测试,不断更新和改进程序不足,最终达到稳定的小程序版本。
基于VGG19模型的植物病虫害识别系统首先通过爬虫等技术手段,收集整理相关的图片数据集。其次,对图像进行预处理并采用数据增强等方法对数据集进行一定的改善和扩充。通过对VGG19模型进行适配性调整,构建基础的植物病虫害识别模型。最后,基于Python平台使用PyQt5设计图形用户系统,导入植物病虫害识别模型,实现具体植物病虫害识别。同时,利用腾讯云服务构建“后台服务器+小程序”的植物病虫害识别小程序,使得移动端应用场景更为广泛。但该研究仍然存在着一定的可扩展性,将机器视觉中摄像头采集技术和红外光谱相融合,并应用于识别系统当中,是未来植物病虫害识别应用中的研究热点和方向。