苏丹,邓永卓
(1. 天津农学院 计算机与信息工程学院,天津 300392;2. 天津市农业发展服务中心,天津 300061)
农作物病害存在着种类繁多、同一种类外形特征复杂多变、不同类型病害存在一定相似性的情况,并且拥有农作物病害诊断检测和防治知识的专家受区域和人数限制,在时间和精力上无法为农户提供实时指导[1]。所以,识别农作物病害的任务仍然主要依靠人眼观察结合经验判断[2]。由于部分农民缺乏相关专业知识,在无法及时准确识别病害种类时随意用药,导致作物病害抗药性提升,还易对环境造成农药污染。传统的病害识别方式费时费力,主观性强,不仅识别效率低下,而且容易误诊,病害得不到及时诊治。因此,在现代农业实践中,实现智能、快速、准确识别农作物病害类型,减少环境损害,采取有效防治措施保护农业生产至关重要。
智慧农业研究是20 世纪80 年代,由美国、挪威和加拿大等国家率先提出的[3],相对我国研究较早,技术较为完善。国内由于图像识别技术不够成熟,加上农民对智慧农业认识不足,农作物病害识别一直处于较低水平[4],目前农作物病害识别仍然主要依靠人工观察及经验判断。
传统的机器视觉技术对农作物病害进行识别需要进行繁琐的预处理,不仅耗时长,还增加了建模工作量,人工设计特征很难从被提取的目标上获得最接近目标自然属性的特征表达,导致语义鸿沟问题,所以使用传统识别方法往往不能取得较好的识别效果。近些年,研究人员利用深度学习中的卷积神经网络(Convolutional neural networks,简称CNN)进行农作物病害识别,相较于之前的识别方法,可以直接将图像输入到网络中,无需进行繁琐的图像预处理、图像分割、特征提取等过程,可以自动逐层提取高级视觉特征,不仅更快速准确,还减少了人工设计特征产生的不完备性。但从头开始训练卷积神经网络全部层,不仅需要大量数据和标注,模型参数也会增多,还增加了训练时间,尤其在需要实时性的病害识别领域,存在一定的困难。本文采用深度学习与迁移学习(Transfer learning,简称TL)相结合的方式[5],在公共图像数据集上采用深度学习中的卷积神经网络模型进行训练,再将预训练模型放到目标图像数据集上进行微调模型参数[6],即可完成新的农作物病害识别模型,不仅解决了数据样本量少造成的过拟合问题,还大幅降低了计算时间。综上所述,农作物病害识别采用深度学习与迁移学习相结合的方式是未来发展的趋势[7]。
图像识别流程如图1 所示,首先利用数码相机和手机等图像采集设备拍摄清晰度高的图片[8],然后进行数据预处理以确保图片质量。数据增强是对图片进行了视角变换,图像尺寸大小变化,图像位置移动,图像色彩的饱和度、亮度和对比度增大或减小,CNN 模型都可以稳定分辨这个不变性物体。分割过程是为了使感兴趣的待研究目标与周围的物体分离。之后提取病害图像特征,并进行特征筛选或多特征融合,最后利用这些特征训练各种分类模型,用分类器对特征进行分类,进而达到识别病害类别的目的。
图1 图像识别流程
最初研究人员采用机器视觉技术识别农作物病害[9]。首先利用数码相机和手机等图像采集设备拍摄清晰度高的图片,然后提取病害图片特征,并进行特征筛选或多特征融合,最后利用这些特征训练各种分类模型,对特征进行分类,进而达到识别病害类别的目的。
在国内,田有文等[10]提出了一种基于矢量中值滤波(Vector median filter,简称VMF)+统计模式识别和数学形态学+支持向量机(Support vector machine,简称SVM)的采集葡萄病害图像识别方法。首先,对葡萄病害图像采用矢量中值滤波消除噪声干扰。然后,采用统计模式识别和数学形态学把病斑与周围背景相分离,并提取出病斑的纹理、形状和颜色特征。最后,采用SVM进行葡萄病害图像识别。马超等[11]提出了一种基于方向梯度直方图(Histogram of oriented gradient,简称HOG)+SVM 的大田环境中采集水稻常见病害图像识别方法。首先,对水稻病害图像的正常和病斑区域提取HOG 特征,作为输入向量。然后,对整张病害图片用训练完成的SVM 进行自动识别病斑区域。结果表明,此方法对多种病斑的识别率高于94%,对病斑定位准确率达到91.7%。
在国外,SONG 等[12]提出了一种基于Y Cb Cr颜色空间+灰度共生矩阵(Gray level cooccurrence matrix,简称GLCM)+BP 神经网络(Back propagation neural network,简称BPNN)的玉米病害图像识别方法。首先,对玉米病斑图像采用Y Cb Cr 颜色空间技术进行分割。然后,利用灰度共生矩阵提取病斑纹理特征。最后,利用BP神经网络进行玉米病害分类识别,准确率高于98%。PUJARI 等[13]提出了一种基于离散小波变换(Discrete wavelet transform,简称DWT)+主成分分析(Principal component analysis,简称PCA)+概率神经网络(Pulse neutron neutron,简称PNN)的辣椒等真菌病害的RGB 图像识别方法。首先利用DWT 进行特征提取,然后利用PCA 对特征进行进一步降阶简化以作为分类器输入,基于统计的马氏距离平均分类准确率为83.17 %,PNN 的平均分类准确率为86.48 %。
近些年,伴随着深度学习的卷积神经网络提升迅速,在图像识别领域具有出色的表现[14]。首先,它可以直接将图像输入到网络中,无需进行复杂背景和作物病斑之间地分割,降低了数据建模的难度。其次,无需经过繁琐的预处理、特征提取等中间建模过程,采用端到端的结构,由数据驱动自动逐层提取抽象高级特征,设计CNN 模型结构和设定超参数即可得到图片的各类特征,减少了人工设计特征产生的不完备性[15]。最后通过自动逐层提取的抽象高级视觉特征,可以很好地识别农作物病害图片的病斑分布特征,无需担心从被提取的目标上很难得到最接近目标自然属性的特征信息。因此,利用深度学习构建出了鲁棒性和泛化性能更好的识别模型。
在国内,邱靖等[16]提出了一种基于深度卷积神经网络的水稻3 种主要病害图像识别方法。首先将归一化运用到水稻病害数据,然后利用深度学习Keras 平台,设置不同的池化函数与卷积核尺寸,分析对该模型准确性的影响,准确率达到90%以上。张乃夫等[17]提出了一种基于卷积神经网络的玉米和马铃薯5 种常见病害图像识别方法。首先设计了含有13 层的网络结构。然后通过设置不同的池化方式和优化算法,分析对模型识别率的影响。最后,采用十折交叉验证测试。结果表明,玉米和马铃薯的病害识别准确率达到93.95 %。
在国外,CHEN 等[18]提出了一种基于卷积神经网络的茶叶病害图像识别方法。首先,开发了一个名为Leaf Net 的CNN 模型,该模型具有不同大小的特征提取过滤器,可以自动从图像中提取茶叶病害的特征;然后,该方法还提取了密集尺度不变特征变换(Scale-invariant feature transform,简称SIFT)特征,构建了视觉词袋(Bag of visual words,简称BOVW)模型;最后,利用SVM 和多层感知器(Multilayer perceptron,简称MLP)进行茶叶病害分类识别,并对SVM、MLP 和Leaf Net在病害识别中的准确率进行比较。结果表明,与MLP 和SVM 算法相比,Leaf Net 算法对茶叶病害识别最准确,平均分类准确率为90.16 %,SVM 算法为60.62 %,MLP 算法为70.77 %。LIANG 等[19]提出了一种新的基于卷积神经网络的稻瘟病图像识别方法。首先,建立了2 906 个含有稻瘟病斑的斑块作为阳性样本和2 902 个不含稻瘟病斑的斑块作为阴性样本的数据集;然后,对CNN 模型进行训练和测试;最后,对所提方法的有效性进行了定性和定量分析对比实验。定性结果表明,与传统手工提取的局部二值模式直方图(Local binary patterns histogram,简称LBPH)和哈尔小波变换(Haar wavelet transform,简称Haar-WT)等特征相比,CNN 提取的高级特征具有更高的分辨力和有效性。定量结果表明,与LBPH+SVM 和Haar-WT+SVM 作为分类器相比,CNN+Soft max和CNN+SVM 也有类似表现,具有高精度、大的曲线下面积(area under curve,简称AUC)和受试者工作特征(receiver operating characteristic,简称ROC)曲线的特点。
基于CNN 进行图像分类需要大量数据和计算资源支撑,且耗时长。通过迁移学习,将卷积神经网络在公开图像数据集上进行训练来获取预训练模型,利用学到的先验知识,在小的目标数据集经过小幅训练来调整参数即可完成新的识别模型,缓解数据样本过少造成的过拟合问题,且大幅降低计算时间。所以,农作物病害的识别应用深度学习与迁移学习(图2)相结合的方式是未来发展的趋势。
图2 迁移学习
在国内,张建华等[20]提出了一种基于改进卷积神经网络和迁移学习的棉花病害叶片图像识别方法。首先,对VGG-16 的全连接层层数进行模型结构优化,并将原来的Soft max 替换成6 标签的Soft max,优化了参数。然后,将在公开图像数据集获得的预训练模型中的池化层和卷积层参数迁移至目标数据集进行共享,迁移学习加快了模型训练时间。改进模型可以有效提取棉花病害叶片的多层特征,并通过Re Lu 将棉花病害叶片的纹理和边缘信息凸显出来,在图像训练和验证过程中,像素分辨率为512×512 效果最好。结果表明,该模型优于VGG-16、SVM、Alex Net、Google Net、BP 神经网络,平均识别率为89.51 %。苏婷婷等[21]提出了一种基于卷积神经网络和迁移学习的花生叶部病害图像识别方法。首先,针对数据量少和图像标注难的问题,利用迁移的Inceptionv3 在茶叶叶部病害图像数据集上进行参数微调。然后,将微调后的Inception-v3 在花生叶部病害图像数据集上进行再次训练。结果表明,基于VGG-19、CNN、Inception-v3、ResNet-50、微调的CNN 和微调的Inception-v3 的花生叶部病害图像识别方法在测试集上的识别准确率分别为92.9 %、80.3 %、94.1 %、93.2 %、87.0 %和95.3 %。
在国外,WANG 等[22]提出了一种基于深度卷积神经网络和迁移学习的自然环境下的2 种作物和8 种病害的图像识别方法。首先,利用2 430张图像训练6 种不同深度的CNN 来研究合适的结构;然后,为了解决小样本数据集引起的过拟合问题,从零开始系统地分析了训练性能,并使用迁移学习;最后,在Plant Village 公开图像数据集上训练获得预训练模型,对目标数据集进行再次训练,微调模型参数。结果表明,5 个卷积层的CNN 准确率达到90.84 %。THANGARAJ 等[23]提出了一种基于迁移学习的深度卷积神经网络模型的番茄叶片病害图像识别方法。首先,该模型利用实时图像和存储的番茄植物图像进行病害检测;然后,采用自适应矩估计(Adaptive moment estimation,简称Adam)、随机梯度下降(Stochastic gradient descent,简称SGD)和RMS prop 优化器评估了所提模型的性能。结果表明,该模型能有效实现番茄叶片病害的自动分类。与SGD 和RMS prop 优化器相比,Adam 优化器具有更好的精度。
目前,虽然农作物病害识别取得了一些研究成果,但由于复杂的环境、模型结构和硬件条件等因素的影响,还存在一些需要解决的问题。
(1)大多数研究都只是在针对单一作物几种常见病害的图像识别任务中获得了很好的效果,而实际上一种农作物的病害种类繁多,多种病害发生的症状可能类似或可能在同一植株上表现多种不同的症状,这是农作物病害图像识别有待解决的问题,可能需采集多部位特征综合识别。下一步对模型进行推广应用时,还需丰富多种作物的不同病害种类,增加同一种病害不同发病时期的图像样本以及多种病害混合发生的图像样本,以提升获取图像的能力,建立丰富的图像数据库。并研究同症异病及混合病害识别方法,以提升模型的应用价值。
(2)卷积神经网络通常需要大量数据进行训练,在训练过程中模型会产生大量的参数以及迭代更新所需耗时长,对于模型结构设计和超参数设定都需要通过大量尝试来不断优化,这些都需要大量算力和时间投入。因此研究自动设计卷积神经网络结构压缩优化,可以加速卷积神经网络,从而推动深度学习应用。
(3)现有的模型对于将深度网络模型部署在移动端应用等实时要求高和资源受限的场景缺少思考,硬件条件是影响着具体部署平台的主要原因,若同时优化和设计网络模型算法和硬件条件使之匹配,不但可以加快运行速度,还能缩小网络规模。所以设计轻量化深度网络模型可以加速卷积神经网络的工程化实践应用。
本文对农作物病害图像识别进行了研究,虽然取得了一部分成果,仍存在一些不完善之处,为使模型达到更好的实践应用效果,下一步工作的研究方向有以下几点。
(1)针对农作物病害的特殊性方面,在农作物整个生长周期内各个部位都有可能发生病害,会出现同一植株上有多种病害的表现,需要对病斑的位置进行定位,运用目标检测可实现一张图片识别多种病害的情况,达到对多种病害类型的高效准确辨别。
(2)针对农作物病害样本数据过少,且每种病害类别的数量分布不均的问题,运用Python 爬虫技术到权威图库中爬取更多的农作物病害图像,建立丰富的图像数据库,以提高模型的泛化性和准确率。针对同一病害不同症状和多种病害发生的症状可能类似的情况,运用数据增强技术对样本图像进行扩充,丰富同一病害不同发病时期以及发生症状类似的多种病害的图像样本,提升病害特征的细粒度分类。
(3)针对训练过程中耗费时间长以及大量参数设定等问题,通过迁移学习的方法能够快速训练出一个理想的结果,加速训练过程,提高农作物病害图像识别精度。构建基于迁移学习的卷积神经网络模型,由于预训练模型是在ImageNet 数据集上用于1 000 种分类,针对自己数据集的分类类别数量,还要进行适用性改造。第一步只训练全连接层,同时保留其他层的模型参数,在此基础上重新设计针对自己数据集分类类别数量的全连接层,经过多次尝试,从而能够依据结果找到最佳搭配,得到新的权重。第二步是在第一步的基础上继续训练所有层的参数,利用自己的数据集进行参数微调,取得更好的识别结果。
(4)针对传统卷积神经网络模型训练收敛速度慢和模型参数多等问题,提出采用深度可分离卷积代替卷积层、采用全局平均池化代替全连接层的一种轻量级网络模型,同时,批归一化处理也被运用到训练网络的过程中,以改善中间层数据分布和防止模型过度拟合,提出的改进卷积神经网络模型不仅加快了模型训练速度,能够在硬件和实效条件有要求的终端设备中进行应用,减少模型参数量,达到所需存储空间小的要求,还对农作物病害进行识别分类具有较高的准确率和较低的损失率,较好地平衡了识别准确率、参数个数、占用内存大小等方面指标,有利于将深度网络模型部署在移动端应用等实时要求高和资源受限的场景中,有助于实现农作物病害实时准确识别。