APP下载

基于实例分割的玉米虫害检测研究

2022-02-13赵康迪单玉刚赵元龙

河南农业科学 2022年12期
关键词:夜蛾虫害草地

赵康迪,单玉刚,袁 杰,赵元龙

(1. 新疆大学 电气工程学院,新疆 乌鲁木齐 830017;2. 湖北文理学院,湖北 襄阳 441000)

玉米是我国重要的粮食作物和工业原料,保持玉米产量稳定对国家粮食安全起着至关重要的作用。但每年玉米受到各类害虫侵害,造成大面积减产,时刻威胁着玉米生产安全[1-3]。特别是近年来迁徙入境的草地贪夜蛾(Spodoptera frugiperda),这种跨国跨洲的虫害已经在世界各地迅速蔓延,对玉米生产造成严重损失[4]。2019 年1 月草地贪夜蛾首次在我国云南省被发现,之后以迅猛之势扩散至全国26个省(自治区、直辖市),玉米受害面积超107万hm2[5]。现今外来虫源持续迁入,造成的危害可能会更加严重。因此,在农业领域中,除了要检测传统虫害,还要对外来虫害物种做到有效检测统计。

随着信息化技术的快速发展,农业信息水平的显著提高,基于机器学习的检测方法已被成功运用到农作物病虫害识别领域[6-8],并且取得了重要的研究成果。邹永杰等[9]针对番茄虫害叶片使用HOG与LBP 2 种特征提取,以互补的方式提取叶片信息,在公开挑战赛数据集上准确率可以达到99.49%。卢柳江等[10]使用Haar-like 提取害虫的特征,通过级联AdaBoost 分类器来识别害虫,其模型对复杂背景的虫害图片识别率能达到86.67%。上述机器学习方法能够有效地对目标进行识别,但基于传统的机器学习采用的特征提取方法,往往泛化与抗干扰能力比较弱,对多类别的目标检测效果欠佳。

相比传统的机器学习,基于深度学习的检测方法省略了特征选择和提取阶段。通过在训练过程中使用大量图像学习相关数据,改善传统机器学习在特征提取上的局限性,且这一方法在目标检测领域得到了广泛应用[11-13]。郭阳等[14]使用YoloV3 检测模型针对水稻的5 类害虫进行检测,最终虫害测试的平均精度均值(mAP)达到91.93%。DU 等[15]为了及时监测玉米草地贪夜蛾危害情况,基于Faster-RCNN 模型提出了一种端到端的草地贪夜蛾检测模型Pest-RCNN,并对玉米叶片的取食痕迹采样,Pest-RCNN 在试验数据集上的准确率达到了43.6%。邱荣洲等[16]按多种方式对草地贪夜蛾成虫图像进行预处理,其中以增加相似检测目标为方法训练的模型YoloV5s-AB 的识别准确率最好,达到了96.23%,且召回率为91.85%,F1 值为93.99。以上这些基于卷积神经网络的算法模型,对各农作物的虫害识别均取得了较好的试验结果。但国内对玉米草地贪夜蛾检测相关的研究相对较少,且多以单一成虫为检测目标。此外,通过深度学习得到的训练模型,需要大量的目标数据样本与较长的训练时间,而迁移学习可以使用有限的目标数据与少量时间达到理想的检测精度[17-18]。而且基于卷积神经网络的Yolo[19]、SSD[20]、Faster-RCNN[21]、Mobilenet 等检测算法只能对目标进行简单分类、定位,无法完成更精细的检测任务。而实例分割可以在像素级别对目标进行分类、识别和定位。同时针对由于拍摄角度变化以及虫害形态不同,造成目标尺度变化大,存在漏检率欠佳的问题,Detnet模型深层特征图尺寸不变,能改善对尺度变化大的检测目标的检测效果。

因此,采用Yolact++[22]实例分割算法,结合迁移学习的方法,把COCO 数据集上预训练的权重模型迁移到玉米虫害检测中,检测对象为各生长期的草地贪夜蛾。通过focal loss 优化损失函数,以及引入Detnet[23]模型改进Yolact++的性能,以得到精度较高、鲁棒性好的分割模型,同时也为后期精准施药和防控作业提供重要依据。

1 材料和方法

1.1 图像采集

以玉米草地贪夜蛾为检测对象。由于这类害虫是近年来迁徙入境而来,相关的数据较少,获取难度也比较大,所以采用2种方式获取数据:一是使用网络爬虫下载kaggle 网站上的数据;二是以实地拍摄图像作为数据。数据集共有710 张,其中422张是从网络上获取的,剩余部分是使用智能手机实地不同时段、多角度对目标采集的。按照草地贪夜蛾的生长时期把数据集分为卵、幼虫、成虫3类,其中卵170张、幼虫260张、成虫280张,原始图片数据如图1所示。

图1 玉米草地贪夜蛾数据示例Fig.1 Examples of data from Spodoptera frugiperda

1.2 数据预处理

草地贪夜蛾的原始数据总量较少,训练时容易发生过拟合现象,同时数据来源的方式不同,不同种类样本之间存在不均衡现象,这也会影响最终的训练结果。为解决这些问题,常采用的方法是对数据离线增强。常用的数据增强有翻转、旋转、剪裁、形变、缩放、噪声、模糊、颜色变换、擦除、填充等。本研究采用了翻转、增加噪声、模糊、亮度调节等方式对图片进行多重操作,来解决样本不均衡和过拟合的问题。另外,由于图像获取方式不同,图片存在格式、大小不统一的情况,这也要进一步处理,以达到训练的要求。草地贪夜蛾数据增强前后对比示例如图2所示。增强后数据集如表1所示。

图2 增强后的草地贪夜蛾数据Fig.2 Enhanced data of Spodoptera frugiperda

表1 草地贪夜蛾图像数据集Tab.1 Image data set of Spodoptera frugiperda

1.3 Yolact++模型结构

所采用的Yolact++模型结构如图3 所示,模型中的提取网络是以Resnet101 为基础的主干结构。挑选特征提取层中3 个特征图作为输入,通过特征图金字塔(FPN)结构得到P3—P5 这3 个特征图。然后使用2个卷积对P5连续操作得到P6、P7这2个特征图。Yolact++将得到的特征图接入到2 个并行分支网络Protonet 和Prediction head 中,得到Prototype-mask 与全部类别、位置和mask的置信度。接着把Prediction head 的结果输入到Fast-NMS,通过将得到的输出与Prototype-mask 进行裁切和叠加操作获得整个模型的检测结果。

图3 Yolact++网络结构Fig.3 Yolact++network structure

1.4 主干网络结构改进

Yolact++主干网络是以Resnet101 为基础的特征提取网络,在试验过程中替换Resnet101 为Detnet59 模 型。Detnet59 网 络 结 构 是 在Resnet50 的基础上改进的,保持Resnet50的前4层不变,将更深的2 层卷积层替换成Detnet 模型,结构如图4 所示。Detnet 的主干模型结构与原始Resnet 结构如图5 所示,它们的不同在于Detnet 将Resnet 中的3×3 的卷积层替换成空洞卷积,同时保持深层的特征图尺寸不变,降低深层特征图的通道数目。

图4 Detnet的FPN结构Fig.4 FPN structure of Detnet

图5 Detnet主干网模型Fig.5 The Detnet backbone model

试验中的Detnet 前4 层同样使用残差结构网络,只是有间隔地使用可形变卷积(DCN),并以可形变采样方式取代刚性网格采样,达到提升检测准确率的效果。DCN 是指能够动态调整卷积核每个元素位置的特殊卷积,用来改善特征提取效果。实际使用中是每隔3 个卷积层替换1 个3×3 的卷积层为DCN 层。这样既保证了检测速度,又有效地提高了检测精度。

1.5 损失函数优化与模型评价函数

Yolact++模型中使用了多种损失函数,主要是分类置信度损失(Class confidence loss)、边界框位置损失(Box localization loss)、掩膜损失(Mask loss)。其中,分类置信度损失与边界框位置损失的算法多采 用 类 似SSD、Fast-RCNN、Yolo 的 损 失 函 数Softmax loss与SmoothL1。

本研究边界框位置损失函数使用SmoothL1,如公式(1)所示,而分类置信度损失函数使用Softmax函数,如公式(2)所示。

其中,x为预测框和真实框之间的差值,N为批样本大小,C为类别总数,z是一组预测结果。

掩膜损失函数原模型仅使用二分类交叉熵损失函数解决正负样本不均衡问题。由于草地贪夜蛾的检测图像中难易样本差距比较大,可以使用focal loss的方法,让损失函数更加关注难样本,提高检测准确率。本研究将focal loss 与二进制交叉熵损失函数结合,优化后的掩膜损失函数如下。

其中,M是预测掩膜,Mgt是真实掩膜,λ为权重系数。此外,引入超参数α与γ使用变形后的二进制交叉熵,能有效加强对样本中难样本的学习,以获得更加准确的检测效果。

模型中使用了多种评价标准:精确率(Precision)、漏检率(Miss rate,FNR)、误检率(False alarm,FPR)、准确率(Accuracy,Acc)与平均精度均值(Mean average precision,mAP)。训练过程中利用在不同交并比(IOU)情况下计算的mAP值来评价权重模型的优越性,公式如下:

其中,Nclass为类别总量,PclassAve为不同类别平均精度。

1.6 迁移学习

传统的深度学习在数以万计的数据基础上通过长时间、多轮次的训练,才能达到理想的训练效果,而使用迁移学习可以有效提高训练效率。迁移学习通常将数据集分为源数据集和目标数据集两类。源数据集是指与任务检测目标无关,且数据量比较大的数据集;目标数据集是指任务检测对象的各种分类构成的数据集,但这些数据量相对源数据集比较小。

草地贪夜蛾的检测研究缺少训练数据集,自身收集制作的样本较少,所以在研究中使用迁移学习的方法,模型训练过程设计如图6 所示。通过COCO 数据集作为源数据集训练初始权重模型,然后以草地贪夜蛾数据集作为目标数据集。将源数据集上预训练的权重参数用于草地贪夜蛾检测模型的初始化,然后根据实际检测的目标类型具体调整各层初始参数。最后使用目标数据集先优化最后一层,然后解冻进行全局训练,得到最终的草地贪夜蛾网络权重。这样可以在较少的虫害样本与训练时间下,达到较高的检测精度。

图6 迁移学习模型训练流程Fig.6 Transfer learning model training process

1.7 模型训练

对迁移学习模型进行草地贪夜蛾检测训练,具体训练流程如下。

1.7.1 数据预处理 将初始的710张虫害图片进行翻转、增加噪声、模糊、加减曝光等多重操作扩充数据。同时把不同格式的图片统一为jpg,图片大小修改为550×550。

1.7.2 输入玉米虫害图像 将扩充后的虫害数据集的80%作为训练样本输入网络模型,数据集的10%作为验证集,在训练过程中对模型进行测评。

1.7.3 参数迁移 使用在COCO数据集上训练的权重,作为虫害检测模型的初始化权重。通过学习率、动量因子以及批样本大小、全连接层的神经元个数等训练参数的设置,优化网络模型的初始参数。

1.7.4 冻结卷积层参数 通过损失函数的更新迭代,冻结池化层和卷积层的参数,更新并优化最后一层的全连接层权重。设置批样本大小为8,学习率为0.001。观察损失函数与mAP 值变化幅度,当变化幅度稍显稳定后,设置批样本大小为4,初始学习率为0.001,学习率更新系数为0.1,学习率更新迭代次数为7 500/25 000/35 000,然后进行全局的权重更新迭代实现微调,以达到更好的训练效果。且训练过程中每100 步计算并保存1 次此时网络模型的mAP值,每10步记录1次损失函数值。

1.7.5 模型效果评价 训练结束后,使用数据集最后的10%作为测试集。通过验证集的评价结果,挑选训练过程中最优模型作为最终结果,使用最优模型在测试集上测试,以验证模型的准确率与泛用性。

2 结果与分析

本试验使用的硬件环境:CPU 是R7-5800H,8核16 线程,睿频4.4 GHz,GPU 是NVIDAIA GeForce RTX2060,6 G显存。使用的软件环境:windows10 系统环境下使用cuda 10.0、python 3.7以及anaconda与pycharm 软件搭建pytorch 环境。按照模型训练过程,将改进后的模型进行40 000 步训练。试验结束后,读取训练过程中保存的log 文件,获取验证集的总损失(Total loss)与IOU为0.50时mAP值。根据训练迭代次数画出相应的Total loss 与mAP 值曲线,如图7 所示。训练在25 000 步时,Total loss 与mAP 值曲线开始趋于稳定。最终训练过程的Total loss 在0.7 左右,而训练过程中,box 与mask 的mAP 值稳定在98%左右。

图7 迭代过程Fig.7 Iterative process

2.1 模型训练与性能分析

按训练方式不同将训练得到的模型分为3 类:直接使用数据增强后的数据集作为初始训练,输入到Yolact++卷积神经网络模型中,可得到网络模型A;利用迁移学习的方法,使用Yolact++模型训练,从而得到网络模型B;使用迁移学习同时改进模型,优化损失函数,引入Detnet模型可得到模型C。训练过程中3类模型在验证集上的测试结果如表2所示。

从表2 可以看出,IOU 为0.50 时,基于迁移学习的mask 与box 的mAP 值都在96%以上。相比不引入迁移学习,基于迁移学习的2种训练方法,均有更高地识别定位与分割精度,且能够很好地解决数据集小、训练时长不足的问题。因此,基于迁移学习的网络模型能够更有效地提取玉米的虫害信息特征。

从表2 还能看出,相比原网络模型,改进后的Yolact++模型有更高的mAP 值,但仅通过最优模型对比存在偶然性。因此,在相同条件下,针对3种方法的不同进行详细验证。在训练过程中,对3 种模型采集IOU 为0.50 时的mAP 值,如图8 所示。由图8 可知,改进后的模型训练与只在原有的网络模型基础上使用迁移学习相比,无论是box 还是mask 均有更高的mAP 值。改进后的迁移学习训练方法更具有优越性。

图8 3种模型迭代过程的mAP值Fig.8 The mAP in iteration process of the three models

表2 不同训练模型在不同IOU值时定位和掩膜的mAP值Tab.2 The mAP of localization and mask for different training models with different IOU value %

2.2 模型检测效果

根据模型分类性能测试的结果,在迁移学习条件下,将引入Detnet 模型并优化掩膜损失函数得到的模型,与不使用迁移学习直接使用目标数据训练得到的模型进行对比预测。预测用的数据图片是测试集中500 张相对难检测的样本图片,测试效果如图9 所示。从试验结果来看,针对小目标、多目标,甚至是部分遮挡的情况,使用迁移学习,以及改善模型优化损失函数的方法,不仅能够精准地对目标进行定位与识别,而且还能得到准确的分割效果。整体检测效果较为理想。

图9 模型测试效果Fig.9 Model test results

2.3 算法比较

为了验证本试验所采用方法的效果,在迁移学习的基础上,使用不同卷积神经网络算法Yolact、SSD 和YoloV3 进行对比试验(表3)。其中,模型1是不使用迁移学习,对Yolact++模型训练得到的;模型2 是使用迁移学习,对Yolact++网络模型损失函数优化并引入Detnet 模型训练得到的。使用这5 种不同的权重模型进行测试对比,测试对象为测试集中100 张有复杂背景的图片、相似虫害特征的正常玉米图片100 张以及数据集外又实地手机拍摄的300 张。从表3 可以看出,基于迁移学习的实例分割方法(模型2),在测试集上准确率可以达到96.32%,漏检率为5.51%,整体检测效果优于其他算法。并且基于迁移学习的玉米虫害检测算法,使用少量的训练数据与训练时间得到的检测效果,远优于不使用迁移学习的方法。因此,本研究提出的方法对玉米草地贪夜蛾这类虫害有着较高的检测能力,对农作物保护与草地贪夜蛾监控预防有着重要意义。

表3 不同卷积神经网络算法对比Tab.3 Comparison of different CNN algorithms

同时为了进一步验证试验的效果,通过修改主干网络来验证试验方法的有效性。试验过程中采用的是改进的Detnet 网络结构,然后与Resnet50 以及原始基础的Resnet101 主干提取网络对比,按照上述模型2 的训练方法,在相同的硬件环境与初始参数下,同样使用这500 张图片作为测试集进行测试,测试结果如表4 所示。3 种基于迁移学习的检测方法均优越于表3 中的常用算法,并且改进的Detnet 主干提取网络的准确率、漏检率与误检率均优于Resnet50 与Resnet101 的网络,特别是漏检率有着较大差距。Detnet的网络结构除对目标有更好的准确率外,同时也对大小尺度跨距较大的不同目标的漏检效果有明显的改善。

表4 迁移学习下不同主干网络对比Tab.4 Comparison of different backbone networks under transfer learning

3 结论与讨论

以草地贪夜蛾为检测对象,提出了基于实例分割的卷积神经网络结合迁移学习的虫害检测方法。在迁移学习条件下,优化损失函数,改进主干提取网络引进Detnet网络,并与其他检测方法进行对比。结果表明,本研究中玉米虫害检测网络模型的准确率达到96.32%,针对各生长周期的草地贪夜蛾能够做到像素级精准检测。该方法中使用的迁移学习,在小样本目标检测中具有一定的有效性与优越性;同时在小样本的迁移学习训练过程中,使用focal loss 针对难易样本不平衡问题,优化掩膜损失函数,引进Detnet 模型降低检测目标尺度变化大的影响,能有效提升模型精度,降低漏检率。同时该方法为进一步应用智能机器精准采集虫害信息提供了方法支持,对草地贪夜蛾防治决策的制订具有重要意义。

本试验中对算法的优化提高了玉米虫害检测的准确率,但就实际而言玉米虫害种类繁多,诸如螟虫、黏虫等都会严重威胁到玉米的产量安全。所以下一步将进行多类别害虫检测研究,采集不同时节和地区的多种玉米虫害信息,扩充玉米虫害数据集,丰富检测种类,提高模型应用价值。

猜你喜欢

夜蛾虫害草地
第七讲 草地贪夜蛾的迁飞及监测预警
科学认知草地贪夜蛾 打赢防控攻坚战
桃树主要虫害及防治方法
草地上的事
Laughing song
草地贪夜蛾的识别与防控
不用农药也能治虫害
草地贪夜蛾的识别及防控措施
草地
浅析白三叶的虫害防治