扩散模型( 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。
该研究发现在传统的目标检测里,存在一个缺陷,即它们依赖于一组固定的可学习查询。然后研究者就在思考:是否存在一种简单的方法甚至不需要可学习查询就能进行目标检测?
为了回答这一问题,本文提出了 DiffusionDet,该框架可以直接从一组随机框中检测目标,它将目标检测制定为从噪声框到目标框的去噪扩散过程。这种从 noise-to-box 的方法不需要启发式的目标先验,也不需要可学习查询,这进一步简化了目标候选,并推动了检测 pipeline 的发展。
如下图 1 所示,该研究认为 noise-to-box 范式类似于去噪扩散模型中的 noise-to-image 过程,后者是一类基于似然的模型,通过学习到的去噪模型逐步去除图像中的噪声来生成图像。
DiffusionDet 通过扩散模型解决目标检测任务,即将检测看作图像中 bounding box 位置 (中心坐标) 和大小 (宽度和高度) 空间上的生成任务。在训练阶段,将方差表(schedule)控制的高斯噪声添加到 ground truth box,得到 noisy box。然后使用这些 noisy box 从主干编码器(如 ResNet, Swin Transformer)的输出特征图中裁剪感兴趣区域(RoI)。最后,将这些 RoI 特征发送到检测解码器,该解码器被训练用来预测没有噪声的 ground truth box。在推理阶段,DiffusionDet 通过反转学习到的扩散过程生成 bounding box,它将噪声先验分布调整到 bounding box 上的学习分布。
由于扩散模型迭代地生成数据样本,因此在推理阶段需要多次运行模型 f_θ。但是,在每一个迭代步骤中,直接在原始图像上应用 f_θ在计算上很困难。因此,研究者提出将整个模型分为两部分,即图像编码器和检测解码器,前者只运行一次以从原始输入图像 x 中提取深度特征表示,后者以该深度特征为条件,从噪声框 z_t 中逐步细化框预测。
图像编码器将原始图像作为输入,并为检测解码器提取其高级特征。研究者使用 ResNet 等卷积神经网络和 Swin 等基于 Transformer 的模型来实现 DiffusionDet。与此同时,特征金字塔网络用于为 ResNet 和 Swin 主干网络生成多尺度特征图。
檢測解碼器借鑒了Sparse R-CNN,將一組proposal 框作為輸入,從圖像編碼器生成的特徵圖中裁剪RoI 特徵,並將它們發送到檢測頭以獲得框回歸和分類結果。此外,此檢測解碼器由 6 個級聯階段組成。
訓練
在訓練過程中,研究者首先建構了從真值框到雜訊框的擴散過程,然後訓練模型來反轉這個過程。如下演算法 1 提供了 DiffusionDet 訓練過程的偽代碼。
真值框填入。對於現代目標偵測基準,感興趣實例的數量通常因影像而異。因此,研究者首先將一些額外的框填入原始真值框,這樣所有的框被總計為一個固定的數字 N_train。他們探索了幾種填充策略,例如重複現有真值框、連接隨機框或圖像大小的框。
框損壞。研究者將高斯噪聲添加到填充的真值框。雜訊尺度由下列公式(1)中的 α_t 控制,它在不同的時間步 t 中採用單調遞減的餘弦調度。
訓練損失。偵測解碼器將 N_train 損壞框作為輸入,預測 N_train 對類別分類和框座標的預測。同時在 N_train 預測集上應用集預測損失(set prediction loss)。
推理
DiffusionDet 的推理過程是從雜訊到目標框的去雜訊取樣過程。從高斯分佈中取樣的方塊開始,模型逐步細化其預測,具體如下演算法 2 所示。
取樣步驟。在每個取樣步驟中,將上一個取樣步驟中的隨機方塊或估計方塊傳送至偵測解碼器,以預測類別分類和方塊座標。在取得目前步驟的方塊後,採用 DDIM 來估算下一步驟的方塊。
框更新。為了使推理更好地與訓練保持一致,研究者提出了框架更新策略,透過用隨機方塊替換非預期的方塊以使它們恢復。具體來說,他們首先過濾掉分數低於特定閾值的非預期的框,然後將剩餘的框與從高斯分佈中採樣的新隨機框連接起來。
一次解決(Once-for-all)。由於隨機框設計,研究者可以使用任意數量的隨機框和取樣步驟來評估 DiffusionDet。作為比較,以往的方法在訓練和評估期間依賴相同數量的處理框,並且檢測解碼器在前向傳遞中僅使用一次。
在實驗部分,研究者首先展示了DiffusionDet 的Once-for-all 屬性,然後將DiffusionDet 與以往在MS-COCO 和LVIS 數據集上成熟的偵測器進行比較。
DiffusionDet 的主要功能在於對所有推理實例進行一次訓練。一旦模型經過訓練,它就可以用於更改推理中框的數量和樣本步驟數,如下圖 4 所示。 DiffusionDet 可以透過使用更多框或 / 和更多細化步驟來實現更高的準確度,但代價是延遲率更高。因此,研究者將單一 DiffusionDet 部署到多個場景中,並在不重新訓練網路的情況下獲得所需的速度 - 準確率權衡。
#研究者将 DiffusionDet 与以往在 MS-COCO 和 LVIS 数据集上的检测器进行了比较,具体如下表 1 所示。他们首先将 DiffusionDet 的目标检测性能与以往在 MS-COCO 上的检测器进行了比较。结果显示,没有细化步骤的 DiffusionDet 使用 ResNet-50 主干网络实现了 45.5 AP,以较大的优势超越了以往成熟的方法,如 Faster R-CNN、RetinaNet、DETR 和 Sparse R-CNN。并且当主干网络的尺寸扩大时,DiffusionDet 显示出稳定的提升。
下表 2 中展示了在更具挑战性的 LVIS 数据集上的结果,可以看到,DiffusionDet 使用更多的细化步骤可以获得显著的增益。
更多实验细节请参阅原论文。
以上是首個目標檢測擴散模型,比Faster R-CNN、DETR好,從隨機框直接檢測的詳細內容。更多資訊請關注PHP中文網其他相關文章!