SF-YOLOv5——基于改进的特征融合模式的轻量级小目标检测算法

概述

提出了一种改进的YOLOv5模型,名为Small-Fast-YOLOv5 (SF-YOLOv5),专门用于小目标检测。通过合理裁剪大目标检测层的特征图输出,显著减少了模型所需的计算资源,使模型变得更加轻量级。
还提出了一种改进的特征融合方法(PB-FPN),该方法基于PANet和BiFPN(EfficientDet),有效地提高了算法对小目标的检测能力。
引入了空间金字塔池化(SPP)的快速版本,即SPPF,用于将特征融合网络与模型预测头部连接起来,以提升性能。

论文地址:SF-YOLOv5: A Lightweight Small Object Detection Algorithm Based on Improved Feature Fusion Mode

1.Yolov5

1.1 简介

在这里插入图片描述

  • 图像首先通过输入层(input)进行处理,然后被发送到主干网络进行特征提取。
  • 主干网络获取不同尺寸的特征图,并通过特征融合网络(neck)将这些特征进行融合,最终生成三个特征图P3、P4和P5(在YOLOv5中,这些尺寸分别表示为80×80、40×40和20×20),用于分别检测图像中的小型、中型和大型物体。
  • 这三个特征图随后被发送到预测头(head),利用预设的先验锚点(prior anchor),对特征图中的每个像素执行置信度计算和边界框回归,从而获得一个包含目标类别、类别置信度、框坐标、宽度和高度信息的多维数组(BBoxes)。
  • 通过设置相应的阈值(confthreshold, objthreshold)来过滤数组中的无效信息,并执行非最大值抑制(NMS)过程,最终可以输出检测结果。

1.2 Backbone

在这里插入图片描述

  • 主干网络是CSPDarknet53。
  • 主要结构是多个CBS(卷积 + 批量归一化 + SiLU激活函数)模块和C3模块的堆叠,最后连接一个SPPF模块。
  • CBS模块用于辅助C3模块进行特征提取,而SPPF模块增强了主干网络的特征表达能力。
    在这里插入图片描述
    SPPF通过对之前已经进行过最大池化的特征进行最大池化操作,避免了像SPPNet中SPP那样的重复操作。
    这样可以显著提高模块的运行速度。

1.3 Neck

在这里插入图片描述
YOLOv5 使用了特征金字塔网络(FPN)和路径聚合网络(PAN)的方法。
FPN 的基本思想是将特征提取网络通过多次卷积下采样操作生成的输出特征图(C3、C4 和 C5)进行上采样,以生成多个新的不同尺度的特征图(P3、P4 和 P5),用于检测不同尺寸的目标。

1.4 Head

在这里插入图片描述

特征图左上角的坐标值被设置为(0, 0)。
( rx ) 和 ( ry ) 是未经调整的预测中心点坐标。
( gx )、( gy )、( gw )、( gh ) 表示调整后的预测框的信息。
( pw ) 和 ( ph ) 是先验锚点的信息。
( sx ) 和 ( sy ) 是模型计算出的偏移量。
这个过程涉及将预设的先验锚点的中心坐标和大小调整为目标预测框的中心坐标和大小。

1.5 Model Variants

在这里插入图片描述
YOLOv5是一个流行的目标检测模型,它有多个版本,每个版本针对不同的应用场景和性能需求进行了优化。以下是YOLOv5的五个主要版本,以及它们对应的更大尺寸版本:

  1. YOLOv5s:这是YOLOv5系列中的小型模型,具有较小的尺寸和较少的参数,适用于需要快速推理和较低资源消耗的场景。

  2. YOLOv5m:中型模型,比YOLOv5s稍大,提供更好的性能,适用于需要平衡速度和准确性的应用。

  3. YOLOv5l:大型模型,比YOLOv5m更大,拥有更多的参数和更高的准确度,但相应的,它需要更多的计算资源。

  4. YOLOv5x:超大型模型,是YOLOv5系列中最大的标准版本,提供最高的准确度,适用于对准确度要求极高的场景。

  5. YOLOv5n:通常代表YOLOv5的“nano”版本,比YOLOv5s更小,适用于极端资源受限的环境。

对于每个标准版本,都有一个相应的更大尺寸版本,这些版本通过增加网络的深度和宽度来提高性能,但同样会增加模型的计算需求:

  1. YOLOv5x6:YOLOv5x的更大版本。
  2. YOLOv5l6:YOLOv5l的更大版本。
  3. YOLOv5m6:YOLOv5m的更大版本。
  4. YOLOv5s6:YOLOv5s的更大版本。
  5. YOLOv5n6:YOLOv5n的更大版本。

这些更大的版本通常用于需要极高准确度的场景,尽管它们在速度上可能不如标准版本快。选择哪个版本的YOLOv5取决于具体的应用需求,包括目标检测任务的复杂性、可用的计算资源以及对速度和准确性的具体要求。
在这里插入图片描述

1.6 大模型检测结果

在这里插入图片描述

1.7 小模型检测结果

在这里插入图片描述
在目标检测领域,YOLOv5和EfficientDet都是性能出色的模型,但它们在设计理念、结构和优化方面有所不同。YOLOv5的小型模型在保持较小的模型尺寸和快速的推理速度的同时,通常也能提供与EfficientDet相竞争甚至更好的性能。

2.SF-YOLOv5

2.1. 特征图

在这里插入图片描述

  • 主干网络是CSPDarknet53。
  • 主要结构是多个CBS(卷积 + 批量归一化 + SiLU激活函数)模块和C3模块的堆叠,最后连接一个SPPF模块。
  • CBS模块用于辅助C3模块进行特征提取,而SPPF模块增强了主干网络的特征表达能力。

在这里插入图片描述

C7和C8层对应于输出C5特征图。然而,在主干网络中,C7和C8层的参数占据了大量的参数。
为了使模型更轻量化,传统YOLOv5中的默认C5特征图被删除了,如图4所示。

2.2 PB-FPN

在这里插入图片描述
为了进一步提升算法对小目标的检测能力,额外引入了一条新的特征融合路径,将高层的特征进一步整合到底层。新设置的水平分支参与到底层的融合过程中,这进一步提升了算法对小目标的检测效果。

2.3 SPPF

在这里插入图片描述
YOLOv5 使用了 SPPF(空间金字塔池化快速版,SPP-Fast)模块。
通过简化池化过程,SPPF 避免了像 SPPNet 中的 SPP 那样的重复操作,并显著提高了模块的运行速度。
在本文中,SF-YOLOv5 在特征融合网络与模型预测头之间的连接处引入了几个 SPPF 模块,目的是为了进一步挖掘最终由 neck 输出并送往 head 的特征图的特征表达潜力,并进一步提升模型的性能。

4.实验结果

4.1 WIDER FACE Dataset

在这里插入图片描述

这个数据集包含了393,703张人脸的标注信息。数据集在尺度、姿态、角度、光照和遮挡方面具有很高的变化性。数据集复杂,并且包含了大量的密集小目标。
总共使用了4441张图像来训练算法,并使用了1123张图像来验证算法。
在这里插入图片描述
在这里插入图片描述
与传统算法YOLOv5s相比,SF-YOLOv5在mAP@0.5和mAP@0.5:0.95上分别提高了1.6和0.8,这证明了SF-YOLOv5在综合检测性能上的提升。

同时,SF-YOLOv5的参数(M)值和浮点运算次数(FLOPs,G)值分别减少了68.2%和12.7%,表明SF-YOLOv5可以进一步减少模型运算所需的参数数量和计算能力。

总体而言,SF-YOLOv5在性能上优于YOLOv3和ResNeXt-CSP,并且其性能接近最新的YOLOv7。

这段描述概述了SF-YOLOv5在目标检测任务上相对于其他几个算法的性能提升。mAP(mean Average Precision)是一个衡量目标检测算法性能的指标,它计算在不同阈值下的平均精度均值。mAP@0.5指的是在IoU(交并比)为0.5时的平均精度,而mAP@0.5:0.95则是在IoU从0.5到0.95的范围内计算的平均精度,这反映了算法在不同IoU阈值下的性能。

参数数量和FLOPs的减少意味着SF-YOLOv5在保持或提升性能的同时,能够以更少的计算资源实现更快的推理速度,这对于需要在资源受限的设备上部署模型的应用场景非常有用。

3.2 Other Datasets

在这里插入图片描述
在这里插入图片描述
总而言之,SF-YOLOv5在TinyPerson、VisDrone和VOC2012数据集上仍然实现了检测精度和综合性能的提升。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/744115.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 全栈体系【四阶】(六十一)

第五章 深度学习 十三、自然语言处理(NLP) 5. NLP应用 5.2 文本情感分析 目标:利用训练数据集,对模型训练,从而实现对中文评论语句情感分析。情绪分为正面、负面两种 数据集:中文关于酒店的评论&#…

Orangepi Zero2 全志H616 的初识

目录 一、全志H616简介 1.1 为什么学: 1.2 学什么: 1.3 全志H616平台介绍: 二、刷机 系统启动和初始化配置 2.1 需要的工具: 2.2 工具安装: 2.3 刷机: 2.4 登录系统: 2.5 修改登录密码…

2024年世界移动大会(MWC Shanghai)——飞睿智能诚邀您,超宽带技术定位测距传输全家桶

超宽带UWB芯片SIP系列: FS100 FS200 超宽带UWB标签系列: FU3620-2 FUP410-1 超宽带UWB应用系列: FMFB200A(门锁方案) FU2625-2(TAG方案) FPDB200A(音频) FSTB200…

emqx4.4.3关于如何取消匿名登录,添加认证用户这件事

emqx4.4.3如何取消匿名登录,添加认证用户 emqx版本:4.4.3 背景:使用docker搭建完emqx后,使用 MQTTX 连接总是超时: 检查Java项目 是否有接口:https://XXXX:80/mqtt/auth? 若有,则具体逻辑查询…

MAB规范(3):Chapter6 Glossary 术语表

第6章 - 术语表 此章不做过多的批注,都是些简单的术语解释。

电机故障检测系统的通用性限制分析

电机故障检测系统因应用环境、功能需求、经济性等多方面差异而难以实现通用。工厂与实验室在环境条件、使用频率、功能需求、成本、维护及数据处理方面有显著不同,此外,LabVIEW软件在两者中的应用和数据处理也存在差异,这进一步限制了系统的通…

Android app Java层异常捕获方案

背景: 在Android app运行中,有时一些无关紧要的异常出现时希望App 不崩溃,能继续让用户操作,可以有效提升用户体验和增加业务价值。 新流程: 哪些场景需要Catch Crash Config配置信息: 支持从网络上获取Crash配置表,动态防护,避免crash。 使用: 在Application o…

汽车零部件制造企业如何选择合适的ESOP电子作业指导书系统

随着汽车产业的不断发展,汽车零部件制造企业在提高生产效率和产品质量方面面临着越来越大的挑战。为了解决这些问题,越来越多的汽车零部件制造企业开始采用ESOP电子作业指导书系统,以帮助他们管理和优化生产流程。但是,在选择合适…

Retrofit类型安全的HTTP客户端库(json)

简介 Retrofit是Square公司开发的一个类型安全的HTTP客户端库,用于Android和Java平台,它使得与Web服务的交互变得更加简单快捷。Retrofit将HTTP API转换成Java接口,让你可以用更简洁的代码形式调用RESTful API,Android网络编程重点…

机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)

目录 1. 过拟合与欠拟合 1.1 Preliminary concept 1.2 过拟合 over-fitting 1.3 欠拟合 under-fitting 1.4 案例解析:黑天鹅 1. 过拟合与欠拟合 1.1 Preliminary concept 误差 经验误差:模型对训练集数据的误差。泛化误差:模型对测试…

你还不知道Modbus RTU???

1. 什么是Modbus RTU Modbus RTU(Remote Terminal Unit)是Modbus通信协议的一种变种,用于串行通信。它是一种常见的工业控制系统通信协议,通常用于采集传感器数据、控制执行器和监控设备状态。Modbus RTU采用二进制编码&#xff0…

ChatBI开源实现: 基于SuperSonic的AI+BI的产品设计

产品起源 为什么要做这样的产品?文章《ChatBI开源实现: AIBI的产品设计》中有介绍 为什么要自己做这样的产品?1、低成本试错;2、未来数据生态入口; 为什么要基于Supersonic做? 开源协议友好:可魔改商用 社区…

# Kafka_深入探秘者(6):kafka 物理存储

Kafka_深入探秘者(6):kafka 物理存储 一、kafka 存储结构 1、kafka 存储结构概述图 2、kafka 存储结构概述 每一个 partion (文件夹)相当于一个巨型文件被平均分配,到多个大小相等 segment(段) 数据文件里。但每一个段 segment file 消息数…

上海计算机学会2020年3月月赛C++丙组T4连乘问题

题目描述 给定 a1​,a2​,⋯,an​,请计算一组乘积,记为P1​,P2​,⋯,Pn​,其中 Pi​ 的定义如下: 也就是说,Pi​ 是 a1​ 到 an​ 的连乘再除去 ai​。由于答案可能比较大,输出每个 Pi​ 模 10000 的余数。…

第六十七:iview的select组件在页面上,下拉数据被遮挡

iview的select组件在页面上,下拉数据被遮挡 加上**:transfer"true"** 代码截图: 官方解说截图:因为默认值是false 所以要改成:transfer“true”

PPT的精细化优化与提升策略

👏👏👏欢迎来到我的博客 ! 亲爱的朋友们,欢迎您们莅临我的博客!这是一个分享知识、交流想法、记录生活的温馨角落。在这里,您可以找到我对世界独特视角的诠释,也可以与我一起探讨各种话题&#…

STL——常用算法(二)

一、常用拷贝和替换算法 1.copy #include <iostream> #include <vector> #include <algorithm> using namespace std; void printVector(int val) {cout << val << " "; } void test01() {vector<int>v1;for (int i 0; i <…

【耐水好】强耐水UV胶水是怎样的?

【耐水好】强耐水UV胶水是怎样的&#xff1f; 强耐水UV胶水是一种特殊的胶水&#xff0c;其设计重点在于其出色的耐水性能。以下是关于强耐水UV胶水的特点&#xff1a; 优异的耐水性能&#xff1a;这种胶水能在水环境下保持稳定的粘接强度&#xff0c;不易被水分解或削弱。因…

利用scalene进行性能分析和优化

​ 上一篇文章&#xff0c;我们详细讲解了Py-Spy这个性能分析和优化工具的使用流程&#xff1b;今天&#xff0c;我们将深入探讨另一个性能分析和优化工具——scalene。 什么是scalene&#xff1f; scalene是一个高精度的Python性能分析工具&#xff0c;可以对CPU和内存使用情…

照片放大工具Topaz Gigapixel AI for Mac v7.1.2

Topaz Gigapixel AI软件是一款相当高效的PC端图像大小调整工具&#xff0c;更是一款能够为摄影师、设计师以及图像处理爱好者带来革命性体验的强大软件。它凭借先进的深度学习技术&#xff0c;打破了传统图像大小调整的限制&#xff0c;实现了真正意义上的无损放大和图像恢复。…