论文解读:ICLR2025 | D-FINE

news2025/5/18 14:11:50

[2410.13842] D-FINE: Redefine Regression Task in DETRs as Fine-grained Distribution Refinement

D-FINE 是一款功能强大的实时物体检测器,它将 DETRs 中的边界框回归任务重新定义为细粒度分布细化(FDR),并引入了全局最优定位自蒸馏(GO-LSD),在不引入额外推理和训练成本的情况下表现出了最佳性能。

📌文章针对目前存在的问题: 

  • YOLO系列和DETRs系列虽然在实时性和性能方面都取得了不错的效果,但是仍然有一些问题没有解决,一个最关键的就是边界框回归问题,没有考虑对于模糊和不确定的边界是如何进行回归建模的,关于边界框回归,大家可以去看往期的博客:目标检测中的损失函数(一) | IoU GIoU DIoU CIoU EIoU Focal-EIoU_yolo的损失函数-CSDN博客文章浏览阅读1.1k次,点赞7次,收藏20次。目标检测中的边界框回归损失函数_yolo的损失函数 https://blog.csdn.net/Jacknbv/article/details/147366898?spm=1001.2014.3001.5501目标检测中的损失函数(二) | BIoU RIoU α-IoU_bounded iou loss-CSDN博客文章浏览阅读793次,点赞30次,收藏12次。目标检测中的损失函数_bounded iou loss https://blog.csdn.net/Jacknbv/article/details/147384854?spm=1001.2014.3001.5501目标检测中的损失函数(三) | SIoU WIoUv1 WIoUv2 WIoUv3_损失函数 wiou 1 2 3-CSDN博客文章浏览阅读806次,点赞11次,收藏9次。目标检测中的SIoU和WIoU损失函数_损失函数 wiou 1 2 3 https://blog.csdn.net/Jacknbv/article/details/147483335?spm=1001.2014.3001.5501大多数目标检测器通过回归固定的坐标来预测边界框,意思是,像 YOLO、Faster R-CNN 这类方法都是通过神经网络输出一组 [x, y, w, h],即左上角或中心点的位置和宽高,作为物体的边界框,这些坐标是确定的;把边界当作是精确的值来看待,这句说明了一个假设:框的边缘是明确的、精确的,没有不确定性或模糊性。例如,“这个框的左边是 x=30.5”,这就是一个确定值;被建模成 Dirac delta 分布,这是一种数学上的表述方式:Dirac delta 分布是一种“无限尖锐”的概率分布,只有在某个点有值,其它地方都是 0。用概率角度来说,它代表“某个值的概率是 100%,其他值是 0%”。所以,把边界看成 Dirac delta 分布,意思就是:检测器认为这个位置就是物体边缘的位置,没有任何不确定性或模糊性
  •  另外一个问题就是老生常谈的问题:实时检测的效率问题,这会受到计算资源和模型参数的限制

✨论文的主要贡献: 

  • 提出了一种新的实时对象检测器D-FINE,解决了固定坐标回归中优化困难的问题、无法对定位不确定性进行建模的问题,以及需要以更低的训练成本实现有效提炼的问题,D-FINE最重要的就是下面这两个组件了
  • Fine-grained Distribution Refinement (FDR) 将边界框回归从预测固定坐标转化为对概率分布的建模,提供了一种更精细的中间表示
  • Global Optimal Localization Self-Distillation (GO-LSD),将定位知识从更深的层转移到较浅的层,额外的训练成本可以忽略不计

🔔在文章的相关工作这里,主要介绍了实时/端到端的目标检测、基于分布的目标检测知识蒸馏,其中localization distillation (LD)(定位蒸馏)是把用于分类head的knowledge distillation (KD)用于目标检测的定位head。自蒸馏是KD的一个特例,它使早期层次能够从模型自身的精炼输出中学习,由于不需要单独培训教师模型,因此需要的额外训练成本要少得多。

💡重点关注FDR和GO-LSD是怎么做的? 

 ✨Fine-grained Distribution Refinement (FDR)

FDR迭代地优化由解码器层生成的细粒度分布。最初,第一个解码器层通过传统的边界盒回归头和D-FINE头(两个头都是MLP,只是输出维度不同)预测初步的边界盒和初步的概率分布。每个边界框与四个分布相关联,每个边对应一个分布。初始边界框用作参考框,而后续层则通过以残差方式调整分布来细化它们。然后应用改进的分布来调整相应的初始边界框的四个边,随着每次迭代逐步提高其精度。

FDR 模块不是直接输出新的概率分布,而是输出一个残差,这个残差会与上一层的概率分布相加,从而得到当前层更新后的概率分布。这样做的好处是可以通过逐步调整残差的方式,对概率分布进行更精细的优化,使得模型能够逐层调整边界框,逐步收敛到更精确的位置。

权重函数W(n)的作用是让模型对接近真实位置的偏移值进行更小的调整,而对远离真实位置的边界偏移赋予更大的权重1。通过这种方式,模型可以更加关注那些需要更多调整的边界偏移,从而提高对物体边界的定位精度。分布的加权和产生边偏移,然后按初始边界框的高度H和宽度W缩放这些边偏移,以确保调整与框大小成比例。

总体而言,FDR 通过这种基于残差更新和加权的概率分布细化方式,将传统的边界框预测转变为一个迭代细化的概率分布过程,从而显著提升了模型的定位精度,增强了对物体边界细致定位的能力,并且能够更好地处理定位的不确定性。

Global Optimal Localization Self-Distillation (GO-LSD)

GO-LSD利用最后一层的精细分布预测将定位知识提取到较浅的层中。该过程首先将匈牙利匹配算法 (https://onlinelibrary.wiley.com/doi/abs/10.1002/nav.3800020109  End-to-End Object Detection with Transformers | SpringerLink应用于每个层的预测,确定模型每个阶段的局部边界框匹配。为了进行全局优化,GO-LSD将所有层的匹配索引聚合到一个统一的联合集。这个联合集结合了跨层的最精确的候选预测,确保它们都从蒸馏过程中受益。除了优化全局匹配,GO-LSD还在训练期间优化不匹配的预测,以提高整体稳定性,从而提高整体性能。虽然通过这个联合集优化了定位,但是分类任务仍然遵循一对一的匹配原则,确保没有冗余框。这种严格的匹配意味着联合集中的一些预测具有很好的局部性,但置信度较低。这些低置信度的预测通常代表具有精确定位的候选框,但仍然需要有效地提取。

🥯针对上述这个问题,文章引入Decoupled Distillation Focal (DDF)损失去解决,这个损失是使用解耦加权策略来确保高IoU且低置信度的预测能被赋予适当的权重。DDF损失还根据匹配和不匹配预测的数量对它们进行加权,平衡它们的总体贡献和单个损失,使蒸馏更加稳定和有效。

KL散度也叫相对熵,是衡量两个概率分布差异的指标,T是用于平滑logits的温度参数,第k个匹配预测的蒸馏损失通过\alpha_{k}进行加权,K_{m}K_{u}分别是匹配和未匹配预测的数量,对于第k个不匹配的预测,权重是\beta_{k}Conf_{k}表示的是分类的置信度。

整体上是一个累加求和的形式,主要通过计算不同层级特征(从第1层到第L−1层 )与最后一层(第L层 )特征之间的 KL散度,并结合相应权重来得到损失值。

🧶实验 

 D-FINE在COCO和Objects365数据集上表现出色,参考下面的表格

将FDR和GO-LSD无缝集成到任何DETR体系结构中,在不增加参数数量和计算负担的情况下显著提高性能在COCO数据集上进行了测试。

对于预训练,将Objects365 训练集的图像与验证集相结合,不包括前 5k 张图像。为了进一步提高训练效率,预先将所有分辨率超过640 × 640的图像调整为640 × 640。使用标准 COCO2017 数据拆分策略、COCO train2017 的训练和 COCO val2017 的评估。 

 🛒消融实验  

D-FINE选择以RT-DETR-HGNetv2-L作为架构

将Target Gating Layer放置在解码器的交叉注意力模块之后代替残差连接,允许查询跨层动态地将焦点切换到不同的目标上,从而有效地防止信息纠缠。

 x_{1}表示先前的queries,x_{2}表示交叉注意力的结果,\sigma就是sigmoid激活函数,\left [ \cdot \right ]是表示串行操作。

将编码器的CSP层使用GELAN层替换,为了缓解模型复杂度,降低了GELAN的隐藏层维数。RT-DETRv2的训练策略主要就是针对不同D-FINE模型的基础超参数的选择,参考下面的表格:

文章讨论了a、c、N和T超参数的取值影响,当c非常大时,加权函数以相等的间隔逼近线性函数,太大或太小的a值可能会降低精细度或限制灵活性,从而对定位精度产生不利影响。 

文章比较了不同的蒸馏方法的性能,GPU使用了四张NVIDIA RTX 4090。

来看一下FDR的可视化效果,红色曲线表示初始分布,而绿色曲线表示最终的精细分布。加权分布强调精确预测附近的更精细调整,并允许对较大调整进行快速更改,进一步说明FDR如何细化初始边界框的偏移,从而导致越来越精确的定位。

  • D-FINE是一种强大的实时对象检测器,它通过FDR和GO-LSD重新定义 DETR 模型中的边界框回归任务。COCO 数据集上的实验结果表明,D-FINE 达到了最先进的准确性和效率,超过了所有现有的实时检测器。
  • D-FINE 模型和其他小模型的性能差距仍然很小,一个可能的原因是浅层解码器层可能会产生不太准确的最后一层预测,从而限制了将定位知识提取到早期层的有效性
  • 未来的研究可以进一步探索更先进的架构设计或新颖的训练范例,以在保持轻量级推理的同时增强较轻模型的定位能力

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

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

相关文章

9.DMA

目录 DMA —为 CPU 减负 DMA 的简介和使用场景 DMA 的例子讲解 STM32 的 DMA 框图和主要特性 ​编辑 DMA 的通道的对应通道外设 – DMA 和哪些外设使用 ​编辑​编辑ADC_DR 寄存器地址的计算 常见的数据滤波方法 ADCDMA 的编程 DMA —为 CPU 减负 DMA 的简介和使用场…

大语言模型 10 - 从0开始训练GPT 0.25B参数量 补充知识之模型架构 MoE、ReLU、FFN、MixFFN

写在前面 GPT(Generative Pre-trained Transformer)是目前最广泛应用的大语言模型架构之一,其强大的自然语言理解与生成能力背后,是一个庞大而精细的训练流程。本文将从宏观到微观,系统讲解GPT的训练过程,…

python基础语法(三-中)

基础语法3&#xff1a; 2.列表与元组&#xff1a; <1>.列表、元组是什么&#xff1f; 都用来存储数据&#xff0c;但是两者有区别&#xff0c;列表可变&#xff0c;元组不可变。 <2>.创建列表&#xff1a; 创建列表有两种方式&#xff1a; [1].a 【】&#x…

ZTE 7551N 中兴小鲜60 远航60 努比亚小牛 解锁BL 刷机包 刷root 展讯 T760 bl

ZTE 7551N 中兴小鲜60 远航60 努比亚小牛 解锁BL 刷机包 刷root 3款机型是一个型号&#xff0c;包通用&#xff0c; ro.product.system.modelZTE 7551N ro.product.system.nameCN_P720S15 #################################### # from generate-common-build-props # Th…

信息系统项目管理师高级-软考高项案例分析备考指南(2023年案例分析)

个人笔记整理---仅供参考 计算题 案例分析里的计算题就是进度、挣值分析、预测技术。主要考査的知识点有:找关键路径、求总工期、自由时差、总时差、进度压缩资源平滑、挣值计算、预测计算。计算题是一定要拿下的&#xff0c;做计算题要保持头脑清晰&#xff0c;认真读题把PV、…

产品经理入门(2)产品体验报告

产品体验报告大纲&#xff1a;重点在产品体验——优点。 1.产品概括 可以从各大平台搜产品介绍。 2.市场分析 按照产品方向分析各个指标——包括有效使用时间,市场规模等。 3. 用户分析——对用户通过各项指标画像。 4.产品体验——对各项功能与设计的体验。 5.报告总结

C43-指针与数组

一 定义一个指针变量指向数组 1.途径一:指向数组首元素的地址 代码示例: #include <stdio.h> int main() {int arr[3]{2,4,5};int *p;p&arr[0];printf("该数组的首元素是:%d",*p);return 0; }成果展示: 报错与总结: 给指针变量赋值时,未在数组首元素前输…

UDP--DDR--SFP,FPGA实现之ddr读写控制模块

DDR读写控制模块实现介绍 由于该模块接口数量较多&#xff0c;为了详细说明模块实现&#xff0c;采用文字流程进行介绍 上级模块传输数据到来捕捉数据有效上升沿传输写指令&#xff0c;写有效&#xff0c;写指令成功被下一级模块缓存&#xff0c;进行写地址一次读写长度&…

云计算与大数据进阶 | 26、解锁云架构核心:深度解析可扩展数据库的5大策略与挑战(上)

在云应用/服务的 5 层架构里&#xff0c;数据库服务层稳坐第 4 把交椅&#xff0c;堪称其中的 “硬核担当”。它的复杂程度常常让人望而生畏&#xff0c;不少人都将它视为整个架构中的 “终极挑战”。 不过&#xff0c;也有人觉得可扩展存储系统才是最难啃的 “硬骨头”&#…

AI Agent | Coze 插件使用指南:从功能解析到实操步骤

一、前言 在人工智能技术飞速发展的今天&#xff0c;低代码开发模式正成为构建智能应用的主流趋势。对于希望快速搭建 AI Bot 的开发者和业务人员而言&#xff0c;coze作为一款强大的低代码 AI 开发平台&#xff0c;凭借其高度模块化的插件体系脱颖而出。这些插件就像搭建智能…

MK米客方德SD NAND:无人机存储的高效解决方案

在无人机技术迅猛发展的当下&#xff0c;飞控系统的数据记录对于飞行性能剖析、故障排查以及飞行安全保障极为关键。以往&#xff0c;SD 卡是飞控 LOG 记录常见的存储介质&#xff0c;但随着技术的革新&#xff0c;新的存储方案不断涌现。本文聚焦于以 ESP32 芯片为主控制器的无…

【vscode】解决vscode无法安装远程服务器插件问题,显示正在安装

文章目录 现状分析采用VSIX离线安装第一步&#xff1a;离线下载插件包第二步&#xff1a;把下载好的插件文件上传到远程服务器上第三步&#xff1a;在windows下打开vscode&#xff0c;并链接远端&#xff0c;进行安装 现状分析 vscode无法远程安装扩展插件&#xff0c;显示正在…

【Spring】Spring的请求处理

欢迎来到啾啾的博客&#x1f431;。 记录学习点滴。分享工作思考和实用技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604;。 目录 引言HTTP/HTTPS协议Spring Web与Spring Web MVCSpring WebFlux 自定义的TPC/IP协议FTP、S…

粒子群算法(PSO算法)

粒子群算法概述 1.粒子群优化算法&#xff08;Particle Swarm Optimization&#xff0c;简称PSO&#xff09;。粒子群优化算法是在1995年由Kennedy博士和Eberhart博士一起提出的&#xff0c;它源于对鸟群捕食行为的研究。 2.基本核心是利用群体中的个体对信息的共享从而使得整…

LLM智能体新纪元:深入解析MCP与A2A协议,赋能智能自动化协作

LLM智能体&#xff08;LLM agents&#xff09;是能够自主行动以实现特定目标的AI系统。在实际应用中&#xff0c;智能体能够将用户请求拆解为多个步骤&#xff0c;利用知识库或API获取数据&#xff0c;最终整合出答案。这让智能体相比于传统独立聊天机器人拥有更强大的能力——…

SAP学习笔记 - 开发豆知识01 - CDS SDK命令出乱码 (cds init CAP-Test03 --add java)

1&#xff0c;现象 安装完VSCode以及各种需要的插件&#xff08;比如SAP CDS Language Support&#xff09;&#xff0c;就可以做CAP开发。 用这个命令创建Project&#xff1a;cds init CAP-Test03 --add java 然后出来一个乱码错误 adding java The derived package name c…

(C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)(网页版预告)(html)(js)(json)

目录 前言&#xff1a; 源代码&#xff1a; product.h product.c fileio.h fileio.c main.c json_export.h json_export.c tasks.json idex.html script.js 相关步骤&#xff1a; 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 第五步…

进阶-数据结构部分:​​​​​​​2、常用排序算法

飞书文档https://x509p6c8to.feishu.cn/wiki/FfpIwIPtviMMb4kAn3Sc40ABnUh 常用排序算法 这几种算法都是常见的排序算法&#xff0c;它们的优劣和适用场景如下&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a;简单易懂&#xff0c;时间复杂度较高&…

25、DeepSeek-R1论文笔记

DeepSeek-R1论文笔记 1、研究背景与核心目标2、核心模型与技术路线3、蒸馏技术与小模型优化4、训练过程简介5、COT思维链&#xff08;Chain of Thought&#xff09;6、强化学习算法&#xff08;GRPO&#xff09;7、冷启动**1. 冷启动的目的****2. 冷启动的实现步骤****3. 冷启动…

LeetCode --- 156双周赛

题目列表 3541. 找到频率最高的元音和辅音 3542. 将所有元素变为 0 的最少操作次数 3543. K 条边路径的最大边权和 3544. 子树反转和 一、找到频率最高的元音和辅音 分别统计元音和辅音的出现次数最大值&#xff0c;然后相加即可&#xff0c;代码如下 // C class Solution {…