目标检测DiffusionDet: Diffusion Model for Object Detection

news2025/1/16 14:54:44

先贴一张流程图:


github:GitHub - ShoufaChen/DiffusionDet: PyTorch implementation of DiffusionDet (https://arxiv.org/abs/2211.09788)

pdf: https://arxiv.org/abs/2211.09788

Abstract: 本文提出了一个新的框架DiffusionDet将目标检测问题构建为一个从带噪框到目标框的降噪扩散过程在训练阶段,目标框从GT框扩散到随机分布,模型学习如何逆转这个噪声过程在推理阶段,模型将一系列随机的框逐步改善为输出结果。在MS-COCO和LVIS数据集上,DiffusionDet和已有的目标检测器相比具有较好的性能。本文在目标检测方面带来了两个重要发现:1. 随机的框虽然和预设的anchors或者学习好的queries有很大的不同,但也是有效的目标候选者;2. 目标检测这种代表性的感知任务,也可以通过生成方式解决。

1. Introduction

目标检测的背景:目标检测旨在预测一组边界框和目标的相关类别标签。做为一项基础的视觉识别任务,他已经称为许多相关任务的基石,如实例分隔,位姿估计,行为识别,目标跟踪,视觉关系检测等。

现有的目标检测方法:近年来目标检测方法随着目标候选的发展而不断改进,从经验对象先验(empirical object priors)到可学习目标查询(learnable oject queries)。具体地,大多数检测器通过对基于经验设计的目标候选定义一个代理回归模块(surrogate reegression)和一个分类模块来解决检测问题,比如滑动窗口(sliding windows),区域建议(region proposals),锚框(anchor boxes),和参考点(reference points)等。最近,DETR提出可学习的目标查询(learnable oject queries)来避免很多手动设计的网络模块并提出了一个端到端的检测pipeline,在基于查询的检测范式上吸引了大量的关注。

已有方法的缺点和本文动机:尽管以上这些检测方法有着简单且有效的设计,但他们还是依赖于a fixed set of learnable queries. 因此,本文提出一个问题:是否存在一个简单的方法不需要the surrogate of learnable queries?

本文核心思想:本文设计了一个新颖的检测框架,从一系列随机框中直接检测目标。随机的目标框不包含任何可学习的参数,即在训练阶段不用优化它,本文期盼渐进地改善这些框的位置和尺寸直到他们很好地覆盖了目标。这种noise-to-box的方法不需要任何启发式的目标先验或者可学习的queries,进一步简化了目标候选并推动目标检测的发展。如下图所示,noise-to-box的思想在降噪扩散模型中类似于noise-to-image的过程,noise-to-image是一类基于概率的模型通过可学习的降噪模型来逐渐移除噪声从而生成图像。扩散模型已经在许多生成任务上取得了巨大的进展,并开始在感知任务上探索。然而,扩散模型还从未在目标检测任务上成功应用。

DiffusionDet流程:本文提出DiffusionDet, 将目标检测任务看作是目标框在位置(center coordinates)和尺寸(widths and heights)上的生成任务。在训练阶段向GT框添加由a variance schedule控制的高斯噪声;然后这些带噪的框在backbone encoder得到的特征图上裁剪RoI区域的特征,继而进行训练以预测无噪的GT框。通过该训练阶段,DiffusionDet能从任意的框中预测到GT框。在推理阶段DiffusionDet通过逆转扩散过程生成边界框,其调整了噪声先验分布到边界框的分布上。

DiffusionDet的两大优势:DiffusionDet的noise-to-box的流程具有once-for-all的优势:可以仅训练网络一次,用相同的网络参数在推理阶段的各种各样的设置。

  1. Dynamic boxs: 将随机框做为目标候选,DiffusionDet可以用N_{train}任意的框训练同时用N_{eval}任意的框测试,这里N_{eval}是任意的不需要等于N_{train}。
  2. Progressive refinement: 扩散模型帮助DiffusionDet迭代地改善,可以挑战降噪采样的步数来提升检测精度或者加速推理。因此,DiffusionDet非常灵活可以是应用各类对精度和速度需求不同的检测场景。

实验结果:在MS-COCO数据集上对DiffusionDet进行测试,ResNet-50做为backbone, DiffusionDet使用单采样步骤实现了45.5的AP,比Faster-RCNN(40.2 AP)和DETR(42.0 AP), Sparse R-CNN (45.0 AP)明显更好。此外,增加DiffusionDet的采样步数可将其AP值增加至46.2。现存的其他技术就没有这样的改善属性而且以迭代地方式评价时性能会显著下降。此外,在LVIS上进行了测试,DiffusionDet对长尾数据集的性能也很好,在Swin-Base backbone下实现了42.1的AP。

本文的贡献如下:

  • 将目标检测构建为生成式降噪过程,这是第一个应用扩散模型到目标检测任务的研究;
  • 这种noise-to-box的检测范式有一些非常好的特性,比如对于动态框和渐进改善的过程解耦了训练和评价阶段;
  • 在MS-COCO和LVIS数据集上进行了实现,效果良好。

2. Related Work

Object detection. 大部分现在的目标检测方法在经验目标先验(empirical object priors, 如proposals, anchors, points)上执行框回归和类别分类。近期,Carion提出DETR通过一些列固定的learnable queries来检测目标。自此,基于query的检测范式吸引了大量地关注。本文中通过DiffusionDet推动目标检测范式的发展,DiffusionDet和其他类型的检测方法的对比如下图。

 Diffusion model. 做为一类深度生成模型,扩散模型从具有随机分布的样本开始并通过逐渐降噪过程恢复数据。扩散模型最近在计算机视觉、自然语言处理、语音处理、扩学科领域已经实现了显著的结果。

Diffusion model for perception tasks. 扩散模型在图像生成已经展示了巨大的成功,启用于鉴别式任务的潜力还未被探索。一些之前的工作试图将扩散模型用于图像分割任务,比如,Chen使用Bit扩散模型用于图像和视频的全景分隔。尽管这个想法很有趣,但是还没有研究成功地将生成式扩散模型用于目标检测中,其进展明显滞后于分割任务。作者猜想可能是因为分分割任务以image-to-image的形式处理,其在概念上更接近图像生成任务,而目标检测任务是一个集合预测问题,他需要分配目标候选到GT目标上。

3. Approach

3.1 Preliminaries

Diffusion model. 扩散模型受到非平衡态热力学启发,是一类likelihood-based模型。这些模型以马尔科夫链定义了扩散前馈过程,向样本数据中逐渐添加噪声。前馈的加噪过程,训练过程,推理过程展示如下:

3.2 Architecture

因为扩散模型以迭代的方式重建样本,它需要在推理阶段运行网络多次。但是,在每个迭代步骤中直接将网络应用于原始图像在计算上是难以处理的。因此,本文将这个模型分为了2个部分:image encoder和detection decoder。前者只运行一次用于从原始图像中提取深度特征,后者将深度特征做为条件,渐进地改进目标框预测。

Image encoder. 用ResNet, Swin, Feature Pyramid network

Detection decoder. 借鉴Sparse R-CNN, 检测解码部分将一系列建议框裁剪的ROI特征送入检测头中获得框的回归和分类结果,本文的检测解码部分包括了6个级联阶段。本文和Sparse R-CNN的区别在于:

DiffusionNetSparse R-CNN
在推理阶段,从多个随机框开始在推理阶段,用了一个learned boxes的固定集合
只需要建议框以建议框和对应的特征为输入对
以迭代采样的方式重利用检测头只在前馈阶段使用检测编码部分一次

3.3 Training

训练过程的伪代码如下图所示,即加噪并训练模型来恢复数据

3.4 Inference

推理过程的伪代码如下图所示,即降噪得到目标框

Sampling step. 在每个采样步骤中,随机框或者上一次采样的估计框被送入检测解码器中来预测目标类别和框的坐标。在获得当前步骤的框时,DDIM用于估计下一步的框。此外,不使用DDIM也行,但性能会大大下降。

Box renewal. 在每次采样后,预测框可被粗糙地分为2类:desired 和undesired预测。desired预测包含了正确定位对应物体的框,undesired预测是随机分布的。直接将undesired预测送入下一次采样不会带来任何好处,因为他们的分布在训练过程中没有被构建。为了使得推理过程和训练过程更对应,本文提出box renewal通过用随机框替代他们来拯救这些undesired预测。具体地,先通过阈值过滤出undesired预测,然后通过新的随机框和剩下的框级联。

4. Experiments

4.1 Implementation Details

ResNet和Swin backbone分别用ImageNet-1K和Image-22K预训练;

用Xavier初始化检测解码部分;

AdamW优化器, 初始lr=2.5x10^-5, weight decay=10^-4;

8 GPUs上训练,mini-batch size为16;

4.2 Main Properties

4.3 Benchmarking on Detection Datasets

 

4.4 Ablation Study

5. Conclusion and Future Work

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

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

相关文章

Lombok的@Data注解包含的方法(没有全参构造方法)

Lombok的Data注解包含的方法(没有全参构造方法) 目录Lombok的Data注解包含的方法(没有全参构造方法)结论:测试:1.Maven引入依赖2.安装lombok插件3.编写实体类4.编译5.查看target文件6.编译后的源代码结论&a…

实用的3款视频添加水印软件分享,简单易上手

如今刷短视频已经成为许多小伙伴饭后闲暇之余消遣的项目,也有不少人因此加入了创作短视频的队列。但是在分享前,最好是对自己的作品加上水印。为什么呢?第一是可以起到更好的宣传作用,第二是防止他人盗窃作品内容,毕竟…

卷积输入输出维度计算公式,Conv, Dilation Conv, Padding, Kernel_size, Output的维度计算关系

define i input o output p padding k kernel_size s stride d dilation 公式 o [i 2p - k - (k-1)(d-1)]/s 1 举例 当 padding “same” 时,输入尺度和输出尺度相同。 oi 则有: p[(i-1)s-i k(k-1)(d-1)]*0.5 假设 k5, s1, 那么 p[(i-1) …

深度学习入门---《白话机器学习的数学》笔记

文章目录一、基础:回归的实现1、训练数据click.csv2、参考公式:3、代码实现:4、运行结果:5、验证:二、多项式回归1、参考公式2、代码实现3、运行结果三、随机梯度下降法的实现1、参考公式小批量(mini-batch…

F. Quests(二分)

Problem - F - Codeforces 有n个任务。如果你完成第i个任务,你将获得ai币。你每天最多只能完成一个任务。然而,一旦你完成了一个任务,在K天内你不能再做同样的任务。(例如,如果k2,你在第1天做了任务1,那么你…

radiantq:jQuery Gantt Package--好使的HTML5甘特图

Radiantq--jQuery Gantt Package是一个真正跨平台的、基于原生 HTML5/jQuery 的实现,带有 2 个不同的甘特图小部件。 部署在众多垂直领域 无论您的应用程序属于哪个领域,甘特图都是基于时间的信息的理想可视化工具,包括在软件开发、施工、钻井…

JNoteHelper 给你的java swing或桌面程序提供一双翅膀

JNoteHelper 使用swing构建的java程序, 主要基于miglayout,swingx,flatlatf, 本来打算作为个人笔记的助手, 但是事与愿违, 发现理想和现实很骨感. 项目基于windows测试及开发 ,所以运行效果图片都基于windows 截图 1. 项目地址 JNoteHelper github地址 gitee地址 gitcode地址…

玩法专利获批,发布4年《Beat Saber》为何持续火爆

从2018年首次上线以来,《Beat Saber》被大家爱了4年多,直到现在热度未减,依然是史上最赚钱的VR游戏之一。该作最开始的概念,就是用红、蓝两色的光剑,根据箭头方向和节奏去切方块,玩法简单爽快,受…

Qt QSS QSlider样式

本文章主要学习QSlider样式 准备下面几张背景图片: 调小图标 、调大图标 ​、QSlider位置图标 ​QSlider划过的背景图标 ​、QSlider未划过的背景图标 ​最终效果图 自己创建一个QSlider工程,此处省略…… CSDN QT大纲:Qt开发必备技术栈学…

[附源码]java毕业设计鞋店销售管理

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

DM-VERITY流程分析

DM-Verity分析报告 0.问题的表现形式 1.dm-verity的初始化及验证流程 1.1 dm-verity的初始化 初始化dm的log: [ 3.579718] md: Waiting for all devices to be available before autodetect [ 3.586549] md: If you dont use raid, use raidnoautodetect [ 3.594…

Allegro如何录制SCR快捷键操作指导

Allegro如何录制SCR快捷键操作指导 Allegro可以录制SCR快捷键,里面记录了一些操作,类似一个插件,使用的时候可以直接调用,节省时间。下面介绍如何录制 选择file-Script 会出现一个对话框,任意输入一个名字,比如666 然后点击record 比如录制一个打开层面的scr,操作如…

基于matlab的排队系统仿真

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 排队系统是基本的离散事件系统,了解掌握离散事件系统是研究排队系统仿真不可或缺的前提。离散事件系统是指其状态变量只在某些离散时…

SAP-FICO概览培训 的PPT 文档

目录 SAP ERP 系统功能模块概览 财务会计(FI)、管理会计(CO) 财务会计(FI)、管理会计(CO)需求出发点 FI 与CO灵活性对比 财务会计(FI) 财务业务一体化平台示…

JSP概述

JSP JSP是Sun为了解决动态生成HTML文档的技术,通过Servlet输出简单html页面信息都非常不方便。如果要输出一个复杂页面的时候,就更加的困难,而且不利于页面的维护和调试。所以sun公司推出一种叫做jsp的动态页面技术来实现对页面的输出繁锁工…

四维轻云地理空间数据协作管理平台的使用流程介绍

倾斜摄影模型和点云数据采集制作完成后,很多行业在进行数据查看管理和共享时具有很大的不便,通常需要依赖专业软件才能在电脑上进行浏览,倘若想将数据分享给他人查看,则需要进行大文件传输以及让对方安装专业软件。现如今&#xf…

年薪百万的程序员,上网都在看什么?

这个问题相信不少人都好奇,我揪出一位年薪百万的程序员老友,翻遍他的收藏夹,总结整理了6个网站,甩出来给大家。 有几个干货网站大家记得当场保存,要不然划过就忘了!! 国际各行业报告&#xff1…

python 异步线程 实现 异步生产 同步通信

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

傅里叶变换的四种形式

此文转自知乎的jinjin 傅里叶变换的四种形式 - 知乎 傅里叶变换是信号的一种描述方式,通过增加频域的视角,将时域复杂波形表示为简单的频率函数,获得时域不易发现的与信号有关的其他特征。 根据时间域信号x自变量的不同,可以将信号…

sqli-labs/Less-45

这一关有没有报错信息 所以我们不能从报错信息中得知注入类型 我们只能通过登陆成功或者失败去辨别我们判断的注入类型正确与否 然后我们也不懂注入点 所以只能进行尝试了 如果两个参数在SQL语句中都被单引号包裹住 那么假设username为注入点输入如下 username admin# pass…