DETRs with Collaborative Hybrid Assignments Training论文笔记
| Title:[DETRs with Collaborative Hybrid Assignments Training |
| Code |
文章目录
- 1. Motivation
- 2. one to one VS one to many
- 3. Method
- (1)Encoder feature learning
- (2)Decoder attention learning
1. Motivation
当前的DETR检测器中,为了实现端到端的检测,使用的标签分配策略是二分匹配,使得一个ground-truth只能分配到一个正样本。分配为正样本的queries太少,从而导致对encoder的输出监督过于稀疏(sparse)。
与二分匹配相反,在传统的检测器(如Faster-RCNN、ATSS)中,一个ground-truth会根据位置关系分配到多个anchor作为正样本。这种标签分配方式能够为特征图上的更多区域提供位置监督,就能让检测器的特征学习得更好。
Co-DETR的关键就是利用通用的one-to-many label assignments来提高DETR检测器训练encoder和decoder的有效性及效率。
2. one to one VS one to many
为了比较这两种不同的标签分配方法在Encoder特征图上的差异,论文直接把Deformable-DETR的decoder换成了ATSS head,使用相同的可视化方法进行了比较,效果如下:

很明显,一些显著区域中的特征在one to many matching方法中被充分激活,但在one to one matching中很少被激活。因此,论文认为正是这两种分配方式的差异使得DETR模型中的encoder特征表达能力减弱了。

同时,作者还对encoder生成的特征表示和decoder中的attention进行了定量分析:
- 左边的IoF-IoB曲线表明ATSS相较于Defomable DETR更容易区分前景和背景;
- 右边的IoF-IoB曲线表明Group DETR(其将更多的正样本query引入到decoder中)和Co-Deformable-DETR拥有更多的正样本query,其更有利于cross attention的学习。
最终的结论同样是:一对一匹配相比于一对多匹配会分别损害encoder特征和decoder中attention的学习。
3. Method

为了能够让DETR检测器利用到一对多匹配的优势,论文基于DETR的训练框架引入了两点改进,分别对应到上文提到的encoder feature learning和decoder attention learning。
Co-DETR只在训练阶段加入辅助检测头,因此仅在训练阶段中引入额外的计算开销,不会影响到模型推理的效率。
(1)Encoder feature learning
在上文的分析中,我们发现在encoder后插入一个传统的ATSS检测头就能让encoder的特征更加显著。
受到这个的启发,为了增强encoder的学习能力,论文首先利用multi-scale adapter,将encoder输出的特征转化为多尺度的特征。
对于使用单尺度特征的DETR,这个adapter的结构就类似于simple feature pyramid。而对于多尺度特征的DETR,这个结构就是恒等映射。之后我们将多尺度的特征送入到多个不同的辅助检测头,这些检测头都使用一对多的标签分配。
由于传统检测器的检测头结构轻量,因此带来的额外训练开销较少。
(2)Decoder attention learning
为了增强decoder的attention学习,我们提出了定制化的正样本query生成。
在上文的分析中,我们发现传统检测器中的anchor是密集排列的,且能够提供dense且尺度敏感的监督信息。
那么我们能不能把传统检测器中的anchor作为query来为attention的学习提供足够的监督呢?当然是可以的,在上一步中,辅助的检测头已经分配好了各自的正样本anchor及其匹配的ground-truth。
我们选择直接继承辅助检测头的标签分配结果,将这些正样本anchor转化为正样本query送到decoder中,在loss计算时无需二分匹配,直接使用之前的分配结果。
与其他引入辅助query的方法相比,这些工作会不可避免地引入大量的负样本query,而我们只在decoder引入了正样本,因此带来的额外训练代价也较小。
相关文章:
DETRs with Collaborative Hybrid Assignments Training论文笔记
Title:[DETRs with Collaborative Hybrid Assignments Training Code 文章目录 1. Motivation2. one to one VS one to many3. Method(1)Encoder feature learning(2)Decoder attention learning 1. Motivation 当前…...
慧程HiperM3系列工业物联网、MES平台
产品链接:慧程产品主页...
SHELL 基础 入门(三) Bash 快捷键 命令执行顺序,详解通配符
目录 Bash 常用快捷键 输入输出重定向 << 用法 输出重定向 命令执行顺序 ; 分号 && || 通配符 传统通配符 ? * [ ] [ - ] [ ^ ] 常用字符 强调 : { } 生成序列 Bash 常用快捷键 Ctrl A 把光…...
nvm安装使用教程
文章目录 下载配置安装最新稳定版 node安装指定版本查看版本切换版本删除版本 常见问题安装node后 显示拒绝访问的问题使用cnpm会报错的问题降低cnpm版本npm镜像 下载 NVM for Windows 下载地址:https://link.juejin.cn/?targethttps%3A%2F%2Fgithub.com%2Fcoreyb…...
【Android】JUnit和Espresso单元测试新手快速入门
引入依赖 android {defaultConfig {testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}}dependencies {testImplementation junit:junit:4.13.2androidTestImplementation androidx.test.ext:junit:1.1.0androidTestImplementation androidx.tes…...
8.4 【C语言】通过指针引用字符串
8.4.1 字符串的引用方式 在C程序中,字符串是存放在字符数组中的。想引用一个字符串,可以用以下两种方法。 (1)用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格…...
【广州华锐视点】AR配电所巡检系统:可视化巡检利器
随着科技的发展,人工智能、大数据等技术逐渐应用于各个领域,为人们的生活带来便利。在电力行业,AR(增强现实)技术的应用也日益广泛。AR配电所巡检系统作为一种新型的巡检方式,可以实现多种功能,提高巡检效率࿰…...
微服务中间件--http客户端Feign
http客户端Feign http客户端Feigna.Feign替代RestTemplateb.自定义Feign的配置c.Feign的性能优化d.Feign的最佳实践分析e.Feign实现最佳实践(方式二) http客户端Feign a.Feign替代RestTemplate 以前利用RestTemplate发起远程调用的代码: String url "http:…...
C语言学习系列-->【关于qsort函数的详解以及它的模拟实现】
文章目录 一、概述二、qsort函数参数介绍三、qsort实现排序3.1 qsort实现整型数组排序3.2 qsort实现结构体数组排序 四、模拟实现qsort函数 一、概述 对数组的元素进行排序 对数组中由 指向的元素进行排序,每个元素字节长,使用该函数确定顺序。 此函数使…...
Linux系统安全:NAT(SNAT、DNAT)
目录 一.NAT 二.SNAT 三.DNAT 一.NAT NAT: network address translation,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四个链 请求报文:修改源/目标IP, 响应报文:修改源/目标IP,根据…...
【数据库】MySQL存储过程:提升数据库性能和操作效率的利器
在数据库管理系统中,存储过程是一种重要的数据库对象,它允许将一组复杂的SQL语句组合起来,形成一个独立的单元进行重复使用。存储过程可以极大地提高数据库的性能和操作效率,降低网络流量,减轻系统负载。本文将深入探讨…...
rust写一个多线程和协程的例子
当涉及到多线程和协程时,Rust提供了一些非常强大的工具,其中最常用的库之一是tokio,它用于异步编程和协程。下面我将为你展示一个简单的Rust程序,演示如何使用多线程和协程。 首先,你需要在你的项目的Cargo.toml文件中…...
react18+antd5.x(1):Notification组件的二次封装
antdesign已经给我们提供了很好的组件使用体验,但是我们还需要根据自己的项目业务进行更好的封装,减少我们的代码量,提升开发体验 效果展示 开起来和官网的使用没什么区别,但是我们在使用的时候,进行了二次封装,更利于我们进行开发 MyNotification.jsx,是我们的业务页面…...
jenkins运行pytest测试用例脚本报错:没有权限,无法写日志PermissionError:[Error 13]Permission denied
报错信息: PermissionError:[Error 13]Permission denied:‘/var/jenkins_home/workspace/deleverySystem/Delivery_System/out_files/logs/waimai_20230823.log’ 解决方法: 在jenkins容器内部输入 chmod -R 777 /var/jenkins_home/works…...
数据结构 day1
1>x.mind 2>间接定义结构体数组,进行4种方式的定义和初始化 3>定义结构体存储10辆车(车的信息:品牌、单价、颜色) 1.定义函数,实现循环输入 2.定义函数,实现排序 3.定义函数,计算红色车…...
湖北咸宁农业三维扫描数字化农业3d打印制造应用-CASAIM中科广电
农业是人类衣食之源、生存之本,是一切生产的首要条件,CASAIM在农业三维扫描和3d打印应用上有丰富经验。 1.三维扫描技术在农业领域的应用 CASAIM三维扫描是集光学、机电和计算机技术于一体的高新无损检测技术,能够对实物的空间外形、结构乃…...
Jenkins的定时任务配置
jenkins配置定时任务位置(点击日程表的问好可查看语法配置) jenkins的定时任务的参数 # 定时任务参数(每个参数之间使用tab键或空格分隔)MINUTE HOUR DOM MONTH DOW 参数解释取值范围 MINUTE 分钟0-59HOUR小时0-23DOM一月的天数1-31MONTH月份1-12DOW 一周的天数0…...
THINKPHP 微联云投票系统源码独立版 + 支持刷礼物
THINKPHP 微联云投票系统源码独立版 支持刷礼物 nginxphp7.2以上 mysql5.6以上 简单测试后台基本没什么问题,暂时发现H5前端有bug,自行修复。...
Mongodb两种启动方法
一、命令行启动 1.修改存放数据库的位置 说明:E:\data\mongodb;我在E盘创建的文件夹mongodb mongod --dbpathE:\data\mongodb 2.成功启动 说明:默认端口27017,代表已经启动成功 ,并在mongodb自动创建文件 二、配置项…...
Python:列表的浅拷贝与深拷贝
在python语言中,因为其面向对象的特性,在进行列表拷贝时可能会出现一些意想不到的结果,涉及到列表的浅拷贝和深拷贝相关问题,本文将对其进行总结。 首先我们来看以下代码。 my_list [1, 2, 3] your_list my_list your_list[0] …...
美胸-年美-造相Z-Turbo入门实战:跟着步骤操作,快速产出作品
美胸-年美-造相Z-Turbo入门实战:跟着步骤操作,快速产出作品 1. 快速了解美胸-年美-造相Z-Turbo 美胸-年美-造相Z-Turbo是一款基于Z-Image-Turbo架构优化的文生图模型,特别擅长生成具有特定艺术风格的人物图像。这个镜像已经预装了所有必要的…...
粒子追踪模拟单透镜聚焦comsol ansys Fluent 二维三维模型 仿真模型,文献复现
粒子追踪模拟单透镜聚焦comsol ansys Fluent 二维三维模型 仿真模型,文献复现,热湿传递在实验室折腾粒子追踪仿真的时候,最让人上头的莫过于单透镜聚焦的场景搭建。COMSOL和ANSYS这对冤家各有各的脾气——前者把物理场耦合玩出花࿰…...
新手福音:通过快马平台生成带注释的nap自动化运维脚本快速入门
作为一个刚接触网络自动化运维的新手,第一次看到"深圳网络自动化运维nap"这个概念时,整个人都是懵的。各种专业术语、复杂的协议和库让我望而却步,直到发现了InsCode(快马)平台,才真正找到了入门的好方法。 为什么选择n…...
泛微Ecology流程数据查询避坑指南:workflow_currentoperator表里isremark字段到底怎么用?
泛微Ecology流程数据查询实战:解密workflow_currentoperator表关键字段 在泛微Ecology系统的二次开发过程中,流程数据的精准查询往往是开发者面临的第一道门槛。特别是当需要对接第三方系统或构建定制化报表时,对workflow_currentoperator表中…...
OpenClaw技能开发入门:为nanobot镜像编写第一个插件
OpenClaw技能开发入门:为nanobot镜像编写第一个插件 1. 为什么需要自定义技能 当我第一次接触OpenClaw时,最让我惊喜的是它能够像人类一样操作电脑完成各种任务。但很快我发现,内置的基础技能并不能完全满足我的个性化需求。比如我需要定期…...
容盛兴达丨 32 寸医院自助查询终端机嵌入式触摸查询服务一体机
在数字化浪潮席卷各行各业的今天,医疗机构正经历着从传统服务模式向智慧化、人性化转型的关键时期。医院大厅里,患者及家属常常面临信息获取不便、排队时间长、流程不清晰等困扰。如何利用科技手段优化服务流程、提升患者就医体验,成为医院管…...
大多数加密API都不够用:量化团队真正需要的数据到底是什么?
如果你做过加密相关开发,无论是: 量化交易数据平台研究分析风控系统 你大概率都会经历一个阶段: 👉 API 接了一堆,但始终“不够用”。 常见的一个误区 很多人在刚开始做数据接入时,会觉得: …...
DownKyi架构深度解析:高效B站视频下载工具的技术实现与实战指南
DownKyi架构深度解析:高效B站视频下载工具的技术实现与实战指南 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印…...
QT加载动画卡顿?试试用QMovie+多线程优化你的等待提示框性能
QT加载动画性能优化实战:用QMovie与多线程打造流畅等待体验 当用户点击一个需要长时间处理的按钮时,那个旋转的小圆圈突然卡住不动了——这是许多QT开发者都遇到过的尴尬场景。更糟的是,整个界面随之冻结,用户只能无奈地看着无响应…...
s2-pro语音合成教程:通过API批量提交任务+异步结果回调实现
s2-pro语音合成教程:通过API批量提交任务异步结果回调实现 1. 平台简介 s2-pro是Fish Audio开源的专业级语音合成模型镜像,它能够将文本转换为自然流畅的语音。这个工具特别适合需要批量处理语音合成任务的场景,比如有声书制作、客服语音生…...
