一. 论文梗概
现有的目标检测方法无论是仍然有一个依赖于一个固定的 learnable query。一个自然的问题是:有没有一个更简单的方法,甚至不需要学习查询的代理?
DiffusionDet是一个新的框架,它将对象检测公式化为从噪声框到对象框的去噪扩散过程。在训练阶段,对象框从Grounding Truth框扩散到随机分布,模型学习逆转这个噪声过程。在推理中,该模型以渐进的方式将一组随机生成的框细化为输出结果。
总体框架:DiffusionDet 将目标检测任务建模为一个去噪扩散过程。该方法不依赖预定义的锚框或可学习查询,而是从一组随机生成的框出发,通过多个步骤逐步去噪,最终生成精准的目标框。
主要目标:
-
提出一种无需 learnable query 的检测方式,减少人为设计;
-
实现训练-推理解耦:训练阶段与推理阶段使用不同数量的框或步骤都可以;
-
提供更强的灵活性和泛化能力(如跨数据集 zero-shot transfer)。
应用场景:
-
跨场景目标检测(如从 COCO 迁移到 CrowdHuman);
-
多目标密集检测任务。
二.模型框架
DiffusionDet 的整体架构可分为两个主要部分:图像编码器(Image Encoder) 和 检测解码器(Detection Decoder)。其核心思想是将目标检测建模为一个“从随机框出发 → 逐步去噪 → 得到真实框”的扩散过程,类比于扩散模型“噪声 → 图像”的过程。训练时的候选框是对真实框加噪声得到的,而推理时则是直接从高斯分布中采样得到的随机框。
1. 图像编码器
将原始图像作为输入,并提取其高级特征用于后续检测解码器。我们使用卷积神经网络(如ResNet)和基于变换器的模型(如Swin)实现DiffusionDet。特征金字塔网络用于为ResNet和Swin骨干生成多尺度特征图。只运行一次,输出特征图(Feature Map)供后续使用。
2. 检测解码器
DiffusionDet 没有完全从零设计检测头,而是以 Sparse R-CNN 为基础,复用了其 cascade-style 多阶段检测头的架构思想。它接收一组候选框作为输入,用这些框从图像编码器输出的特征图上裁剪 RoI 特征(Region of Interest),再将这些特征送入检测头,输出位置回归和类别分类的结果。借鉴 DETR、Sparse R-CNN 等方法,将检测解码器设计为 6 个级联阶段,使用 cascade-style 解码器,每个 stage 是一个小的分类 + 回归模块;每个 stage 的输出都会传递给下一个 stage,用于多次 refine 预测结果;结构上和 Sparse R-CNN 一样,是逐步精炼预测框。
➤Stage-1: 第一步
-
输入:N 个 noisy boxes;
-
RoI Align:利用这些 boxes 从图像特征图上提取对应的
N
个区域特征; -
全连接网络 (FC):对每个区域特征进行分类和框回归,输出预测框和类别。
➤ Stage-2 到 Stage-6:多阶段 refinement
-
检测解码器由 6 个 stage 组成(类似 Sparse R-CNN 的 head);
-
每个 stage 接收上一阶段预测的框,进一步 refine;
-
参数共享:所有 stage 共享一组参数;
-
每个 stage 都包括:RoI Align + 分类 + 回归。
检测解码器具有以下特点:
-
推理阶段支持多轮迭代:将整个 6-stage 解码器 反复使用多次(比如 1 次、4 次、8 次);
-
每轮输出 refined boxes,并作为下一轮输入,进一步 refine;
-
每轮后使用 DDIM 和 Box Renewal 更新框的状态。
三. DiffusionDet 模型训练过程
DiffusionDet 的训练过程本质上是学习一个去噪过程:从添加了噪声的目标框(noisy boxes)中恢复出原始的 ground-truth boxes。训练阶段通过模拟扩散过程生成带噪的框,然后训练网络反向学习这个过程。其核心流程如下:
步骤 1:图像输入与特征提取
将输入图像送入图像编码器(如 ResNet + FPN 或 Swin Transformer),提取出图像的多尺度特征图。这些特征图将用于后续的 RoI 特征提取。
步骤 2:Ground Truth Box Padding
由于每张图像中的目标数量不同,需要对 GT boxes 进行统一处理。具体操作为:
-
将真实框数量不足
的图像,填充额外的框;
-
填充方法包括重复现有框或从高斯分布中采样随机框(实验证明后者效果更好);
-
最终每张图像拥有固定数量的候选框
。
步骤 3:信号缩放与添加噪声
对填充后的个 GT boxes 执行扩散过程的前向步骤,生成 noisy boxes:
-
将 box 坐标( 中心点 (x, y) 和尺寸(w, h) )归一化到 [-1, 1] 区间;
-
乘以一个固定的信号缩放系数 scale(例如 2.0),增强可学习信号;
-
随机采样一个时间步t ∈ [1, T];
-
使用前向扩散公式向框中添加高斯噪声:
其中,
ᾱ_t
为特定时间步的扩散系数,服从 cosine schedule。
步骤 4:RoI 特征提取
利用添加噪声后的个框
在图像特征图上执行 RoI Align 操作,提取每个框对应的区域特征。这些特征将用于目标的分类与位置回归。
步骤 5:检测解码器预测
将 RoI 特征与 timestep embedding 一起送入Detection Decoder。该解码器由 6 个级联的阶段组成,每个阶段进行一次框回归与分类预测。整个解码器共享参数。输出为每个框的:类别概率;回归坐标(用于恢复原始 box)。
步骤 6:预测匹配与损失计算
采用 Hungarian Matching 或 Optimal Transport Assignment(OTA)将预测结果与真实目标进行一一匹配,然后计算 Set Prediction Loss,包括:分类损失(如 Focal Loss 或 Cross-Entropy);
框的 L1 损失;GIoU 损失(用于衡量框之间的空间重叠)。最终的总损失为所有阶段输出的加权平均。
四. DiffusionDet 模型推理过程
DiffusionDet 的推理阶段是一个 从高斯噪声中采样 → 多轮去噪 → 预测目标框与类别 的过程。推理时模型不使用 GT box,而是从随机初始化框出发,反复迭代去噪,还原出目标框。
步骤 1:图像输入与特征提取
将输入图像送入图像编码器(如 ResNet + FPN 或 Swin Transformer),提取出图像的多尺度特征图。这些特征图将用于后续每一轮的 RoI 特征提取。
步骤 2:初始化随机框
从二维高斯分布中采样生成固定数量的随机框,作为初始候选框。每个框由中心坐标
(x, y)
和尺寸 (w, h)
表示。该步骤对应扩散模型中的最终时间步 T
。
步骤 3:迭代去噪采样(共
步)
执行次迭代(通常为 4~8 步),每一步包括以下操作:
3.1 使用 detection decoder 进行预测
-
将当前的
输入 detection decoder;通过 RoI Align 操作提取每个框的区域特征;
-
解码器输出每个框的分类得分和回归坐标。
3.2 使用 DDIM(Denoising Diffusion Implicit Model)调度器更新 boxes
-
根据 decoder 的预测结果和当前时间步
t
,利用 DDIM 调度器计算下一步的 boxes;该步骤实现了扩散模型的反向去噪过程; -
-
若跳过 DDIM 而直接使用 decoder 输出,会显著降低性能。
3.3 执行 Box Renewal(框更新)
-
对所有预测框设置一个置信度阈值(如 0.3);筛选出当前轮中分类得分低于阈值的“无效框”;删除这些无效框后,从高斯分布中重新采样同样数量的新随机框;与“有效”框拼接,使框总数保持一致(仍为
); -
将新框与剩余有效框拼接,作为下一轮sampling
这样做的目的是:让每一轮输入的框都尽可能分布在目标区域附近,更贴近训练时的分布结构,从而提升推理效果。
步骤 4:输出整合与 NMS 处理
在所有迭代结束后,将最终预测结果进行整合处理:
-
汇总所有预测 boxes 和类别分数;
-
执行非极大值抑制(NMS),去除重复框;
-
输出最终的检测框及其对应的类别标签。
五. 实验结果
1. 普通实验结果
表1显示,当在CrowdHuman数据集上直接评估COCO pretraiend模型时,它覆盖了更多拥挤的场景,DiffusionDet通过调整评估框和迭代步骤的数量实现了显着的收益。相比之下,以前的方法只能获得边际增益,甚至性能下降。
从表2和表3中可以看出,DiffusionDet的性能优于其他模型。
2. 消融实验结果
1. 最佳信号缩放因子为 2.0。作者指出,由于每个 box 只有 4 个维度(中心坐标和宽高),比图像像素稠密度低,因此需要更高的信噪比(SNR)以稳定训练。
2. 将高斯随机框拼接到真实框(Gaussian padding)表现最好,这与 DiffusionDet 的“噪声建模”思路更一致。 (这一步骤位于训练过程中,作用是将每张图像中不同数量的框变为同一数量)
3. 组合使用 DDIM 和 box renewal 效果最佳,迭代到第 3 步提升了 +0.8 AP。
4. 推理框数量
可以大于训练框数量
,推理表现仍然随
增加而提高;但在某些设置中,
与
越匹配,性能越优。说明 DiffusionDet 显著突破了 DETR 等模型训练推理框数绑定的限制。
六. DiffusionDet 的灵活优势
从以上实验结果可以看出,DiffusionDet 作为一个概率生成模型,在推理阶段具有“灵活性优势”,主要体现在两个方面:
① 动态数量的 boxes(Dynamic number of boxes)
传统方法的问题:传统的检测器(如 DETR、Sparse R-CNN)训练时使用固定数量的 proposal/query boxes,推理时必须保持一致。否则模型结构不匹配或性能下降。因为这些 queries 是可学习的参数,是模型的一部分。
✅ DiffusionDet 的创新:
-
DiffusionDet 是从随机框 random boxes出发进行检测;
-
这些随机框不是可学习参数,而是在推理时临时生成的;
-
所以你可以在训练时用比如
Ntrain = 300
个随机框训练模型,在推理时却用Neval = 1000
个框去检测——这在传统方法中几乎做不到。
📈 带来的好处:
-
可以根据任务难度和计算资源调整推理时使用的 box 数量;
-
更复杂的场景用更多 boxes 提升召回率;
-
简单场景用少量 boxes 提高速度。
② 迭代推理(Iterative evaluation)
在如 DETR、Sparse R-CNN 等模型中,decoder 的结构是固定的,比如 6 层,每层处理一次 proposals,然后就输出预测,不能多次复用。
✅ DiffusionDet 的创新:
-
利用扩散模型的迭代去噪特性;每一次迭代都可以使用相同的 decoder 对 boxes 进行 refinement;
-
decoder 的参数是共享的,模型可以在多个 sampling steps 中重复使用 decoder,逐步提升 box 精度。
📈 带来的好处:
-
多迭代几次可以提升检测结果的质量(比如从 1 步提升到 4 步,AP 提升明显);
-
在保证模型结构不变的前提下,通过调整迭代步数控制速度-精度权衡。
这两个特性的共同点:
训练阶段和推理阶段“解耦”,训练好模型后,推理时可以根据实际需要:
-
用更多/更少的 boxes;
-
用更多/更少的迭代步数;
-
而无需重新训练或微调模型。