DiffusionInst: Diffusion Model for Instance Segmentation

代码:chenhaoxing/DiffusionInst: This repo is the code of paper "DiffusionInst: Diffusion Model for Instance Segmentation". (github.com)

摘要

扩散框架已经实现了与以前最先进的图像生成模型相当的性能。由于其强大的噪声到图像去噪管道,研究人员对其在判别任务中的变体感到好奇。本文提出了 DiffusionInst,一种将实例表示为实例感知过滤器并将实例分割制定为噪声到过滤器去噪过程的新颖框架。该模型经过训练可以在没有来自 RPN 的任何归纳偏差的情况下反转嘈杂的基本事实。在推理过程中,它以随机生成的过滤器作为输入和输出掩码,进行一步或多步去噪。在 COCO 和 LVIS 上的大量实验结果表明,与具有各种主干的现有实例分割模型(例如 ResNet 和 Swin Transformers)相比,DiffusionInst 实现了具有竞争力的性能。我们希望我们的工作可以作为一个强有力的基线,这可以激发设计更有效的扩散框架来挑战判别任务。

介绍

任务介绍

实例分割旨在用二进制掩码表示对象,与对象检测的边界框相比,这是一种更细粒度的表示。实例分割旨在为每个图像中呈现的每个实例预测具有类标签的像素级实例掩码。

实例分割的几种方法

  • Two-stage方法:首先检测物体,然后通过 RoI 对齐裁剪它们的区域特征,以进一步对每个像素进行分类。
  • single-stage方法:主要是基于anchor,我的理解是边界box。
  • query-based方法:使用随机生成的查询来替换 RPN 和锚点

想法来源

(1)query-based方法很像一种noise-to-mask的策略,这点和diffusion模型很相似,文中认为这是diffusion模型的一种特殊案例。

(2)一幅图像中的实例掩码可以由具有公共掩码特征的**实例感知过滤器(向量)**表示。

由此,本文提出了一个noise-to-filter的扩散视图的新颖实例分割框架。基本结构借鉴了#DiffusionDet#​ ,不同点在于:

  • 除了边界框,还在扩散过程中生成噪声滤波器。
  • 我们引入掩码分支以从FPN获取多尺度信息以进行全局mask重建。

它同query-based方法相比的优点:

  • 可以执行多步推理,query-based方法仅通过解码器的一次前向传递直接对对象的随机查询进行降噪
  • 生成的噪声过滤器可能包含以随机选择的时间为条件的不同分布噪声,这对模型的鲁棒性和性能有很大贡献

贡献

  • 我们提出了 DiffusionInst,这是用于实例分割的扩散模型的第一个工作,将其视为生成噪声到滤波器的扩散过程。
  • 我们没有预测局部掩码,而是利用实例感知过滤器和公共掩码分支特征来表示和重建全局实例掩码。
  • 在 COCO 和 LVIS 基准上进行了综合实验。与现有的精心设计的方法相比,DiffusionInst 取得了有竞争力的结果,显示了扩散模型在判别任务中的广阔前景。

方法

整体结构

在这里插入图片描述

Mask Representation

参考文章:CondInst

实例mask的产生方式:
在这里插入图片描述

其中Fmask表示与实例无关(不是针对某个实例)的mask特征图,θ表示特定于实例的过滤器,m是预测的二进制mask。
在这里插入图片描述是mask head,它含有3个1*1的卷积层,这些卷积层以过滤器θ作为卷积核

使用filter代表实例mask的好处:

  • 直接对整个mask图形进行随机噪声去噪,这比向量复杂得多。
  • 用动态mask head替换了广泛使用的box-to-mask预测方案,即将 RoI 特征解码为局部掩码,用于预测全局掩码。RoI特征因为是从下采样特征中裁剪的部分因此实例边缘的细节是丢失了的,而实例掩码对实例边缘的更高要求,因此它需要更大的感受野。

DiffusionInst

组成
  • CNN(ResNet-50)或 Swin(Swin-B)主干,它通过使用 FPN 提取紧凑的视觉特征表示
  • mask branch,用于融合来自 FPN 的不同尺度信息,输出掩码特征:在这里插入图片描述
  • Decoder,借鉴DiffusionDet,将一组与filter关联的嘈杂边界框作为输入来细化框和filter作为去噪过程
  • reconstruct the instance mask
Training

我们倾向于依赖相应的边界框来构建从 groundtruth 到噪声filter的扩散过程。

过程:(1)给groundtruth box添加噪声,对应第一个公式。注意方式跟DiffusionDet里面一致,先padding然后加噪声。

(2)生成噪声实例filter,它使用加噪的的box特征和一个全连接层n来生成,对应第二个公式

(3)获得预测的mask。
在这里插入图片描述

使用的损失函数:
在这里插入图片描述

其中Ldet是DiffusionDet中所使用的损失函数。

Inference

从采样自高斯分布的box bT开始

在这里插入图片描述

不足之处

  • 由于难以获得真值滤波器,我们的噪声到滤波器过程仍然依赖于边界框
  • 需要多步去噪获得更高的性能增益
  • 判别任务中的noise-to-filter过程需要更准确的实例上下文作为条件,而实例上下文严重依赖于代表性的backbone特征和大的感受野。
  • 与现有方法相比,需要更多的epoch才能达到相同的性能,且速度比它们慢

感悟

其实创新性一般吧,很多都是借鉴别人的,但是它有这个能力把这些想法用在一个新任务上。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐