原文链接:https://www.techbeat.net/article-info?id=4342
作者:seven_

本文介绍一项来自香港大学和腾讯AI Lab的工作,该工作提出了一个新的DiffusionDet框架,它巧妙地将目标检测任务模拟为从一个噪声框到目标框的去噪扩散过程,使得DiffusionDet天然的符合扩散模型的建模过程。在模型的训练阶段,作者将真实的目标框不断扩散到随机噪声分布中,使得模型从中学习到这一噪声建模过程。而在推理阶段,模型以一种渐进式的过程将一组随机生成的目标框不断细化为最终的预测结果。

论文链接:
https://arxiv.org/abs/2211.09788
代码链接:
https://github.com/ShoufaChen/DiffusionDet

如果说去年这个时候视觉AI社区中最火热的话题是视觉Transformer的任务通吃现象,那今年的新兴选手必须是当下火热的扩散模型了。最近扩散模型在很多生成式任务中取得了巨大的成功,获得了广泛的关注。但目前在其他常规视觉任务上的探索工作还比较少。

本文介绍一项来自香港大学和腾讯AI Lab的工作,该工作提出了一个新的DiffusionDet框架,它巧妙地将目标检测任务模拟为从一个噪声框到目标框的去噪扩散过程,使得DiffusionDet天然的符合扩散模型的建模过程。在模型的训练阶段,作者将真实的目标框不断扩散到随机噪声分布中,使得模型从中学习到这一噪声建模过程。而在推理阶段,模型以一种渐进式的过程将一组随机生成的目标框不断细化为最终的预测结果

经过大量的实验表明,DiffusionDet可以标准的实验基准例如MS-COCO和LVIS等数据集上得到良好的性能,甚至超过了一些非常成熟的目标检测器。DiffusionDet的提出在另一方面也对很多感知类任务的通用框架发起了挑战,如果在一些任务上消除之前手工设计的复杂组件,而以这种生成式的代理任务进行优化,是否也会获得更好的效果呢。

一、引言

在开始介绍DiffusionDet的架构设计之前,我们先来回顾目前目标检测领域的发展趋势。目标检测旨在为一幅图像中的目标对象预测一组边界框和相关类别标签。作为一项基本的视觉感知任务,它已成为许多相关识别场景的基石,例如实例分割、姿态估计、动作识别、对象跟踪和视觉关系检测等。现在较为流行的目标检测科研方向,大多是随着候选目标的学习优化方式而不断发展,即从经验性的目标框回归方式再到可学习的目标查询方式。具体来说,在卷积神经网络时代,研究者们往往通过在具有一定先验的候选框上执行回归和分类任务来完成检测。随后在Transformer时代,DETR提出了可学习的对象query,实现了端到端的目标检测,这一演进过程如下图所示。

但这种方法仍然依赖于一组固定的可学习query,本文作者在此基础上提出了一个新的疑问,“是否有一种更加简洁的方法来实现,无需给模型固定的输入向量?” 这种方式将不再需要启发式的对象框先验,也无需可学习的查询输入,将完全是一种新式的目标检测pipeline。

作者受启发于最近扩散模型的建模方式,将扩散模型中从噪声到图像的生成过程扩展到目标检测任务中的噪声到框(noise-to-box)的范式,如上图所示。DiffusionDet巧妙地将目标检测任务转换为对图像中边界框的位置(中心坐标)和尺寸(宽度和高度)的空间生成任务,通过这样的转换,我们可以以一种优雅的方式来用扩散模型处理目标检测任务。在模型训练阶段,通过预先控制的高斯噪声被添加到GT目标框中来获得噪声框,然后这些噪声框会在backbone编码器(例如ResNet、Swin Transformer等)的输出特征图上裁剪出RoI特征,最后这些RoI特征被发送到检测解码器中进行训练。训练目标是从该噪声框分布中预测出无噪真实目标框。在推理阶段,DiffusionDet通过反转噪声框扩散过程来生成精确的预测框。此外,DiffusionDet的noise-to-box范式还具有以下几个优势:

  1. 动态框设计,通过使用随机噪声框,使得DiffusionDet可以将训练和评估进行解耦。具体而言,DiffusionDet可以用 Ntrain N_{\text {train }}Ntrain ​ 噪声随机框进行训练,同时用 Neval N_{\text {eval }}Neval ​ 随机框进行评估,其中Neval ,Ntrain N_{\text {eval }}, N_{\text {train }}Neval ​,Ntrain ​ 都是随机生成的.

  2. 渐进细化机制,扩散模型的去噪过程是一个渐进式生成过程,这种迭代细化也可以提升DiffusionDet的可用性和检测性能。例如我们可以通过调整去噪采样的步长来达到检测精度或加快推理速度之间的平衡,这种灵活性使DiffusionDet能够适应对精度和速度有不同要求的检测场景

二、 本文方法

2.1 整体框架

本文作者在开始介绍DiffusionDet的框架之前,首先回顾了一下diffusion model和目标检测的基础理论,随后根据这些理论引出了框架的设计想法。作者提到diffusion model可以看做是一类受非平衡热力学启发的基于likelihood的模型,其通过通过逐渐向样本数据添加噪声来定义前向扩散过程的马尔科夫链。前向过程被定义为:

q(zt∣z0)=N(zt∣αˉtz0,(1−αˉt)I)q\left(z_{t} \mid z_{0}\right)=\mathcal{N}\left(z_{t} \mid \sqrt{\bar{\alpha}_{t}} z_{0},\left(1-\bar{\alpha}_{t}\right) I\right)q(zt​∣z0​)=N(zt​∣αˉt​​z0​,(1−αˉt​)I)

它通过向 z0z_{0}z0​ 添加噪声将数据样本 z0z_{0}z0​ 转换潜在的噪声样本 ztz_{t}zt​ ,t∈{0,1,...,T}t \in \{0, 1, ..., T\}t∈{0,1,...,T} 。其中,αˉt:=∏s=0tαs=∏s=0t(1−βs)\bar{\alpha}_{t}:= \prod_{s=0}^{t} \alpha_{s}=\prod_{s=0}^{t}\left(1-\beta_{s}\right)αˉt​:=∏s=0t​αs​=∏s=0t​(1−βs​) ,βs\beta_{s}βs​ 表示噪声方差表。 在训练过程中,神经网络 fθ(zt,t)f_{\theta}\left(z_{t}, t\right)fθ​(zt​,t) 通过最小化目标 ℓ2\ell_{2}ℓ2​ 损失来预测 从z0z_{0}z0​ 到 ztz_{t}zt​ 。

Ltrain =12∥fθ(zt,t)−z0∥2\mathcal{L}_{\text {train }}=\frac{1}{2}\left\|f_{\theta}\left(z_{t}, t\right)-z_{0}\right\|^{2}Ltrain ​=21​∥fθ​(zt​,t)−z0​∥2

在推理阶段,用模型 fθf_{\theta}fθ​ 和更新规则以迭代的方式从噪声 zTz_{T}zT​ 中重建数据样本 z0z_{0}z0​ ,例如 zT→zT−Δ→…→z0z_{T} \rightarrow z_{T-\Delta} \rightarrow \ldots \rightarrow z_{0}zT​→zT−Δ​→…→z0​.

对于目标检测而言,其学习目标是目标对(xxx,bbb,ccc),其中 xxx 是输入图像,bbb 和 ccc 分别是图像 xxx 中物体的边界框和类别标签的集合。更具体地说,我们应该将该集合中的第 iii 个框表述为 bi=(cxi,cyi,wi,hi)b^{i}=\left(c_{x}^{i}, c_{y}^{i}, w^{i}, h^{i}\right)bi=(cxi​,cyi​,wi,hi),其中 (cxi,cyi)\left(c_{x}^{i}, c_{y}^{i}\right)(cxi​,cyi​) 是边界框的中心坐标,(wi,hi)\left(w^{i}, h^{i}\right)(wi,hi) 分别是该边界框的宽度和高度。

基于以上基础,作者引出了DiffusionDet的整体框架,如下图所示,可以看到,DiffusionDet的设计非常的简洁直观。由于扩散模型以迭代的形式来不断的生成数据样本,因此需要在推理阶段多次运行模型 fθf_{\theta}fθ​ 。然而,如果在每个迭代步骤中直接在原始图像上应用 fθf_{\theta}fθ​,这会带来庞大的计算代价。因此,作者建议将整个模型分成两部分,图像编码器和检测解码器,其中前者只运行一次以从原始输入图像 xxx 中提取深度特征表示,后者以此深度特征为条件,而不是以原始图像为条件,以逐步细化来自噪声框 ztz_{t}zt​ 的框预测。

2.2 图像编码器和解码器设计

对于图像编码器,其将原始图像作为输入,并为接下来的检测解码器提取其高级特征。本文使用ResNet等卷积神经网络和Swin-Transformer等基于自注意力的模型来实现编码器,其中都包含了多尺度金字塔特征提取的设计。而对于检测解码器来说,作者借鉴了Sparse R-CNN[1]中的设计,检测解码器将一组提议框作为输入,从图像编码器生成的特征图中裁剪RoI特征,并将这些RoI特征发送到检测头以获得框回归和分类结果,DiffusionDet的检测解码器由6个级联块构成。作者还强调了DiffusionDet的解码器与Sparse R-CNN中解码器的几个区别:

  1. DiffusionDet从随机噪声框开始,而Sparse R-CNN在推理中使用固定的学习框输入

  2. Sparse R-CNN将提议框和其相应的RoI特征作为输入样本对,而DiffusionDet只需要提议框作为输入即可。

  3. DiffusionDet在迭代采样步骤中会重新执行检测头,因此参数会在不同的步骤中共享,每个步骤都通过时间步长指定给扩散过程,而Sparse R-CNN在前向传递中只使用一次检测解码器。

2.3 训练和测试

在训练过程中,作者首先实现了从真实目标框到噪声框的扩散过程,然后训练模型以来反转这个过程。下图中的算法1展示了DiffusionDet训练过程的伪代码。DiffusionDet的推理过程可以看做是模型从噪声到对象预测框的去噪采样过程,如下图中的算法2所示,模型从以高斯分布采样的随机框开始逐步细化其预测来得到最终的检测结果。

为了提高模型性能,作者在实际操作中还加入了一些操作,在训练阶段,作者对目标框进行了padding操作,因为考虑到RoI数量在不同图像中可能不同,因此作者首先先将一些额外的框填充到原始真值框中,使目标框的数量固定。此外为了增加随机性,作者在将高斯噪声添加到真实框的过程中,引入了一个噪声尺度 αt\alpha_{t}αt​ 来控制,αt\alpha_{t}αt​ 在不同的时间步长 ttt 中采用单调递减的cosine值。

三、实验效果

本文的实验主要在MS-COCO和LVIS这两个具有代表性的通用目标检测基准上进行,下表中展示了DiffusionDet与其他具有代表新的SOTA目标检测器的性能对比,可以看到,在backbone为ResNet-50时,DiffusionDet在没有细化的情况下(即第1步)取得了45.5*的AP值,这已经超过了如Faster R-CNN、RetinaNet、DETR和Sparse R-CNN等检测器。此外,当DiffusionDet加大迭代细化步骤时可以获得更多的性能提升。当将backbone更换为更大的ResNet-101或Swin-Base时,DiffusionDet可以得到更大的性能提升,这表明DiffusionDet可以在骨干网规模扩大时展示出稳定的提升

下表展示了DiffusionDet在LVIS数据集上的实验结果,相比于MS-COCO,LVIS数据集更具挑战性,因为LVIS中的图像是以混合方式进行标注,这给模型训练带来困难。在下表中我们可以观察到,当DiffusionDet使用更多的细化步骤时,其在小规模backbone和大规模backbone上都获得了显著的性能提升。此外,作者还注意到,DiffusionDet的渐进细化机制在LVIS上相比MS-COCO数据集会有更多的提升。例如,它在MSCOCO上的性能可以从45.5提高到46.2(+0.7AP),而在LVIS上从30.4提高到31.9(+1.5AP)。

四、总结

在这项工作中,作者通过将目标检测任务转换为从噪声框到对象框的去噪扩散过程,提出了一种新的检测范式DiffusionDet。DiffusionDet的noise-to-box过程有几个非常重要的特性,动态框设计和渐进细化机制,这使得模型可以使用相同的网络参数来获得在不同使用场景中所需的速度精度权衡,而无需重新训练模型。作者也通过实验证明,DiffusionDet与其他经典的成熟的检测器相比,可以得到更佳的性能。作者还提到DiffusionDet的未来发展方向,可以尝试将其扩展到视频级任务,例如对象跟踪和动作识别,也可以使用DiffusionDet来解决开放世界(open-world )任务。

参考

[1] Peize Sun, Rufeng Zhang, Yi Jiang, Tao Kong, Chen- feng Xu, Wei Zhan, Masayoshi Tomizuka, Lei Li, Zehuan Yuan, Changhu Wang, et al. Sparse r-cnn: End-to-end object detection with learnable proposals. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition, pages 14454–14463, 2021.

Illustration by Manypixels Gallery from IconScout

-The End-

关于我“门”

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门-TechBeat技术社区以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com

目标检测扩散模型DiffusionDet登场,扩散模型正在不同任务中“扩散”相关推荐

  1. 《南溪的目标检测学习笔记》——训练PyTorch模型遇到显存不足的情况怎么办(“OOM: CUDA out of memory“)

    1 前言 在目标检测中,可能会遇到显存不足的情况,我们在这里记录一下解决方案: 2 如何判断真正是出现显存溢出(不是"软件误报") 当前需要分配的显存在600MiB以下, 例如: ...

  2. 目标检测学习笔记——SSD以及改进模型DSSD的原理解读及SSD的Tensorflow代码实现(图文并茂)

    目录 1.SSD的知识思维脑图 2.简介 2.1.SSD出现的背景 2.2.SSD的模型思想 2.2.1.多尺度特征图预测(Multi-Scale Feature Maps Prediction) 2 ...

  3. Tensorflow目标检测之yolov3训练自己的模型

    0 背景 Tensorflow官方目标检测给出了SSD.Faster rcnn等预训练模型,但没有给yolov3的预训练模型,但有热心的人已经实现了基于tensorflow来复现yolov3的算法,本 ...

  4. 目标检测:Faster-RCNN与YOLO V3模型的对比分析

    1 目标检测的背景 作为机器视觉领域的核心问题之一,目标检测的任务是找出图像中所有的目标(物体),并确定它们的位置和大小.由于各类物体有不同的外观,形状,姿态,加上成像时光照,遮挡等因素的干扰,目标检 ...

  5. 深度学习目标检测2013-2018单双阶段主流模型概览及详解

    背景:深度学习引入目标检测领域以来,给目标检测领域带来了很多突破性的进展,文章"Deep Learning for Generic Object Detection: A Survey&qu ...

  6. 《目标检测蓝皮书》第7篇 模型优化方法及思路

    本专栏将系统性地讲解计算机视觉基础知识.包含第1篇机器学习基础.第2篇深度学习基础.第3篇卷积神经网络.第4篇经典热门网络结构.第5篇目标检测基础.第6篇网络搭建及训练.第7篇模型优化方法及思路.第8 ...

  7. 目标检测训练trick超级大礼包—不改模型提升精度,值得拥有

    点击我爱计算机视觉标星,更快获取CVML新技术 昨日新上arXiv的一篇论文<Bag of Freebies for Training Object Detection Neural Netwo ...

  8. 跑yolo3模型出的效果图_【目标检测实战】Darknet入门—yolov3模型训练(Win10下的安装、编译、实现)...

    效果图 简介 Yolo,是实时物体检测的算法系统,基于Darknet-一个用C和CUDA编写的开源神经网络框架.它快速,易于安装,并支持CPU和GPU计算,也是yolo的底层.本文主要介绍在win10 ...

  9. 让AI帮你玩游戏(一) 基于目标检测用几个样本帮你实现在魔兽世界中钓鱼(群已满)

    让AI帮你玩游戏 让AI帮你玩游戏(一) 基于目标检测用几个样本实现在魔兽世界中钓鱼 前言 思路 环境 获取图像(几个样本即可) 标记图片 从标记文件中获取Boxes坐标 搭建目标检测模型 准备训练数 ...

最新文章

  1. 看完就忘!看完就忘!我感觉我要废了
  2. 写文件 —— 将内容按照指定格式写入配置文件(fwrite()函数-》》向指定的文件中写入若干数据块)
  3. python struct模块_python struct 模块
  4. js 对 URL 参数进行 加密 解密
  5. kali怎么成为管理员_网站死链是什么、是怎么引起的以及死链对SEO优化的影响?...
  6. 卓有成效的程序员读书笔记
  7. [渝粤教育] 武汉理工大学 数字信号处理 参考 资料
  8. 简单介绍三级分销系统开发源码
  9. directx repair_DirectX修复工具(修复程序缺少.dll )一款系统级工具软件
  10. python批量检测域名和url能否打开
  11. 如何设计更好的脉搏血氧仪:实施
  12. 作为一个开发者,我创业了
  13. Zabbix 服务器修改时区时间
  14. 天源石化举行国庆前消防应急-装车台液态烃泄漏演练
  15. 2019年3月全国计算机报名入口广东,广东2019年3月全国计算机二级考试报名系统...
  16. 机械振动系统的matlab仿真分析-郭
  17. c语言pow函数精度差,pow()函数结果强制转化为int造成误差的分析
  18. 45岁以后,外企的人都到去哪里了呢?(转载:岭南一梦)
  19. 定义销售组织(Sales Organization)
  20. mysql横切纵切_《圆柱横切及纵切-切》.ppt

热门文章

  1. Win32 API 三两事
  2. java计算机毕业设计ssm办公耗材采购管理系统(源码+系统+mysql数据库+Lw文档)
  3. tensorflow预定义经典卷积神经网络和数据集tf.keras.applications
  4. 用java创建一个最简单的窗口
  5. U盘装Ubuntu系统报错Failed to load ldlinux.c32
  6. 王道考研 操作系统知识点汇总(目录+思维导图)
  7. 华为快应用-web标签无法加载http和https混载的html页面
  8. 通达信自动提示启明星、黄昏星K线组合形态(含指标公式源码)
  9. 世界各国矢量数据的获取方法
  10. 日志易日志平台使用了什么开源软件