首个目标检测扩散模型,比Faster R-CNN、DETR好,从随机框中直接检测
扩散模型不但在生成任务上非常成功,这次在目标检测任务上,更是超越了成熟的目标检测器。
扩散模型( 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 也表现良好,使用 swing - base 作为骨干实现了 42.1 AP。
- 论文地址:https://arxiv.org/pdf/2211.09788.pdf
- 项目地址 https://github.com/ShoufaChen/DiffusionDet
该研究发现在传统的目标检测里,存在一个缺陷,即它们依赖于一组固定的可学习查询。然后研究者就在思考:是否存在一种简单的方法甚至不需要可学习查询就能进行目标检测?
为了回答这一问题,本文提出了 DiffusionDet,该框架可以直接从一组随机框中检测目标,它将目标检测制定为从噪声框到目标框的去噪扩散过程。这种从 noise-to-box 的方法不需要启发式的目标先验,也不需要可学习查询,这进一步简化了目标候选,并推动了检测 pipeline 的发展。
如下图 1 所示,该研究认为 noise-to-box 范式类似于去噪扩散模型中的 noise-to-image 过程,后者是一类基于似然的模型,通过学习到的去噪模型逐步去除图像中的噪声来生成图像。
方法概述
由于扩散模型迭代地生成数据样本,因此在推理阶段需要多次运行模型 f_θ。但是,在每一个迭代步骤中,直接在原始图像上应用 f_θ在计算上很困难。因此,研究者提出将整个模型分为两部分,即图像编码器和检测解码器,前者只运行一次以从原始输入图像 x 中提取深度特征表示,后者以该深度特征为条件,从噪声框 z_t 中逐步细化框预测。
图像编码器将原始图像作为输入,并为检测解码器提取其高级特征。研究者使用 ResNet 等卷积神经网络和 Swin 等基于 Transformer 的模型来实现 DiffusionDet。与此同时,特征金字塔网络用于为 ResNet 和 Swin 主干网络生成多尺度特征图。
检测解码器借鉴了 Sparse R-CNN,将一组 proposal 框作为输入,从图像编码器生成的特征图中裁剪 RoI 特征,并将它们发送到检测头以获得框回归和分类结果。此外,该检测解码器由 6 个级联阶段组成。
训练
在训练过程中,研究者首先构建了从真值框到噪声框的扩散过程,然后训练模型来反转这个过程。如下算法 1 提供了 DiffusionDet 训练过程的伪代码。
框损坏。研究者将高斯噪声添加到填充的真值框。噪声尺度由如下公式(1)中的 α_t 控制,它在不同的时间步 t 中采用单调递减的余弦调度。
训练损失。
检测解码器将 N_train 损坏框作为输入,预测 N_train 对类别分类和框坐标的预测。
同时在 N_train 预测集上应用集预测损失(set prediction loss)。
推理
DiffusionDet 的推理过程是从噪声到目标框的去噪采样过程。从在高斯分布中采样的框开始,该模型逐步细化其预测,具体如下算法 2 所示。
框更新。为了使推理更好地与训练保持一致,研究者提出了框更新策略,通过用随机框替换非预期的框以使它们恢复。具体来说,他们首先过滤掉分数低于特定阈值的非预期的框,然后将剩余的框与从高斯分布中采样的新随机框连接起来。
一次解决(Once-for-all)。得益于随机框设计,研究者可以使用任意数量的随机框和采样步骤来评估 DiffusionDet。作为比较,以往的方法在训练和评估期间依赖于相同数量的处理框,并且检测解码器在前向传递中仅使用一次。
实验结果
在实验部分,研究者首先展示了 DiffusionDet 的 Once-for-all 属性,然后将 DiffusionDet 与以往在 MS-COCO 和 LVIS 数据集上成熟的检测器进行比较。
DiffusionDet 的主要特性在于对所有推理实例进行一次训练。一旦模型经过训练,它就可以用于更改推理中框的数量和样本步骤数,如下图 4 所示。DiffusionDet 可以通过使用更多框或 / 和更多细化步骤来实现更高的准确度,但代价是延迟率更高。因此,研究者将单个 DiffusionDet 部署到多个场景中,并在不重新训练网络的情况下获得所需的速度 - 准确率权衡。
对于刚入行的开发者来说,上手深度学习并不总是一件容易的事。 想要短期提升上手能力?机器之心联合亚马逊云科技开设《深度学习实战训练营》线上实战营。 实战营为期 3 周,共 6 次课程,还有 6 次课后作业,实战营期间讲师将在答疑群中随时解决同学的疑问,全程免费,欢迎希望上手实操深度学习的同学加入学习。
11月22日开营,关于课后答疑、作业与奖励欢迎进群了解,最后附上详细课程安排。