基于Keras-YOLOv3 网络的梨小食心虫检测及计数方法研究

2023-06-23 03:50吴文蔚王永鑫王甜利李川贾彬良刘景凯郭艳琼马瑞燕赵志国
关键词:食心虫害虫计数

吴文蔚,王永鑫,王甜利,李川,贾彬良,刘景凯,郭艳琼,马瑞燕,赵志国*

(1.山西省职业技术学院 计算机系 山西 太原 030006;2.山西农业大学 植物保护学院 山西 晋中 030801;3.山西省农业农村厅 山西 太原 030001)

梨小食心虫 (Grapholitamolesta(Busck))隶属鳞翅目 (Lepidoptera),卷蛾科 (Tortricidae),国外分布于欧洲,非洲和美洲等地,国内分布于华北、华中和西北部等地[1]。梨小食心虫可在杏、桃、梨、枣、苹果等经济果树发生为害[2-3]。生长季前期,其幼虫主要危害树梢,后期危害果实[4]。为害果实时,幼虫从萼洼或梗洼处蛀入,先在果肉浅层为害[5],其虫粪从蛀孔处排出,蛀孔外围逐渐变黑、腐烂,形成一块较大的黑疤,俗称“黑膏药”[6]。随后蛀入果心,在果核周围蛀食并排粪其中,形成“豆沙馅”[7],最终导致果实易脱落,不耐贮藏。梨小食心虫的世代重叠较严重,加之隐蔽于果实内严重危害,因此及时监测预警不同时期梨小食心虫种群动态[8-9]有助于其精准科学防治。

国内外众多学者运用不同的研究方法对害虫种群的监测防治进行了相关研究。牛茹萱等[10]采用水盆诱捕器诱集害虫进行监测,彭琼等[11]采用智能型虫情测报灯对害虫诱捕和监测,但这些诱捕监测方法均需人工识别和统计,费时费力,极端天气时更是无法作业。

近年来,随着深度卷积神经网络学习[12]、机器视觉[13]和模式识别技术[14]的发展,对象识别技术得到了广泛研究和应用。如张银松等[15]利用改进后的Faster-RCNN 模型实现了粘虫板图像昆虫的识别与计数,改进后的模型检测准确率达到90.7%。董伟等[16]分别提出了基于深度卷积神经网络的识别模型和检测计数模型,对常见的5 种易混淆的蔬菜鳞翅目害虫构建数据集,平均识别率达到94.5%。基于结构化随机森林的害虫图像分割算法和利用不规则结构的特征提取算法,结合背景去除、干扰目标去除和检测模型计数子算法,肖德琴等[17]集成设计了基于视觉感知的蔬菜害虫计数算法,在现场环境拍摄的图像中,对蓟马的平均识别率达到93.19%,实蝇的识别率达到100%。闫建伟等[18]采用改进Faster-RCNN 在自然环境下识别刺梨果实,一定程度上提升了大体积静态目标的识别效果,但其对于田间害虫这类动态小目标的检测效果并不理想。与其他方法相比,深度学习目标检测模型能够将昆虫识别、定位和计数融为一体,可更快鉴别和计数,从而及时精准地防治害虫,降低作物损害,提高经济效益。

基于此,本文采用了深度学习卷积神经网络中的Keras 下YOLOv3 目标检测算法,使用自制诱捕器捕获梨小食心虫,获取其图像数据集;利用Keras模型可快速搭建的特点及其数据增强功能扩大数据集,进行模型训练、测试,并将其研究结果与普通YOLOv3 模型、其他网络模型等进行对比,以期为田间小目标检测、计数提供理论支撑,为害虫种群监测防治智能化提供新思路。

1 材料和方法

1.1 试验材料

试验地概况:晋中市太谷区西山底村(北纬37°12′~37°32′,东经112°28′~113°01′),该地桃树品种为大久保,平均树龄10 a,树高2.5 m 左右,株行株距约为3.5 m×5 m,选择水肥管理和栽培方式相近的桃园作为试验点。

供试虫体:田间诱捕到的梨小食心虫成虫。

图像采集设备:2000 万像素数码照相机(RICOH G900)、搭配树莓派开发板的广角摄像头(TP-LINK500万摄像广角鱼眼摄像头)。

1.2 试验方法

1.2.1 基本理论

(1) 目标检测算法基本原理

Keras 是深度学习框架中由Python 进行编写的具有高级神经网络的API,它将Tensorflow、Theano 以及CNTK 作为后端运行,进行模型的快速搭建。Keras 中有网络层、损失函数、优化器、激活函数、正则化等模块,有利于模型的搭建、训练和优化问题的处理。同时,具有高度模块化和可扩充性,支持CNN 和RNN 以及两者的结合使用。

目标检测是将图像中感兴趣的目标检测出来[19],确定它们的种类和位置,是计算机视觉的核心问题之一[20]。YOLOv3 是目标检测中基于深度学习One Stage 算法的一个算法[21],它将目标检测视作回归问题,首先确定检测对象位置,其次对检测对象进行分类,从而完成目标识别和定位[22]。

如图1 所示,YOLOv3 模型的核心网络Darknet53 主要采用了Resnet 思想[21],利用残差网络Residual[24]解决深层网络出现的各类问题。核心网络Darknet53 中每个卷积部分使用DarknetConv2D 结构,每次卷积时进行l2 正则化,完成后进行Batch-Normalization 标准化和LeakReLU 激活函数[25]。

图1 YOLOv3 网络结构Fig. 1 YOLOv3 Network Structure

(2) YOLOv3模型的目标检测过程原理

特征提取网络结构:目标检测时YOLOv3 需要提取3 个特征层,分别存于其主干网络Darknet53 的中间层、中下层、底层[26]。特征提取时,先将底层特征层进行5 次卷积处理,再采用其中一部分用于卷积和上采样(UpSampling),其余输出对应的预测结果[27]。Conv2D 3×3 和Conv2D1×1 两个卷积起通道调整的作用,以输出所需大小;采用卷积和上采样所得到的特征层与Darknet53 中的特征层拼接,再进行5 次卷积后,一部分用于卷积上采样,另一部分输出对应的预测结果;其次将卷积上采样的特征层与中间层拼接、卷积形成特征层,再经Conv2D 3×3和Conv2D1×1两个卷积,得到最终特征层。

对预测结果解码:由于预测结果在最终预测框显示不出,因此解码过程[28]显得尤其重要。YOLOv3 模型预测原理是将整幅图分割为13×13、26×26、52×52 的网格,每个网络点负责一个区域的检测,解码的过程就是将边界框[29]的坐标bx,by,bw,bh计算出来。其表达式为:

式中:tx和ty表示网格中相对于x、y 轴的偏移量;cx,cy为点在网格左上角与最左上角相差的格子数;pw,ph为先验框的边长;tw,th为预测边框的宽高;σ 表示激活函数,先验框可以确定目标的高和宽,以预测时辅助处理tx、ty、th和tw;Pr(Object)是先验框是否有对象的概率,即置信度[30],表示先验框和真实框的IoU。

进行对象预测分类时,采用sigmoid 函数,将值约束在[0,1]的区间内,此时当某一边界框置信度大于0.5,即可确定是否为梨小食心虫类别。

预测边界框的得分排序和非极大抑制(NMS)筛选:设定阈值后,每1 个种类均会有大于阈值的边界框,且其个数可能不限于1 个,此时YOLOv3 需将概率最大的边界框筛选出来。首先,对边界框进行得分排序,然后再用边界框位置和得分进行非极大抑制处理[31],得到概率最大的框,即最终框。

(3) YOLOv3的损失函数变化

YOLOv2 到v3 的变革,使得小目标检测效果得到进一步提升,除了在网络模型中引入残差网络,还表现在将其损失函数中的分类损失改为二分交叉熵,这是由于交叉熵能够衡量同一随机变量中两个不同概率分布的差异程度,交叉熵的值越小,模型预测效果越好。目标检测中,该交叉熵即为真实概率分布与预测概率分布之间的差异。

因此,YOLOv3的损失函数公式为:

式中:A:中心坐标误差;B:宽高坐标误差;(CD):置信度误差;E:分类误差。

1.2.2 试验步骤

(1) 梨小食心虫数据集的获取:诱捕梨小食心虫后,采用专业相机、体感显微镜等采集数据设备于阴天、降雨、叶片、树枝等不同场景下、多角度下拍摄采集图像,共计拍摄850 张高清原始图像,作为数据集1(图2)。通过Keras 中的数据增强功能,将该原始图像集经过加亮、加噪、垂直、翻转等,最终生成4325 数据集,作为数据集2。梨小食心虫田间诱捕时发现,白色粘板上其成虫多为背部朝上,但也有一部分腹部朝上,为计数的完整、准确,本试验亦采集了腹部朝上的个体图像,加入到训练集中。

图2 梨小食心虫腹部及背部采集图像Fig.2 The images of the abdomen and back of the G. molesta

(2) 梨小食心虫数据集标注:采用LabelImg 软件对图像中的梨小食心虫目标标注,并生成对应图像的xml 文件(图3), <annotation>标签的主要内容为标注类别名称以及学习目标框的4 个位置坐标信息(图4)。

图3 梨小食心虫目标类别标注Fig. 3 Target category labeling of G. molesta

图4 目标框位置坐标信息Fig.4 Target frame position coordinate information

(3) 梨小食心虫目标检测模型训练过程:试验环境硬件配置为NIVDIA GeForce GTX1080 Ti 显卡,软件环境配置为windows10 系统。采用Keras 下Tensorflow2.0 进行YOLOv3 模型构建,通过 tf. keras 对模型进行修改,同时提高模型的训练速度。对已标注的梨小食心虫数据集进行训练,设置输入图像大小均为416×416,最大迭代次数为200,学习率设置为1e-4~1e-6,NMS-thresh 值为0.5,分别对数据集1 和2 进行模型训练,当LOSS 值不再下降时视为训练完成。

2 结果与分析

2.1 Keras-YOLOv3 的性能

基于Keras-YOLOv3 算法对数据集2 进行训练,其训练效果如图5 所示。从图中可以看出,训练准确率曲线在60 个epochs后呈稳定上升状态,又经过200 个epochs 后,其训练精度超过85%,且验证集和训练集的准确率接近;最终,其精度收敛值为88.2%(表1),表明该模型精度高,泛化能力强,适用于梨小食心虫的目标检测[32]。

表1 不同检测模型的梨小检测结果Table 1 Detection results of G. molesta with different detection models

图5 Keras-YOLOv3 算法对数据集2 训练效果Fig.5 The training effect of Keras-YOLOv3 algorithm on data set 2

2.2 梨小食心虫检测结果

将备好的测试集用模型2 进行预测,并验证其计数结果的准确性。图6 为Keras-YOLOv3 模型下所检测到的梨小食心虫。

图6 Keras-YOLOv3 模型下所检测到的梨小食心虫Fig.6 Detection of G. molesta in Keras-YOLOv3 Model

YOLOv3 模型与Faster-RCNN、SSD 等其它网络模型的检测结果见表1。总体上看,2 种YOLOv3 模型均较精确,其中数据集1 中梨小检测的平均精度mAP 值为81.1%,性能良好,经Keras 下数据增强的数据集2 中Keras-YOLOv3 模型的平均精度mAP 值为88.2%,性能最佳,SSD 模型和Faster-RCNN 模型检测的平均精度mAP 值较低;单张图像检测时,2 种YOLOv3 模型的检测速度分别为每张0.047 s、0.042 s,相较于SSD 和Fster-RCNN 其检测速度较快;YOLOv3 模型梨小计数准确率为91%,计数效果较理想,而Keras-YOLOv3模型的计数准确率达到95%,计数效果最高。据此,整体来看,Keras-YOLOv3 模型检测效果最为理想。

2.3 田间多种类害虫混合发生时的检测效果

由于田间诱捕过程中同时有其他种类昆虫混入情况,我们在由数据集2 训练好的YOLOv3 网络模型中添加其他常见害虫样本拍摄图像,如金龟子(446 张)、蚜虫(545 张)、苍蝇(341 张)等,将其同样标注后,在模型2 基础上继续训练,将多种害虫放于同一平面验证训练好模型的准确性,此时,梨小食心虫检测的平均精度mAP 降至79.98%,计数准确率降至83%,分析其原因可能是:(1)其它种类害虫的图像数据集过小;(2)数据集2 所训练的网络模型环境复杂度欠缺。

3 讨论

此前,已经提出了许多基于不同机器学习(ML) 算法的自动害虫识别系统[33-34]。例如,Keras聚类算法识别害虫的方法是通过手动提取特征,并使用相对过滤器识别不同类型害虫来实现[35],当数据集很大时,耗时很长。Deng 等[36]基于局部配置模式(LCP)算法提取害虫的不变纹理特征,并将此特征馈送到支持向量机(SVM)进行识别,取得了良好的识别率85.5%,能有效识别复杂环境下的害虫。

相较于传统YOLOv3、SSD 和Faster-RCNN,Keras-YOLOv3 模型检测梨小食心虫目标的效果更好,同时计数更准确。由于田间生活栖息环境和背景的复杂多变,梨小食心虫图像数据的采集较为困难,基于其原始数据集的模型验证,其mAP 值仅为81.2%,使用Keras 下YOLOv3 可借助其数据增强方式扩大数据集,将原来的mAP 值81.1%提升到88.2%,计数准确率提升到95%。YOLOv3 为较成熟的目标检测模型,具有快速准确检测小目标的特点,本文改进后的YOLOv3 模型,提高了自然条件下梨小食心虫的检测效率与计数准确率,从而节省了人力开支,为更及时地监测预警梨小食心虫种群动态变化及其防治提供了可靠依据。

鉴于多种类目标检测中,与单一梨小食心虫种类相比,本算法模型的检测mAP 结果降低,下一步试验中将力争扩充其它昆虫种类更多、更精确的图像数据集,并优化相关算法模型,以进一步提高其检测与计数的效率和准确性。

4 结论

虫害发生是一种复杂的自然现象,在空间上既有广域性又有局域性,在时间上既有不稳定性又有规律性和周期性。为了达到及时、高效监测和防治虫害,减少损失的目的,运用如Keras-YOLOv3 模型等神经网络研究害虫灾害发生的动态规律、成灾机制、发展趋势,建立快速、精准的预测预报体系等方面有很大的发展前景。

本试验采用了深度学习卷积神经网络中的Keras 下YOLOv3 目标检测算法,对田间捕获到的梨小食心虫进行图像采集,构建其图像数据集,利用Keras 模型可快速搭建的特点以及Keras 下数据增强功能,扩大数据集进行模型训练、测试,并比较了Keras-YOLOv3 与普通YOLOv3 等其它网络模型的梨小食心虫检测与计数效果,其研究结果为田间小目标检测与计数提供了理论支撑,为梨小食心虫等害虫种群监测防治智能化提供了新思路。

猜你喜欢
食心虫害虫计数
古人计数
蜗牛一觉能睡多久?
冬季果树常见蛀干害虫的防治
递归计数的六种方式
古代的计数方法
桃小食心虫对桃树的危害及无公害防治
枣树害虫的无公害防治
这样“计数”不恼人
梨小食心虫性信息素在测报和防治上的应用
农业害虫的冬季防治