计算机视觉下的农作物病虫害图像识别研究
2021-03-14钟林忆刘海峰董力中黄家怿司志恒
钟林忆,刘海峰,董力中,高 翔,黄家怿,司志恒
(1.广东省现代农业装备研究所,广东 广州 510630;2.广州市健坤网络科技发展有限公司,广东广州 510630;3.广东省农业技术推广总站,广东 广州 510520)
0 引言
农作物病虫害,是农业生产过程中始终绕不开的话题,各种病虫害给农产品产量和品质带来恶劣的影响[1]。近些年来,随着新一代信息技术的快速发展,国家也加大了对农业病虫害智能化识别和数字化防控的政策支持力度,农作物病虫害智能识别的研究逐渐成为热门。
柴阿丽等[2]以计算机视觉技术、图像处理技术和模式识别技术为手段,研究了4 种番茄叶部病害自动识别方法,进行了病斑区域特征参数的提取和判别模型的构建,研发形成了一套室内操作的图像采集处理系统,这套系统对测试样本的识别准确率达94%以上,说明了计算机视觉技术在农作物病虫害识别上的可行性。张建华等[3]研究了棉花病害智能识别,提出了一种基于粗糙集和BP 神经网络的棉花病害识别方法,该方法能够有效地识别4 种棉花病害,且平均识别准确率为92.72%。孙云云等[4]利用卷积神经网络,研究了小样本下的茶树病害图像识别,主要应用7 种模式对茶树叶部病害图像样本进行预处理,并采用AlexNet 经典网络模型进行样本学习与训练,结果显示该方法对3 种茶树叶病的正确区分率达85%以上。本文研究计算机视觉下的农作物病虫害图像识别技术,重点解决训练样本量小的现实情况下的识别精度问题,并构建田间场景应用。
1 理论与技术基础
本文研究采用计算机视觉、数据增广、卷积神经网络、迁移学习、边缘计算等技术,探索基于数据增广技术的深度卷积神经网络迁移学习方法和识别模型,解决农作物病虫害的图像识别问题,进而设计基于计算机视觉与边缘计算的智能识别装置,解决实际生产的田间场景应用问题。
1)计算机视觉。计算机视觉系统主要由摄像机、图像采集器、识别模型、计算机等部分组成,用于模拟人的视觉功能。通过对空间物体进行图像采集,对采集的图像进行特征提取、抽象转化,进而对空间物体进行逻辑推理和判断,以达到空间物体判别或决策的目的[5]。
2)数据增广。数据增广是计算机视觉实践常用的技术,主要用于增加训练样本的数据集,使训练样本的数据集尽可能多样化,提升分析模型的泛化能力[6]。目前主流的深度学习框架都带有数据增广技术及接口函数,但框架当前的数据增广技术及接口函数并非适用所有的场景,这还需要根据样本数据集的特征来确定和使用何种数据增广方式。
3)卷积神经网络。卷积神经网络是一类包含卷积计算,通过分级的、多层的网络模型来进行物体识别的算法,是深度学习最具代表的算法之一,在图像处理方面表现出色,已经被大范围使用到语音识别、图像识别、自然语音处理等领域。卷积神经网络的层级结构包括数据输入层、卷积计算层、ReLU 激励层、池化层、全连接层等,能够对原始图像数据进行预处理、卷积计算、特征提取、压缩图像等处理[7]。
4)迁移学习。迁移学习是一种机器学习技术,指的是一个预训练的模型被重新用在另一个任务中。它允许在特定数据(如ImageNet 数据)上训练模型,然将其调整迁移到新数据集中。之所以需要迁移学习,因为机器学习(监督学习)需要大量的标注数据,而标注数据是一项庞大而繁杂的任务,迁移学习可以将已学习的强大技能迁移到相关的问题上[8]。
5)边缘计算。边缘计算是指将模型运算的功能前置到边缘端设备,使数据在其产生的设备现场或附近得到处理和分析,而不需要先传送到云服务中心进行集中处理,这大大减少了模型运算和结果响应的时间,减少网络带宽同时保证数据的安全性和私密性[9]。
2 识别模型研究
2.1 数据采集与分类
以荔枝农作物为研究对象,收集了荔枝炭疽病、荔枝酸腐病、荔枝椿象、荔枝毛毡病等10 种荔枝病虫害图像样本,每类病虫害图像样本量各为20,共计200 张病虫害图片。对收集的原始病虫害图像样本,按病虫害种类进行分类,制作病虫害标签,建立分类后的10 种病虫害图像样本集如图1 所示。
图1 荔枝霜疫霉病图片采集Fig.1 Collection of pictures of litchi downy mildew
2.2 数据增广处理
大样本量能提升基于深度学习的病虫害图像识别准确率,因此尽可能将收集的病虫害图像进行数据增广处理。本试验采用图片旋转、色彩抖动、加入高斯噪声、平移变换、尺度变换、对比度变化等数据增广方法,对10 类病虫害的200 张原始图像样本进行处理,将样本量扩增50 倍,如图2 所示。
图2 荔枝锈病图像的数据增广Fig.2 Data expansion of litchi rust disease image
2.3 Inception v3神经网络模型搭建
本研究中使用Inception v3 网络来训练农作物病虫害识别模型。Inception v3 是谷歌提出的用于提取图像特征的深度卷积神经网络[10]。在Inception v1 网络深度有22 层,其中每个Inception 模块中包含有1×1、3×3、5×5 的卷积层和MaxPooling 层,并使用了ReLu 作为激活函数;Inception v2 中使用两个3×3 卷积代替5×5 卷积,并提出了Batch Normalization 方法,使大型网络的训练速度多倍加快;Inception v3 中则将Inception 模块中的一个大卷积,拆成两个一维卷积,从而加速运算并减少过拟合,Inception v3 中Inception 模块的示意图如图3所示。
图3 Inception 模块结构Fig.3 Inception modular structure
在网络结尾使用Softmax分类器输出最终类别。Softmax 分类器会将输入映射成(0,1)的值,即每个类别的概率,最后选取概率最大的类别作为最终输出。
本研究还采用了迁移学习帮助网络更好、更快地提取特征。一方面,样本量小会导致卷积神经网络学习的特征比较粗糙,细粒度不够,难以表达病虫害的共同特征;另一方面,训练模型需要很长的时间,采用迁移学习能够减少模型训练的时间。迁移学习有两种策略,一是在网络整体上微调,即在基础数据集上预训练网络,然后在目标数据集上训练所有层;二是冻结一部分层,然后微调其余层,因为卷积神经网络前几层特征提取的是包含纹理过滤器和色彩斑点等通用的特征,可以不用重复学习。
2.4 模型试验与识别准确率比较
使用搭建的Inception v3 神经网络模型,对荔枝病虫害数据集进行训练。训练模型的基础环境为 64 位Windows10 系统,并配置有Intel Core i7-7800X CPU 和NVIDIA GeForce GTX 1080Ti GPU。试验中迁移学习所使用的预训练模型是在ImageNet开源数据集上训练的Inception v3 模型。
本研究对5 种模型方法进行了试验与比较,这5 种模型方法分别是:①使用传统的机器学习方法训练荔枝病害识别模型;②在搭建的Inception v3网络上直接训练病虫害识别模型,不结合使用迁移学习;③使用搭建的Inception v3 网络,采用微调(finetune)方式训练病虫害识别模型,即微调最后一层分类器分类模块;④使用搭建的Inception v3 网络,选择加载部分卷积参数(训练最后3层),添加softmax 分类器,在已学习好的卷积基(convolutional base)基础上进行进一步参数学习,训练病虫害识别模型;⑤使用搭建的Inception v3网络,选择加载部分卷积参数(训练最后5 层),添加softmax 分类器,在已学习好的卷积基基础上进行进一步参数学习,训练病虫害识别模型。
5 种模型方法试验结果对比如下表所示。
表1 5种试验模型方法对比Tab.1 Comparison of five test model methods %
从试验结果可以看出,使用数据增广及迁移学习技术后,相比于使用传统机器学习方法以及使用神经网络模型直接训练方法,荔枝病虫害识别准确率提升明显。同时使用迁移学习训练最后3 层时,模型识别准确率最高。即适当增加学习层数能提升模型识别准确率,但卷积层学习数量不能过多,原因在于学习过多的卷积层容易造成模型过拟合,且训练时候的参数会变得更多,对模型识别准确率造成不利影响。因此,在实际过程中,需要根据模型识别的效果来选择合适的学习层数。
3 智能识别装置设计与场景应用
3.1 智能识别装置设计
为将病虫害识别模型部署在硬件中,设计了基于计算机视觉与边缘计算的智能识别装置,其逻辑设计如图4 所示,该装置由Jetson Nano 芯片、摄像头模块、4G 传输终端等部分组成。其中Jetson Nano 芯片是NVIDIA 公司推出的高性能AI 推理芯片,具有体积小、功耗低的特点;摄像头模块用于获取外部图像,并将图像传输至Jetson Nano 中作为病虫害识别模型的输入;4G 传输终端会将最终识别的结果上传至云端服务器[11]。
图4 基于计算机视觉与边缘计算的智能识别装置逻辑设计图Fig.4 Logic design diagram of intelligent recognition device based on computer vision and edge computing
3.2 场景应用
在荔枝生长期,各种病虫害的发生给荔枝产量和品质带来恶劣的影响[12]。荔枝病虫害种类多,发生快,如果未能对病虫害发生情况进行预警,就会造成比较大的损失。因此,研究与应用计算机视觉下的荔枝病虫害图像识别技术,建立病虫情监测预警体系尤为重要。
将本研究的智能识别装置用于农业实际生产中时,通过该装置的摄像头模块近距离实时拍摄荔枝的图像或视频,然后将拍摄的图像或视频传输至AI模块;AI 模块对图像或视频进行处理及信息抽取,自动提炼出图像或视频中的一种或多种农作物病虫害信息;AI 模块借助边缘计算,根据预先写入的训练模型,完成AI 识别,并将识别结果发送至服务器。服务器根据识别的荔枝病虫害的结果,进行信息反馈和报警,如图5 和图6 所示。
4 结语
图5 荔枝病虫害图像识别技术场景应用Fig.5 Scene application of litchi pest image recognition technology
图6 现场试验Fig.6 Field test
当前农作物病虫害图像自动识别技术及应用面临着以下难题,一是农作物病虫害图像的样本难以采集,每种农作物病虫害图像的样本量往往要大于200 张以上,识别精度才有保障,而采集丰富的样本需要耗费大量的人力、物力和时间成本;二是农作物病虫害图像识别的落地应用问题,通常在实验室或在已采集到病虫害图像的条件下,对农作物病虫害图像进行识别,但在农业实际生产中,更需要的是能够在田间自动地监测和采集农作物病虫害图像并进行识别和警报。本研究重点针对这些难题,提出了一种基于数据增广技术的深度卷积神经网络迁移学习方法,用于搭建农作物病虫害识别模型,并将识别模型部署到边缘端,设计了放置于田间,可用于农作物病虫害图像识别的智能识别装置,解决了农作物病虫害图像识别的训练样本量小、精度无法保证、田间落地应用难等问题。最后以荔枝为试验对象,构建基于边缘计算的荔枝病虫害图像识别,并进行了试验。试验结果表明,基于数据增广技术的深度卷积神经网络迁移学习方法搭建的荔枝病虫害识别模型,识别准确率可达96.30%,且设计的基于计算机视觉与边缘计算的智能识别装置方便于图像识别应用落地,可为农业病虫害防治提供有力保障。