MS-DETR论文解读

文章目录

  • 前言
  • 一、摘要
  • 二、引言
  • 三、贡献
  • 四、MS-DETR模型方法
    • 1、模型整体结构解读
    • 2、模型改善结构解读
    • 3、一对多监督原理
  • 五、实验结果
    • 1、实验比较
    • 2、论文链接
  • 总结


前言

今天,偶然看到MS-DETR论文,以为又有什么高逼格论文诞生了。于是,我想查看一番,改论文讨论原始DETR中使用一对一监督的传统训练过程缺乏对对象检测候选者的直接监督。本文旨在通过混合一对一监督和一对多监督来明确监督候选生成过程,从而提高DETR训练效率。本文最主要贡献在解码decoder实现行一对多监督。实验结果表明,我们的方法优于相关的DETR变体,如DN-DETR、Hybrid DETR和Group DETR,并且与相关DETR变体的组合进一步提高了性能。本博客将带领读者共同探讨此文章。


一、摘要

摘要:DETR通过基于图像特征迭代生成多个候选对象并为每个ground-truth对象提升一个候选对象来实现端到端的目标检测。在原始DETR中使用一对一监督的传统训练过程缺乏对对象检测候选者的直接监督。
本文旨在通过混合一对一监督和一对多监督来明确监督候选生成过程,从而提高DETR训练效率。我们的方法,即MS-DETR,很简单,并且对用于推理的主解码器的对象查询进行一对多监督。与具有一对多监督的现有DETR变体(如Group DETR和Hybrid DETR)相比,我们的方法不需要额外的解码器分支或对象查询。在我们的方法中,主解码器的对象查询直接受益于一对多监督,因此在对象候选预测方面是优越的。实验结果表明,我们的方法优于相关的DETR变体,如DN-DETR、Hybrid DETR和Group DETR,并且与相关DETR变体的组合进一步提高了性能。

在这里插入图片描述

二、引言

端到端目标检测方法DETR已有很多研究者研究。该类模型是基于CNN的backbone、一个编码、一个解码。解码是decoder层堆叠,每一层由self-attention、cross-attention和FFNs模块,仅接class与box预测。
DETR的解码生成很多目标候选框,他们以目标查询表征,在端到端学习方法中提出一个候选框和很多冗余的框。这些冗余候选框也靠近gt box框,如图1说明。而候选框是通过decoder的cross-attention生成。候选去重主要有解码self-attention与一对一监督完成,确保选择一个候选框符合gt box目标。不像基于NMS方法(如:fastercnn)通常使用一个监督生成候选框,而DETR模型训练对生成多个目标候选缺乏明确监督。
我们提出监督查询,该查询在解码模块混了一对一监督与一对多监督,从而改善训练效率。我们架构非常简单,我们增加模块与预测head相似,实现一对一监督,它由一个box预测、一个类别预测构成。我们命名为MS-DETR,如图3说明。我们想要指出增加的模块不影响训练过程与推理过程。
图1说明我们模型对后弦检测影响。我们发现DETR没有一对多监督也对gt目标产生多个候选框。在用一对多监督后,预测box会更好,候选框也更好。我们也发现一对一的分类与box回归 loss是低于有一对多监督。这是能够改善候选框,这样对一对一监督loss有帮助的。
我们方法通过引入额外监督(一对多)在图像特征选择上改善目标查询。与相关方法比较,如conditional DETR、Deformable DETR,明显不同,他们是修改cross-attention架orquery格式,我们方法也是,然而不同我们是一朵朵监督。特别的,我们方法直接在primary上加了一对多的监督。

三、贡献

作者在原有一对一监督DETR模型上,提出一对多监督,使其与原有一对一监督混合监督,提高DETR训练效率。

四、MS-DETR模型方法

实际是在原有DETR一对一的监督增加一对多的监督,但我感觉有些将 Group DETR和DN-DETR的平行结构换成了串行结构,且实验在哪个位置分出一对多监督结构,实际是loss约束成分。

1、模型整体结构解读

图3 说明整体架构不同,a是原始DETR,一对一的监督;b是混合DETR,一对一与一对多的监督(我们模型);c是分组DETR和DN-DETR,除了平行家吗被引入外,一个一对一监督也被强加与decoder,更多额外decoders更可能像在Group DETR和DN-DETR。d是Hybrid DETR,一个额外平行家吗被增加和一个一对多监督被增加额外解码层。

在这里插入图片描述

2、模型改善结构解读

MD-DETR改善,a图是一对一与一对多监督在每个decoder层输出后发生,而b与a就是cross-attention与self-attention位置不同。c和d是将一对多监督在中间执行。
在这里插入图片描述

3、一对多监督原理

一对多匹配是基于预测置信度和与groundtruth的iou获得代价矩阵,在对每个gt目标匹配选择top K的queries,并过滤低于阈值τ的queries。
在这里插入图片描述

五、实验结果

1、实验比较

作者在epoch=12或24比较不同模型差异,如下表:
在这里插入图片描述
在这里插入图片描述

2、论文链接

该论文有部分注释,下载链接如下:

链接:https://pan.baidu.com/s/1_PxFMsto6uXSRCj29K0lIA
提取码:depa

总结

该篇文章比较容易读,但我感觉技术应该不是那么惊艳(个人理解),而读者想更加深刻理解,需查看源码,我只是大概说了该篇论文相关内容。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

内网渗透实战攻略

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:"没有罗马,那就自己创造罗马~" 目录 介绍 什么是内网? 什么是内网渗透? 内网渗透的目的: 内网…

车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 基本假设 4.2 运动学方程 5.完整工程文件 1.课题概述 车辆行驶控制运动学模型的matlab建模与仿真,仿真输出车辆动态行驶过程. 2.系统仿真结果 3.核心程序与模型 版本:MATLAB2022a .…

单调栈练习(三)— 最大矩形

题目 同样是LeetCode原题:题目链接 给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 暴力解 先来看一下暴力解的时间复杂度。 假如一个N * N的大矩阵,想要枚举出来所有的子…

[后端] 微服务的前世今生

微服务的前世今生 整体脉络: 单体 -> 垂直划分 -> SOA -> micro service 微服务 -> services mesh服务网格 -> future 文章目录 微服务的前世今生单一应用架构特征优点:缺点: 垂直应用架构特征优点缺点 SOA 面向服务架构特征优点缺点 微服…

vscode配置与注意事项

中文设置 https://zhuanlan.zhihu.com/p/263036716 应用搜索输入“Chinese (Simplified) Language Pack for Visual Studio Code”并敲回车键 底部信息窗没有的话 首先使用快捷键ctrlshiftp,Mac用户使shiftcommandp,然后输入settings.json 将下面的选…

cosmos及特定应用程序的区块链

特定应用程序的区块链,简单来说,一个区块链就是一个专门的应用程序。为了实现某一特定的去中心化应用而专门实现一个区块链。 传统的用智能合约构建去中心化应用不行吗? 灵活性不足:智能合约本质上受到虚拟机本身的限制。例如,以…

算法第十二天-最大整除子集

最大整除子集 题目要求 解题思路 来自[宫水三叶] 根据题意:对于符合要求的[整除子集]中的任意两个值,必然满足[较大数]是[较小数]的倍数 数据范围是 1 0 3 10^3 103,我们不可能采取获取所有子集,再检查子集是否合法的暴力搜解法…

字体图标操作步骤

网站 直接点击 进去后长这样,点免费的添加 保存下载 保存后解压 把fonts文件夹复制粘贴到我们自己项目 可以放在同images的路径下 引入 来源于 再style中粘贴 font-face {font-family: icomoon;src: url(fonts/icomoon.eot?jyg4cp);src: url(fonts/icomoo…

数据结构及单链表例题(下)

上次我们已经了解了单链表的数据结构定义以及创建单链表的两种方法,这节介绍几道例题. 文章目录 前言 一、已知L为带头结点的单链表,请依照递归思想实现下列运算 二、单链表访问第i个数据节点 三、在第i个元素前插入元素e 四、删除第i个结点 五、查找带头结点单链表倒数第…

从0开始python学习-45.pytest框之将所有的用例封装到一个类中,实现极限封装,并测试用例校验

目录 1. 封装一个用于校验yaml测试用例参数的方法:model_util.py 2. 校验方法是否正确 3. 封装一个方法,用于读取所有的用例:test_all_case.py 1. 封装一个用于校验yaml测试用例参数的方法:model_util.py from dataclasses imp…

Python从入门到网络爬虫(23个Python开源项目)

前言 随着互联网的快速发展,大量的信息被不断地产生和积累,这也使得网络爬虫变得越来越重要。而Python作为一门高效、易用的编程语言,被广泛地应用于网络爬虫领域。本文将从多个角度分析Python开源爬虫项目的优缺点、应用场景以及未来发展方…

Kubernets(K8S)启动和运行01 快速入门

简介 Kubernetes is an open source orchestrator for deploying containerized applications. It was originally developed by Google, inspired by a decade of experience deploying scalable, reliable systems in containers via application-oriented APIs. Kubernete…