港大腾讯提出DiffusionDet:第一个用于目标检测的扩散模型

ec0f4d84cf0767c8c40263c8e3d98ada.jpeg

编|杜伟、陈萍
源|机器之心

扩散模型不但在生成任务上非常成功,这次在目标检测任务上,更是超越了成熟的目标检测器。

扩散模型( Diffusion Model )作为深度生成模型中的新 SOTA,已然在图像生成任务中超越了原 SOTA:例如 GAN,并且在诸多应用领域都有出色的表现,如计算机视觉,NLP、分子图建模、时间序列建模等。

近日,来自香港大学的罗平团队、腾讯 AI Lab 的研究者联合提出一种新框架 DiffusionDet,将扩散模型应用于目标检测。据了解,还没有研究可以成功地将扩散模型应用于目标检测,可以说这是第一个采用扩散模型进行目标检测的工作。

DiffusionDet 的性能如何呢?在 MS-COCO 数据集上进行评估,使用 ResNet-50 作为骨干,在单一采样 step 下,DiffusionDet 实现 45.5 AP,显著优于 Faster R-CNN (40.2 AP), DETR (42.0 AP),并与 Sparse R-CNN (45.0 AP)相当。通过增加采样 step 的数量,进一步将 DiffusionDet 性能提高到 46.2 AP。此外,在 LVIS 数据集上,DiffusionDet 也表现良好,使用 swin - base 作为骨干实现了 42.1 AP。

cb7d3b12c30990a3d0dd400f22c192f9.png

论文标题:
DiffusionDet: Diffusion Model for Object Detection

论文地址:
https://arxiv.org/abs/2211.09788

项目地址(刚刚开源):

https://github.com/ShoufaChen/DiffusionDet

该研究发现在传统的目标检测里,存在一个缺陷,即它们依赖于一组固定的可学习查询。然后研究者就在思考:是否存在一种简单的方法甚至不需要可学习查询就能进行目标检测?

为了回答这一问题,本文提出了 DiffusionDet,该框架可以直接从一组随机框中检测目标,它将目标检测制定为从噪声框到目标框的去噪扩散过程。这种从 noise-to-box 的方法不需要启发式的目标先验,也不需要可学习查询,这进一步简化了目标候选,并推动了检测 pipeline 的发展。

如下图 1 所示,该研究认为 noise-to-box 范式类似于去噪扩散模型中的 noise-to-image 过程,后者是一类基于似然的模型,通过学习到的去噪模型逐步去除图像中的噪声来生成图像。

4c23f4b78eb1ff98b3654cc135b5e68e.png

DiffusionDet 通过扩散模型解决目标检测任务,即将检测看作图像中 bounding box 位置 (中心坐标) 和大小 (宽度和高度) 空间上的生成任务。在训练阶段,将方差表(schedule)控制的高斯噪声添加到 ground truth box,得到 noisy box。然后使用这些 noisy box 从主干编码器(如 ResNet, Swin Transformer)的输出特征图中裁剪感兴趣区域(RoI)。最后,将这些 RoI 特征发送到检测解码器,该解码器被训练用来预测没有噪声的 ground truth box。在推理阶段,DiffusionDet 通过反转学习到的扩散过程生成 bounding box,它将噪声先验分布调整到 bounding box 上的学习分布。

bbbe4b7409e61749d9c8b5e9180492bc.png方法概述91cde818f67d36bb56f88e03b60bd63b.png

由于扩散模型迭代地生成数据样本,因此在推理阶段需要多次运行模型 f_θ。但是,在每一个迭代步骤中,直接在原始图像上应用 f_θ在计算上很困难。因此,研究者提出将整个模型分为两部分,即图像编码器和检测解码器,前者只运行一次以从原始输入图像 x 中提取深度特征表示,后者以该深度特征为条件,从噪声框 z_t 中逐步细化框预测。

图像编码器将原始图像作为输入,并为检测解码器提取其高级特征。研究者使用 ResNet 等卷积神经网络和 Swin 等基于 Transformer 的模型来实现 DiffusionDet。与此同时,特征金字塔网络用于为 ResNet 和 Swin 主干网络生成多尺度特征图。

检测解码器借鉴了 Sparse R-CNN,将一组 proposal 框作为输入,从图像编码器生成的特征图中裁剪 RoI 特征,并将它们发送到检测头以获得框回归和分类结果。此外,该检测解码器由 6 个级联阶段组成。

训练

在训练过程中,研究者首先构建了从真值框到噪声框的扩散过程,然后训练模型来反转这个过程。如下算法 1 提供了 DiffusionDet 训练过程的伪代码。

0c0972527a539c317d831daf32f55f38.png

真值框填充。对于现代目标检测基准,感兴趣实例的数量通常因图像而异。因此,研究者首先将一些额外的框填充到原始真值框,这样所有的框被总计为一个固定的数字 N_train。他们探索了几种填充策略,例如重复现有真值框、连接随机框或图像大小的框。

框损坏。研究者将高斯噪声添加到填充的真值框。噪声尺度由如下公式(1)中的 α_t 控制,它在不同的时间步 t 中采用单调递减的余弦调度。

044e5efb4aa97bcef422e42be415a1de.png

训练损失。检测解码器将 N_train 损坏框作为输入,预测 N_train 对类别分类和框坐标的预测。同时在 N_train 预测集上应用集预测损失(set prediction loss)。

推理

DiffusionDet 的推理过程是从噪声到目标框的去噪采样过程。从在高斯分布中采样的框开始,该模型逐步细化其预测,具体如下算法 2 所示。

df3503171566ef6e4dd5fa7c57d1b085.png

采样步骤。在每个采样步骤中,将上一个采样步骤中的随机框或估计框发送到检测解码器,以预测类别分类和框坐标。在获得当前步骤的框后,采用 DDIM 来估计下一步骤的框。

框更新。为了使推理更好地与训练保持一致,研究者提出了框更新策略,通过用随机框替换非预期的框以使它们恢复。具体来说,他们首先过滤掉分数低于特定阈值的非预期的框,然后将剩余的框与从高斯分布中采样的新随机框连接起来。

一次解决(Once-for-all)。得益于随机框设计,研究者可以使用任意数量的随机框和采样步骤来评估 DiffusionDet。作为比较,以往的方法在训练和评估期间依赖于相同数量的处理框,并且检测解码器在前向传递中仅使用一次。

05ef990cb4184038c3a0d001b3c656ac.png实验结果4f7857c0d36ab09d0a39fd56f073e47c.png

在实验部分,研究者首先展示了 DiffusionDet 的 Once-for-all 属性,然后将 DiffusionDet 与以往在 MS-COCO 和 LVIS 数据集上成熟的检测器进行比较。

DiffusionDet 的主要特性在于对所有推理实例进行一次训练。一旦模型经过训练,它就可以用于更改推理中框的数量和样本步骤数,如下图 4 所示。DiffusionDet 可以通过使用更多框或 / 和更多细化步骤来实现更高的准确度,但代价是延迟率更高。因此,研究者将单个 DiffusionDet 部署到多个场景中,并在不重新训练网络的情况下获得所需的速度 - 准确率权衡。

b688c4747baa9e8305e3965fa7ba8ac4.png

研究者将 DiffusionDet 与以往在 MS-COCO 和 LVIS 数据集上的检测器进行了比较,具体如下表 1 所示。他们首先将 DiffusionDet 的目标检测性能与以往在 MS-COCO 上的检测器进行了比较。结果显示,没有细化步骤的 DiffusionDet 使用 ResNet-50 主干网络实现了 45.5 AP,以较大的优势超越了以往成熟的方法,如 Faster R-CNN、RetinaNet、DETR 和 Sparse R-CNN。并且当主干网络的尺寸扩大时,DiffusionDet 显示出稳定的提升。

8b1a495c2c462f131035931540d6e70c.png

下表 2 中展示了在更具挑战性的 LVIS 数据集上的结果,可以看到,DiffusionDet 使用更多的细化步骤可以获得显著的增益。

501fbcd58fee5ac6edc4c42e1bf4d8a3.png

更多实验细节请参阅原论文。

对于注意力机制在Transformer中的重要性,你怎么看?

论文地址:
https://arxiv.org/abs/2211.03495

c60259e7729ae795b3f98c2200cf2109.jpeg后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

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

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

相关文章

无监督学习概论

文章目录1. 无监督学习基本原理2. 基本问题2.1 聚类 Clustering2.2 降维 Dimensionality Reduction2.3 概率模型估计3. 机器学习三要素4. 无监督学习方法4.1 聚类4.2 降维4.3 话题分析4.4 图分析1. 无监督学习基本原理 机器学习或统计学习一般包括监督学习、无监督学习、强化学…

python xlrd使用_python处理Excel xlrd的简单使用

xlrd主要用于读取Excel文件,本文为大家分享了python处理Excel的具体代码,供大家参考,具体内容如下 安装 pip install xlrd api使用 import xlrd # 打开Excel文件读取数据 workbook xlrd.open_workbook(a.xlsx); # 打印所有的sheet列出所有的…

学习Duwamish7的MSDN说明及相关技术策略

(一).MSDN对Duwamish7的说明   Duwamish 7.0 是由 MSDN 开发的通用 Duwamish 系列应用程序的功能性端口(完全使用 .NET 技术)。尽管示例本身是围绕虚拟网上书店建立的,但本示例主要关注的方面却是性能,与…

程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

文章目录1. 题目2. 解题2.1 超时解2.2 二分查找1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上。出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一点。 已知马戏团每个人的身高和体重,请编写代码计算叠罗…

海洋分享lol皮肤插件_LOL战斗之夜客户端BUG频出服务器爆满!如何提前领取皮肤?...

Hello大家好,我是Taker!昨天的战斗之夜,小编可是单排奋战了一整晚~排位段位和箱子积分都定格在了钻石,不知道各位如何呢?(^o^)/~今天终于到了收获的日子了!之前我们打的积分所获得的皮肤箱子今天就可以打开…

socket异步处理问题

由于一个项目要和第三方软件做接口,第三方软件是Unix的操作系统,所以用了Socket来传输数据。具体结构是这样的:本项目作为服务器端,第三方软件是客户端,并且有多个客户端。通常情况下,要开多个线程来处理多…

2022爆火的AIGC,能给AI续命吗

文 | 陈彩娴源 | AI科技评论生产力如已成熟,想象力还会远吗?“你们是从什么时候开始注意到人类的?”“当第一个原始人开始仰望星空的时候。”AI 的类人猿,早已开始仰望人类。来自机器的审视在过去短短的两年间,算法从业…

LeetCode 354. 俄罗斯套娃信封问题(最长上升子序 DP/二分查找)

1. 题目 给定一些标记了宽度和高度的信封,宽度和高度以整数对形式 (w, h) 出现。 当另一个信封的宽度和高度都比这个信封大的时候,这个信封就可以放进另一个信封里,如同俄罗斯套娃一样。 请计算最多能有多少个信封能组成一组“俄罗斯套娃”…

python语言语句块标记是_Python的基本语法——语句块

1.语句块是在条件为真(条件语句)时执行或者执行多次(循环语句)的一组语句; 2在代码前放置空格来缩进语句即可创建语句块,语句块中的每行必须是同样的缩进量; 3.缩进:Python开发者有意…

[导入]设计模式初学者系列-工厂方法

摘要: 闲谈工厂方法 设计模式系列到了第四篇了,如果还不谈谈工厂方法设计模式就太对不起GoF了,为什么有如此一说?实际上工厂方法模式是好些模式的基石,她们或多或少的使用了工厂方法模式或以工厂方法为模型。 工厂方法模式是一种类…

推荐一个好发论文的研究方向

今天给大家推荐一个研究的好方向—— 图神经网络。它是近些年学术界和工业界最新的研究热点!在社交网络、知识图谱、推荐系统等工业界有广阔的应用前景。最重要的是,图神经网络与CV和NLP交叉,容易有创新点,是出论文的好方向。对于…

LeetCode 31. 下一个排列(线性扫描)

1. 题目 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。…

Google工作10年的职场感悟

源|电子发烧友网、程序厨哈喽大家好,今天坐地铁读到了一位在 Google 工作10年的“老”工程师关于技术、管理和职场生涯的感悟。我看完后觉得很有收获,因此在这里也分享给大家。以下是全文,后文中的「我」均指「原作者」。我在 Goo…

博客堂joycode被黑掉了

博客堂现在用ie7已经打不开了&#xff0c;用telnet www.joycode.com 80 链接&#xff0c;链接成功之后输入大写的命令 GET / 然后连续两次回车&#xff0c;就可以看到第一行的木马代码<iframe src?????? width20 height0 frameborder0></iframe>。访问其中任…

python的注释符_Python3 注释和运算符

Python3 注释 确保对模块, 函数, 方法和行内注释使用正确的风格 Python中的注释有单行注释和多行注释&#xff1a; Python中单行注释以 # 开头&#xff0c;例如&#xff1a;&#xff1a; #这是一个注释 print("Hello, World!") 多行注释用三个单引号 或者三个双引号…

程序员面试金典 - 面试题 05.04. 下一个数(线性扫描)

文章目录1. 题目2. 解题2.1 STL2.2 线性扫描2.3 位运算1. 题目 下一个数。给定一个正整数&#xff0c;找出与其二进制表达式中1的个数相同且大小最接近的那两个数&#xff08;一个略大&#xff0c;一个略小&#xff09;。 例1:输入&#xff1a;num 2&#xff08;或者0b10&am…

同花顺如何切换k线_K线之形态学:浅谈纸白银产品该如何去做好交易?

K线之形态学&#xff1a;浅谈纸白银产品该如何去做好交易&#xff1f;由于疫情期间&#xff0c;明显感觉到今年做投资理财的朋友多了&#xff0c;特别是银行的纸产品&#xff0c;我是分析外盘伦敦银伦敦金为主&#xff0c;自己也是只操作外盘产品。国内的不管是纸白银或者TD白银…

从NeurIPS论文来看,中美学者很少互相引用

源&#xff5c;机器之心想要改变这种情况还很难。不知从何时起&#xff0c;我们习惯了人工智能的学术顶会上中美研究数量排名前两位的形势。不论在工业还是学术上&#xff0c;两者很大程度上引领了技术的发展&#xff0c;中美的交流也非常密切&#xff1a;不少大厂都会在对面设…

[导入][导入][c#]Web开发中Tag的开发技巧

http://onewww.net/blog/article.asp?id87网站开发常用关键字(tag)&#xff0c;一般需要获得最多的被采用的Tag&#xff0c;也就是流行词。通常思路是将关键字tag保存到单独表中&#xff0c;然后在其他表中根据一组id进行对多个关键字进行标识。因为一个文章可以选择多个tag&a…

泰坦尼克号生存预测入门

文章目录1. 数据预览2. 特征初步选择3. 增加特征Sex和Embarked4. 选择随机森林调参5. 实践总结本文作为学习记录&#xff0c;参考 此处&#xff0c;如有侵权&#xff0c;联系删除。1. 数据预览 数据集下载 import pandas as pd import numpy as np from pandas import Series…