机器学习算法那些事 | TPAMI 2024.9 | FeatAug-DETR:通过特征增强丰富DETRs的一对多匹配

news2024/9/22 19:11:02

本文来源公众号“机器学习算法那些事”,仅用于学术分享,侵权删,干货满满。

原文链接:TPAMI 2024.9 | FeatAug-DETR:通过特征增强丰富DETRs的一对多匹配

论文标题:FeatAug-DETR: Enriching One-to-Many Matching for DETRs With Feature Augmentation

论文链接:https://ieeexplore.ieee.org/document/10480276

这篇论文提出了一种新方法,通过增强特征(而不仅仅是图像数据)来提升DETR(检测转换器)在目标检测任务中的性能。论文的主要贡献包括:

  • 一对多匹配的创新:DETR原本采用一对一匹配策略,这虽然避免了非极大值抑制(NMS)步骤,但导致正样本监督稀疏,进而训练收敛速度较慢。为了解决这个问题,本文提出通过数据增强(DataAug-DETR)和特征增强(FeatAug-DETR)来实现一对多匹配,从而加速训练并提升检测精度。

  • 特征增强(FeatAug-DETR):通过在特征层进行增强操作(如翻转、裁剪等),而不是在图像层进行操作,减少了重复输入不同版本的图像所带来的计算开销。这种增强方式不仅提高了模型的训练效率,还保持了推理阶段的速度不变。

本文通过特征增强策略提出了一种更高效的一对多匹配机制,相较于传统方法,FeatAug-DETR在减少计算量的同时大幅提升了DETR的训练速度和检测效果。这种方法易于集成到现有的DETR架构中,并在多个任务中表现出色。

1. 现有方法与论文方法对比

下图上部分的流程图表示DETR现有的一对多匹配方法。

现有方法通过增加额外的目标查询(object queries)来实现一对多匹配。每个真实物体会被多个不同的查询匹配,生成多个预测结果。这些方法通过多组查询来提升正样本的监督,进而加快训练速度。

问题:这种方法需要引入额外的目标查询,增加了计算成本。

image-20240919220004081

下半部分的流程图表示特征增强的DETR。

FeatAug-DETR采用了一种更高效的方式,不是直接增强图像,而是增强特征图。这种方法通过对特征图进行空间变换(如翻转或裁剪)生成多个增强特征版本,并在同一个批次中处理它们,从而实现一对多匹配。

优点:FeatAug-DETR比DataAug-DETR更高效,因为它只需要在模型中运行一次图像,通过增强特征而不是图像,减少了重复处理不同版本图像的计算开销。

2. DataAug-DETRFeatAug-DETR的工作流程

image-20240919220639043

上图展示了DataAug-DETRFeatAug-DETR的工作流程,详细说明了这两种方法如何通过数据增强或特征增强来实现一对多匹配,从而提升DETR模型的性能。

(a) DataAug-DETR

  • 图像增强过程:DataAug-DETR首先对输入图像进行多次空间增强操作(例如翻转和裁剪),生成多个增强版本的图像。在同一个训练批次中,多个增强后的图像会被一起输入到模型中。

  • 特征提取:这些增强后的图像经过视觉骨干网络(vision backbone)处理,生成对应的特征图。

  • 匹配与训练:通过在不同增强图像上分配不同的目标查询,模型实现了一对多的匹配。这种方法有效地增加了正样本监督,从而加快了模型训练速度,并提升了检测精度。

(b) FeatAug-DETR

  • 特征增强过程:与DataAug-DETR不同,FeatAug-DETR不是对图像进行增强,而是直接对视觉骨干网络输出的特征图进行增强。这种增强包括对特征图进行空间变换(例如翻转或裁剪),从而生成多个增强的特征图版本。

  • 特征多样性:每个增强后的特征图都包含不同的空间信息,这使得目标查询可以与不同的特征区域进行匹配,进而实现一对多匹配。

  • 高效性:FeatAug-DETR相比DataAug-DETR更加高效,因为它仅需要在视觉骨干网络中处理一次图像,避免了多次输入增强图像所带来的计算负担。

这两种方法在目标检测任务重实现更好的正样本监督和更快的收敛速度。

3.实验对比

如下图表,图像增强和特征增强,在多个DETR变体中都取得了显著的性能提升。相比于传统的一对一匹配方法,通过特征增强实现的一对多匹配既加快了模型的收敛速度,又提高了检测精度。与DataAug-DETR相比,FeatAug-DETR具有更高的效率。DataAug-DETR虽然也能提升模型性能,但由于其对图像的多次增强处理,计算开销较大。而FeatAug-DETR通过对特征图的增强,减少了计算量,同时保持了较高的检测精度。

image-20240919221650348

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

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

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

相关文章

智能指针:作用 | 使用 | 原理 | 内存泄漏

🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据…

golang学习笔记4-基本数据类型

注:本人已有C,C,Python基础,只写本人认为的重点。 go的数据类型如下 由于bool和c类似,和go的区别是,bool的值只能取true和false,不能取整数,而且有默认值false。 一、整数型 整数型存放整数&…

设计模式之策略模式例题

答案:A 知识点: 策略模式又叫模板方法模式 它的意图是定义一个操作中的算法骨架。而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义算法的某些特定步骤

3.5.2 __ipipe_init()之完成中断处理程序设置

点击查看系列文章 》 Interrupt Pipeline系列文章大纲-CSDN博客 原创不易,需要大家多多鼓励!您的关注、点赞、收藏就是我的创作动力! 3.5.2 __ipipe_init()之完成中断处理程序设置 __ipipe_init()最核心的就是__ipipe_enable_pipeline()&am…

分享两道算法题

分享两道算法题 王者荣耀分组 题目描述 部门准备举办一场王者荣耀表演赛,有 10 名游戏爱好者参与,分 5 为两队,每队 5 人。 每位参与者都有一个评分,代表着他的游戏水平。 为了表演赛尽可能精彩,我们需要把 10 名参赛…

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)

十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式) 文章目录 十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)1. Spring Boot 配置 MyBatis 的详细步骤2. 最后: MyBatis 的官方文档:https://mybatis.p2hp.com/ 关于 MyBa…

内网渗透-红日1

红日靶场1 渗透测试过程外网打点突破边界内网横向权限维持最后 渗透测试过程 本文章只说明渗透测试思路和技巧,对域靶场搭建不进行赘述 web-ip外网设置为 192.168.119.130,kali和外网ip同网段 外网打点 kali扫描目标ip nmap扫描目标网段   nmap -P…

【记录】大模型|Windows 下 Hugging Face 上的模型的通用极简调用方式之一

这篇文是参考了这篇,然后后来自己试着搭了一下,记录的全部过程:【翻译】Ollama|如何在 Ollama 中运行 Hugging Face 中的模型_ollama 导入 huggingface-CSDN 博客 另外还参考了这篇:无所不谈,百无禁忌,Win11 本地部署无…

【C++初阶】探索STL之——vector

【C初阶】探索STL之——vector 1.什么是vector2.vector的使用2.1 vector的定义2.2 vector iterator(迭代器)的使用2.3 vector空间问题2.4 vector的增删查改2.5 vector迭代器失效的问题2.5.1 vector常见迭代器失效的操作 3 动态二位数组 1.什么是vector vector其实就是一个可以…

iPhone16,超先进摄像头系统?丝滑的相机控制

iPhone 16将于9月20号正式开售,这篇文章我们来看下iPhone 16 在影像方面,有哪些升级和新feature。 芯片:采用第二代 3纳米芯片,A18。 摄像头配置: iPhone 16 前置:索尼 IMX714 ,1200 万像素&am…

SQL 多表联查

目录 1. 内联接(INNER JOIN) 2. 左外联接(LEFT JOIN) 3. 右外联接(RIGHT JOIN) 4. 全外联接(FULL JOIN) 5. 交叉联接(CROSS JOIN) 6. 自联接&#xff0…

简单题101. 对称二叉树 (python)20240922

问题描述: python: # Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right rightclass Solution(object):def isSymm…

网络通信——OSI七层模型和TCP/IP模型

OSI模型 一.OSI七层模型 OSI(Open System Interconnect)七层模型是一种将计算机网络通信协议划分为七个不同层次的标准化框架。每一层都负责不同的功能,从物理连接到应用程序的处理。这种模型有助于不同的系统之间进行通信时,更…

pycharm连接远程linux服务器上的docker进行深度学习训练

实习过程中由于GPU都在服务器上,编辑代码很麻烦。并且服务器上配置了docker的环境,所以用pycharm连接远程服务器的docker进行深度学习,这样在本地调用远程服务器的GPU和环境,更方便一点,将这个过程记录下来&#xff0c…

如何将MySQL卸载干净(win11)

相信点进来的你肯定是遇到了这个问题,那就是在安装MySQL的时候操作错误,最后结果不是自己想要的。卸载重新安装又发现安装不了。其实最主要的原因就是没有将MySQL卸载干净,那么如何把MySQL卸载干净?下面本篇文章就来给大家一步步介…

【C++】二叉搜索树的底层以及实现

个人主页 文章目录 ⭐一、二叉搜索树的概念🚀二、二叉搜索树性能分析🏝️三、二叉搜索树的操作1. 插入2. 查找3. 删除4. 遍历节点 🎄四、二叉搜索树的实现(K模型)🎉五、二叉搜索树的应用1. K模型2. KV模型…

14. PEFT:在大模型中快速应用 LoRA

如果你对LoRA还没有一个直观的概念,可以回看这篇文章:《3. 认识 LoRA:从线性层到注意力机制》。 我们将在这里进一步探讨如何快速地在大型预训练模型中应用 LoRA,并解答可能存在的问题,包括: peft 和 lora …

NSSCTF刷题篇1

js类型 [SWPUCTF 2022 新生赛]js_sign 这是一道js信息泄露的题目直接查看源码,有一个main.js文件点击之后,有一串数字和一段base64编码,解开base64编码得到这个编码为敲击码 解码在线网站:Tap Code - 许愿星 (wishingstarmoye.…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板KubePi

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署k8s管理面板kubepi 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、 KubePi介绍2.1 KubePi简介2.2 KubePi主要特点&am…

序列化方式二——JSON之Gson

Gson 1、什么是Gson? Gson是Google提供的一个用于Java编程语言的JSON(JavaScript Object Notation)序列化和反序列化库。它允许开发者在Java对象和JSON数据之间进行高效的映射和转换。 官网地址:https://github.com/google/gson 官网文档…