APP下载

基于改进YOLOv5 和BiFPN 的苹果检测方法*

2024-05-07温彬彬

南方农机 2024年9期
关键词:尺度准确率苹果

温彬彬

(河北工业职业技术大学,河北 石家庄 054000)

苹果是全球最受欢迎、最重要的经济作物之一,具有低投入、高产出、高收益等特点,是促进农民脱贫致富和推动乡村振兴的重要抓手[1]。数字化、智能化的农业正在高速发展,苹果目标检测对于智能果园的生产管理、病虫害预测、果实采摘以及果实质量评估等方面具有重要作用,快速且准确的苹果检测技术为果农提供了更加高效、便捷的农业管理手段,加速推动了农业领域的智能化发展。

1 目标检测发展现状

目标检测是计算机视觉领域的一项重要任务,它的目标是在图像或视频中准确地定位和识别出感兴趣的目标对象。早期的目标检测方法主要基于手工设计的特征,如Haar 特征、HOG 特征等[2],主要通过在图像中寻找特定的局部特征模式,然后使用分类器进行目标检测。但是由于手工特征的设计通常依赖于领域知识和经验,且难以适应复杂的场景和目标变化,因此在性能和泛化能力上存在一定的局限性。为了解决目标尺寸和位置的变化,研究者提出了基于滑动窗口的方法。这类方法通过在图像上移动不同尺寸和位置的窗口,并使用分类器对每个窗口进行分类[3],以判断是否包含目标。然而,这种方法需要对大量的窗口进行分类,计算量较大,且容易产生大量的误检测。随着深度学习的兴起,目标检测领域也迎来了革命性的突破。基于深度学习的目标检测方法通常采用卷积神经网络(CNN)来提取图像特征[4],并通过分类器和回归器来预测目标的类别和位置。一系列经典的方法如R-CNN、Fast R-CNN、Faster R-CNN、YOLO 和SSD 等被相继提出,并在各自的任务中取得了较好的性能。这些方法通过端到端的训练方式,可以自动学习图像特征和目标检测模型,大大提升了检测性能和效率。但CNN 是两阶段的检测器,模型具有大量的参数和复杂的计算结构,计算和推理速度较慢,而且大量研究表明,CNN 对小目标的检测性能较弱。为了进一步提升检测速度和准确率,研究者们提出了一系列单阶段检测器,如YOLOv2、YOLOv5、RetinaNet 和EfficientDet 等[5]。这些方法通过设计新的网络结构、特征融合机制和损失函数等,实现了在速度和准确率上的平衡。

2 YOLO算法简介

YOLO 系列算法(You Only Look Once)由于实时性和高准确性而备受关注。YOLOv1 是YOLO 系列的第一版[6],是Joseph Redmon 等在2016 年提出的一种端到端的物体识别与检测方法,采用了多个网格划分与多尺度预测的策略,相较于同期方法如Faster R-CNN、SSD 等有着更快的推理速度,但是YOLOv1 在检测小目标和困难目标上效果不佳。为了解决这些问题,Joseph Redmon 等在2017 年提出了YOLOv2,使用Anchor Boxes来预测目标的位置和尺寸,使用Darknet-19 网络结构来提取图像特征,使用批量归一化技术来加速模型的训练等,在精度和检测数目上有明显的提升。YOLOv3 进一步提高了检测精度,引入了特征金字塔(Feature Pyramid Network,FPN)技术和多尺度特征图预测的策略,更适合小目标的检测,然而YOLOv3 在速度方面的表现并不理想。为了达到速度和检测性能之间的平衡,2020年4 月Alexey 等推出了YOLOv4,提出了一系列的优化措施来平衡速度与精度;同年6 月,YOLOv5在YOLOv4 的基础上进一步优化并公开代码,提出在特征提取阶段使用更强的CSPDarkNet 网络模型,在目标边框损失计算上使用CIoU 损失(Complete Intersection over Union Loss)来更精确地描述两个目标框之间的位置偏差[7],大量实验表明,YOLOv5 相较于前代算法YOLOv4,在速度和精度方面都有着不小的提升。

YOLO 系列算法在农业领域的应用非常广泛,特别是在农作物的检测、分类和病害诊断方面。杨佳昊等[8]利用LCNN 替换YOLOv5s 主干对模型主体进行缩减,对番茄黄化曲叶病检测模型开展轻量化试验;刘忠意等[9]提出一种改进的YOLOv5 方法,在主干网络部分使用RepVGG(re-param VGG)模块替换原始C3 模块,加强网络对特征信息的提取能力。还有一些研究人员使用深度学习来进行苹果识别。张立杰等[10]提出了一种基于改进SSD 卷积神经网络的苹果定位与分级算法,所提方法具有良好的分割效果。曹志鹏等[11]采用轻量化的主干网络Ghostnet 替代YOLOv4 中的CSPdarknet53 主干网络,再采用深度可分离卷积替换YOLOv4 中的颈部网络,该算法加快了检测速度,减少了权重文件的大小。周桂红等[5]提出了一种基于改进YOLOv4 和基于阈值的边界框匹配合并算法的全景图像苹果识别方法,该方法在精确率和召回率上有明显的提升。张境锋等[12]提出一种Des-YOLOv4 算法与苹果检测方法,该方法具有检测速度快、检测精度高的优点。

虽然YOLOv5 在农业领域应用较为广泛,但是自然环境下成熟的苹果存在果实大小不一、果实之间遮挡严重等问题。为了解决目标检测中的这些问题,本文提出一种基于改进YOLOv5 网络的果实检测方法,在中间层的特征增强模块中改变原特征金字塔简单双向融合特征图,采用BiFPN 特征融合网络[13],将不同尺度的特征融合,可以在保持高分辨率特征的同时,提升检测模型对小目标的感知能力。

3 改进的YOLOv5模型

3.1 YOLOv5算法介绍

YOLOv5 是YOLO 系列的第五代算法,相较于初代算法,其在模型架构、锚框匹配、损失函数等方面进行了大量改进,并最终在速度和精度之间取得了更好的平衡。其结构包括以下几个组成部分:

1)Backbone 网络。由多个卷积层和池化层组成,将原始图像转化为一系列特征图,这些特征图可以捕捉到不同尺度和语义层次的信息,有助于提高目标检测算法在不同尺度上的检测能力。YOLOv5 使用CSPDarknet 作为其主干网络(backbone network),它是一种轻量级的卷积神经网络。CSPDarknet 通过使用CSP(Cross Stage Partial Network)结构来提高特征的表达能力和计算效率。

2)Neck网络。将特征图进行融合,将低层次的细节特征和高层次的语义特征结合起来,从而提高模型对目标的检测能力,为了实现更好的目标检测性能,YOLOv5 还引入了一种名为PANet(Path Aggregation Network)的Neck 网络结构。PANet 可通过多尺度特征融合的方式,将不同层次的特征进行聚合。

3)Head 网络。YOLOv5 的头部网络(head network)由一系列卷积层和全连接层组成。它负责对骨干网络提取的特征进行进一步处理,以输出目标的检测框、类别标签和置信度得分。

4)Anchor Boxes。YOLOv5 使用了Anchor Boxes来预测目标的位置和尺寸。Anchor Boxes是一组预定义的矩形框,每个框都与一个特定的尺度和纵横比相关联。YOLOv5 通过预测Anchor Boxes 的偏移量和尺度缩放因子来生成最终的检测框。

5)L o s s 函数。Y O L O v 5 使用了一种组合的损失函数来训练模型,包括目标检测损失(object detection loss)和分类损失(classification loss)。目标检测损失主要用于衡量检测框的准确性,分类损失主要用于衡量类别的预测准确性。

综上所述,YOLOv5算法通过Backbone网络提取图像特征,通过Neck网络进行多尺度特征融合,然后通过Head 网络生成检测结果,并使用Loss 函数进行模型训练和优化。这种结构设计使得YOLOv5在目标检测任务中具有较高的准确性和较快的检测速度。

YOLOv5 模型的准确率很大程度上是由中间层特征增强模块决定的,中间层特征增强模块的关键是特征金字塔,传统的特征金字塔网络PANet 使用简单双向融合网络在不同层级的特征图之间进行上下文信息的传递,如图1(a)所示。简单双向融合网络可能会造成特征的分辨率降低和信息丢失,在进行特征融合时,会导致不同层级的特征在数量和质量上存在不平衡的问题,影响目标检测的准确性。

图1 PANet和BiFPN结构

3.2 BiFPN网络结构

为了解决信息传递不够充分而导致模型准确率下降的问题,在YOLOv5 模型中使用一种改进的特征提取模块BiFPN(Bi-directional Feature Pyramid Network),它是一种用于目标检测任务的特征金字塔网络。

BiFPN 通过引入双向的信息传递机制,更好地利用了不同层级特征的上下文信息,如图1(b)所示。BiFPN 模块包括两个阶段:自上而下和自下而上。在自上而下的阶段,高层特征图通过上采样进行细化,并与低层特征图进行融合。这样可以使得高层特征图获得更丰富的上下文信息。在自下而上的阶段,低层特征图通过下采样进行粗化,并与高层特征图进行融合。这样可以使得低层特征图获得更多的细节信息。BiFPN 结构中的每个层都与上下两个相邻的层进行连接,这种双向连接的设计可以有效地将不同层级的特征信息进行融合和交互,提高了特征的表达能力。BiFPN 结构通过上下两个分支分别进行不同尺度的特征融合,可以在保持高分辨率特征的同时,将更高层级的语义信息引入,提升检测模型对小目标的感知能力。BiFPN 结构的特征融合过程中,采用了一种动态权重分配的方式,根据特征的质量和重要性,自适应地调整各个特征通道的权重,以保证高质量特征的有效利用。BiFPN 结构可以根据需要进行多次重复堆叠,每次重复都通过进一步的特征融合和优化,提高了网络的深度可扩展性,可以适应不同复杂度和精度要求的目标检测任务。

BiFPN 网络通过加权特征融合机制、卷积、下采样的方式实现融合,以P6out为例,P6out是将第6 层输入的P6td、P6in和第5 层的P5out加权融合得到的,P6td是自上而下第6 层的中间特征,P6td和P6out的表达式分别如式(1)、式(2)所示。

式中,ω1、ω2、ω´1、ω´2和ω´3是权重参数;Resize是下采样操作;ε是一个参数,用来避免由于权重参数过小而导致的数值不稳定。

BiFPN 模块的引入使得YOLOv5 模型在苹果识别任务中具有更好的性能和更高的准确性。它能够提取多尺度的特征,并且能够更好地处理不同尺度的目标。BiFPN 结构基于双向连接、多尺度特征融合、动态权重分配和深度可扩展性等特点,有效地提升了目标检测模型的性能和表达能力。

4 实验与分析

4.1 实验环境

本实验配置环境为:台式计算机,C P U 采用Intel-core i9-9900k 处理器,显卡采用NVIDIA GeForce GTX 2080ti,显存为12 GB,内存为32 GB,采用pytorch框架,编程语言使用python 3.6。

4.2 实验数据集处理

本实验采用自建数据集,数据集共包含图片1 800张,包括不同遮挡情况、不同果实数量等的数据图片,共计3 000个目标。同时,为了避免过拟合,保证网络模型训练效果,在模型训练之前对数据集进行图像增强,例如缩放、旋转、调整对比度和饱和度等。

4.3 实验结果分析

为了保持一致,使用YOLOv5 原网络进行相同的测试。选择准确率、召回率、平均精度、F1值和检测速度作为模型性能评价指标,实验结果如表1所示。

表1 两种算法的检测效率对比

通过实验数据可以看出,改进后的BiFPN-YOLOv5 模型同原始YOLOv5 模型对比,在准确率上提高了2.2 个百分点,召回率提高了2.4个百分点,平均精度提高了3.2 个百分点,但是训练时间增加了0.6 ms/幅,这是由BiFPN 的结构引起的。实验结果表明:改进后的模型提升了准确率、召回率、平均精度和F1值,由此验证了改进后的BiFPNYOLOv5模型具有一定的可行性。

5 结论

本文主要解决了果蔬采摘机器人在背景复杂且苹果尺寸不一的情况下检测准确率低的问题,使用BiFPN 特征网络替换传统YOLOv5 模型中的PANet特征网络,将浅层图像特征层引入到金字塔图像融合模块中,改变原网络模型简单双向特征的融合方式,提高了苹果小目标的检测精度。在自建数据集上进行实验验证,改进后的模型提升了准确率、召回率、平均精度和F1值,证明了改进算法的有效性。

猜你喜欢

尺度准确率苹果
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
财产的五大尺度和五重应对
高速公路车牌识别标识站准确率验证法
收获苹果
拿苹果
宇宙的尺度
会说话的苹果
9