APP下载

基于改进YOLOX-s的苹果花生长状态检测方法及验证分析*

2023-09-11高昂卢传兵任龙龙李玲沈向宋月鹏

中国农机化学报 2023年8期
关键词:苹果花注意力损失

高昂,卢传兵,任龙龙,李玲,沈向,宋月鹏

(1. 山东农业大学机械与电子工程学院,山东泰安,271018; 2. 山东省园艺机械与装备重点实验室,山东泰安,271018; 3. 山东省烟台市农业技术推广中心,山东烟台,264001;4. 山东农业大学园艺科学与工程学院,山东泰安,271018)

0 引言

苹果是我国主要的大宗水果,在全国广泛种植,目前无论是种植面积还是产量都居世界首位。随着现代化果园的建立,对苹果产生过程机械化和智能化提出了新的要求,其中在果树管理中,开花强度是决定疏花的关键因素[1],直接影响果实品质。因此迫切需要实现苹果花生长状态智能检测,代替传统人工识别,以增加检测的客观性和准确率,从而提高苹果园智能化作业,提高经济效益。

随着机器视觉技术的迅猛发展[1],国内外学者运用机器学习和图像处理技术在苹果花检测中做了大量研究,陈国防等[2]研究了基于数据增强深度学习的苹果花检测方法,采用YOLO V4作为识别模型。杨其晟等[3]研究了改进的YOLO V5苹果花生长状态检测方法,并对网络进行改进以增加检测精度。Sun等[4]对苹果花、桃花和梨花轮廓进行语义分割并确定当前花瓣状态。

以上研究采用深度学习技术对苹果花生长状态进行研究,但对于实际应用领域轻量级识别模型适应嵌入式设备的研究较少,因此需要解决轻量级网络识别苹果花的问题。基于此,本文提出基于改进的YOLOX 苹果花生长状态检测方法,在网络中加入CBAM注意力机制模块,采用EIOU作为模型的回归函数,在后处理阶段引入Focal Loss损失函数,在网络模型参数较少的同时提高其识别精度,为实现苹果花生长状态智能检测提供技术支持。

1 试验与方法

1.1 图像采集与预处理

本试验图像数据采集点为山东农业大学苹果试验田(东经117.122 96°,北纬36.200 713°),采集时间为2022年4月上旬,在白天的不同时间段采用荣耀20 s智能手机进行苹果花图像采集,如图1所示,该试验田苹果品种为富士苹果。同时为了方便后续的网络模型训练,对采集后的苹果花图像进行处理,首先统一缩放到608像素×608像素,并对图像进行数据增广以增加图像的广泛性防止过拟合,最终得到苹果花数据集为868张。

图1 采集的苹果花图像

采用labelImg图像标注工具对图像中的苹果花进行标注[5],标注后会生成苹果花的分类和坐标信息并以文档的形式存储,根据使用要求转化成不同的格式。

1.2 YOLOX深度学习网络

YOLOX是一种典型的单阶段目标检测网络结构,相比双阶段目标检测网络结构,单阶段目标检测网络结构检测速度更快,检测精度稍逊[6]。这为深度学习网络的实际应用提供了可能,YOLOV3使用全卷积网络提取图像特征,在网络中大量使用了残差结构,解决了梯度消失和梯度爆炸的问题,同时YOLOV3采用了新的主干网络DarkNet和新的优化函数等,获得了更快的检测速度和检测精度。

YOLOX目标检测网络结构的出现进一步提升该系列的检测精度和速度。同样,如图2所示,YOLOX目标检测网络也由四部分组成,分别为输入、主干网络、颈部和预测[7]。

图2 YOLOX网络结构示意图

输入:在输入阶段YOLOX目标检测网络采用了Mosaic和Mixup数据增强方法,两种数据增强方法通过图像随机缩放、剪裁、自由拼接等操作有效提高数据的泛化能力。

主干网络:主干网络是整个检测模型的核心,负责将输入的图像进行特征提取并输出相应的特征图。YOLOX网络使用CSPDarknet53网络,该网络使用了Residual残差网络,并在最后一层使用全连接层,具有很强的特征提取能力。

颈部:颈部是FPN特征金字塔的构造,用于增强特征提取。FPN可以融合不同形状的特征层,有助于提高模型的性能和小目标的检测能力[8]。

预测:在预测阶段YOLOX网络使用解耦头放弃了以往该系列使用的先验框,同时使用SimOTA策略,可以将正样本动态匹配到不同大小的对象。

1.3 YOLOX目标检测网络的改进

1.3.1 添加Convolutional Block Attention Module(CBAM)注意力机制模块

CBAM模块是一种有效且轻量级的注意力模块[9],在众多的分类网络和目标检测网络中表现优异,在几乎不影响网络运行速度的同时提升了分类和检测精度。CBAM模块在给定中间特征图的情况下沿着两个独立维度顺序推导出注意力图,然后将该图与输入特征图相乘以进行自适应优化[10],所以CBAM模块结合了空间注意力模块和通道注意力模块,首先将特征图导入通道注意力模块,获得相应的注意力图,输入特征映射与注意力映射相乘,其输出通过空间注意力模块,在空间注意力模块执行通道注意力优化后的特征映射与注意力映射相乘,最后输出增加注意力的特征图,表达式如式(1)和式(2)所示。

F′=Mc(F)×F

(1)

F″=Ms(F′)×F′

(2)

式中:F——输入特征映射;

F′——通道注意力优化后的特征映射;

Mc(F)—— 通道注意力输出;

Ms(F′)—— 空间注意的输出;

F″——注意力模块的特征输出。

在本文中使用预训练权重对模型训练能够加快模型训练的速度,后期模型需要移植到嵌入式设备,因此对网络结构输出的最后两层输出加入注意力机制,如图3所示。

图3 YOLOX加入注意力机制示意图

1.3.2 优化的损失函数

损失函数主要是评价网络预测的准确性和指导权重更新[11]。适合的损失函数能够使得网络训练收敛得更快,获得的精度更高。YOLOX的损失函数主要由box_loss、obj_loss和cls_loss三部分组成,box_loss用来计算目标框与真实框的位置信息差,obj_loss用来判断目标框中是否存在目标物体,cls_loss用于监督类别分类,YOLOX的损失函数如式(3)所示。

Loss=box_loss+obj_loss+cls_loss

(3)

在YOLOX损失函数中,采用GIOU_Loss计算目标框与真实框之间误差的置信度损失,但是该函数具有一定的局限性,当目标框与真实框包含重合的时候,无法有效地检测出重叠的目标[12],由于苹果花是聚集性的小目标,这对于苹果花的检测是不利的。因此,采用本文采用EIOU_Loss[13]提高检测精度,该函数在CIOU的基础上分别计算宽高的差异值取代了纵横比,使得目标框更接近真实框。

(4)

式中:EIOU_Loss——损失输出;

IOU——重叠度;

b——预测框的中心点;

bgt——预测框的中心点;

c——预测框和真实框最小外接矩形对角线距离;

cw——覆盖两个框的最小外接矩形的宽度;

ch——覆盖两个框的最小外接矩形的长度;

w——预测框的宽度;

wgt——预测框的长度;

h——真实框的宽度;

hgt——真实框的长度;

ρ——两个中心点的欧氏距离。

本文苹果花数据集,少部分图像中由单个苹果花组成在检测中容易精确地检出,大部分图像中拥有多个拥簇的苹果花组成增加了其检测的难度,所以该数据集存在难易样本不平衡的问题。在YOLOX-s模型识别中应该给予复杂苹果花更多的关注度以增加模型的预测能力。为了解决此问题,本文采用Focalloss代替YOLOX-s模型中分类损失函数,该函数计算公式如式(5)所示。

(5)

式中:Focalloss——分类损失输出;

p——模型的概率预测;

α——平衡因子,用于平衡苹果图像正负样本数量不均;

γ——缩放系数,用于对单个苹果花图像样本损失进行缩放,使其更加关注拥簇苹果花图像样本损失。

2 结果与讨论

2.1 试验环境

本试验在模型训练时候对硬件要求较高,特别对GPU的使用能够加速模型的训练,硬件试验环境处理平台为联想笔记本电脑,型号为Y9000p,处理器为Intel Pentium i5-12700H,主频为3.5 GHz,GPU为GeForce GTX 3060 6G。软件试验环境为Windows 10系统,计算机编程语言为Python 3.8,机器学习库为Pytorch 1.10.0,并行计算架构为CUDA10.2。

2.2 评价性指标

在本文中,为了对训练的模型进行性能分析和评价,采用精确度(Precision),召回率(Recall),平均精度(Average Precision,AP)作为评价性指标,精确度、召回率和平均精度的计算公式如式(6)~式(8)所示。

(6)

(7)

(8)

式中:P——精确度;

R——召回率;

AP——平均精度;

TP——真阳性,被正确预测为正样本的数量;

TN——真阴性,负样本被预测为负样本的数量;

TP——假阳性,负样本被预测为正样本的数量;

FN——假阴性,正样本被预测为负样本的数量。

2.3 结果与讨论

2.3.1 苹果花识别模型训练分析

通过对YOLOX-s增加注意力机制,对YOLOX-s的损失函数进行优化,模型识别苹果花的精确度得到了提升。为了验证本文模型训练的有效性,对改进后的损失值和平均精确度进行可视化操作,绘制训练过程的损失曲线图和mAP变化图。图4(a)为模型训练Loss损失图,图4(b)为模型训练mAP图,由图4(a)可知,经过多轮次的模型训练,损失函数曲线呈下降趋势,在训练后期模型的损失值都小于0.002,并且趋于平缓,由图4(b)可知,在训练初期模型的识别精度较低,在训练后期mAP值逐渐提高并趋于稳定在0.9的附近证明模型训练是有效的。

(a) 模型训练Loss损失图

2.3.2 不同模型验证分析

为对本文模型的性能进行验证,采用Faster RCNN[14]、YOLO V3、YOLO V5[15]、YOLOX先进目标检测模型对数据集进行测试,在试验条件相同的情况下,将模型参数调至最优,试验结果如表1所示。

表1 不同模型试验结果Tab. 1 Different model test results

由表1可知,本文模型在苹果花生长状态识别中各项指标超过85%,通过对YOLOX模型改进和优化,相比YOLO模型精确度提高了0.5%,召回率提高了6.19%,平均精度提高了4.28%。通过与其他模型的对比,在测试中Faster RCNN的精确度最低为76%,召回率为87.16%,平均精度为85.79%,对比发现经过单阶目标YOLO系列模型的发展检测精度上已经超越双阶段目标检测,在对比YOLO V3、YOLO V5-s、YOLOX-s和本文模型,YOLOX-s模型在本文数据集的表现优于YOLO V3、YOLO V5-s,在平均精度指标中YOLOX-s相比YOLO V5-s提高1.42%。所以通过系列模型的对比充分证明改进后模型的优越性。

2.3.3 改进模型验证分析

本文在检测头网络结构输出的最后两层特征图输出中加入注意力机制,为了验证加入注意力机制后模型的检测性能,在不改变其它优化参数的前提下对是否加入注意力机制的YOLOX-s模型进行了比较,结果如表2所示。由表2可以看出,加入CBAM注意力模块提高了模型的检测性能,平均精度提升了1.66%。

表2 加入CBAM注意力模块试验结果Tab. 2 Experimental results of adding CBAM attention module

不同数据集适用的损失函数不同,本文对比了GIOU、CIOU、EIOU不同激活函数,不同置信度损失函数FocalLoss、VariFocalLoss对模型的影响,结果如表3所示。由表3可知,不同的损失函数表现力不同,其中表现最优为EIOU+FocalLoss模型,最终平均精度为94.4%,相比表现最低的CIOU+Vari模型平均精度提高4.78%,在精确度指标中表现最优的是YOLOX-s-CIOU-Focal为93.32%,在召回率指标中表现最优的是YOLOX-s-GIOU-Vari为91.25%,说明本文优化后的回归损失函数和置信度损失函数是有效的。

表3 不同损失函数模型试验结果Tab. 3 Model test results of different loss functions

2.3.4 可视化验证分析

采用相同的测试图片对改进前后的模型进行测试并进行可视化,如图5所示。图5(a)为YOLOX的检测效果图,图5(b)为改后优化后的本文模型检测效果图。由测试图看出两者都没有出现漏检的情况,改进优化后的模型在识别精度上有所提高,标框位置更精确。在一张图像中有多个苹果花重叠的时候,改进后的模型识别效果更好,识别精度更高,重叠的苹果花检出的正确率也更高。

(a) YOLOX-s测试图

3 结论

1) 本文基于苹果园智能化疏花对苹果花无损检测的应用场景,研究了基于改进YOLO-s的苹果花生长状态检测,使之能够应用到边缘设备对苹果园的苹果花进行检测从而指导智能化疏花精准决策。

2) 通过对苹果花图像进行采集,划分和扩充建立了复杂背景下苹果花生长状态数据集。并利用该数据集进行基于YOLOX-s识别网络模型训练,在网络中加入CBAM注意力机制模块能有效地提取苹果花特征网络,优化了模型的损失函数采用Focalloss作为YOLOX-s模型中分类损失函数,采用EIOU代替原模型的回归函数,提高模型的分类精度和对拥簇苹果花的检测能力。改进后的模型相比未进行改进的模型平均精度提升4.28%,结果证明基于改进YOLOX-s模型的检测精确度能够满足使用要求。

猜你喜欢

苹果花注意力损失
一朵花的结构
让注意力“飞”回来
胖胖损失了多少元
我的植物朋友 ——苹果花
苹果花 [外一首]
玉米抽穗前倒伏怎么办?怎么减少损失?
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一般自由碰撞的最大动能损失
损失