APP下载

基于改进YOLOX 模型的柑橘木虱检测方法

2023-01-13王海漫肖明明杨嘉诚陈富荣易干军林德球

广东农业科学 2022年11期
关键词:木虱柑橘损失

王海漫 ,俞 婷,肖明明,杨嘉诚 ,陈富荣,易干军,林德球,罗 敏

(1.广东省农业科学院农业生物基因研究中心/广东省农作物种质资源保存与利用重点实验室,广东 广州 510640;2.仲恺农业工程学院信息科学与技术学院,广东 广州 510225;3.广州航海学院信息与通信工程学院,广东 广州 510725;4.广东省农业科学院,广东 广州 510640;5.廉江市经济社会发展研究会,广东 廉江 524400)

【研究意义】柑橘是我国南方最重要的果树之一,其果实香嫩多汁、酸甜可口,深受广大消费者喜爱,已成为两广及江浙等地区农业经济发展的主力军[1]。黄龙病是世界柑橘生产中最严重的侵染性病害,被称为柑橘的“癌症”,植株一旦染病,果实产量及品质下降,叶片黄化、植株生长衰退甚至死亡,经济寿命缩短,直接影响柑桔产业的可持续发展[2]。黄龙病目前可防可控不可治,而其传播的最主要媒介是柑橘木虱,因此,监测木虱并对其消杀是抑制黄龙病传播的一大有效手段。

【前人研究进展】目标检测是机器视觉领域的核心问题之一,其任务就是找出被测图像中的所有物体,以及确认它们的位置和大小。检测模型按照运算过程中是否需要产生候选区域,可以分为Two-stage 和One-stage[3]。Two-stage 算法将运算过程分为两个阶段,先提取候选框,判断框选区域是前景还是背景,第二个阶段进行分类,判断看前景具体类别,Two-stage 算法典型代表有R-CNN[4]、Faster-RCNN[5]等,识别准确率较高,但速度欠佳,不适合实时检测场景。One-stage 算法主要代表有R-SSD[6]、YOLO[7]系列等,不需要候选阶段,直接计算出目标的类别概率和位置信息,虽然识别精度比Two-stage 算法稍差[8],但检测速度快、资源消耗更少使其成为嵌入式边缘设备理想的模型[9]。

在昆虫的智慧监测方面,俞龙等[10]使用了一种改进的YOLOX 算法对一芽一叶、一芽二叶等茶叶嫩芽进行识别、分类;朱立学等[11]使用加入了注意力机制的YOLOv5s 算法对草坪环境的红火蚁进行了精准检测;胡嘉沛等[12]通过改进YOLOv4-Tiny 模型的颈部网络,利用浅层卷积层包含的位置信息和细节信息,提高了模型对柑橘木虱小目标的识别能力,并使用交叉小批量归一化方法替代卷积层的批归一化方法,提高了统计信息的准确度,有效地提升了网络的检测精度;周逸博等[13]基于YOLOv5s 设计了Android 端苹果树皮病害识别APP,有效辅助果园精准管理;Partel 等[14]使用移动机器在田间拍打树枝将木虱收集到拍摄台,使用YOLOv1 和YOLOv3 算法对木虱进行监测,但我国农林作业环境复杂,并多以小农经济为主,没有规范化管理,故无法使用上述行走机器作业,我国农业环境更适合体积较小的嵌入式检测设备[15-16]。引诱剂以及特效杀虫剂对于木虱的消杀至关重要,胡妍月等[17]研究不同地区柑橘木虱种群对常用杀虫剂的抗性水平,为生产实践合理化用药提供依据;刘科宏等[18]首次在亚洲柑橘木虱中检测到CYVCV(柑橘黄脉病毒),研究结果丰富了基因组数据库,可为CYVCV 的防治和研究提供依据。

【本研究切入点】考虑到后期需要部署在嵌入式开发板,选择速度更快的One-stage类型算法。YOLO 系列作为此类典型代表,经过几年的发展,已经广泛应用于工业领域。本研究选择2021 年由旷视研究院提出的YOLOX[19]模型作为基准算法,在其骨干网络输出层加入卷积注意力模块CBAM(Convolutional block attention module)[20],增强其特征提取能力;针对柑橘木虱体积非常小,属于小目标检测范畴,引入Focal Loss[21]损失函数提高模型对小目标的检测能力。

【拟解决的关键问题】木虱体积较小,需要更加精确的目标检测算法才可以达到理想的识别效果,基于YOLOX 的改进模型增强了特征提取和小目标检测能力,契合柑橘木虱检测场景。

1 材料与方法

1.1 试验数据采集

试验所用木虱数据采集于广东省农业科学院农业生物基因研究中心与廉江智库合作的果园试验基地廉江市橙梦园,采集时间为2022 年5 月24—26 日,其中,24 日为阴天,其余两日为晴天,每日选取7:00~8:00、12:00~13:00、17:00~18:00 3 个时间段进行采样,拍摄设备为小米11 手机,为确保数据集的稳定性和一致性,整个采集过程采用自动对焦模式,禁用闪光灯和HDR 功能,拍摄距离9~11 cm,图像像素为3384×6016,共600 张(图1)。

图1 柑橘木虱数据集Fig.1 Citrus psyllid data set

1.2 数据集预处理

为了防止600 张木虱数据集发生过拟合现象,如直接输入模型进行训练会导致特征学习不明显导致推理失败,因此在训练阶段前对数据集进行扩充和增强。首先对600 张图像进行旋转和翻转,增强其泛化能力,并对扩充后的数据集采用改进的Mosaic 数据增强方法,原版Mosaic 是随机选取4 张图像进行随机裁剪,并将裁剪过后的图像按顺序拼接为一张新图像,再将其与原始数据集一起作为模型的训练输入。经过数据扩充与增强后,最终数据集数量为2 100 张,按照8∶1∶1的比例划分为训练集、测试集和验证集,其中1 680 张训练数据通过LabelImg 软件手动标注出木虱所在图像中的位置,得到标签数据集。

1.3 柑橘木虱检测模型设计

近几年来,YOLOv1-YOLOv5 成为工业领域应用最广泛的目标检测算法,基于此改进的检测模型解决了大量的工作,但随着网络模型朝着向量化的方向改进,尤其是YOLOv5 其检测准确率受硬件影响较大,未考虑后期部署工作,其通常在V100 等高成本的机器上进行比较。YOLOX 在前人广泛的研究基础上,汲取了大量优秀工作,将YOLO 系列进一步增强,基于YOLOX 模型开展木虱检测工作,提高其检测准确率。

1.3.1 YOLOX 模型概述 目标检测模型根据各部分功能的不同,可以被抽象为Backbone、Neck 和Head 3 个部分,如图2 所示。主干网络Backbone 部分对输入的数据进行特征提取,包括一些定位信息、细节信息等供后续网络使用;颈部网络Neck 部分用来提取一些更复杂的特征从而更好的融合和提取特征信息;检测头Head 部分利用之前提取到的特征进行计算预测输出结果。YOLO 系列各版本结构设计如表1 所示。

图2 检测模型总体结构Fig.2 Overall structure of detection model

表1 YOLO 各版本结构设计Table 1 Structural design of various versions of YOLO

1.3.2 主干网络改进 YOLOX 主干网络使用的是CSPDarkNet 模型,主要使用CSP 结构与卷积层相连接。输入的图像首先经过Focus 结构(图3)进行采样,采用切片操作将分辨率较高的图片切分为多个低分辨率的图片,及隔行隔列的切割再拼接,Focus 操作将平面上的信息转换到通道维度,从而降低模型结算量。然后经过CSPDarkNet获取到3 个有效特征层,虽然CSP 结构可以减轻随着网络的加深而出现的梯度消失问题,但是也会一同将噪声与提取到的特征传输到深层网络,降低学习效率。因此本研究在3 个有效特征层后分别加入卷积注意力模块(Convolutional Block Attention Module,CBAM),可以序列化地在通道和空间两个维度上产生注意力特征图信息,然后两个维度再与原输入特征图进行相乘以完成适应特征修正获得最后的特征图,是一种结合了通道和空间的轻量级注意力模块,可以将注意力聚焦在图像中更加重要的区域,让模型更加关注重要特征。改进后的YOLOX 模型如图4 所示。

图3 Focus 结构Fig.3 Structure of Focus

图4 改进的YOLOX 网络结构Fig.4 Improved YOLOX network structure

1.3.3 损失函数 YOLOX 的损失函数由3 部分构成,如下式所示:

L=LReg+LCls+LObj

式中,L为模型总损失,LReg为预测位置和真实位置之间误差的损失,LCls为判断类别概率的损失,LObj为对象的置信度损失。基于柑橘木虱小目标的特性,使用Focal Loss 损失函数替换目标损失中的交叉熵损失,Focal Loss 损失函数如下:

式中,γ>0,使得减少易分类样本的损失,使其可以更加关注困难的、错分的样本,经Focal Loss计算,小目标就可以获得更高的损失值,从而提升模型整体的小目标检测能力。

1.4 试验环境

本模型训练环境为Ubuntu18.04 操作系统,显卡选用双路NVIDIA RTX3060Ti 提供算力,选用Python3.8 编程语言以及Pytorch 1.10.0 深度学习框架,OpenCV 库版本为4.6.0.66,并采用CUDA11.3+CUDNNv8.2.1 进行加速。

1.5 评价指标

评价指标采用精准率(Precision,P)表示正确识别木虱的占比,召回率(Recall,R)表示木虱的覆盖程度,精度均值(Average Precision,AP)表示木虱识别的精度,平均精度均值(Mean Average Precision,mAP)表示木虱的平均识别精度,计算公式如下:

2 结果与分析

2.1 改进YOLOX 模型对柑橘木虱的检测效果

模型初始参数为学习率0.001,Batch 大小16,迭代次数epoch100。图5 为木虱的识别效果图,可以看出,模型对于木虱小目标的检测效果很好,并且对于重叠在一起的多个木虱也可以有较高的识别率;图6 为改进后的YOLOX P-R 曲线图,横坐标为召回率(Recall,R),纵坐标为精准率(Precision,P),坐标轴与P-R 曲线围成的面积即为木虱识别精度(Average Precision,AP)值,可以得到木虱识别精度的AP 值为85.66%。

图5 柑橘木虱识别效果Fig.5 Effect of citrus psyllid identification

图6 YOLOX P-R 曲线Fig.6 P-R curve of YOLOX

YOLOX 主干部分具有多个残差网络,其中CSP结构将原来的残差块的堆叠拆分为两个部分,主干部分继续进行之前的残差块的堆叠;另一部分则经过少量处理与多个残差的输出特征直接相连,有较大的残差边。这个结构可以增加深度来提高准确率,且可以有效缓解深度增加带来的梯度消失问题,但是也会将噪声一起传到更深的网络,从而影响准确性。加入CBAM 模块后,使网络更加关注重要特征,一直非必要特征,减轻噪音对网络传输的影响,大大提高了模型在复杂背景环境下对柑橘木虱的检测能力。

本研究的改进YOLOX 模型与原版YOLOX 以及其他YOLO 类算法精度对比如表2 所示。从表2 可以看出,木虱检测模型AP 值分别提高2.70、8.61、4.23、3.62个百分点,取得了很好的检测效果。

表2 精度对比实验Table 2 Comparison experiment of precision

2.2 消融比较实验分析

为分析本文各改进策略对模型性能的影响,共设计3 组实验对不同的改进进行分析,每组实验均使用相同训练参数,在实景采集的木虱数据集上对各改进策略进行训练和评估,模型性能检测结果如表3 所示,其中“√”代表在改进模型中使用的策略,“×”代表在改进模型中未使用的策略。原版YOLOX 模型AP 值为82.96%,在主干网络3 个有效特征层加入CBAM 注意力模块后,AP 值提高2.11 个百分点;改变交叉熵损失为Focal Loss 损失后,AP 值提高0.79 个百分点。引入Focal Loss 损失函数后,解决了木虱数据集样本不均衡的问题,从而提高了准确率。

表3 消融对比实验Table 3 Comparison experiment of ablation

3 讨论

YOLOX 是至今为止非常优秀且在工业领域获得一致好评的开源检测算法,其在输入端添加了Mosaic 和MixUp 进行数据增强,主干部分主要采用Focus、CSP 跨阶段局部网络结构和SPP空间金字塔池结构组成,预测端与之前YOLO 系列相比有很大改变,增加了3 个Decoupled Head解耦头,使网络收敛速度加快,增强网络表达能力;标签分配策略上对OTA 进行了简化,提出了SimOTA,在训练过程自适应地动态分配正样本,大大缩短训练时间。本研究针对目前小目标检测存在精度低、误检率高等问题,以YOLOX 作为基准模型提出了一种柑橘木虱检测模型,通过在主干网络的3 个有效特征层加入卷积注意力模块CBAM,使其对于某些特征层和空间区域更加关注;使用Focal Loss 损失函数替换目标损失中的交叉熵损失,使模型训练更加稳定,收敛速度更快。

注意力机制的灵感最先起源于人类的视觉研究,人们可以非常轻松地分辨重要区域和不重要区域,从而获得重点信息。注意力机制是对数据引入注意力权重信息,突出重要特征,并且抑制非重要信息。CBAM 结合了图像的通道维度和空间维度,使得网络可以获得全局信息并进行分析,从而更加关注图像中的目标信息。基于YOLOX的木虱检测模型通过加入CBAM,使得网络更加关注木虱小目标所在区域,从而提升木虱检测能力,AP 值提高了2.11 个百分点,且参数量增加很小。

在实际的预测中,小目标相较于大目标有着更低的准确率,更难预测,交叉熵损失函数没有很好的提高模型对小目标的检测能力,为了进一步提高模型对小目标的检测效果,将目标损失中的交叉熵损失改为使用Focal Loss损失函数计算,其通过一个超参数γ 来控制网络对小目标的关注度,通过降低负样本的权重,使网络在训练阶段可以更加关注真实部分和困难样本,弱化数据不平衡问题,从而提升性能。

本研究通过对YOLOX 的探索和优化,针对柑橘木虱数据提出了一种精度更高的检测模型。但是性能在我们自己创建的数据集上面没有公共数据集表现的优秀,因此在数据采集阶段的工作还需标准化。另外,人工数据标注也会对样本训练产生一定的影响,可以考虑一些自动标注方法。

4 结论

在科技快速发展的今天,农业智能化已经成为一种趋势,亟待为果园的智慧管理提供一种解决办法。本研究基于YOLOX 检测方法,在汲取前沿科技成果的基础上,通过在主干网络的3 个有效特征层加入卷积注意力模块CBAM,提高其重点信息关注程度;改变交叉熵损失为Focal Loss损失,削弱样本不平衡问题,增强小目标检测能力,经过测试,AP 值为85.66%,比原模型提高2.70个百分点,推动着目标检测领域向着更快更准的方向高速发展。

猜你喜欢

木虱柑橘损失
烟草对柑橘木虱的诱杀效果研究
胖胖损失了多少元
矿物油乳剂对柑橘木虱定殖行为的影响
柑橘家族
玉米抽穗前倒伏怎么办?怎么减少损失?
柑橘的秘密
亚洲柑橘木虱带菌率的周年变化动态
阿尔及利亚将实现柑橘自给自足的目标
印度柑橘产业不景气
菜烧好了应该尽量马上吃