APP下载

改进YOLOv5的苹果花生长状态检测方法

2022-03-02杨其晟李文宽杨晓峰岳琳茜李海芳

计算机工程与应用 2022年4期
关键词:花朵卷积特征

杨其晟,李文宽,杨晓峰,岳琳茜,李海芳

太原理工大学 信息与计算机学院,山西 晋中030600

近几年来我国经济林果产业飞速发展,苹果作为最常见的经济林果之一,其规模与产量逐年增加,但目前经济林果的栽培质量与技术仍然有待提高。在苹果发育的整个物候期中,想要提高苹果产量除了要做好土、肥、水管理和病虫害防治外,花期管理在整个过程中也具有非常重要的地位,针对不同的花朵生长状态进行人工干预可以有效提高坐果率和果实品质。对于苹果花朵生长状态的自动检测也成为一项具有重要价值的研究。

目前,国内外对经济林果等农作物的自动观测已经展开了非常广泛的研究,通过计算机视觉技术可以实现农作物的自动化观测,从而提高对农作物的管理效率。目前已经有多种方法实现了对苹果的自动观测,观测的工作集中于对苹果果实的检测与产量估计,以及对苹果物候期的检测。但是,关于苹果花期生长状态识别方面的研究目前还存在很多不足,当前的已有成果只能单独检测全开的花朵而无法将各种生长状态的花朵进行高精度的分类检测。现阶段对农作物花期的自动观测集中于图像分割与目标检测的手段。邓颖等[1]使用基于Mask R-CNN 的神经网络模型完成了花朵的识别和分割任务,所提出的柑橘花朵分割识别方法实现了对柑橘花朵目标的高效检测。Sharma 等[2]通过对花朵的形状分析,使用HSV 色彩空间的图像分割和圆形拟合算法计算出的圆心提出了一种花朵自动分割与数量估算方法。刘双喜等[3]通过分析花朵簇轮廓面积值特征,并将其作为聚类特征,建立花量的模糊聚类模型,实现苹果的花朵数量估计。Dias 等[4]使用简单线性迭代聚类(simple linear iterative clustering,SLIC)和卷积神经网络(convolutional neural networks,CNN)结合的思想,提出一种对预训练卷积神经网络进行微调以使其对花朵敏感的花朵分割方法。郑玉龙等[5]提出一种结合Adam及随机梯度下降(stochastic gradient descent,SGD)的深度学习模型Resnet20,实现自然环境下的花朵识别。Wu等[6]在CSPDarknet53框架下构建YOLOv4(you only look once version 4)模型,使用通道修剪算法对模型进行了修剪,从而快速、准确地检测苹果花。

总结以上方法,基于通用深度学习的模型虽然在苹果花朵检测这一领域做了大量研究,且对比传统方法有效提升了检测性能,但对苹果花朵生长状态进行高精度检测方面的研究尚未取得有效成果。在现阶段模型训练与推理时也会占用大量的计算资源,致使无法做到低成本的学习,也难以实现低成本、高精度的农业自动化管理。

在此现状下,亟需一种针对苹果花朵生长状态的一阶段检测方法,从而实现对复杂场景下苹果花朵生长状态的检测。因此,本文针对现存问题构建了一个真实果园场景下的苹果花期花朵图像数据集,提出了一种改进YOLOv5的苹果花朵生长状态检测方法,直接针对花朵区域,对花朵花蕾期、半开期、全开期、凋落期四种生长状态进行识别,具有模型架构简单、容易训练、收敛快的优势。该方法基于YOLOv5架构,结合协同注意力机制(coordinate attention,CA)模块[7]对主干网络模块进行改进和调整,减少模型参数并利用更多的浅层特征;设计多尺度检测结构,提高对于小目标物体的检测性能;融合基于分离的卷积运算[8]重新设计特征融合网络;使用CIoU(complete intersection over union)作为边界框回归的损失函数。实验表明,本文方法对小目标检测效果良好,可以应对花朵半开与全开特征不明显而导致的误检情况,并在精度上相比于基线方法都取得一定幅度提升。

1 YOLO目标检测模型

目前,基于深度学习的目标检测技术框架主要分为一阶段与两阶段目标检测器两大类。两阶段的检测器首先生成可能包含目标物体的候选区域,并从每个候选区域中提取特征,再对候选区域进行进一步的分类和校准,从而得到最终的结果,如Faster R-CNN[9]、Cascade R-CNN[10]等。单阶段检测器可以直接对特征图上每个位置的目标进行分类预测,具有更高的检测效率,如RetinaNet[11]、SSD[12]、CenterNet[13]等。两阶段检测器通常在数据集上具有更好的检测性能,单阶段检测器在保障检测精度的前提下具有更高的时间效率,对硬件设备的要求更低,在农业自动观测领域具有更好的适用性。

1.1 YOLOv5架构

YOLOv5 是由UitralyticsLLC 公司发布的一种单阶段目标检测算法,YOLOv5相比YOLOv4[14]而言,在检测平均精度降低不多的基础上,具有均值权重文件更小、训练时间和推理速度更短的特点。YOLOv5 的网络结构分为输入端、Backbone、Neck、Head四部分。

输入端主要包括Mosaic 数据增强、图片尺寸处理以及自适应锚框计算三部分。Mosaic 数据增强将四张图片进行组合,达到丰富图片背景的效果;图片尺寸处理对不同长宽的原始图像自适应地添加最少的黑边,统一缩放为标准尺寸;自适应锚框计算在初始锚框的基础上,将输出预测框与真实框进行比对,计算差距后再反向更新,不断迭代参数来获取最合适的锚框值。

Backbone 主要包含了BottleneckCSP[15]和Focus 模块。BottleneckCSP模块在增强整个卷积神经网络学习性能的同时大幅减少了计算量;Focus 模块对图片进行切片操作,将输入通道扩充为原来的4 倍,并经过一次卷积得到下采样特征图,在实现下采样的同时减少了计算量并提升了速度,具体操作如图1所示。

图1 Focus切片操作Fig.1 Focus slice operation

Neck 中采用了特征金字塔网络(feature pyramid networks,FPN)[16]与路径聚合网络(path aggregation network,PAN)结合的结构,将常规的FPN 层与自底向上的特征金字塔进行结合,将所提取的语义特征与位置特征进行融合,同时将主干层与检测层进行特征融合,使模型获取更加丰富的特征信息。

Head 输出一个向量,该向量具有目标对象的类别概率、对象得分和该对象边界框的位置。检测网络由三层检测层组成,不同尺寸的特征图用于检测不同尺寸的目标对象。每个检测层输出相应的向量,最后生成原图像中目标的预测边界框和类别并进行标记。整个YOLOv5模型结构如图2所示。

图2 YOLOv5算法结构Fig.2 YOLOv5 algorithm structure

1.2 YOLOv5在花朵生长状态检测中的问题

尽管YOLOv5 已经具有了良好的检测性能和推理速度,但针对本文所解决问题,仍然存在以下缺陷:

(1)算法中主干网络有较多的Bottleneck结构,卷积操作中的卷积核包含大量参数,导致识别模型中含有大量参数,增加了模型的部署成本。由于花蕾期目标较小,且小目标的物体更依赖于浅层特征,故特征提取中通过大量的卷积之后容易对小目标对象的特征提取造成一定的信息丢失。

(2)原始模型中分别利用8倍下采样、16倍下采样、32倍下采样的特征图作为特征层去检测目标,当输入图像尺寸为640×640时,大小为80×80、40×40、20×20的检测层可以用来分别检测大小在8×8、16×16、32×32 以上的目标,因此当某一目标在原输入图像中大小小于8×8时去检测目标将会变得困难。

(3)在路径聚合网络(path aggregation network,PANet)[17]中虽然将深层特征图和浅层特征图拼接来融合不同级别的特征信息,但其并未将更加底层的特征图与高层特征图进行融合,且未考虑特征内部的模式冗余。

(4)当预测框在目标框内部且预测框大小一致时,边界框回归损失函数GIoU(generalized intersection over union)完全退化为IoU(intersection over union)损失函数,无法实现高精度的定位。

2 改进的YOLOv5算法

针对YOLOv5 在花朵生长状态检测中所存在的问题,本文对模型做出如下改进来提升对花朵生长状态的检测效果:(1)在主干网络中引入协同注意力机制,在捕获跨通道信息的同时,还能捕获方向感知和位置感知信息,帮助模型更加精准地定位和识别感兴趣区域。对BottleneckCSP 结构修改,并减少模块数量来保留更多的浅层特征。(2)在原有网络结构三层检测层的基础上,添加小目标检测层,从而提高对小目标物体的检测性能。(3)将PANet 中更加底层的特征图与高层特征图进行融合,且在PANet中使用基于分离的卷积运算来消除同一层内输入特征图中存在的冗余问题。(4)使用CIoU作为边界框回归的损失函数,解决预测框在目标框内部且预测框大小一致的情况,提高定位精度。

2.1 主干网络优化

2.1.1 优化BottlenckCSP结构

在原始模型主干网络中,小目标所具有的特征信息会随着卷积操作而减少或者消失,从而增加了小目标物体的检测难度。针对上述问题,本文简化了主干网络中的特征提取层,将原来主干网络中BottleneckCSP 的模块数量(×3,×9,×9,×3)变为(×2,×6,×6,×2)来提取更多的浅层特征信息;为了解决过多卷积核带来参数量较大的问题,本文对BottleneckCSP的结构进行了改进设计,删除了原始模块分支上的卷积层,并且将BottleneckCSP模块的输入特征映射与另一个分支的输出特征图直接连接,有效地减少了模块中的参数数量。改进的BottleneckCSP模块称为BCSP_1,其结构如图3所示。

图3 BCSP_1结构Fig.3 BCSP_1 structure

2.1.2 引入CA协同注意力机制

通常情况下通道注意力会给模型带来比较显著的性能提升,但它们通常会忽略位置信息。本文在SPP(spatial pyramid pooling)结构[18]之后增加协同注意力机制(CA)将位置信息嵌入到通道注意力中,通过操作不仅能捕获跨通道的信息,还能捕获方向感知和位置感知信息,帮助模型更加精准地定位和识别感兴趣的目标。CA注意力机制将通道注意力分解为两个一维特征进行编码,沿着不同的空间方向,分别捕获长程依赖与精确的位置信息,编码形成方向感知和位置敏感的注意力特征图来互补地应用到输入特征图,从而增强感兴趣目标的表示,其结构如图4所示。

图4 协同注意力机制Fig.4 Coordinate attention mechanism

协同注意力机制通过精确的位置信息对通道关系和长期依赖性进行编码,为了实现坐标信息嵌入,首先通过全局平均池化分别对水平方向和垂直方向进行分解,得到两个一维特征编码向量。操作对应图4 的XAvg Pool 和YAvg Pool 部分,通过操作解决了全局池化方法难以保存位置信息的缺陷。为了利用上述操作产生的信息表征,首先使用Concat级联之前模块生成的两个特征图,然后使用1×1 卷积变换函数F1对其进行变换操作:

式中[⋅,⋅]为沿空间维数的拼接操作,δ为非线性激活函数,f为在水平方向和垂直方向的空间信息进行编码的中间特征映射。沿着空间维度将f分解为两个张量f h∈RC/r×H和f w∈RC/r×W,其中r表示下采样比例。利用两个1×1 卷积变换Fh和Fw分别对f h和f w进行变换,使之具有相同通道数的张量,结果如式(2)、式(3)所示:

这里σ是sigmoid激活函数。为了降低模型的复杂性和计算开销,通常使用适当的缩减比r来减少f的通道数。然后对输出gh和gw进行扩展,分别作为注意力权重。其最终输出如式(4)所示:

2.2 多尺度检测结构

原有网络结构中采用三层尺度特征图层检测设计,对于640×640的输入图像尺度,分别利用8倍、16倍、32倍下采样的特征图作为特征层去检测不同大小尺寸的目标。花蕾期所需检测目标通常较小,原有多尺度检测结构对此类目标容易造成漏检。因此,针对该问题改进多尺度检测结构以降低小目标误检率。

本文在原有网络结构上增加一个特征尺度。Conv模块由Conv2d与批量归一化(batch normalization,BN)层以及LeakyRelu激活函数构成。其中,Conv2d卷积核为1×1,步长为1;LeakyRelu 激活函数可以使网络快速收敛,具有较高的计算效率,同时解决了传统Relu激活函数在负区间导致神经元不学习的问题;BN 层防止在训练过程中梯度消失或爆炸,加快训练速度。UpSample为上采样模块,经过上采样操作扩大特征图。Concat代表张量拼接操作,通过操作扩充张量维度,完成特征融合。具体操作为:在第17层后,继续对特征图进行上采样等处理,使得特征图继续扩大,同时在第21 层时,将获取到的大小为160×160的特征图与骨干网络中第2层特征图进行张量拼接融合,获取更大的特征图便于小目标物体的检测。在第22层,即检测层,增加小目标检测层,整个模型在改进以后一共使用4层检测层来进行检测,设计的4个检测尺度同时利用了底层特征高分辨率和深层特征的高语义信息,且没有显著增加网络复杂度。

2.3 融合基于拆分卷积的特征融合结构

2.3.1 基于拆分的卷积运算SPConv

在原有PANet中,同一层内的输入特征图具有相似但不完全相同的特征冗余问题,但并不存在相同的两个通道特征,因此无法直接删除冗余通道特征。如图5所示,右上角为输入图像,其余为部分输入特征图,其中有许多相似特征图。因此,选择一些具有代表性的特征图来补充代表性信息,而剩余的只需要补充微小的不同细节信息即可。

图5 部分特征图可视化Fig.5 Partial feature map visualization

为了确定具有类似模式的特征图是否冗余,可以在层与层之间采取一种基于拆分的卷积操作,即SPConv(split based convolutional)。它可以消除相似特征图中的冗余且需要较少的计算量。

在SPConv中将输入特征拆分为代表性部分与不确定部分,令X∈RL×h×w和Y∈RM×h×w分别表示输入、输出特征,其中L表示输入通道个数,M表示输出通道个数,W表示大小为k×k的卷积核,对应的卷积计算可以描述为Y=WX+b。为简化表示,在后续介绍中忽略了偏置项b。卷积计算的矩阵表示为式(5),其中x表示L个输入矩阵,y代表M个输出矩阵,Wij代表M个k×k大小卷积核的参数。

基于拆分的卷积运算将输入通道按比例α拆分为两部分:代表性部分用k×k卷积来提供内在信息;冗余性部分用1×1 卷积来补充微小的隐藏细节。矩阵表示如式(6)所示,其中前半部分是代表性部分,后半部分是冗余性部分:

其中,y表示输出矩阵,x表示αL个输入矩阵,Wij表示代表性部分在αL个通道上3×3卷积核的参数,wij代表冗余性部分在(1-α)L个通道上1×1 卷积核的参数(本文中α取0.5)。由于划分卷积之后的代表性部分可以代表不同的特征类别,可以将代表性的通道进行划分,每个部分代表一个主要的特征类别。其中在代表性通道上使用3×3的群组卷积来进一步减少冗余信息,但是这样的操作有可能削减了必要的通道连接,故在代表性通道中添加1×1 的点卷积操作来解决此信息的丢失问题。然后将得到的两个特征进行直接求和融合,得到一个额外的分数,式(6)中代表性部分可以表示为式(7)。

其中,是第l组的逐分组卷积的参数,这里将αcl的代表性通道划分为G组,每个组zl包括αcl/G个通道。通过前述操作得到了两类特征,通过GAP 全局平均池化操作,生成通道级别的统计量S3、S1用于全局信息的嵌入,得到k个1×1 的特征图;之后堆叠生成的S3与S1,并经过一个全连接层,得到一个压缩的特征向量z;然后将这个压缩的单维度向量经过Softmax层,重新分为两个特征向量β、γ;之后分别与相应的代表性部分和冗余性部分的特征向量进行通道的相乘操作,再通过张量的相加得到最后的输出特征。具体操作如图6所示。

图6 基于分离的卷积运算Fig.6 Convolution based on separation

本文PANet中通过使用基于分离的卷积运算SPConv,在减少参数量的同时有效消除各层特征图之间的冗余,在降低模型冗余的同时加速模型推理速度。

2.3.2 特征融合结构改进

在卷积神经网络中,通过卷积核来提取图像的特征图,从而完成对图像多角度的完备描述。低层特征具有更高的分辨率,目标位置较为准确,更能反映图像的具体内容,轮廓、边缘、颜色、纹理和形状特征等特征较为明显;高层特征经过多次卷积操作以后,具有更强的语义信息,能更好地表达人类所能够理解的图像信息,但其分辨率较低。通过对所构建数据集中花朵图像进行分析,发现在大多数图像中,需要识别的苹果树花朵目标大部分都属于中小尺寸情况。为了提高目标检测网络的识别性能,可以将低层特征与高层特征进行高效融合,使之在具有强语义信息的同时对细节仍有较强的感知力。

由于本研究中改进的网络架构的第25层和第28层输出特征图为小型和中型对象目标检测层的输入特征图,为了提高花朵的检测准确率,弥补高层特征低分辨率造成的空间信息损失,通过融合多层来提升模型检测性能。对原始体系结构中输入到小型和中型对象规模目标检测层的特征融合进行了改进,将原始模型中14与18层的特征融合改为12与26层,配合增加检测层之后16 与23 层的特征融合操作,将下层感受野较大的特征提取层的输出与目标检测层之前特征提取层的输出融合。特征融合的操作使用Concat方法,Concat方法避免了Add 方法可能造成的信息丢失,而且不受特征图的通道数量限制。通过在特征图的通道进行合并,使描述图像本身的通道数增加,达到信息增广的效果,使模型在检测中小尺寸目标物体时可以具有更好的检测性能。具体网络结构设计如图7 所示。本文改进的YOLOv5网络结构可以更好地适应在果园复杂场景下对花朵的检测,同时对于花蕾期小目标的检测准确率有一定的提升。

图7 改进的YOLOv5算法结构Fig.7 Improved YOLOv5 algorithm structure

2.4 改进损失函数

YOLOv5 损失函数的定义如式(8)所示,其损失函数由三部分组成,分别为置信度损失lobj、分类损失lcls以及目标框和预测框的位置损失lbox。

目标置信度误差lobj定义如式(9)所示:

目标分类误差lcls定义如式(10)所示:

目标框位置误差lbox使用GIoU 损失函数定义如式(11)所示:

在YOLOv5原始模型中使用GIoU_loss作为边界框的回归损失函数,在GIoU_loss 中增加了相交尺度的衡量方式,从而解决了IoU_loss中当预测框和目标框不相交,即IoU=0的时候损失函数不可导,从而导致IoU_loss无法优化两个框不相交的情况,同时也解决了当两个预测框大小相同,两个IoU 也相同时IoU_loss 无法区分两者相交的情况。但是GIoU_loss无法解决预测框在目标框内部且预测框大小一致的情况,因为这时预测框和目标框的差集都是相同的,所以这三种状态的GIoU 值也都是相同的,具体情况如图8所示。

图8 GIoU值相同的情况Fig.8 Same GIoU value

因此本文采用CIoU_loss作为目标检测任务的回归损失函数,计算公式见式(12)。CIoU_loss 中考虑了预测框与目标框之间的重叠面积和中心点距离,当目标框包裹预测框的时候,直接度量两个框的距离,从而考虑了边界框中心点距离的信息与边界框宽高比的尺度信息,与此同时也考虑了预测框和目标框的长宽比,使边界回归结果更好。

其中,预测框中心点用b表示,目标框中心点用bgt表示,ρ表示欧氏距离,c代表相交的预测框与目标框之间所构成外接最小矩形的对角线距离,α是一个权重系数,v代表长宽比一致性的参数,计算公式如式(13)、(14)所示:

通过CIoU_loss解决了原始模型损失函数中预测框与目标框在不同位置完全重叠时损失值一样的问题,使模型在回归框定位时更加精准,提高模型的检测性能。

3 实验

3.1 数据集

本文的数据来源于山西某农田试验站,参考农业气象观测规范,制定适宜本地的苹果花期观测标准,于2019年4月(花蕾期)开始,采集至2019年5月(凋落期)结束,使用3 888×5 184 像素分辨率的田间实时监测设备在不同花期进行图像采集,采集时间段设定为每天8点—11 点、12 点—15 点、16 点—19 点,构建了苹果花期花朵不同生长状态的图像数据集。数据集的部分样本如图9所示。

图9 数据集部分样本Fig.9 Data set sample

将采集的数据进行筛选与整理,使用标记软件labelimg对采集到的图片中的不同生长状态花朵图像样本进行标注,构建苹果花朵生长状态数据集,包括标注花蕾3 301 个,半开状态花朵1 227 个,全开状态花朵4 193个,凋落状态花朵1 241个。将标注好的图像标注信息保存为.xml形式,内容包括目标物体的类别和目标框的坐标信息,数据标注示例如图10所示。

图10 花朵生长状态标注Fig.10 Example of data set annotation

图11对数据集中目标框大小的分布和目标框的出现位置分布情况进行了可视化。图11(a)表示将原图图片分辨率大小正则化以后,目标框的中心点在图中的位置坐标分布;图11(b)表示目标框的长宽占图片长宽的比例。从两图可以看出,目标框大小不均,小目标数量大,目标出现位置集中于图片的中间。

图11 数据集目标框分布情况Fig.11 Data set target frame distribution

除此之外对图像数据进行Mosaic 数据增强,其原理为把4张训练图片缩放拼成一张图,具体结果如图12所示。通过这样的操作,使得原本较大的目标在缩小大概50%之后变成较小的目标,从而减少对大物体的过度响应,增强模型检测小目标的能力,在一定程度上解决了数据集中的小目标检测问题。

图12 Mosaic数据增强Fig.12 Mosaic data enhancement

3.2 实验环境与方案设计

本文实验环境为Ubuntu16.0464位操作系统,32 GB内存,NVIDIA GeForce RTX2080Ti 显卡,Intel®Xeon CPU E3-1231 v3@3.40 GHz 处理器,在Pytorch 1.7.1、CUDA10.2下实现模型的搭建及训练工作。

在网络训练前,使用K-Means 算法对先验框尺寸进行计算,初始锚框的参数设定为[17,21,34,40,45,65]、[68,95,70,58,92,130]、[114,89,124,173,156,227]、[170,123,231,187,231,290],训练时,按照比例9∶1 使用脚本自动随机划分训练集和测试集。通过在大型数据集COCO上训练得到预训练模型进行权重初始化,使用SGD来优化总体目标,训练批次为16,学习率设置为0.01,模型迭代300次。本文设计图片标准尺寸为640×640×3。训练完成后,分别将本文方法与SSD、YOLOv3、YOLOv4、Faster R-CNN 主流检测模型进行性能对比,分析本文方法性能。

3.3 模型评估

本文采用目标检测模型常用的三项评估指标平均精度(average precision,AP)、平均精度均值(mean average precision,mAP)以及每秒传输帧数(frames per second,FPS)进行模型评估。AP指PR(Precision-Recall)曲线下面积,mAP指每个类别AP的均值,计算公式见式(15)~(18)。模型推理速度通过在使用服务器NVIDIA GeForce RTX2080Ti 显卡环境下,对实验图片数据进行检测,对100张图像的检测时长求均值得到。

3.4 实验设计与结果分析

本文共设计两组实验,分别为不同改进部分对模型检测性能的影响与主流实时检测模型性能对比。通过两组实验,首先在YOLOv5架构下分析本文不同改进部分对网络性能的影响,再通过本文方法与主流检测网络SSD、YOLOv3、YOLOv4、Faster R-CNN进行性能对比,综合分析本文方法性能。

本文方法训练过程中损失变化情况如图13 所示。由图可以看出,前期损失值下降较快,随着训练轮数的增加,Loss曲线逐渐降低,趋于平稳。当Epoch达到250左右时算法损失降至稳定,模型收敛,训练过程中未出现过拟合现象。

图13 Loss曲线Fig.13 Loss curve

3.4.1 改进方法对模型性能的影响

为了分析本文提出的改进方法对YOLOv5 算法性能的影响,设计5组实验对不同的改进部分进行结果分析,每组实验使用相同的训练参数,不同方法对模型检测性能所产生影响的结果如表1所示。其中,“√”代表在网络模型中使用了对应的改进策略,“×”代表在网络模型中未使用对应的改进策略。对表1进行分析可见,改进1在主干网络中使用BCSP_1结构替代原有BottleneckCSP且调整模块数量以后,可以保证小目标可以更好地利用浅层特征,且减少了模型参数数量,使得模型在原有基础上mAP有较小提升,FPS有较大提升。改进2在此基础上引入CA机制,使模型将空间信息嵌入到通道注意力中,由于位置信息的加入,对于依赖位置信息的密集检测任务具有更好的预测效果。改进3 加入新的检测尺度对特征进行提取,从而产生更大的特征图来预测更小的目标,使原有结构难以检测的较小尺寸目标可以检出,有效提升mAP 达1.7 个百分点。改进4 针对数据集中中小目标较多的特点,使用新设计的特征融合结构,将更加底层的特征图与高层特征图进行融合,提高模型的特征提取能力,搭配基于分离的卷积运算来解决特征图的冗余问题,使模型mAP 得到提高。最后改进5 引入CIoU 作为边界框回归的损失函数,解决在原有损失函数中目标框与预测框重合情况下GIoU退化为IoU的问题,提高模型边界框的定位精度。改进后模型的mAP 值为0.922,比改进前YOLOv5 的mAP 值高5.4个百分点,每秒传输帧数为93.21,与原始模型仅相差3.22,且在训练中需要更少的显存。图14为改进前后检测结果对比。

表1 不同改进方法的实验结果Table 1 Experimental results of different improvement methods

图14 改进前后结果对比Fig.14 Comparison of results before and after improvement

3.4.2 主流目标检测模型性能对比

为了验证本文改进算法的检测性能,将本文所改进的YOLOv5 算法与主流目标检测模型SSD、Faster RCNN、YOLOv3、YOLOv4对比,采用mAP和FPS两项指标对每种主流检测算法进行评估与对比,对比实验结果如表2 所示。由表2 分析可知,改进的YOLOv5 算法mAP达到了0.922,较原始YOLOv5算法提高5.4个百分点。结合表中对于花蕾、半开、全开、凋落四类花朵生长状态的平均精度AP 进行分析可得,本文方法在检测小目标物体,即花朵生长状态处于花蕾时的AP 值比原始YOLOv5 算法提高了约5.2 个百分点,相比其他主流目标检测网络模型具有更好的检测性能。通过特征融合结构与多尺度检测结构的重新设计,使得检测目标为花朵半开时相比原有网络模型AP值提高了约10.5个百分点,全开与凋落状态花朵检测所得实验AP 值也超越原有模型与主流目标检测模型。在保证高精度检测的同时,模型的FPS 并未出现大幅度下降,检测速度与主流模型相比仍然具有一定优势。

表2 主流目标检测模型性能对比Table 2 Performance comparison of mainstream target detection models

4 结束语

本文针对通用深度学习目标检测技术难以在复杂果园背景下对苹果花朵不同生长状态进行高精度检测的问题,提出一种改进YOLOv5的苹果花朵生长状态检测方法。该方法基于YOLOv5 网络架构,结合CA 注意力模块与改进的BSP_1模块设计主干网络提取特征;增加多尺度检测结构并融合基于分离的卷积运算设计了高效的目标提取网络;使用CIoU 作为边框回归的损失函数,提高边框回归精度。实验表明,本文所提出的检测方法能够准确、快速地检测出不同生长状态下的花朵图像。本文方法在NVIDIA RTX 2080Ti 测试条件下mAP 达到0.922,速度为93.21 frame/s,实现了高精度、高速率的检测,性能高于通用目标检测模型,为苹果花期管理提供了有益的帮助。下一步将在嵌入式设备上进行模型的性能改进,进一步改进网络结构,以实现移动端实时花朵生长状态检测。

猜你喜欢

花朵卷积特征
根据方程特征选解法
离散型随机变量的分布列与数字特征
基于3D-Winograd的快速卷积算法设计及FPGA实现
死亡花朵
卷积神经网络的分析与设计
从滤波器理解卷积
不忠诚的四个特征
基于傅里叶域卷积表示的目标跟踪算法
我们依赖花朵
开放的花朵