目标检测DiffusionDet: Diffusion Model for Object Detection

时间:2022-11-23 14:53:51

先贴一张流程图:

目标检测DiffusionDet: Diffusion Model for Object Detection


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: Diffusion Model for Object Detection

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和其他类型的检测方法的对比如下图。

目标检测DiffusionDet: Diffusion Model for Object Detection

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

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

3. Approach

3.1 Preliminaries

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

目标检测DiffusionDet: Diffusion Model for Object Detection

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的区别在于:

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

3.3 Training

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

目标检测DiffusionDet: Diffusion Model for Object Detection

3.4 Inference

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

目标检测DiffusionDet: Diffusion Model for Object Detection

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

目标检测DiffusionDet: Diffusion Model for Object Detection

4.3 Benchmarking on Detection Datasets

目标检测DiffusionDet: Diffusion Model for Object Detection

 目标检测DiffusionDet: Diffusion Model for Object Detection

4.4 Ablation Study

目标检测DiffusionDet: Diffusion Model for Object Detection

5. Conclusion and Future Work