基于深度学习的月季多叶片病虫害检测研究*
2021-09-13李子茂刘恋冬夏梦帖军张玥
李子茂,刘恋冬,夏梦,帖军,张玥
(1.中南民族大学计算机科学学院,武汉市,430074;2.湖北省制造企业智能管理工程技术研究中心,武汉市,430074)
0 引言
月季作为我国十大名花之一,具有悠久的历史和广泛的实用性[1]。病虫害防治作为种植业普遍存在的重点环节也对月季种植具有重要意义,病虫害作为月季生长过程中不可避免的重要影响因素不仅有损月季观赏价值[2],还会对月季种植者造成严重的经济损失。传统月季病虫害防治依靠人工观测和种植经验,大规模种植基地人工观测病虫害耗时长、效率低下的同时具有较高的学习成本;同时从业人员素质参差不齐,家庭种植爱好者也缺乏病虫害问诊途径[3],均无法快速掌握月季病虫害防治知识。随着精准农业的兴起,利用计算机视觉相关技术进行月季病虫害检测研究具有重要意义,为帮助初期从业者、种植爱好者把控月季生长状态确诊月季病症提供新的思路[4]。同时也是进一步实现月季病虫害检测应用、辅助月季基地病虫害视频监测防治工作、推动月季自动化智能化种植的重要基础[5]。
植物病虫害研究主要分为基于手工提取特征[6-8]的研究方法和基于卷积神经网络[9-10]的研究方法两大类[11],Sabro等[12]通过ostu阈值法对番茄病虫害叶片进行分割,去除叶片图像背景影响后提取颜色、形状和纹理特征,输入决策树得到最终的分类;Jaisakthi等[13]为去除病虫害以外的感兴趣区域,首先采用Grabcut算法将叶片从背景图像中分割出来,再采用全局阈值法对分割出的叶片进行病区分割,提取图像的纹理和颜色特征利用支持向量机对葡萄叶片病虫害进行分类;Dechant等[14]通过构建多个CNN网络进行玉米叶片图像小范围叶枯病检测得到叶枯病位置和概率,融合多个CNN检测结果图像进行玉米叶片图像完整叶枯病检测;Jiang Peng等[15]通过在SSD中引入Inception[16],并结合Rainbow级联并优化特征提取网络进行苹果叶片病虫害检测;Ozguven等[17]根据甜菜叶斑病的检测任务更改CNN模型的参数更新Faster R-CNN[18]模型结构,对自然环境下拍摄的单片甜菜叶进行病虫害检测;Liu等[19]通过改进YOLOv3[20]对番茄病虫害进行检测,具有很高的检测速度。分析发现,目前病虫害研究多针对自然或实验环境下单叶片图像进行病虫害的分类,不符合实际应用场景。对于自然环境下多叶片病虫害的研究较少同时检测效果存在提升空间。
本文将基于卷积神经网络的目标检测算法引入到月季多叶片病虫害检测这一复杂场景中。自然环境下拍摄的月季病虫害图片中往往包含多叶片,除叶片外还存在杂草、地面、小型杂物等干扰因素,此类非感兴趣区域部分与月季病虫害相类似,检测算法易将此类非感兴趣区域判断为月季病虫害区域造成误检。同时还有部分病虫害目标区域较小,检测难度较大。本文拟通过两个阶段的检测过程实现自然环境下多叶片月季病虫害检测。
1 月季多叶片病虫害检测方法
结合YOLOv3模型和Inception模块构建YOLO-in模型作为叶片检测模型,然后将K-means聚类算法应用于Faster R-CNN以确定符合月季病虫害检测需求的Anchor box,进而将Faster R-CNN用于病虫害检测。并自主收集自然场景下月季病虫害图像数据集作为训练样本,用于训练YOLO-in叶片检测模型和Faster R-CNN病虫害检测模型。
本文提出的多叶片月季病虫害检测方法TSDDP(Two Stage Detection of Diseases and Pests)思路如下:第一阶段将图像输入到构建的YOLO-in模型中进行叶片检测,根据叶片检测结果进行掩模处理,消除自然背景中非感兴趣区域对病虫害检测的影响;第二阶段将得到的叶片掩模图像输入到以VGG-16[21]作为特征提取网络的Faster R-CNN模型,进行叶片区域病虫害的检测。
TSDDP方法的检测流程图见图1。
图1 TSDDP检测流程Fig.1 Detection process of TSDDP
该方法通过两个阶段过程可以有效去除自然环境下复杂背景图片对月季病虫害检测的影响,使得检测框定位更加精准,从而提高自然环境下月季病虫害检测的准确度。
1.1 基于YOLO-in的叶片检测
1.1.1 YOLOv3
YOLOv3作为one-stage目标检测算法中具有代表性的算法,对检测图像进行特征提取,直接从检测图像中预测目标边界框和目标类概率,具有明显的速度优势,能够快速进行叶片检测为第二阶段病虫害检测去除背景影响。YOLOv3采用由残差网络ResNet[22]构建的Darknet-53作为特征提取网络,通过卷积和上采样操作进行高低层特征融合,在3个特征图上进行特征融合和独立预测从而提高检测精度。但特征网络层数的加深使得小尺寸目标的特征信息难以被提取,同时对于各尺寸的特征图也缺乏多样化的感受野。因此,在具有速度优势的同时也导致了它在检测小尺寸和容易聚类的对象方面较弱[23],目标检测、相似目标检测、遮挡情况检测时尤为明显。
而GoogLeNet通过增加网络宽度,使用多个Inception模块在获得良好的特征提取效果的同时减少了网络模型计算参数。如图2所示Inception模块具有多个卷积操作分支,对输入图像并行地执行多个不同尺度的卷积或池化操作,并将所有分支结果融合提高模型对尺度的适应性的同时,对图像稀疏特征和密集特征进行提取,最终取得更好的效果。
图2 Inception模块—初始版本Fig.2 Inception module-naive version
1.1.2 YOLO-in模型构建
本文提出一种类似于Inception的结构如图3所示,通过多尺度特征提取再融合的方式保留更多的特征信息。采用1×1、3×3、5×5、7×7四种不同大小的卷积核并行对同一输入进行特征提取,最后对这些并行的特征提取结果进行融合输入下一层网络。其中尺度较小的卷积能够提取局部特征,较大的卷积能够学习到全局特征,不同大小的卷积具有不同大小的感受野,提取丰富特征的同时提高网络的鲁棒性。5×5,7×7大小的卷积核的选取以覆盖到YOLOv3中不同大小的特征图,确保获取到特征图上的目标信息。1×1卷积能够减少模型参数,在7×7卷积(通道数为128)前添加1×1卷积对通道数进行调整使得参数减少近3/4。最大池化操作保留区域内最大值来提供转移翻转不变性,提取图像的主要特征同时使得特征图压缩变小,降低模型特征计算的复杂度。
(a)Inception a
YOLO-in模型结构如图4所示,通过将图3所示的模块a和模块b分别添加到YOLOv3特征融合之前,使得低高层特征图融合前首先连接到Inception模块,对同一层特征图进行多尺度特征提取,得到多尺度特征融合结果后再进行连接,得到更为丰富的特征信息。其中低层特征图的大小为52×52×256,连接至Inception a模块采用四个分支进行特征提取,通道数比例为1∶1∶1∶1。而高层特征图的大小为13×13×1 024,其经过Darknet多层卷积后保留的细节特征信息相对有限,采用Inception b模块从3个分支对其进行多尺度特征融合,分支通道数比例为2∶1∶1。由于低层特征图比高层特征图具有更多细粒度的特征信息,通过多尺度特征提取能够得到更加多样性特征,对于小物体、遮挡部分都能够保留更多有意义的特征,有效改善小物体、遮挡物体的检测效果。因此高低层融合时的特征图通道数保留原YOLOv3中的比例1∶2 以保留更多低层特征图的特征信息,提高自然环境下包括遮挡叶片在内的叶片检测精度。
图4 YOLO-in模型结构Fig.4 Structure of Yolo-in model
1.2 基于改进Faster R-CNN的病虫害检测
1.2.1 Faster R-CNN
Faster R-CNN将检测过程分为可能包含物体的候选框的生成和对候选框的修正分类两部分,具有很高的检测精度,对于病虫害类小尺度特征复杂的目标具有更好的检测效果。Faster R-CNN将经特征提取模型得到的特征图分别输入RPN网络和ROI Pooling层两个分支,其中RPN网络输出约2 000个包含前景、背景概率和边框调整参数的proposal。而ROI pooling层则同时接收原始特征图以及RPN网络输出的多个proposal,并统一尺度输出进行最终的目标分类和位置回归调整。
传统方法Selective Search[24]通过将图片划分成多个小区域计算相邻区域相似度使得目标检测仅在候选框提取过程耗时就需要2 s。Faster R-CNN提出RPN网络用于候选框的选取显著减少候选框提取用时,通过Anchor box机制设置K个对应的初始检测框,在输入的特征图上使用3×3的滑动窗口进行扫描,每次以滑动窗口的中心点为中心生成K个候选框,根据其与真实标注ground truth的IOU判断该候选框是否包含待检测目标,再对候选框进行位置调整得到最初的候选框,使得候选框生成速度达到毫秒级。
1.2.2 Anchor的改进
原Faster R-CNN中默认采用的9种Anchor box尺寸并不符合月季病虫害的检测需求。月季病虫害中蚜虫等目标在图像中占比极小,与此同时红斑病却通常范围较大呈长方形。因此聚类更为合适的月季病虫害检测Anchor box能够使得RPN网络生成更多包含待检测目标的候选框,从而提高检测精度。本文采用YOLOv2提出的K-means算法聚类月季病虫害检测中的Anchor尺寸,采用的距离度量公式为
d(box,centroid)=1-IOU(box,centroid)
(1)
式中:centroid——聚类簇中心框;
box——当前标注框;
IOU(box,centroid)——簇中心框和当前标注框的交并比。
本文选取K=3,…,20,分别对月季病虫害数据集标注框K-means聚类得到K取值与IOU之间的关系如图5所示,K取12时IOU曲线开始趋于平缓,因此针对月季病虫害数据集特点,本文在原尺寸上增加一个小尺寸Anchor box,最终尺寸与高宽比分别为[64,128,256,512]和[1/2,1,2],RPN网络每次滑动根据中心点生成12个不同大小比例的Anchor box以粗略覆盖更多的月季病虫害,从而提高月季病虫害的检测准确率。
图5 K取不同值时IOUFig.5 IOU with different K values
2 试验研究
2.1 数据集采集
试验样本图像主要于2020年2—6月采集自江苏沭阳胜龙月季园种植园,采集对象为自然条件下生长的患病叶片及部分健康叶片,共采集图像534张,每幅图像均包含2个及以上叶片。为提高模型对不同光线、设备、环境下拍摄叶片的适应性通过对图像进行随机旋转、光线调节、高斯模糊、裁剪等方法扩充数据集至1 402张,同时采用ImageNet数据集通过迁移学习的方式帮助模型训练。
月季叶片数据集中1 402张图像用于YOLO-in叶片检测模型训练与测试,同时选取其中1 050张月季患病叶片图像作为月季病虫害数据集用于月季病虫害模型训练与测试。在叶片检测中为学习到更多遮挡叶片的细节特征以提高叶片整体检测精度,将叶片数据集按以下情况分类标注:(1)叶片不存在遮挡情况,有完整叶片形状,命名为leaf;(2)叶片生长密集,存在遮挡情况,命名为cover_leaf,两类标签均包含健康叶片和带有病症的叶片,通过对存在遮挡情况的叶片进行标注,加强了模型对遮挡叶片特征的学习,在不影响未遮挡叶片的检测情况下,有效提高了遮挡叶片的检测精度从而达到了更好的叶片检测效果。
月季病虫害数据集包括下面4种常见月季病虫害:红斑病、白粉病、黑斑病、蚜虫,而白粉病、根瘤病等其他月季病虫害由于拍摄困难或不适合采用目标检测来进行研究未进行采集。其中包含红斑病、白粉病、黑斑病、蚜虫病症的样本数量分别为320、312、348、480(部分样本包含多种月季病虫害),4种病虫害样本如图6所示。
(a)白粉病
2.2 数据集采集实验环境
网络实现部分本文选择主流的深度学习框架Tensorflow作为实验平台,实验硬件环境为:Intel(R),Core(TM)i7-6700 CPU @3.40 GHz,8 GB内存,Nvidia P40 23 GB显卡。
2.3 叶片检测结果分析
改进得到的YOLO-in模型在自主收集的月季叶片数据集上迭代训练5 000步,模型Loss图如图7所示,模型在前2 500步的迭代训练中,损失值不断降低并于2 500步左右到达稳定状态,并且在之后的训练步数中,模型的损失值持续降低,整体趋于稳定,表明YOLO-in模型可以较快地达到收敛状态。
图7 YOLO-in模型Loss图Fig.7 Loss diagram of YOLO-in model
YOLOv3虽能带来较快地检测速度,但存在复杂背景下对小尺寸叶片、遮挡叶片检测效果差的问题。针对叶片检测存在的问题,采用以下改进策略:(1)对月季叶片数据集根据是否被遮挡进行了分类标注,以提高模型对遮挡叶片特征的学习能力。(2)针对YOLOv3特征融合中存在的未考虑同一特征图多尺度特征提取与融合的问题,添加类Inception模块进行多尺度特征提取,综合提高了月季叶片检测精度。采用控制变量方式进行改进策略有效性验证,结果见表1。
表1 各改进策略叶片平均检测精度Tab.1 Average detection accuracy of leaf
其中仅对叶片数据集进行分类划分,相较原YOLOv3模型叶片检测精度提高了3个百分点;增加类Inception模块进行多尺度特征提取则比原YOLOv3算法提高了8个百分点;综合以上改进点,YOLO-in模型叶片检测平均精度达到84.21%,在未遮挡叶片检测精度基本持平的情况下,遮挡叶片的检测精度得到明显提高同时检测速度仅存在小幅度下降。
对测试集中叶片图片分别利用改进的YOLO-in算法和原YOLOv3算法进行叶片检测,检测结果如图8所示。可以观察到图8(a)中原YOLOv3模型对于存在遮挡情况的叶片检测效果不佳,同时对于小尺度叶片存在漏检情况。图8(b)中改进后的YOLO-in模型能够更好地检测到存在遮挡情况的叶片和小尺度叶片,并且对于无遮挡叶片,两种算法检测精度相当的情况下YOLO-in模型具有更好的定位效果,有利于得到完整叶片区域保障病虫害检测,减少漏检和误检情况的出现。图8(c)为根据YOLO-in算法叶片检测结果对原图叶片外区域进行掩模操作去除背景影响因素后得到的掩模图片,作为叶片检测最终结果输入到Faster R-CNN模型中进行下一步的病虫害检测。
(a)YOLOv3模型叶片检测结果
2.4 病虫害检测结果分析
改进后的Faster R-CNN模型在月季病虫害数据集上平均检测精度为82.26%,模型P-R曲线如图9所示。红斑病的检测效果最佳而白粉病的检测效果最差,通过分析主要原因:(1)红斑病特征更为明显、受图片质量影响程度小;(2)白粉病训练样本较少,训练样本包含约300张图片,整个训练样本包含约1 000个标记的白粉病区域;(3)蚜虫目标尺度过小,虽然进行了Anchor box的改进提高了检测精度,检测精度仍然略低于尺度更大的黑斑病与红斑病。
图9 Faster R-CNN模型P-R图Fig.9 P-R diagram of Faster R-CNN model
针对Faster R-CNN模型病虫害检测主要有两点改进:(1)根据月季病虫害数据集标注框聚类更为适当的Anchor box;(2)联合本文提出的YOLO-in模型在月季叶片检测的基础上进行月季叶片病虫害检测。本文根据变量控制试验原则测试各个改进点,对比检测结果如表2所示。原Faster R-CNN算法在测试集中4种病虫害平均精度为76.21%,只对Anchor进行改进的情况下Faster R-CNN算法平均检测精度提高了约2个百分点为78.50%,其中蚜虫这一类小尺度的目标检测精度提升明显;当只联合YOLO-in算法在叶片检测基础上检测病虫害时,4种病虫害平均检测精度为79.35%,相较原Faster-RCNN模型提高近3个百分点,主要改进了黑斑病、红斑病、白粉病等尺度较大且与部分背景干扰因素相似度较高的病虫害的检测精度;本文提出的各改进点对Faster R-CNN模型病虫害检测的检测精度均有不同程度的提升,平均检测精度为82.26%,相比于原Faster R-CNN算法进行病虫害检测的精度提高了近6个百分点的,同时检测速度略有下降。
表2 各改进点病虫害检测精度对比Tab.2 Detection accuracy of pests
采用本文提出的TSDDP检测方法和原Faster R-CNN 模型进行月季病虫害检测结果如图10所示。
(a)原Faster R-CNN病虫害检测
原Faster R-CNN模型病虫害检测结果图10(a)表明对于蚜虫等小尺度目标原模型漏检情况较多,同时存在土壤杂物检测为病虫害的误检情况。本文TSDDP方法病虫害检测结果图10(b)中蚜虫、小型叶片这类小目标的误检情况改善明显,自然背景中杂物造成的误检情况也得到了避免,同时本文TSDDP方法对于蚜虫、红斑病、黑斑病、白粉病位置定位也更为准确。结果表明本文首先进行叶片检测再进行病虫害检测的方法能够有效去除避免自然背景对病虫害检测的影响,明显避免了土壤杂物造成的误检。Anchor box尺寸的优化也使得本文方法获到了更好地检测效果,显著提高蚜虫等小尺寸目标的检测效果的同时使得病虫害的定位更加准确。虽然本文提出的TSDDP方法改善了月季病虫害检测精度,但由于月季叶片部位病虫害种类多、部分病害面积过小形状多变或颜色和纹理等特征类似,而包含自然背景的病虫害图片非感兴趣区域过多都容易导致检测错误使得平均检测精度还存在提升的空间,同时TSDDP方法通过对模型优点的结合和检测步骤的分解,虽然解决了背景因素的影响却降低了病虫害检测速度,这将作为下一步研究改进的重点以提高自然环境下月季病虫害的检测精度和速度。
3 结论
本文以自然背景下的月季多叶片病虫害检测为研究对象,对自然背景下采集的病虫害图片进行黑斑病、红斑病、白粉病、蚜虫4种月季常见病虫害的目标检测。针对实际场景中复杂背景、病虫害尺度过小等问题,本文提出两阶段月季病虫害检测方法TSDDP,通过YOLOv3模型融合Inception模块对多叶片图片进行叶片检测去除背景影响因素,并对Faster R-CNN模型的Anchor box尺度进行改进再对叶片区域病虫害进行检测实现自然场景下多叶片病虫害检测,并对不同检测模型及其有效性进行试验验证。
1)通过对YOLOv3模型添加Inception模块,采用1×1、3×3、5×5、7×7四种不同大小的卷积核并行进行多尺度特征提取再融合的方式保留更多的特征信息,对并行的特征提取结果进行融合输入到YOLOv3特征融合层进行检测和分类实现YOLO-in叶片检测模型。
2)针对月季病虫害数据集通过对Faster R-CNN中Anchor box进行聚类寻优,调整增加Anchor box使得最终尺寸与高宽比为[64,128,256,512]和[1/2,1,2]以覆盖更多的月季病虫害,并具有更优的定位效果。
3)通过对月季多叶片图片进行基于YOLO-in模型的叶片检测,根据检测定位结果进行掩膜处理去除背景影响因素,再利用针对月季病虫害形态优化后的基于YOLO-in叶片检测模型进行叶片区域病虫害检测实现月季病虫害检测模型,该方法相较原Faster R-CNN模型具有更高的平均检测精度,对蚜虫、黑斑病、红斑病、白粉病的检测精度为82.32%、84.08%、88.73%、73.93%,取得了较好地检测效果,能够有效去除自然背景对病虫害检测的影响,并对图片中包括小尺寸病虫害在内的各类病虫害都具有更好地检测和定位效果,为病虫害检测相关研究提供了新的方法。