【论文总结】Zero-Shot Semantic Segmentation

论文地址:https://arxiv.org/abs/1906.00817

代码:https://github.com/valeoai/ZS3

一、内容

 

 

Step 0:首先使用数据集(完全不包含 Unseen Classes 的图片)训练 DeepLabv3+ 模型,得到的模型可以对只含有 Seen Classes 的图片进行分类,去掉训练好的 DeepLabv3+ 的最后一层分类层,将其变成一个特征提取器。将所有 Classes 输入到 w2c 模型,得到每个Class 对应的向量,将此向量连接到 ground-truth 中每个像素上,即每个像素都有其对应的类的向量。

Step 1:使用数据集(完全不包含 Unseen Classes 的图片)输入到 DeepLabv3+ 模型,得到特征图,根据 ground-truth 上的 Class 筛选出不同类别的特征,将每个类的特征作为 Label,对应类的 w2c 输出的向量作为输入,训练 GMMN 模型。

Step 2:使用完整数据集 (包含 Seen 和 Unseen Classes 的图片)输入到 DeepLabv3+ 模型,如果不包含 Unseen Classes,那么直接拿出特征图去训练最终的分类器,如果包含,则根据图片的 ground-truth 对应的类的向量一一生成特征,将不同类特征组合到一起,再去训练最终的分类器。

二、理解

1. 代码中将 Step 1 和 2 和在了一起,为了便于理解,把 Step 1 和 2 分开解释。

2. Step 2 中使用了两次包含 Unseen Classes 的图像和其 ground-truth。

  • 在逐个对类的词向量生成特征时,用到了 ground-truth,根据 ground-truth 知道了类的总数、每个类的位置、以及对应的词向量。
  • 在最终训练分类器时,也用到了含有 Unseen Class 的图像的 ground-truth。
  • 也可以直接忽略 DeepLab 生成的特征图,直接根据 Seen 和 Unseen 标签随机生成图片,利用类的词向量通过 GMMN 生成特征,结合生成的图片的 Label 去训练最终分类器。

3. w2c 和 GMMN 是文章的关键,w2c 建立了一个从词语到向量的联系,GMMN 建立了一个从词向量到特征图上的视觉特征的联系,比如,使用 Unseen Class 为子弹,Seen Class 中包括弹匣,其他都是些不相干的类,自然子弹和弹匣在词向量中的联系比较起来相对紧密,从而子弹通过 GMMN 生成的特征也更与弹匣类似,通过最终分类器的训练,也就更容易能分辨出子弹。

4. GMMN 生成 Unseen Class的特征,代替了把 Unseen Class 经过 deeplab 特征提取器获得的特征,仍然需要 Unseen Class 的 ground-truth 作为 label 训练最后的分类器,但是不需要太多的 Unseen Class 的数据。

 

posted @ 2022-02-14 16:40  MoSalah  阅读(179)  评论(0编辑  收藏  举报