目标检测DINO-DETR(2023)详细解读

文章目录

    • 对比去噪训练
    • 混合查询选择
    • look forward twice

论文全称为:DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection

提出了三个新的方法:

  1. 首先,为了改进一对一的匹配效果,提出了一种对比去噪训练方法,通过同时添加同一个GT的正、负样本来进行对比去噪训练。在同一个GT中加入两个不同的噪声后,将具有较小噪声的框标记为正,另一个标记为负。对比去噪训练可以帮助模型避免同一目标的重复输出

  2. 其次,使用了一种类似两阶段的模型(Deformable DETR的two stage)。提出了一种混合查询选择方法,这有助于更好地初始化查询. 从encoder的输出中选择初始锚定框作为位置查询,类似于Deformable DETR.然而,让内容查询像以前一样可以学习,从而鼓励第一个解码器层关注空间先验(空间位置先验与当前的图像更加的相关)

  3. 第三,为了利用后期层的refined box信息来帮助优化相邻早期层的参数,提出了一种新的look forward twice方案,用后面的层的梯度来修正更新后的参数

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

DINO-DETR的整体架构如上图所示,首先通过backbone得到多尺度的特征,然后给特征加上位置编码,将他们喂给Transformer Encoder得到增强后的特征。在decoder之前,作者将原本的decoder query视作两个部分,位置query和内容query。作者提出了一种新的混合的query selection策略来初始化作为位置query的anchors,但是内容query不会初始化(仍然是可学习的使它们保持可学习性)。通过这些用初始化后的anchors(位置)和可学习的内容query, 作者使用Deformable-DETR的deformable attention来组合来自encoder输出的特征,逐层更新decoder query。最终网络通过内容query预测refined anchor boxes和分类等结果。同时作者改进了DN-DETR,提出了一个对比去噪训练的方法,在DN-DETR的基础上将困难负样本考虑在内。最后为了充分利用后层refined box的信息来优化紧邻的前一层的网络参数,作者还提出了一个look forward twice方法。下面分别详细讲讲上述提到的几个改进。

对比去噪训练

DN-detr的去噪训练帮助网络学习基于那些在gt boxes周围的anchors进行预测。但是它没有考虑去预测“no object"的情况,即那些anchors周围没有gt boxes的时候,应该预测出负例。因此作者在DN-DETR的基础上额外构造了负样本,即提出Contrastive DeNoising (CDN)。

在实现上,DINO-DETR拥有两个超参数 λ1,λ2(λ1<λ2) 用于控制正负噪声样本的生成,而DN-DETR只有一个超参数 λ ,DN-DETR控制生成的噪声不超过 λ 并期望网络可以用在gts附近的轻微噪声querys去重构出gts。

如下图右侧所示的同心正方形,DINO-DETR构造正负两种类型的CDN queries,其中positive queries在内部方形,有着比 λ1 更小的噪声scale, 用于重构出他们对应的gts;negative queries在内部方形和外部方形之间,即噪声scale在λ1,λ2(λ1<λ2)之间。作者表示可以通过更小的 λ2 构造困难负样本来提高模型性能。一个CND group可以包含多个正样本和负样本,例如一张图片有n个gts, 每个gt有一正一负两个噪声样本,那么一个CND group有2xn个queries。

该方法之所以有效,是因为它可以抑制混淆,并选择高质量的anchors(查询)来预测边界框。当多个anchors靠近一个对象时,就会发生混淆,在这种情况下,模型很难决定选择哪个锚点。这种混淆可能会导致两个问题:

  1. 第一个是重复的预测。虽然detr类的模型可以通过基于集合的损失和自我注意的帮助来抑制重复的盒子,但这种能力是有限。使用CDN查询,可以区分anchors之间的细微差别,并避免重复的预测
  2. 第二个问题是,一个远离GT并且不应该被选择的某个anchor可能会被选择上,虽然去噪训练改进了模型来选择附近的anchor。但CDN通过让模型拒绝更远的anchor,进一步提高了这种能力。

混合查询选择

如(a)所示,在DETR 、DN-DETR 和DAB-DETR 中,解码器查询是静态嵌入,而不从图像中获取任何编码器特征,它们直接从训练数据中学习位置和内容查询,并将内容查询设置为全部都是0的tensor;Deformable Detr的其中一个变体(two-stage),它从编码器最后输出中选择前K个编码器特征作为先验,以增强解码器查询。如图(b)所示,位置查询和内容查询都是通过对所选特性的线性变换生成的。此外,这些被选中的特征被输送到一个辅助检测头,以获得预测方框,并将其用于初始化参考方框。

在DINO中,只使用与所选 Top-K 特征相关的位置信息来初始化锚点框,而内容查询则保持不变,如图(c)所示(Deformable DETR 不仅利用 Top-K 特征来增强位置查询,还增强了内容查询)

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

内容查询保持不变的原因:由于所选特征是未经进一步完善的初步内容特征,它们可能会含糊不清并误导解码器。例如,一个选定的特征可能包含多个对象,也可能只是一个对象的一部分。与此相反,我们的混合查询选择方法只用前 K 个选定特征来增强位置查询,并保持内容查询的可学习性。这有助于模型利用更好的位置信息,从编码器中汇集更全面的内容特征。

look forward twice

传统的decoder layer每层分别优化看做look forward once模式(如Deformable DETR其中的一个变体),其中 b i − 1 b_{i−1} bi1是上一层的锚框预测,经过Layer i (Decoder的box_head的修正)后得出偏移量Δ b i b_{i} bi ,来得到新的参考点 b i ’ b_{i}’ bi,进一步得到预测值 b i p r e d b_{i}^{pred} bipred ,预测值会在辅助头进行损失计算并进行反向传播(只在本层进行梯度反向传播,梯度不会回传到前一层),当前层的预测点作为后一层的参考点(即 b i b_{i} bi的值和 b i ’ b_{i}’ bi的值是一样的),虚线表示梯度被截断,所以梯度不会回传到前一层(Deformable detr认为如果不进行隔断处理的话,会导致网络非常难以学习)。

作者认为来自后一层的改进box的信息可以帮助校准其相邻的前一层的预测结果。所以他相当于让每层预测的结果往后多传递了一层,也就是 b i − 1 p r e d b_{i−1}^{pred} bi1pred 是根据前一层的参考点 b i − 1 ’ b_{i−1}’ bi1和Δ b i b_{i} bi得到的(如图b),这样预测进行反向传播的时候,梯度会传回到前一层。(这样做的原因:因为最终取得的结果是最后一层的prediction,所以希望前面的层在优化的时候也会考虑一下后面的层,通过试验得到forward两次效果最好)

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

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

相关文章

深度学习-162-DeepSeek之调用远程大模型API接口参数结构分析

文章目录 1 文本对话请求1.1 请求参数1.1.1 参数说明1.1.2 参数总结1.2 返回参数1.2.1 id1.2.2 choices1.2.3 usage1.2.4 created1.2.5 model1.2.6 object1.2.7 参数总结2 应用示例2.1 调用大模型API2.2 返回结果3 参考附录分析文本对话请求v1/chat/completions的参数结构含义。…

uniapp原生插件

前言 使用uniapp开发Android app时&#xff0c;一些特定的需求没办法实现的时候就只能开发原生插件或者uts插件去满足需求&#xff0c;我的需求目前uts插件没法实现&#xff0c;只能靠原生插件了&#x1f606; 需求&#xff1a;拍照不保存图片到相册&#xff0c;uniapp的API或…

CVE-2024-42323

漏洞名称 Apache HertzBeat SnakeYaml 反序列化远程代码执行漏洞&#xff08;CVE-2024-42323&#xff09; 漏洞描述 Apache HertzBeat 是一款开源的实时监控告警工具&#xff0c;支持对操作系统、中间件、数据库等多种对象进行监控&#xff0c;并提供 Web 界面进行管理。 在…

“人工智能+多学科”选题思路,2025热点AI+(180个)

给大家整理了一份超全的论文资料合集 不仅有论文创新点的干货知识、开题报告模板、文献综述模板、审稿意见回复模板、还有全套的SCI论文写作指导教程和人工智能各方向经典的论文合集以及各大热门科研和论文写作润色工具等 以及1000G人工智能资料包&#xff08;如下图&#xff…

LangChain4j入门AI(八)使用RAG增加私有知识库

前言 我们通过提示词工程提升了通用LLM的专业知识水平&#xff0c;并结合Function Calling构建了私有业务能力。为了在实际应用中有效维护私有领域的专有数据&#xff0c;我们进一步采用大模型微调或RAG检索增强技术&#xff0c;使LLM能够充分掌握私有知识库的内容。 一、微调…

使用arXiv.org上的资源进行学术研究

arXiv.org e-Print archive arXiv.org 是一个收集物理学、数学、计算机科学、定量生物学、定量金融学和统计学等领域学术论文预印本的网站&#xff0c;其使命是促进科学文献的传播与交流。以下是关于该网站的详细介绍&#xff1a; 核心定位与功能 学术预印本平台&#xff1a…

Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么?

在 Redis 中&#xff0c;缓存击穿、缓存穿透和缓存雪崩是常见的缓存问题&#xff0c;它们都会影响系统的性能和稳定性。以下是针对这三个问题的详细解释&#xff1a; 一、缓存击穿&#xff08;Cache Breakdown&#xff09; 定义&#xff1a;缓存击穿是指某个热点数据在缓存中…

RabbitMQ配置环境变量

一、RabbitMQ下载 1、从官网下载 在官网中下载&#xff0c;适合自己电脑的版本。我直接下载的windows版本。 然后下载opt这个软件这个版本适合3.6.3的RabbitMQ&#xff0c;点击蓝色的字体即可下载。 2、安装erlang 当你双击安装程序并进入安装向导后&#xff0c;会看到这样…

基于vue框架的东莞市二手相机交易管理系统5yz0u(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,相机分类,二手相机 开题报告内容 基于FlaskVue框架的东莞市二手相机交易管理系统开题报告 一、研究背景与意义 1.1 研究背景 随着数字技术的迅猛发展和摄影文化的广泛普及&#xff0c;相机已成为人们记录生活、表达创意的重要工…

dify调用Streamable HTTP MCP应用

一、概述 上一篇文章&#xff0c;介绍了使用python开发Streamable HTTP MCP应用&#xff0c;链接&#xff1a;https://www.cnblogs.com/xiao987334176/p/18872195 接下来介绍dify如何调用MCP 二、插件 安装插件 需要安装2个插件&#xff0c;分别是&#xff1a;Agent 策略(支持 …

笔记:将一个文件服务器上的文件(一个返回文件数据的url)作为另一个http接口的请求参数

笔记&#xff1a;将一个文件服务器上的文件&#xff08;一个返回文件数据的url&#xff09;作为另一个http接口的请求参数 最近有这么个需求&#xff0c;需要往某一个业务的外部接口上传文件信息&#xff0c;但是现在没有现成的文件&#xff0c;只在数据库存了对应的url&#…

如何在 FastAPI 中合理使用 Pydantic 的 Alias

下面的内容是我跟 Gemini 2.5 Pro 探讨关于Pydantic 的 Alias 问题之后&#xff0c;让它总结的一篇技术博客。 我已经有很长一段时间没有好好写技术类的博客了&#xff0c;这就是原因。 可以在 https://panzhixiang.cn/ 查看更多我的博客&#xff0c;有技术的&#xff0c;也有很…

CAU人工智能class4 批次归一化

归一化 在对输入数据进行预处理时会用到归一化&#xff0c;将输入数据的范围收缩到0到1之间&#xff0c;这有利于避免纲量对模型训练产生的影响。 但当模型过深时会产生下述问题&#xff1a; 当一个学习系统的输入分布发生变化时&#xff0c;这种现象称之为“内部协变量偏移”…

动态库和静态库详解

库其实就是个文件 下面是文件后缀 静态库&#xff1a;.a(linux) .lib(windows) 动态库&#xff1a;.so(linux) .dll(windows) 静态库的制作 ar -rc libmystdio.a my_stdio.o my_string.o ar是归档工具&#xff0c;rc表示replace和create&#xff0c;ar跟tar有点…

PDF 文档结构化工具对比:Marker 与 MinerU

模型训练数据-MinerU一款Pdf转Markdown软件 https://codeyuan.blog.csdn.net/article/details/144315141 在当前大模型&#xff08;LLM&#xff09;和自然语言处理&#xff08;NLP&#xff09;应用快速发展的背景下&#xff0c;如何高效地将 PDF 等非结构化文档转换为结构化数…

shp2pgsql 导入 Shp 到 PostGIS 空间数据库

前言 ❝ shp2pgsql是PostGIS自带的命令行工具&#xff0c;用于将Shapefile文件声称SQL脚本导入到PostGIS空间数据库。 1. 安装 PostGIS 通过Application Stack Builder或者下载单独的PostGIS包进行安装。而shp2pgsql则是与PostGIS工具集成在一起&#xff0c;无需单独下载。该命…

【ISP算法精粹】什么是global tone mapping和local tone mapping?

1. 简介 全局色调映射&#xff08;Global Tone Mapping&#xff09;和局部色调映射&#xff08;Local Tone Mapping&#xff09;是高动态范围&#xff08;HDR&#xff09;图像处理中的两种关键技术&#xff0c;用于将高动态范围图像的亮度值映射到标准动态范围&#xff08;LDR…

虚拟环境中VSCode运行jupyter文件

用VS Code打开jupyter文件&#xff0c;点击右上角 Select Kernel 在正上方会出现这个选择框&#xff0c;选择 Python Environment 会出来所有的虚拟环境&#xff0c;选择要用的环境行

如何计算VLLM本地部署Qwen3-4B的GPU最小配置应该是多少?多人并发访问本地大模型的GPU配置应该怎么分配?

本文一定要阅读我上篇文章&#xff01;&#xff01;&#xff01; 超详细VLLM框架部署qwen3-4B加混合推理探索&#xff01;&#xff01;&#xff01;-CSDN博客 本文是基于上篇文章遗留下的问题进行说明的。 一、本文解决的问题 问题1&#xff1a;我明明只部署了qwen3-4B的模型…

antv/g6 图谱封装配置(二)

继上次实现图谱后&#xff0c;后续发现如果要继续加入不同样式的图谱实现起来太过麻烦&#xff0c;因此考虑将配置项全部提取封装到js文件中&#xff0c;图谱组件只专注于实现各种不同的组件&#xff0c;其中主要封装的点就是各个节点的横坐标&#xff08;x&#xff09;,纵坐标…