基于卷积神经网络马铃薯叶片病害识别和病斑检测*

2021-12-06 06:17王林柏张博姚竟发杨志辉张君范晓飞
中国农机化学报 2021年11期
关键词:晚疫病马铃薯卷积

王林柏,张博,姚竟发,杨志辉,张君,范晓飞

(1.河北农业大学机电工程学院,河北保定,071000;2.河北农业大学植物保护学院,河北保定,071000)

0 引言

马铃薯是全球第四大重要的粮食作物,也是十大热门营养健康食品之一,同时马铃薯是具有发展前景的高产作物,是仅次于水稻、玉米、小麦的重要粮食作物,由于它高产稳产、适应性广、营养成分全和产业链长而受全世界的高度重视[1]。我国马铃薯主要有四个产区,分别是:北方一作区、中原二作区、南方冬作区和西南混作区。河北省北方地区属于北方一作区,是重要的马铃薯种植基地,而马铃薯病害的防治是关乎其产量的至关重要因素,尤其早疫病与晚疫病是马铃薯种植过程中的两种重要病害,也是主要的防治对象。近年来随着马铃薯种植面积的不断增加,早疫病与晚疫病的发病面积与危害程度也不断增加,同时由于早疫病与晚疫病发病早期多集中在叶片,判断错误容易延误治疗时机。因此对病斑的识别和准确定位是对马铃薯病害防治的重要手段[2-3]。

传统的农作物病害诊断通常由有经验的专家进行,然而人工检测方法效率低、主观性强,不适合大区域场景。目前机器视觉技术在农业应用领域快速发展,能够对作物病害进行快速、准确的诊断[4-7]。范振军等[8]提出了一种基于关键特征点的病害感兴趣区域快速检测与融合颜色和纹理特征的识别方法,对10类马铃薯病害实现了速度快、准确率高的识别,但对复杂环境下识别不够理想。Brahimi等[9]通过卷积神经网络对番茄的9种病害进行了训练,最终模型的准确率达到99.1%。张建华等[10]提出基于改进VGG16卷积神经网络的病害识别模型,实现了自然条件下棉花病害图像准确分类,但模型的参数较大。张善文等[11]通过深度卷积神经网络进行苹果病害的识别,在苹果病害叶片图像数据库上实现了病害识别准确率和模型识别时间的提升,但鲁棒性不高。杨森等[12]提出一种基于深度卷积神经网络与复合特征字典结合的马铃薯病害叶片识别方法,利用Faster R-CNN进行病斑区域的检测,然后通过提取图像特征构造出复合特征字典,利用支持向量机训练出病害的识别模型,其平均识别准确率可达到84.16%,但是图像背景较简单。肖志云等[13]针对自然条件下马铃薯典型病害区域定位和识别难的问题,提出了一种马铃薯典型病害图像的自适应特征融合与快速识别方法,对3类马铃薯典型病害图像进行识别试验,结果表明SVM识别模型下自适应特征融合方法比传统自适应方法平均识别率至少提高了1.8个百分点,识别方法平均识别率为95.2%,但相较于深度学习速度较慢。李就好等[14]运用改进的Faster-RCNN进行苦瓜叶部病害的目标检测,该方法对复杂的自然环境下的苦瓜叶部病害检测具有较好的鲁棒性和较高的精度,但对小目标的检测效果较差。

目前在农作物病害识别和病斑检测中存在以下问题:在以往研究中对复杂背景的农作物研究较少;传统的识别方法对于植物叶片病害图像识别率较差;植物叶片病害识别中对于小目标效果较差。因此,本文将深度学习的方法应用于自然环境下马铃薯叶片病害的识别和检测中,通过多种卷积神经网络的模型对病害图像进行分类,获取病害识别准确率最高的模型;进一步基于CenterNet,使用改进的目标检测算法对马铃薯晚疫病进行研究,建立了马铃薯晚疫病的目标检测模型,以实现田间复杂环境下晚疫病病斑的识别,为马铃薯病害的精准防治提供准确信息。

1 材料与方法

1.1 数据采集与处理

马铃薯叶片的采集是在中国北方具有代表性的种植地点(河北省承德市围场、丰宁)河北农业大学马铃薯实验基地,采用Nikon D7100相机对马铃薯叶片进行拍摄,拍摄方式为近拍模式、自动调节焦距、光圈、白平衡,相机距离马铃薯植株50 cm左右,采用垂直方式采集图像,采集的图像分辨率为6 000像素×4 000像素。本项研究中共获取原始图像1 949张,健康叶片图像为529张,晚疫病图像为632张,早疫病图像为788张(图1)。

为了提升模型训练精度,本文进行了数据增强。首先将获取的原始图像对每一张进行不同大小、不同位置的随机截取,用于扩充原始数据。再将所有图像通过数据增强的方式增加数量,提升模型的性能。本文使用亮度调整、旋转、加入高斯噪声等操作来增加图像数量(图2)。

在马铃薯叶片图像识别数据集中,从每组图像中随机选取50张用于验证,其余图像通过数据增强的方式,将每组图像的样本量扩充为4 000张,总样本量为12 000张,并按4∶1的比例进行划分,其中9 600张图像用于训练,2 400张图像用于测试。

在晚疫病斑检测数据集中,晚疫病的图像共632张,随机选取500张用于模型的训练,其余132张用于模型验证。数据增强后,训练集样本量为2 500张。

(a)健康马铃薯叶片图像

(a)原始图像

1.2 基于卷积神经网络的马铃薯叶片病害识别

卷积神经网络是一种深度学习模型或类似于人工神经网络的多层感知器,其具有强大的学习能力,因此广泛应用于图像检测中。本文将健康和患有早疫病或晚疫病的马铃薯叶片图像通过卷积神经网络进行识别,本文采用的卷积神经网络模型有AlexNet、VGG16、InceptionV3、ResNet50、MobileNet模型。

AlexNet模型提出了ReLU函数,使用ReLU的模型收敛速度比Sigmoid快很多,这成了AlexNet模型的优势之一。模型共有8层结构,其中前5层为卷积层,其中前两个卷积层和第五个卷积层有池化层,后面3层为全连接层。同时各个层发挥了不同的作用,重叠池化层是为了提高精度,且不容易产生过拟合,局部归一化响应是为了提高精度,而数据增益与dropout是为了减少过拟合。

VGG16模型的实质是AlexNet结构的增强版,它侧重强调卷积神经网络设计中的深度。其中每个卷积层之后都有一个池化层。VGG网络用了更小的卷积核,使得参数量变小,节省了计算资源,由于层数较多,卷积核比较小,这样使得整个网络有比较好的特征提取效果。

InceptionV3网络是由Google开发的深度卷积网络,模型中的Inception结构其主要思想是找出如何用密集成分来近似最优的局部稀疏结构。Inception结构采用了3×3、5×5大小的卷积核,加入了1×1大小的卷积核,同时提出了的BN(BatchNormalization)方法,并使用了分支结构,引入了将一个较大的二维卷积拆成两个较小的一维卷积的方法,这种非对称的卷积结构拆分在处理更多、更丰富的空间特征以及增加特征多样性等方面的效果比对称的卷积结构拆分更好,同时能减少计算量。

ResNet50模型解决了由于网络深度与宽度的增加,使实际效果变差的问题。深层的神经网络模型牺牲了大量的计算资源,同时错误率也有所上升,这个现象的产生主要是因为随着神经网络的层数增加,梯度消失的现象愈加明显。而ResNet50模型增加了残差结构,即增加了一个恒等映射,将原本的变换函数H(x)转换成了F(x)+x,使网络不再是简单的堆叠结构,解决了梯度消失的问题,这样的简单叠加并没有给网络增加额外的参数及计算量,同时也提高了网络训练的效果与效率。

MobileNet模型在保持模型性能的前提下降低模型复杂度,同时提升模型速度。模型的基本单元是深度级可分离卷积,其本质是可分解卷积操作。与卷积核作用在所有的输入通道上的标准卷积不同,深度分离卷积针对每个输入通道采用不同的卷积核,同时加入了BN,并使用ReLU激活函数,大幅降低了运算量和模型参数量。

1.3 基于CenterNet模型的马铃薯晚疫病斑检测

1.3.1 CenterNet目标检测模型

由于晚疫病在马铃薯病害中病斑比较明显,因此适合通过目标检测的方法将病斑在图像中找出。目前目标检测模型[16-17]分为两类,第一类(Two-Stag)将目标识别和目标定位分为两步完成其中比较典型的有R-CNN、Fast-RCNN、Faster-RCNN等。第二类(One-Stage)则直接在输出层返回目标的位置和所属类别,因此此类模型可以较快的识别目标,包含YOLO(You Only Look Once)、SSD(Single Shot Multibox Detector)、CenterNet等。其中CenterNet是基于中心点的检测网络,运算简单快速,且准确率不亚于基于锚框的检测器。在COCO数据集中CenterNet模型的AP值高于YOLOv2模型20%,高于Faster-RCNN模型6.9%[18]。因此本文选择CenterNet模型来进行病斑的检测。

与传统的目标检测模型不同,CenterNet模型将检测目标看成一个中心点来代替锚框,作为目标框的中心点,解决了锚框中正负样本不均衡与计算量过大的问题。该算法首先通过特征提取网络获得特征图,继而在特征图像上找到局部特征峰值作为中心点,通过中心点回归得到目标大小等图像特征。在训练过程中每一个目标产生一个中心点,无需进行NMS非极大值抑制,减少了计算量和训练时间,同时使用分辨率较大特征图,提升了小目标的检测能力。

1.3.2 改进型CenterNet-SPP网络结构

马铃薯病斑检测深度神经网络结构如图3所示。

(a)CenterNet网络结构图

本文所采用的CenterNet-SPP网络结构(图3(a)),是基于ResNet50为主干的特征提取网络,加入了SPP(Spatial Pyramid Pooling)空间金字塔池化模块(图3(b))。SPP用来增加感受野的范围提高主干特征的接收范围,同时显著的分离了重要的特征,提高特征提取的能力。

(1)

式中:N——图像中的关键点个数。

(2)

(3)

式中:Sk——目标真实尺寸;

整体的损失函数为中心点预测损失函数、中心点偏移量损失函数与目标框大小损失函数的和,每个损失都有相应的权重。

Ldet=Lk+λsizeLsize+λoffLoff

(4)

其中λsize=0.1,λoff=1。

2 结果与分析

本文试验条件为:Windows10、64 位操作系统,Cuda版本为10.0,采用基于Python编程语言的Tensorflow与Keras深度学习框架。采用的电脑配置为:GeForce GTX 1660显卡,6 G显存;Intel (R)Core (TM)i5-9400F处理器,主频2.90 GHz。试验分为两部分,分别是将三种情况的马铃薯叶片进行识别和对晚疫病斑进行检测,通过对比不同的神经网络模型,找到最合适的模型运用到马铃薯叶片病害的研究当中。

2.1 马铃薯叶片图像识别

本文使用相同的数据集,将不同情况的马铃薯叶片在5种不同的卷积神经网络模型下(VGG16、ResNet50、InceptionV3、MobileNet、AlexNet)进行训练,每种模型都使用迁移学习[20]的方法,用预训练好的ImageNet分类模型的参数初始化,模型进行120次迭代,采用交叉熵损失函数,同时使用Adam优化器[21],初始学习率0.000 1,动量因子为0.1,当5个epoch过后,若模型性能没有提升,则降低学习率。五种模型最终的损失值趋于稳定状态,同时测试集的准确率最终稳定在比较高的数值。表1表示五种模型的测试集的准确率,图4表示训练集loss、测试集loss、测试集的准确率。

表1 模型的准确率Tab.1 Accuracy rate of model

在三类马铃薯叶片图像中,每类随机选取50张图像分别对每种模型进行验证,所得混淆矩阵如图5所示,其中InceptionV3模型的平均准确率最高达到98%(表2),识别一张图像平均耗时0.12 s。结果表明,5种模型均可对马铃薯健康叶片及患有早疫病和晚疫病的叶片图像进行准确的识别。

(a)训练集loss曲线

表2 模型的平均准确率Tab.2 Average accuracy rate of model

(a)VGG16

2.2 晚疫病斑检测

在试验中,将用LabelImg(图像标注工具)按照PASCAL VOC2007的格式手工标注晚疫病图片中的黑斑目标,其中包含目标病斑的名称和外包边框,使用CenterNet-SPP结构,并使用VOC数据集的预训练模型进行初始化参数设置,将数据集在模型中一共训练400个epoch,其损失精度在前100次迅速下降,由于100次后进行了模型的解冻(前100个epoch对主干特征网络之后的模型进行训练微调,后300次将所有网络进行训练),使模型的损失值迅速下降,然后渐渐趋于稳定,说明模型训练效果良好,其训练损失曲线如图6(a)所示。

为了选出整体性能足够高的模型,首先保留置信度大于0.5的病斑目标,同时找到mAP值最高的权值文件,然后模型进行了400次迭代,每10次迭代输出一个模型,所以一共得到40个模型,需要在这40个模型中找出一个mAP值最高的模型(图6(b))。当迭代到最后mAP值趋于稳定状态,其中数值最大为90.03%,即为本文选用的模型。为了评估所获晚疫病检测模型的准确性和稳定性,本文使用准确率P(precision),召回率R(recall)两项指标进行模型的评价,同时引入F1值[23]作为调和的平均评价。

(5)

(6)

(7)

式中:nTP——正确识别晚疫病目标的数目;

nFP——错误识别晚疫病目标的数目;

nFN——未识别晚疫病目标的数目。

通过CenterNet-SPP模型效果与其他One-Stage目标检测模型效果进行对比,本文使用相同的样本数据集分别对模型进行训练,所有模型都使用VOC数据集的预训练模型进行初始化参数设置。选出每一个稳定的模型之后,其P-R曲线如图6(c)所示,由于mAP值较大,所以P-R曲线覆盖了坐标系的大部分区域,P-R曲线图直观显示出模型在总体样本上的查全率和查准率,当一个模型的P-R曲线完全被另一个模型的曲线包含时,就说明后者的性能优于前者。从图中可以看出Centenet-SPP模型的性能优于其他模型。

将不同的模型在验证集中进行测试将结果进行对比(表3),CenteNet-SPP模型的准确率、召回率、F1值均高于其他类型的One-Stage模型,且F1值高出没有添加SPP结构的CenterNet模型0.7%,说明CenteNet-SPP模型在自然环境下的马铃薯晚疫病斑检测效果优于其他模型。检测验证集的132张图像共耗时13.33 s,平均一张图像需0.10 s,模型检测效果展示如图7所示。

(a)Loss值随着迭代次数的变化曲线

表3 不同模型的试验结果Tab.3 Test results of different models

(a)CenterNet-SPP检测效果

3 结论

本文在中国北方具有代表性的马铃薯种植地区,对不同时期和地域的马铃薯叶片进行了图像采集,通过深度学习的方法并对比不同模型对自然环境中的马铃薯叶片病害进行了识别以及晚疫病的检测,取得了较高的准确率。

1)在马铃薯叶片病害识别试验中,通过典型的5种神经网络模型对马铃薯的叶片在健康、早疫病、晚疫病三种情况下进行了识别,其中更深层的神经网络表现出更好的效果,在训练过程中由于使用了迁移学习的方式,使模型不需要从零开始训练,加速了模型训练的过程。InceptionV3和ResNet50的残差结构使模型网络在变深的同时能够保留重要的信息特征,因此在马铃薯病害识别中表现出较高的准确度,其中InceptionV3模型性能最优,准确率达到98.00%,可以对马铃薯叶片病害进行准确分类。

2)在马铃薯叶片晚疫病的检测试验中,由于CenterNet-SPP算法通过中心点来代替锚框,无需进行NMS非极大值抑制,从而减少训练时间,同时使用了比较大的特征图,因此在病斑目标较小的情况下也表现出较好的效果,由于加入了SPP空间金字塔池化模块,增加了特征提取的范围且分离了显著的特征,因此比原始的CenterNet模型F1值要高。通过CenterNet-SPP模型与其它典型的One-Stage结构的目标检测模型进行对比,表明CenterNet-SPP模型在马铃薯晚疫病检测中F1值最高为92.58%,平均检测时间为0.10 s,在叶片病害识别定位中,并不需要频繁刷新,所以能够满足实时要求,并能达到较好效果。

猜你喜欢
晚疫病马铃薯卷积
马铃薯有功劳
基于3D-Winograd的快速卷积算法设计及FPGA实现
临汾市马铃薯晚疫病发生趋势预报
如何防治大棚番茄晚疫病
马铃薯晚疫病发生趋势预报
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
定边马铃薯
胖胖的马铃薯
黑龙江省发现马铃薯晚疫病菌(Phytophthora infestans)A2交配型