0%

Diffusion Models for Zero-Shot Open-Vocabulary Segmentation

OVDiff

Diffusion Models for Zero-Shot Open-Vocabulary Segmentation

  • text-conditioned image generative models对可能图像的分布进行编码,这提供了一种处理类内变化并捕获文本描述中的模糊性的方法
  • text-conditioned image generative models不仅编码对象的视觉外观,而且还提供上下文先验,如背景,这可以大大提高分割质量。

Methodology

image-20230716150650409

Support set generation

  • 基于prompt “A good photo of a $⟨c_i⟩$”使用stable diffusion生成N张support images

Class prototypes

  • 为每个类别生成positive和negative两类prototypes

    • Positive prototypes代表图像中与对应类别相关的区域特征
    • Negative prototypes代表background区域特征
  • 找与类别$c_i$最相关的区域

    • 作者的观察:生成图像的布局在很大程度上依赖于扩散模型的交叉注意图,即pixels attend more strongly to words which describe them
    • 基于这个观察,作者直接对cross-attention map所有层、头和去噪步骤求和,得到N张support images对应的N张attribution maps(代表了类别相关的区域)
    • 直接对激活图进行阈值分割会导致模糊的分割,因此作者使用CutLER进行无监督实例分割,获得高质量的obejct proposals
    • 计算每个mask proposal的attribution平均得分,最高的作为前景,最低的作为背景
    • 然后通过现成的预训练特征提取器获得密集图像特征,并计算前景/背景掩码内的平均特征作为prototype,即instance-level prototypes(从每个图像单独计算,且支持集中的每个图像可以被视为类Ci的实例。)
    • class-level prototypes则是通过对instance-level prototypes加权求和得到,根据mask size来设置权值
    • 通过对foreground and background regions分别进行K-means聚类得到part-level prototypes

Open-vocabulary segmentation

简单地通过每个像素的图像特征与prototype的余弦相似性的来获得,选择在其原型集中具有最高相似度的类

Category pre-filtering

“Stuff” filtering

使用ChatGPT来筛选“thing” or “stuff”(如sky)

Experiment

To generate our support set, we use the Stable Diffusion model v1.5. We set the size of the support set to N = 64, which translates to 4 batches of 16 images samples in parallel on a single A40(48G).

We estimate the total compute used for the experiments in this paper at 190 GPU hours