DiffusionDet:第一个用于物体检测的扩散模型(DiffusionDet: Diffusion Model for Object Detection)

提出了一种新的框架——DiffusionDet,它将目标检测定义为一个从有噪声的盒子到目标盒子的去噪扩散过程。在训练阶段,目标盒从真实值盒扩散到随机分布,模型学会了逆转这个噪声过程。
在推理中,该模型以渐进的方式将一组随机生成的框细化为输出结果。
贡献:

  • 我们将目标检测制定为生成式去噪过程,这是据我们所知第一个将扩散模型应用于目标检测的研究。
  • 我们的噪声到框检测范例具有几个吸引人的特性,例如动态框的解耦训练和评估阶段以及迭代评估。
  • 我们对COCO、CrowdHuman 和LVIS 基准进行了广泛的实验。与之前成熟的检测器相比,DiffusionDet 取得了良好的性能,尤其是跨不同场景的zero-shot transferring。

1、介绍

之前存在的问题:
DETR提出了可学习的目标查询,消除了手工设计的组件,建立了端到端检测管道,引起了极大的关注。虽然这些工作实现了简单而有效的设计,但它们仍然依赖于一组固定的可学习查询。一个自然的问题是:有没有一种更简单的方法,甚至不需要可学习查询的代理?

为了回答这个问题,我们设计了一个新的框架,它可以直接从一组随机盒子中检测对象。从纯随机盒子开始,不包含训练阶段需要优化的可学习参数,我们期望逐步细化这些盒子的位置和大小,直到它们完美覆盖目标对象。这种噪声盒方法既不需要启发式目标先验,也不需要可学习查询,进一步简化了目标候选,并推动了检测基线的发展。
在这里插入图片描述
图1。用于目标检测的扩散模型。(a)扩散模型,其中q是扩散过程,pθ是相反过程。(b)图像生成任务的扩散模型。©我们建议将目标检测作为去噪扩散过程,从有噪声的箱子到目标箱子。

我们的动机如图1所示。我们认为noise-to-box范式的原理类似于去噪扩散模型中的noise-to-image过程,这是一类基于似然的模型,通过学习的去噪模型逐渐去除图像中的噪声,从而生成图像。扩散模型在许多生成任务中都取得了很大的成功,并开始在图像分割等感知任务中得到探索。然而,就我们所知,还没有先前技术成功地将其应用于目标检测。

在这项工作中,我们提出了 DiffusionDet,它通过将检测任务作为 图像中 边界框的位置(中心坐标)和大小(宽度和高度)在空间上的 生成任务,使用扩散模型来处理对象检测任务。
在训练阶段,将由方差表控制的高斯噪声添加到真实图片框以获得噪声框。
然后,这些噪声框用于从主干编码器的输出特征图中裁剪 感兴趣区域(RoI)的特征,例如 ResNet 、Swin Transformer 。
最后,这些 RoI 特征被送到检测解码器,该解码器经过训练可以预测无噪声的真实框。通过这个训练目标,DiffusionDet 能够从随机框中预测真实框。
在推理阶段,DiffusionDet 通过反转学习的扩散过程来生成边界框,该过程将噪声先验分布调整为边界框上的学习分布。
作为一种概率模型,DiffusionDet 具有令人着迷的灵活性优势,即我们可以训练一次网络,并在推理阶段的不同设置下使用相同的网络参数,主要包括:
(1)动态框数。利用随机框作为候选对象,我们解耦了 DiffusionDet 的训练和评估阶段,即我们可以用 N t r a i n \ N_ {train}\,  Ntrain 个随机框训练 DiffusionDet,同时用 N e v a l \ N_ {eval}\,  Neval 个随机框评估它,其中 N e v a l \ N_ {eval}\,  Neval 是任意的,不需要等于 N t r a i n \ N_ {train}\,  Ntrain
(2)迭代评估。受益于扩散模型的迭代去噪特性,DiffusionDet可以迭代地重用整个检测头,进一步提高其性能。
在这里插入图片描述
表 1. Zero-shot transfer from COCO to CrowdHuman visible box detection.所有模型均使用 300 个盒子进行训练,并使用不同数量的盒子和步骤进行测试。
DiffusionDet的灵活性使得它在探测不同场景(如稀疏或拥挤)中的对象时具有很大的优势,而无需进行额外的微调。具体来说,从表1可以看出,在CrowdHuman数据集上直接对COCOpretraiend模型进行评估时,difffusiondet通过调整评估框的数量和迭代步骤,获得了显著的收益。相比之下,以前的方法只能获得边际增益,甚至性能下降。
此外,我们在 COCO 数据集上评估 DiffusionDet。借助 ResNet-50 主干,DiffusionDet 使用单个采样步骤和 300 个随机框实现了 45.8 AP,显着优于 Faster RCNN (40.2 AP)、DETR (42.0 AP),与 Sparse R 相当-CNN (45.0 AP)。此外,我们可以通过增加采样步骤和随机框的数量,将 DiffusionDet 进一步提高到 46.8 AP。

2、方法

2.1 扩散模型介绍

在本工作中,我们的目标是通过扩散模型来解决目标检测任务。
在这里插入图片描述

在我们的设置中,数据样本是一组包围框 z 0 \ z_0\,  z0 = b,其中b∈ R N X 4 \R^{NX4}\, RNX4是一组N个框。
训练神经网络 f θ \ f_θ\,  fθ(zt, t, x),以对应的图像x为条件,从噪声箱 z t \ z_t\,  zt预测 z 0 \ z_0\,  z0,并相应地产生相应的类别标签c。
在训练过程中,训练神经网络 f θ \ f_θ\,  fθ(zt, t)通过使训练目标loss最小化,从 z t \ z_t\,  zt预测 z 0 \ z_0\,  z0.
在推理阶段,利用模型fθ和更新规则对噪声 z t \ z_t\,  zt进行数据样本 z 0 \ z_0\,  z0.的迭代重构,即:zT→zT−∆→…→z0。
在本工作中,我们的目标是通过扩散模型来解决目标检测任务。在我们的设置中,数据样本是一组包围框z0 = b,其中b∈RN×4是一组N个框。训练神经网络fθ(zt, t, x),以对应的图像x为条件,从噪声箱zt预测z0,并相应地产生相应的类别标签c。

2.2 模型架构

由于扩散模型迭代生成数据样本,在推断阶段需要多次运行模型Fθ。 然而,在每一个迭代步骤中直接对原始图像应用fθ在计算上是困难的。 因此,我们提出将整个模型分为图像编码器和检测解码器两个部分,前者只运行一次,从原始输入图像X中提取深度特征表示,后者以该深度特征为条件,而不是原始图像,从噪声盒ZT中逐步细化盒预测。
在这里插入图片描述
DiffusionDet 框架。 (a) 图像编码器从输入图像中提取特征表示。检测解码器将噪声框作为输入并预测类别分类和框坐标。

2.2.1 图像编码器

图像编码器将原始图像作为输入,提取其高级特征用于后续检测解码器。
我们使用卷积神经网络(如ResNet)和基于基于Transformer模型(如Swin)实现了扩散。
特征金字塔网络用于生成ResNet和Swin骨干网的多尺度特征特征图。

2.2.2 检测解码器

检测解码器借鉴Sparse R-CNN,将一组proposal box作为输入,从图像编码器生成的feature map中裁剪RoI-feature,并将这些RoI-feature发送到检测头,得到box回归和分类结果。
对于扩散问题,这些建议盒在训练阶段受到真实标记的图像盒的干扰,在评估阶段直接从高斯分布中采样。
在这里插入图片描述
(b) 检测解码器在一个检测头中有 6 个阶段,遵循 DETR 和 Sparse R-CNN。此外,DiffusionDet可以多次重复使用这个检测头(有6个阶段),这被称为“迭代评估”。

在DETR或sparse r-cnn或deformable DETR之后,我们的检测解码器由6个级联阶段组成(图b)。
我们的解码器与Sparse R-CNN解码器的不同之处在于:
(1)DiffusionDet从随机的盒子开始,而Sparse R-CNN在推理中使用的是一组固定的学习的盒子;
(2)稀疏RCNN将建议盒及其对应建议特征作为输入对,DiffusionDet只需要建议盒;
(3) difffusiondet可以以迭代的方式重用检测器头进行评估,在不同的步骤中共享参数,每个步骤通过时间步嵌入指定为扩散过程,称为迭代评估,而Sparse R-CNN在前向传递中只使用一次检测解码器。

2.3 训练

在训练过程中,我们首先构建从真实框到噪声框的扩散过程,然后训练模型来反转该过程。算法 1 提供了 DiffusionDet 训练过程的伪代码。
在这里插入图片描述
输入参数:
images: 输入图像数据,形状为[B, H, W, 3],表示批次中的图像数量及其高度、宽度以及通道数。
gt_boxes: 真实边界框数据,形状为[B, *, 4],表示批次中每个图像所对应的真实边界框数量(可以是不同数量),每个边界框包含四个坐标。
算法步骤:
对输入图像进行特征编码(通过图像编码器)得到特征表示feats。
将gt_boxes进行填充到同样数量N(proposal boxes的数量)的边界框pb(通过pad_boxes函数),使得每个图像具有相同数量的边界框。
对pb进行信号缩放,将其值从[0, 1]范围内映射到[-scale, scale]范围内。
随机选择一个时间步长t(从0到T)。
生成服从正态分布的噪声eps(均值为0,标准差为1),其维度为[B, N, 4],用于损坏(corrupt)gt_boxes。
基于当前的时间步长t和信号缩放后的gt_boxes(pb),使用DiffusionDet中的alpha_cumprod函数生成混合因子,对pb和eps进行组合得到损坏的边界框pb_crpt。
基于损坏的边界框pb_crpt和特征表示feats,通过检测解码器detection_decoder生成预测的边界框pb_pred。
计算预测边界框pb_pred与真实边界框gt_boxes之间的损失(通过set_prediction_loss函数)。
返回计算得到的损失(loss)作为训练损失。

3.3.1 图片真实框填充(Ground truth boxes padding)

对于现代目标检测基准,感兴趣的实例数量通常因图像而异。因此,我们首先将一些额外的框填充到原始的groundtruth框,使得所有框加起来为固定数量的Ntrain。我们探索了几种填充策略,例如,重复现有的地面实况框、连接随机框或图像大小的框。连接随机框效果最好。

3.3.2 Box corruption.

我们将高斯噪声添加到填充的真实框中。噪声尺度由αt控制,αt在不同时间步t中采用单调递减的余弦时间表。值得注意的是,地面实况框坐标也需要缩放,因为信噪比对扩散模型的性能有显着影响。我们观察到,与图像生成任务相比,目标检测有利于相对较高的信号缩放值。

3.3.3 训练损失

检测检测器将被破坏的框作为输入,并预测类别分类和框坐标的Ntrain预测。我们将预测损失集应用于 Ntrain 预测集。我们通过最佳传输分配方法选择成本最低的前 k 个预测,为每个基本事实分配多个预测 。

3.4 推断

DiffusionDet的推理过程是从噪声到目标框的去噪采样过程。从高斯分布中采样的框开始,模型逐步完善其预测,如算法 2 所示。
在这里插入图片描述
输入参数:

images: 输入图像数据,形状为[B, H, W, 3],表示批次中的图像数量及其高度、宽度以及通道数。
steps: 采样步数,即需要采样多少个时间步长。
T: 总时间步长。
算法步骤:

对输入图像进行特征编码(通过图像编码器)得到特征表示feats。
生成服从正态分布的噪声pb_t(均值为0,标准差为1),其维度为[B, N, 4],用于初始化边界框预测。
使用linespace生成一个等分线段,其从 -1 开始,到 T 结束,等分成steps份。并且在[0, T]内生成随机时间t_now。
对每个时间区间(t_now, t_next)执行如下操作: a. 基于当前的时间步长t_now和噪声pb_t,通过检测解码器detection_decoder生成预测的边界框pb_pred。 b. 基于预测边界框pb_pred和当前时间t_now以及向前时间t_next,使用ddim_step函数估计t_next时刻的边界框pb_t。 c. 使用box_renewal函数更新边界框pb_t(指将pb_t中的值限制在[0, 1]内)。
返回最终的预测结果pb_pred。

3.4.1 取样步骤

在每个采样步骤中,上一个采样步骤的随机框或估计框被发送到检测解码器以预测类别分类和框坐标。
获得当前步骤的框后,采用DDIM来估计下一步的框。
我们注意到,将没有 DDIM 的预测框发送到下一步也是一种可选的渐进式细化策略。但它会带来显着的恶化。

3.4.2 Box更新

在每个采样步骤之后,预测框可以粗略地分为两种类型:期望的预测和不需要的预测。
所需的预测包含正确位于相应对象处的框,而不需要的预测则任意分布。
直接将这些不需要的框发送到下一次采样迭代不会带来任何好处,因为它们的分布不是由训练中的框损坏构建的。
为了使推理更好地与训练保持一致,我们提出了框更新策略,通过用随机框替换这些不需要的框来恢复它们。
具体来说,我们首先过滤掉分数低于特定阈值的不需要的框。
然后,我们将剩余的框与从高斯分布中采样的新随机框连接起来。

3.4.3 灵活运用

由于随机框的设计,我们可以使用任意数量的随机框和迭代次数来评估 DiffusionDet,而无需等于训练阶段。
作为比较,以前的方法在训练和评估期间依赖相同数量的处理框,并且它们的检测解码器在前向传递中仅使用一次。

3.5 讨论

我们对 DiffusionDet 和之前的多级检测器进行了比较分析 。
Cascade R-CNN 采用三阶段预测细化过程,其中三个阶段不共享参数,并且在推理阶段仅用作完整的头一次。
最近的工作采用了与Cascade R-CNN类似的结构,但具有更多阶段(即六个),遵循DETR的默认设置。
虽然 DiffusionDet 的头部也采用了六级结构,但其显着特点是 DiffusionDet 可以多次重复使用整个头部,以实现进一步的性能提升。
然而,现有的工作在大多数情况下无法通过重复使用检测头来提高性能,或者只能实现有限的性能提升。

4、实验

数据集:coco、LVIS v1.0、CrowdHuman

4.1 参数设置处理

ResNet 和 Swin 主干网分别使用 ImageNet-1K 和 ImageNet-21K 上的预训练权重进行初始化。
新添加的检测解码器由 Xavier init 初始化。
我们使用 AdamW 优化器训练 DiffusionDet,初始学习率为 2.5 × 10−5,权重衰减为 10−4。
所有模型均在 8 个 GPU 上使用大小为 16 的小批量进行训练。
默认训练计划是 450K 迭代,学习率在 350K 和 420K 迭代时除以 10。
数据增强策略包括随机水平翻转、调整输入图像大小的尺度抖动(使最短边至少为 480 且最多 800 像素,而最长边最多为 1333 )以及随机裁剪增强。
我们不使用 EMA 和一些强大的数据增强,如 MixUp 或 Mosaic 。
在推理阶段,我们报告了 DiffusionDet 在不同设置下的性能,这些设置是不同数量的随机框和迭代步骤的组合。每个采样步骤的预测由 NMS 集成在一起以获得最终预测。

4.2 性能

DiffusionDet 的主要特性在于对所有推理案例进行一次训练。

模型训练完成后,可以通过改变框的数量和推理中的迭代步数来使用它,如图 3 和表 1 所示。因此,我们可以将单个 DiffusionDet 部署到多个场景并获得所需的速度- 无需重新训练网络即可进行准确性权衡。
在这里插入图片描述
在这里插入图片描述
图 3.DiffusionDet 的灵活性。所有实验均在 COCO 2017 训练集上进行训练,并在 COCO 2017 验证集上进行评估。 DiffusionDet 对图 3a 和 3b 中的所有设置使用相同的网络参数。我们提出的 DiffusionDet 能够使用相同的网络参数从更多的提案框和迭代步骤中受益。

4.2.1 动态盒子数量

我们将 DiffusionDet 与 DETR 进行比较,以展示动态框的优势。我们使用官方代码和默认设置进行 300 个训练周期,通过 300 个对象查询重现 DETR 。我们用 300 个随机框训练 DiffusionDet,使候选数量与 DETR 一致,以进行公平比较。评估针对 {50, 100, 300, 500, 1000, 2000, 4000} 个查询或框。
由于可学习的查询在 DETR 的原始设置中训练后是固定的,因此我们提出了一种简单的解决方法,使 DETR 能够处理不同数量的查询:当 Neval < Ntrain 时,我们直接从 Ntrain 查询中选择 Neval 查询;当 Neval > Ntrain 时,我们将现有的 Ntrain 查询克隆到 Neval(也称为克隆)。我们为 DETR 配备了 NMS,因为克隆查询将产生与原始查询相似的检测结果。如图 3a 所示,DiffusionDet 的性能随着用于评估的框数量的增加而稳定增长。例如,当框数从 300 增加到 4000 时,DiffusionDet 可以实现 1.0 AP 增益。相反,克隆更多 DETR 查询(Neval > 300)会导致 DETR 性能从 38.8 略微下降到 38.4 AP,然后是使用更多查询时保持不变。
当 Neval > Ntrain 时,我们还实现了另一种 DETR 方法,连接额外的 Neval − Ntrain 随机初始化查询(也称为连接随机)。采用这种策略,当 Neval 与 Ntrain 不同时,DETR 的性能会明显下降。此外,当 Neval 和 Ntrain 之间的差异增大时,这种性能下降会变得更大。例如,当框数增加到4000时,采用concat随机策略的DETR只有26.4个AP,比峰值低12.4(即300个查询时的38.8个AP)。

4.2.2 迭代评估

我们通过将迭代步骤数从 1 增加到 8 来进一步研究我们提出的方法的性能,相应的结果如图 3b 所示。
我们的研究结果表明,随着迭代次数的增加,采用 100、300 和 500 个随机框的 DiffusionDet 模型表现出一致的性能改进。
此外,我们观察到具有较少随机框的 DiffusionDet 往往通过细化获得更实质性的收益。
例如,使用 100 个随机框的 DiffusionDet 实例的 AP 从 41.9(1 步)提高到 46.1(8 步),绝对提高了 4.2 AP。

4.2.3 Zero-shot transferring.

为了进一步验证泛化的有效性,我们在 CrowdHuman 数据集上对 COCOpretrained 模型进行了评估,无需任何额外的微调。
具体来说,我们的重点是 [person] 类的最终平均精度 (AP) 性能。
实验结果如表 1 所示。我们的观察表明,当转移到场景比 COCO 更密集的新数据集时,我们提出的方法(即 DiffusionDet)通过增加评估框或迭代步骤的数量表现出了显着的优势。例如,通过将框的数量从 300 个增加到 2000 个,并将迭代步骤从 1 增加到 4,DiffusionDet 分别实现了 5.3 和 4.8 的显着 AP 增益。
相比之下,以前的方法表现出有限的增益或严重的性能下降,AP 降低了 14.0。 DiffusionDet 令人印象深刻的灵活性意味着它对于各种场景(包括人口稀少和拥挤的环境)的对象检测任务来说是宝贵的资产,而无需任何额外的微调要求。

4.3 检测数据集的基准测试

在这里插入图片描述
表 2. COCO 2017 验证集上不同物体检测器的比较。 [S@Neval]表示迭代步数S和评估框Neval的数量。每个方法后面的参考文献表明其结果的来源。没有引用的方法就是我们的实现。

在表 2 中,我们将 DiffusionDet 与 COCO 数据集上的几种最先进的检测器进行了比较。。值得注意的是,我们的 DiffusionDet (1 @ 300) 采用单个迭代步骤和 300 个评估框,在 ResNet-50 主干上实现了 45.8 的 AP,超越了 Faster R-CNN、RetinaNet 等几种成熟方法的性能、DETR 和 Sparse R-CNN 具有相当大的优势。而且,DiffusionDet可以通过增加迭代次数和评估框来进一步增强其优越性。此外,当主干尺寸扩大时,DiffusionDet 显示出稳定的改进。 DiffusionDet 与 ResNet-101 (1 @ 300) 达到 46.7。当使用 ImageNet-21k 预训练的 Swin-Base [60] 作为主干时,DiffusionDet 获得了 52.5 AP,优于 Cascade R-CNN 和 Sparse R-CNN 等强基线。
我们当前的模型仍然落后于一些成熟的作品,如 DINO ,因为它使用了一些更先进的组件,例如可变形注意力 、更宽的检测头。其中一些技术与 DiffusionDet 正交,我们将探索将这些技术合并到我们当前的流程中以进一步改进。
在这里插入图片描述
表 3. LVIS v1.0 验证集上不同目标检测器的比较。我们使用联合损失[112]重新实现所有检测器,除了浅灰色的行(带†)。

LVIS 上的实验结果如表 3 所示。我们基于 detectorron2重现 Faster R-CNN 和 Cascade R-CNN,而稀疏 R-CNN 则基于其原始代码。我们首先使用 detectorron2 的默认设置重现 Faster R-CNN 和 Cascade RCNN,使用 ResNet50/101 主干网络分别实现 22.5/24.8 和 26.3/28.8 AP(表 3 中的 †)。此外,我们使用中的联合损失来提高它们的性能。由于 LVIS 中的图像以联合方式进行注释[34],因此负类别注释稀疏,这会恶化训练梯度,特别是对于稀有类别。提出联合损失来缓解这个问题,方法是对每个训练图像的类子集 S 进行采样,其中包括所有正注释和负注释的随机子集。我们选择|S|所有实验中 = 50。 Faster R-CNN 和 Cascade R-CNN 通过联合损失获得大约 3 AP 增益。以下所有比较均基于此损失。
我们看到 DiffusionDet 使用更多的评估步骤(无论是小主干还是大主干)都取得了显着的成果。此外,我们注意到,与 COCO 相比,迭代评估为 LVIS 带来了更多收益。例如,它在 COCO 上的性能从 45.8 增加到 46.6(+ 0.8 AP),而在 LVIS 上从 29.4 增加到 31.5(+2.1 AP),这表明我们的 DiffusionDet 对于更具挑战性的基准测试将变得更有帮助。

4.4. 消融实验

在这里插入图片描述
表 4. COCO 上的 DiffusionDet 消融实验。我们报告 AP、AP50 和 AP75。如果不指定,默认设置为:主干网为ResNet-50[37]和FPN[55],信号尺度为2.0,ground-truth框填充方法为连接高斯随机框,采样时使用DDIM和框更新步。默认设置以灰色标记。

我们在 COCO 上进行消融实验来详细研究 DiffusionDet。所有实验均使用以 FPN 为骨干的 ResNet-50 和 300 个随机框进行推理,无需进一步说明。

4.4.1 信号缩放

信号缩放因子控制扩散过程的信噪比 (SNR)。
我们研究了表 4a 中比例因子的影响。
结果表明,缩放因子 2.0 实现了最佳 AP 性能,优于图像生成任务中的标准值 1.0 [14, 38] 和用于全景分割的标准值 0.1 。
我们解释说,这是因为一个框只有四个表示参数,即中心坐标(cx,cy)和框大小(w,h),这大致类似于图像生成中只有四个像素的图像。
框表示比密集表示更脆弱,例如全景分割中的 512 × 512 掩模表示。
因此,与图像生成和全景分割相比,DiffusionDet 更喜欢具有更高信噪比的更简单的训练目标。

4.4.2 GT盒子填充策略

我们需要将额外的框填充到原始的真实框,以便每个图像具有相同数量的框。
我们研究了表4b中不同的填充策略,包括
(1)均匀地重复原始的ground Truth box,直到总数达到预定义值Ntrain;
(2)填充遵循高斯分布的随机框;
(3) 填充遵循均匀分布的随机框;
(4)与整个图像大小相同的填充框。连接高斯随机框最适合 DiffusionDet,我们默认使用此填充策略。

4.4.3 抽样策略

我们在表 4c 中比较了不同的采样策略。
在评估不使用DDIM的DiffusionDet时,我们直接将当前步骤的输出预测作为下一步的输入。
我们发现,当既不采用 DDIM 也不采用盒子更新时,DiffusionDet 的 AP 会随着迭代步数的增加而降低。
此外,仅使用 DDIM 或盒子更新会在 3 个迭代步骤中带来轻微的好处。
此外,当配备 DDIM 和更新时,我们的 DiffusionDet 获得了显着的收益。
这些实验共同验证了采样步骤中 DDIM 和盒子更新的必要性。

4.4.4 Ntrain 和 Neval 之间的匹配

在这里插入图片描述
表 5. COCO 上训练和推理框数量之间的匹配。 DiffusionDet 在训练和推理阶段解耦了盒子的数量,并且可以很好地进行灵活的组合。

DiffusionDet 具有使用任意数量的随机框进行评估的吸引人的特性。
为了研究训练框的数量如何影响推理性能,我们分别使用 Ntrain ∈ {100, 300, 500} 随机框训练 DiffusionDet,然后使用 Neval ∈ {100, 300, 500, 1000, 2000} 评估每个模型。
结果总结在表5中。
首先,无论DiffusionDet使用多少个随机框进行训练,准确率都会随着Neval的增加而稳定增加,直到在2000个随机框左右达到饱和点。
其次,当 Ntrain 和 Neval 相互匹配时,DiffusionDet 往往会表现得更好。例如,当 Neval = 100 时,使用 Ntrain = 100 个框训练的 DiffusionDet 表现优于 Ntrain = 300 和 500。

4.4.5 运行时间与准确性

在这里插入图片描述
表 6. 运行时间与性能。 † 表示具有 1000 个盒子的 DiffusionDet。 #Stages×#Heads表示训练和测试阶段使用的阶段和头的数量。 Stage 和 Head 的定义如图 2b 所示。

我们研究了 DiffusionDet 在多种设置下的运行时间,这些设置是在小批量大小为 1 的单个 NVIDIA A100 GPU 上进行评估的。我们使用符号 #Stages×#Heads 来指示训练期间使用的阶段和头的数量和测试阶段,如图 2b 所示,我们的调查结果如表 6 所示。
首先,我们的研究结果表明,具有单个迭代步骤和 300 个评估框的 DiffusionDet 表现出与 Sparse R-CNN 相当的速度,分别实现了 30 和 31 帧每秒 (FPS)。 DiffusionDet 还在 CrowdHuman 上展示了类似的零样本传输性能,同时以 45.8 AP 优于 Sparse R-CNN,而 COCO 上的 AP 为 45.0。此外,Sparse R-CNN 两次利用这六个阶段导致 COCO 上的 AP 下降了 1.4(从 45.0 到 43.6),而 CrowdHuman 上的 AP 下降了 6.0(从 66.6 到 60.6)。同样,DETR 在 COCO 上的性能下降了 0.4,但在 CrowdHuman 上的性能却提高了 1.2。
当增加迭代步数时,DiffusionDet 在 COCO 上实现了 0.7 AP 增益,在 CrowdHuman 上实现了 3.1 AP 增益。 DiffusionDet 通过 1000 个评估框获得了明显的性能提升。然而,DETR 和 Sparse R-CNN 都无法通过额外的迭代步骤实现性能提升。即使我们将级数扩大到 12,也会导致 Sparse R-CNN 的性能下降。
值得注意的是,在这项工作中,我们利用了最基本的扩散策略 DDIM 来开创性地探索使用生成模型进行感知任务。与生成任务中使用的 Diffusion 模型类似,DiffusionDet 可能会遇到采样速度相对较慢的问题。尽管如此,最近提出了一系列工作来提高扩散模型的采样效率。例如,最新的一致性模型提出了一种扩散模型的快速一步生成方法。我们相信,更先进的扩散策略可能会解决 DiffusionDet 速度性能下降的问题,我们计划在未来的工作中对此进行探索。

4.4.6 随机种子

在这里插入图片描述
图 4. 5 个独立训练实例的统计结果,每个实例使用不同的随机种子评估 10 次。

由于 DiffusionDet 在推理开始时被给予随机框作为输入,因此人们可能会问不同随机种子之间是否存在较大的性能差异。我们通过使用除随机种子之外的相同配置独立训练五个模型来评估 DiffusionDet 的稳定性。然后,受前人的启发,我们使用十个不同的随机种子评估每个模型实例,以测量性能分布。如图4所示,大多数评估结果都紧密分布在45.7 AP上。此外,不同模型实例之间的性能差异很小,这表明 DiffusionDet 对随机框具有鲁棒性并产生可靠的结果。

4.5.对 CrowdHuman 进行全面调整

在这里插入图片描述

除了4.2节中讨论的从COCO到CrowdHuman的跨数据集泛化评估之外,我们进一步在CrowdHuman上全面调整DiffusionDet。比较结果如表7所示。我们看到,与之前的方法相比,DiffusionDet 取得了更优越的性能。例如,通过单步和 1000 个框,DiffusionDet 获得 90.1 AP50,优于具有 1000 个框的稀疏 RCNN。此外,进一步将盒子增加到3000个和迭代步骤都可以带来性能提升。

5.结论

在这项工作中,我们提出了一种新颖的检测范例,DiffusionDet,将对象检测视为从噪声框到对象框的去噪扩散过程。我们的噪声到盒子管道具有几个吸引人的特性,包括盒子的动态数量和迭代评估,使我们能够使用相同的网络参数进行灵活的评估,而无需重新训练模型。标准检测基准的实验表明,与成熟的检测器相比,DiffusionDet 实现了良好的性能。

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

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

相关文章

day30

今日内容概要 继承(面向对象中得核心) 单继承 多继承 单继承下的属性查找 多继承下的属性查找 super和mro的使用 多态和鸭子类型 继承&#xff08;核心&#xff09; 面向对象的三大特征&#xff1a;封装、继承、多态 1.什么是继承 继承就是一种新建类的方式&#xff0…

仅个人记录:复现dotspatialdemo、打包、

复现dotspatialdemo 原始文件 一、新建项目、工具箱设置&#xff0c;项目引用等看上一篇 二、根据Form1.Designer.cs设计界面Form1.cs[设计] SplitContainer控件&#xff1a;将容器的显示区域分成两个大小可调的、可以向其中添加控件的面板。 legend控件&#xff1a;图例 map控…

System Generator初体验FIR滤波器

文章目录 前言一、介绍1、目标2、过程 二、步骤 1&#xff1a;在 FPGA 中创建设计1、打开 Lab1_1.slx 文件2、运行仿真3、使用 System Generator 创建 FIR 滤波器<1>、从库浏览器寻找需要的模块<2>、配置系统生成器块<3>、在 FPGA 上实现设计 三、步骤 2&…

[React] react-redux基本使用

文章目录 1.redux2.安装redux3.操作redux3.1 创建最为核心的store3.2 创建为store工作的reducer3.3 redux的响应式处理 4.完整版redux4.1 完善actionCreators4.2 thunk中间件 5.react-redux5.1 Count容器组件5.2 connect函数5.3 Provider 1.redux redux原理图 actionCreators:…

一文熟练使用python修改Excel中的数据

使用python修改Excel中的内容 1.初级修改 1.1 openpyxl库的功能&#xff1a; openpyxl模块是一个读写Excel 2010文档的Python库&#xff0c;如果要处理更早格式的Excel文档&#xff0c;需要用到额外的库&#xff0c;例如Xlwings。openpyxl是一个比较综合的工具&#xff0c;能…

MOM与MES管理系统有哪些本质上的区别

随着企业业务的不断发展&#xff0c;许多制造企业开始面临车间管理失控、生产不透明等问题。这时候&#xff0c;很多企业选择上线MES生产管理系统来提高生产管理水平。然而&#xff0c;随着企业业务的不断拓展&#xff0c;MES系统也逐渐暴露出其局限性。于是&#xff0c;MOM平台…

LeetCode 143.重排链表

题目链接 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目解析 分析题目后我们可以直接进行模拟实现。 具体用到的就是我们之前的知识的结合&#xff0c;首先使用快慢指针找到链表的中间结点。然后将后半段链表给翻转一下&#xff0c;然后再让这…

Uniapp 新手专用 抖音登录 获取用户头像、名称、openid、unionid、anonymous_openid、session_key

TC-dylogin 一定请选择 源码授权版 教程 第一步 将代码拷贝至您所需要的页面 该代码位置&#xff1a;pages/index.vue 第二步 修改appid和secret 第三步 获取appid和secret 获取appid和secret链接 注意事项 为了安全&#xff0c;我将默认的自己的appid和secret在云函数中删…

化妆品用乙基己基甘油全球市场总体规模2023-2029

乙基己基甘油又名辛氧基甘油&#xff0c;分子式 C11H24O3&#xff0c;分子量 204.306&#xff0c;沸点 325℃&#xff0c;密度 0.962&#xff0c;无色液体&#xff0c;涂抹性能适中的润肤剂、保湿剂及润湿剂。它能够在提高配方滋润效果的同时又具有柔滑的肤感。加入在某些膏霜体…

使用python利用merge+sort函数对excel进行连接并排序

好久没更新了&#xff0c;天天玩短视频了。现在发现找点学习资料真的好难。 10.1期间偶然拿到一本书 本书是2022年出版的&#xff0c;看了一下不错&#xff0c;根据上面的案例结合&#xff0c;公司经营整合案例&#xff0c;分享一下。 数据内容来源于书中内容&#xff0c;仅供…

【网络安全 --- kali2022安装】kali2022 超详细的安装教程(提供镜像)

如果你还没有安装vmware 虚拟机&#xff0c;请参考下面博客安装 【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;https://blog.csdn.net/m0…

在Linux中通过docker安装appnode面板

先在Linux中安装docker&#xff0c;然后在docker中安装appnode面板&#xff0c;并进行docker网络端口映射。 安装docker 第一步&#xff0c;卸载旧版本docker。 若系统中已安装旧版本docker&#xff0c;则需要卸载旧版本docker以及与旧版本docker相关的依赖项。 命令&#…

力扣(LeetCode)2034. 股票价格波动(C++)

哈希表有序集合 请看本题解的分析&#xff1a; 题目的关键是四大操作&#xff0c;其中 current/maximum/minimum 明示我们&#xff0c;数据流应有快速找到一些数据的能力&#xff1a; 时间戳最大的股票所对应的价格&#xff0c;即题目所定义的最新股票价格在当前数据流节点&a…

微服务技术栈-Nacos配置管理和Feign远程调用

文章目录 前言一、统一配置管理1.添加配置文件2.微服务拉取配置3.配置共享 三、Feign远程调用总结 前言 在上篇文章中介绍了微服务技术栈中Nacos这个组件的概念&#xff0c;Nacos除了可以做注册中心&#xff0c;同样可以做配置管理来使用。同时我们将学习一种新的远程调用方式…

Ant Design of React组件引用及路由跳转

Ant Design of React 学习笔记&#xff08;2&#xff09; Ant Design of React组件引用及路由跳转&#xff0c;接着笔记(1)继续 这里我们主要3点&#xff1a;1.使用Ant的组件&#xff1b;2&#xff0c;如何引用页面组件&#xff1b;3&#xff0c;路由导航跳转 这是我的目录结…

一文读懂Base64

这几天在和第三方交互的时候&#xff0c;对方返回的数据是base64格式的数据&#xff0c;所以这两天又彻底捋了下Base64的来龙去脉。之前看过一篇文章说的非常好&#xff08;再找到给加上链接&#xff09;&#xff0c;我在这不详细说明了&#xff0c;只说转换过程。 还是使用中…

【算法刷题】【链表】链表内指定区间反转:将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度)O(1)。

题目 解题 import java.util.*;/** public class ListNode {* int val;* ListNode next null;* public ListNode(int val) {* this.val val;* }* }*/public class Solution {/*** 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回…

uboot启动流程-board_init_r函数执行过程

一. uboot启动流程 本文来了解 board_init_r 函数执行过程。_main函数会调用到 board_init_r 函数。 二. board_init_r函数执行过程 _main 函数会调用到 board_init_r 函数。 _main 函数在 uboot的 /arch/arm/lib/crt0.S 文件中。_main函数中&#xff0c;执行完 relocate_…

JAVA毕业设计098—基于Java+Springboot的在线教育课程视频(源码+数据库)

基于JavaSpringboot的在线教育课程视频(源码数据库)098 一、系统介绍 本系统分为管理员、教师、用户三种角色(角色菜单可自行分配) 用户功能&#xff1a; 注册、登录、课程搜索、视频观看、课程资料发布、资料浏览、用户中心、我的发布、通知信息、密码修改 教师功能&…

IP 子网划分(VLSM)

目录 一、 为什么要划分子网 二、如何划分子网 1、划分两个子网 2、划分多个子网 一、 为什么要划分子网 假设有一个B类IP地址172.16.0.0&#xff0c;B类IP的默认子网掩码是 255.255.0.0&#xff0c;那么该网段内IP的变化范围为 172.16.0.0 ~ 172.16.255.255&#xff0c;即…