具有重新参数化异构卷积的多分支辅助融合YOLO,用于精确的目标检测(MAF-YOLO)

news2024/9/21 12:34:14

中英文对照阅读icon-default.png?t=N7T8https://yiyibooks.cn/arxiv/2407.04381v1/index.html

摘要

由于多尺度特征融合的有效性能,路径聚合 FPN (PAFPN) 被广泛应用于 YOLO 检测器中。 然而,它不能有效地、自适应地同时集成高层语义信息和低层空间信息。 我们在本文中提出了一种名为 MAF-YOLO 的新模型,它是一种新颖的目标检测框架,具有多功能颈部,称为多分支辅助 FPN(MAFPN)。 在 MAFPN 中,浅层辅助融合(SAF)模块旨在将骨干和颈部的输出结合起来,保留最佳水平的浅层信息,以促进后续学习。 同时,深深嵌入颈部的高级辅助融合(AAF)模块向输出层传递更多样化的梯度信息。 此外,我们提出的重新参数化异构高效层聚合网络(RepHELAN)模块确保整体模型架构和卷积设计都包含异构大卷积核的利用。 因此,这保证了与小目标相关的信息的保存,同时实现了多尺度感受野。 最后,以MAF-YOLO的nano版本为例,仅用3.76M可学习参数和10.51G FLOPs,它就能在COCO上实现42.4%的AP,大约比YOLOv8n高5.1%左右。 这项工作的源代码位于:https://github.com/yang-0201/MAF-YOLO。

模型架构

如图2所示,我们将一级目标检测器的宏观架构分解为三个主要部分:脊柱、颈部和头部。 在MAF-YOLO中,输入图像最初通过主干网,主干网由四个阶段组成:P2、P3、P4和P5。 我们将 MAFPN 设计为颈部结构。 在第一个自下而上的路径中,SAF模块负责从主干中提取多尺度特征,并在颈部的浅层进行基础知识辅助融合。 同时,AAF通过第二个自上而下路径中更密集的连接从每一层收集梯度信息,最终引导头部获得跨三种分辨率的多样化输出信息。 上述两种结构均采用 RepHELAN 模块进行特征提取,该模块利用动态大小的卷积核来实现自适应感受野。 最后,检测头根据每个尺度的特征图预测对象边界框及其相应的类别,以计算其损失。

图2:MAF-YOLO的网络架构概述。

全局异构内核选择机制(GHKS)

影响 Transformer 有效性的一个重要因素是它们的自注意力机制,它在全局或更大的窗口范围内执行查询键值操作。 类似地,大的卷积核可以捕获局部和全局特征,并且使用中等大的卷积核来增加有效感受野已经在一些工作中被证明是有效的。 Trident Network [12] 进行的研究表明,具有较大感受野的网络更适合检测较大的物体,而相反,较小规模的目标受益于较小的感受野。 YOLO-MS[3]引入了异构核选择(HKS)协议的概念。 在主干中采用3、5、7和9的增量卷积核设计来平衡性能和速度。 受这项工作的启发,我们将其扩展到全局异构核选择(GHKS)机制,将异构大卷积核的概念集成到整个MAF-YOLO架构中。 除了主干RepHELAN中逐步增加的卷积核外,我们还在MAFPN中引入了5、7、9的大卷积核以适应不同分辨率的要求,从而逐步获得多尺度的感觉场信息。

多分支辅助FPN(MAFPN: SAF和AAF)

精确定位依赖于浅层网络的详细边缘信息,而精确分类则需要更深的网络来捕获粗粒度信息[18]。 我们认为,有效的FPN应该支持浅层和深层网络信息流的充分、充分的融合。

图3:浅表辅助融合的架构。

表面辅助融合。(SAF)

图4:高级辅助融合的架构。

高级辅助融合(AAF)

重参数化异构高效层聚合网络(RepHELAN)

图5:(a) RepHELAN 网络架构概述,(b) RepHELAN 中训练和推理阶段的反向瓶颈结构,(c) 7×7 RepHDWConv 的重新参数化过程。

重新参数化的异构深度卷积(RepHDWConv)

首先,我们在全局架构中采用具有大内核的深度卷积来实现上述GHKS机制。 我们的研究还表明,虽然较大的卷积核可以通过编码更广泛的区域来提高性能,但它们可能会无意中掩盖与小目标相关的细节,从而留下进一步改进的空间。 因此,我们将异构思想从全局架构转移到单个卷积,并结合重新参数化[6, 5]的思想来实现RepHConv。 具体来说,我们通过同时运行大和小卷积核来补充小目标的检测。 不同大小的卷积核增强了网络的 ERF 和特征的多样化表示。 如图5(b)所示,反向瓶颈在训练和推理之间表现出一定的差异。 在训练过程中,网络运行n个不同大小的并行深度卷积(DWConv)操作,而在推理过程中,这些卷积被合并为一个,从而导致推理速度没有降低。 我们相信 RepHDWConv 是一种卓越的卷积策略,可以以最小的损失增强跨多个尺度的表示能力。

实验

数据集。

我们在 Microsoft COCO 2017 [14] 数据集上进行了广泛的实验,以验证所提出的 MAF-YOLO 的有效性。 具体来说,所有方法的训练都是在 115k 训练图像上进行的,我们报告了消融研究的 5000 个验证图像的结果。 我们报告了不同 IoU 阈值和目标尺度下的标准平均精度(AP)的结果。

实现细节。

我们的实现基于YOLOv6-2.0框架。 所有实验均使用 8 个 NVIDIA GeForce RTX 2080Ti GPU 进行,MAF-YOLO 的所有尺度均从头开始训练 300 个 epoch,不依赖于其他大规模数据集,如 ImageNet [4],或预先训练的权重。 除此之外,我们采用了更强大的基于动态缓存的混合[26]和马赛克机制,并用轻量级的RepHDWConv简单地替换了YOLOv6输出标头中的两个3×3卷积。 更多实施细节可以在补充材料中找到。

RepHELAN分析

在本小节中,我们将在 RepHELAN 模块上进行一系列消融研究。 默认情况下,我们使用 MAF-YOLO nano 进行所有实验。

不同的计算块。

我们首先使用表 1 中其他高级 YOLO 模型的各种计算块对 RepELAN 模块进行消融实验。 1. 我们的RepHELAN与其他模块相比不仅具有更高的参数利用率,而且还实现了更高的精度。

RepHELAN 消融研究。

MAFPN分析

在本小节中,我们对MAFPN的各个模块进行了烧蚀实验,并通过在各种实验中用不同的算法替换颈部结构来展示MAFPN的即插即用能力。

MAFPN的消融研究。

本次实验结果,如表1所示。 3,模型的默认颈部设置为PAFPN,其中包括六个RepHELAN Block。 首先,我们将 SAF 模块合并到主干和颈部的浅层中,这导致性能提升了 0.3%,增加了 0.3M 参数,值得注意的是,通过 SAF,我们实现了小目标性能的 1% 提升。 其次,通过单独添加 AAF 模块,我们观察到针对所有尺度的对象的性能都有所提高。 最终,当使用 SAF 和 AAF 的组合时,获得了模型的最大性能。

其他模型的消融研究。

MAFPN可以作为其他模型的即插即用模块,结果如表1所示。 4. 首先,我们将主流单级检测器YOLOv8n中的PAFPN替换为MAFPN,并改变通道数以保持模型更小。 YOLOv8n-MAFPN 使用更少的 epoch(-200 epoch)和更少的参数,获得了 2% 的 AP 改进,体现了 MAFPN 的优异性能。 此外,我们还在实例分割任务中使用两级检测器 Cascade MaskRCNN [2] 验证了 MAFPN 的有效性。

MAF-YOLO的消融研究

MAF-YOLO包含MAFPN、RepHELAN模块和GHSK策略,我们依次进行消融实验,结果如表2所示。 5. 我们首先添加MAFPN结构,增加了0.5M参数数量,性能提升了2.1%AP,然后通过添加轻量级RepHELAN模块,减少了1.2M参数数量,性能反而提升了1.1% AP,最后,GHSK 方法在边际参数成本下将模型精度提高了 1.2% AP。

与最先进技术的比较

标签。 6和图6展示了我们提出的MAF-YOLO与其他SOTA实时目标检测器的比较。 与纳米级模型相比,MAF-YOLOn 的参数数量略多于 YOLOv8n,但 AP 提高了 5.1%。 与当前较新的 Gold-YOLOn 相比,MAF-YOLOn 减少了约 36% 的参数和 13% 的计算量,但 AP 仍提高了 2.5%。 我们的模型对于小规模模型也有很大的优势,与无锚版本的 YOLOv7s 相比,MAF-YOLOs 的参数少了 22%,AP 显着提升了 2.3%。 还值得注意的是,与当前的 SOTA 模型 YOLOv9s 相比,我们的 MAF-YOLO 取得了可比的结果,比具有可比参数和计算的 YOLOv9s 高了 0.6 AP。 此外,我们还展示了几种两级和基于 Transformer 的探测器,其中我们的模型展示了卓越的性能并且更轻量。 不同算法在COCO验证集上的一些检测结果如图7所示。

5结论

在本文中,我们引入MAFPN作为解决传统YOLO中PAFPN局限性的解决方案,它包含两个关键组件:SAF和AAF。 SAF用于有效保留主干中的浅层信息,而AAF通过增强的信息融合促进输出层保留各种多尺度信息。 此外,我们将 GHSK 集成到 MAF-YOLO 中,它在整个架构中动态扩展卷积核,以显着扩展网络的感知领域。 此外,我们还引入了 RepHELAN 模块,该模块利用重新参数化的异构卷积来极大地增强多尺度表征能力。 因此,MAF-YOLO 展示了出色的整体性能,同时保持了相当数量的参数。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring boot logback日志框架加载初始化源码

##LoggingApplicationListener监听 Overridepublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof ApplicationStartingEvent) {onApplicationStartingEvent((ApplicationStartingEvent) event);}else if (event instanceof ApplicationEnvironment…

java中List列表转成子父集列表

一、前言 在Java中,如果你有一个表示父子关系的列表,并且想要把这个列表转成一个子父集list列表树目录,一般来说想要把list列表转成一个子父集列表,这个对象需要在属性中必须要有几个字段,id(节点id&#x…

机械行业数字化生产供应链产品解决方案(十二)

我们为机械行业提供的数字化生产供应链解决方案通过集成物联网、人工智能和大数据技术,打造了一套智能化的生产和供应链管理系统,实现了从设计、生产到物流的全程数字化、智能化。该系统通过实时数据采集与分析,优化生产计划和资源配置&#…

mybatis批量修改问题

update 表名称 set version version 1, update_time NOW(), basket_price case when id1130254 then 0.00 end, basket_spec_name case when id1130254 then “名称1” when id1130255 then “名称” end where id IN ( 1130254 , 1130255); 为什么 id为 1130255 的 baske…

Halcon 算子汇总

gen_tuple_const(1000,1.5) 生成一个长度为1000,里面每一个数组元素都为1.5的数组 gen_tuple_const(100,chr(ord(a) 1)) 生成一个长度为100,里面每一个数组元素都为b的数组 ord函数是库函数,用于获取字符的ASCII值 chr(ord(a) 1) 结…

算法设计与分析(快速幂算法

目录 1. 题目&#xff1a;2. 代码&#xff1a;2.1边界条件处理2.2分治策略2.3合并结果2.4递归终止条件2.5效率分析 小结&#xff1a; 1. 题目&#xff1a; 2. 代码&#xff1a; #include<iostream> using namespace std;int pow(int x, int n){// 边界条件 if (x 0) re…

大数据技术——实战项目:广告数仓(第七部分)数仓工作流调度实操

目录 第12章 广告数仓全流程调度 12.2 新数据生成 12.2.1 广告监测日志 12.2.2 广告管理平台数据 12.3 工作流调度实操 12.3.1 DolphinScheduler集群模式 12.3.2 DolphinScheduler单机模式 第12章 广告数仓全流程调度 12.1 调度工具Dolphinscheduler DolphinScheduler…

鸿蒙HarmonyOS:应用程序开发与使用-延迟加载(lazy import)

随着应用程序功能的不断扩展&#xff0c;冷启动所需的时间显著增长&#xff0c;主要是由于在启动初期加载了大量模块&#xff0c;其中存在大量未被实际执行的冗余文件。这种情形不仅拖延了应用的初始化过程&#xff0c;还造成了资源的无效占用。亟需采取措施精简加载流程&#…

解决IDEA-HTTP状态500-内部服务器错误

目录 背景: 解决过程: MySQL的优点和缺点: 背景: 类型异常报告 消息无法打开Hibernate会话进行事务处理&#xff1b;嵌套异常是org.hibernate.exception.GenericJDBCException:无法连接 描述服务器遇到了意外情况&#xff0c;导致无法满足请求等等.... 在运行项目的时候&…

Linux中以单容器部署Nginx+ASP.NET Core

强烈推荐在生产环境中使用反向代理服务器转发请求到Kestrel Http服务器&#xff0c;本文将会实践将Nginx --->ASP.NET Core 部署架构容器化的过程。 Nginx->ASP.NET Coe部署架构容器化 在Docker中部署Nginx--->ASP.NETCore 有两种选择&#xff0c; 第一种是在单容器…

【Java】解析方法的调用关系

目录 一、方法的定义二、方法的声明格式三、方法的调用四、特殊方法&#xff1a;程序入口main方法五、方法的局部变量六、类的静态变量七、类的静态方法八、方法的传参九、方法的重载 一、方法的定义 方法就是 将功能重复的代码封装成一段独立的代码&#xff0c;通过调用方法的…

Element Plus的el-carousel走马灯平铺多张图片

效果 <template><div class"system-banner"><el-carousel height"320px" indicator-position"outside" :autoplay"false"><el-carousel-item v-for"(item, index) in govList" :key"index"…

「VLM」CLIP 文本与图像的桥梁

github&#xff1a;https://github.com/OpenAI/CLIP paper&#xff1a;Learning Transferable Visual Models From Natural Language Supervision CLIP全称&#xff1a;Contrastive Language-Imge Pre-training&#xff0c;即对比语言-图像预训练。 对比学习是一种更关注于学习…

SD卡无法读取怎么办?4个修复方法千万别错过

SD卡是我们生活中常见的存储设备之一&#xff0c;它小巧方便&#xff0c;容量适中&#xff0c;被广泛应用于数码相机、手机、平板等设备中&#xff0c;随着时间的增长&#xff0c;有时会遇到突然无法读取的问题&#xff0c;这不仅会影响我们的数据访问&#xff0c;还可能造成数…

idea 中的properties文件中文乱码

如遇到以下类似的问题&#xff1a; 配置setting中-》Editor-》File Encodings 中&#xff0c;将以下三处位置的编码格式进行修改 Global Encoding GBK Project Encoding GBK Default encoding for properties files UTF-8 修改之后文件的中文显示正常

MySQl 中对数据表的增删改查(基础)

MySQl 中对数据表的增删改查&#xff08;基础&#xff09; 新增演示插入一条数据插入多条数据 查询全列查询部分列查询查询关于列名的表达式查询时用别名查询去重后的结果查询排序后的结果条件查询比较运算符和逻辑运算符 分页查询 修改删除 黑白图是在命令行里的&#xff0c;彩…

【题解】【枚举】—— [NOIP1997 普及组] 棋盘问题

【题解】【枚举】—— [NOIP1997 普及组] 棋盘问题 [NOIP1997 普及组] 棋盘问题题目背景题目描述输入格式输出格式输入输出样例输入 #1输出 #1 解法1解法2 [NOIP1997 普及组] 棋盘问题 戳我查看题目&#xff08;洛谷&#xff09; 题目背景 NOIP1997 普及组第一题 题目描述 …

Java基础 文字小游戏

souf System.out.printf("你好啊%s","张三") 输出你好啊张三 System.out.printn()放在中间可以换行 System.out.printf("%s你好啊%s","张三","李四") 输出 张三你好啊李四 只有输出没有换行效果。 制作一个文字小游戏…

每期一个小窍门: Goland 配置跳板机登陆

写简单点 先说下大概流程 本地 访问 localhost:6000 --> 转发到跳板机:22 --> 再转发到指定内网地址 本机 .ssh/config Host *ControlPersist yesControlMaster autoControlPath ~/.ssh/%n:%p本机公钥 copy 到跳板机 和内网被跳机 本机命令 ssh -N -f -L 6000:<内…

Linux基础入门---安装vmware

&#x1f600;前言 本篇博文是关于Linux基础入门和vmwarel5.5下载&#xff0c;希望你能够喜欢。 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动…