零样本分割系列论文(1)Zero-Shot Instance Segmentation (2021 CVPR)

这是我入门zero-shot segmentation读的第一篇论文,日后会继续沿着这个方向研究,欢迎大家一起分享,也欢迎大家多多点赞关注收藏!

1. 出处

2021 CVPR

2. Motivation

深度学习在有大量标注数据的实例分割任务中取得了很好的效果。但在医学领域,工业界很难获取到大量的数据,而且标注工作需要具备专业技能的人去做。这就导致这些任务中,未见过的类别,没有有标注的数据。
另外,对于open-set实例分割任务,不可能标注所有类别,很多未标注的unseen classes也需要被分割出来。
因此,缺乏有标注数据,深度学习方法无法完成这样的分割任务。

Zero-shot segmentation面临2个主要挑战:

  1. 如何对unseen classes进行实例分割

    引入预训练词向量中包含的额外的语义知识,将seen classes和unseen classes关联起来。使用seen classes中的语义词向量和图像数据来建立起视觉-语义映射关系,将其从seen classes迁移到unseen classes

    提出了zero-shot detector和Semantic Mask Head(SMH)来检测并分割unseen instance

  2. 如何降低背景和unseen classes的混淆

    由于unseen classes在训练的时候没出现过,所以模型很容易将unseen classes误判成背景。解决这个问题的关键就是:背景类的representation
    当前,背景类的representation有2个缺陷:
    (1)background现有的语义表示是不合理的,之前的工作使用"background"的词向量来表示背景类,但在视觉任务中,从无标注的text数据中学到的简单词向量不够用来表达复杂的背景;
    (2)background类已有的语义表示是固定的,难以适应不同图像中变化的背景
    为了获得合理的动态适应的词向量来表示背景类,提出了Background Aware RPN(BA-RPN)和Synchronized Background Strategy (Sync-bg)

3. Solution

提出了ZSI,zero-shot实例分割。不仅检测出所有unseen物体,而且能够精确分割出unseen实例

训练阶段,模型在seen data上训练,测试阶段,模型对seen实例和unseen实例进行分割。

提出的方法由几部分组成:

  • Zero-shot Detector

  • Semantic Mask Head

  • Background Aware RPN

  • Synchronized Background Strategy

4. 方法模型

4.1 setting

训练:来自seen classes的图像和词向量,在COCO训练集中选择seen classes图像

测试:来自seen classes和unseen classes的图像和词向量,在COCO验证集中选择unseen classes图像,这些图像可能包含seen和unseen classes

4.2 base detector

Faster R-CNN

4.3 整体结构

在这里插入图片描述
对于一个输入图像,获得每个proposal的visual feature和背景词向量。然后使用Sync-bg同步Zero-shot Detector和Semantic Mask Head的背景类词向量。

4.3.1 Zero-Shot Detector

用于学习seen classes数据中视觉和语义概念之间的关系,并迁移到unseen classes objects。最后,将分类分支,换成semantic-classification分支。
在这里插入图片描述
semantic-classification分支结构:encoder-decoder结构

使用Te将visual feature encode成semantic feature,然后使用Td将semantic feature解码成visual feature. L_R为重构损失函数。

decoder模型和重构损失使得网络可以学到更具判别性的visual-semantic alignment

推理过程中,将Td移除,然后通过与W_u和W_s做矩阵乘法,得到seen和unseen classes分数

4.3.2 Semantic Mask Head

主要用途:通过visual-semantic映射关系对unseen instances进行实例分割。

Semantic Mask Head能够从seen classes学到visual-semantic映射关系,并进行转换,用于对unseen instances进行分割.

整体结构是encoder-decoder结构
在这里插入图片描述
encoder E是1*1的卷积层结构,将visual features映射到语义空间上,从语义词向量中获得分割结果。

**引入decoder的目的:**引入decoder进一步获得更高质量的visual features和语义词向量之间映射关系.decoder将语义词向量解码成visual features.

使用300维的词向量作为每类的语义表示,因此encoder E用于将输入的visual feature转换成通道数为300的semantic feature

每个300*1element是一个词向量,为了得到每个element的分类得分(计算得分的目的是,对每个像素点进行分类),需要计算每个element词向量和所有seen和unseen classes词向量之间的相似度。

最后有个分类模块,两个分支,一个用于seen classes,另一个用于unseen classes。

W_s-Conv是一个fixed 1*1卷积层,采取所有seen classes的词向量和背景类W_s作为权重,W_u-Conv也是权重为W_u的1*1卷积层。

W_s和W_u和Zero-Shot Detector中的相同,都是词向量矩阵,前者是seen classes和背景类对应的词向量,后者是unseen classes和背景类对应的词向量。

以上两个模块的总结:

在zero-shot detector中,词向量W_s和W_u作为固定的全连接层的权重值,将目标分成n+1类,n表示seen和unseen classes,1表示背景类。

在Semantic Mask Head,W_s和W_u再次被用作W_s-Conv和W_u-Conv的权重,将像素分成n+1类。

4.3.3 BA-RPN and Synchronized Background

已有的背景类词向量没有利用visual infomation,只是在大量的文本数据中学到的,因此,无法有效的表示复杂的背景类。

BA-RPN能够将视觉-语义学习过程引入到原始的RPN中,来学习一个表示背景类的更合理的词向量。

在这里插入图片描述
BA-RPN使用一个全连接层T将visual feature转换成语义特征,使用300*2维全连接层W_bf,得到背景-前景二元分类得分。W_bf可以看作是分别表示前景和背景的词向量。W_bf通过训练进行优化,因此我们可以学到一个新的词向量v_b用于背景类别。

新的背景词向量就可以用于替换zero-shot detector和SMH中原来的那个。

但问题在于,在不同的图像中,背景表示应该是不同的,在BA-RPN学到的背景词向量仍然是固定的。BA-RPN和整个ZSI框架的训练过程是分开的,相当于前者训练好的背景词向量提供给后者,后者不会对v_b进行更新,导致背景学习受限于BA-RPN,zero-shot detector和SMH的优势没有被利用好。

W_bf优化后,需要不仅能够用于计算前景背景概率,而且还应该拿到Zero-shot Detector和SMH中。

为解决以上问题,提出了Synchronized Background Strategy,算法过程如下:
在这里插入图片描述

  1. 每一步训练,将visual features从backbone前向传播到BA-RPN,得到背景类词向量v_b,和每个proposal的visual features,
  2. 通过将背景词向量替换成v_b,来更新zero-shot detector中的W_s和SMH中的W_s-Conv
  3. 然后,将visual features前向传播到zero-shot detector和SMH
  4. 计算损失,并反向传播梯度值,更新被训练的参数

在inference阶段

对于每一个输入,BA-RPN可以适应性的产生对应的背景词向量,Synchronized Background Strategy可以同步这种适应性的词向量,更新zero-shot detector中的W_s和W_u,以及SMH中的Ws-Conv和Wu-Conv

5. 疑问

  1. SMH模块中,最后进行推理的时候,图像中既包括seen classes也包括unseen classes,得到semantic word-vectors后,既要往seen分类器,也要往unseen分类器中输入吗?

  2. 300*2和B*2里边为何要*2?

    得到前景和背景对应的概率,类似于Faster R-CNN中RPN判断anchor是前景还是背景

  3. Synchronized Background Strategy有何意义?

    通过BA-RPN对W_bf优化后,需要不仅能够用于计算前景背景概率,而且还应该拿到Zero-shot Detector和SMH中。

    所以SBS能够将V_b更新到Zero-shot Detector和SMH中,进行反向传播,迭代更新。

  4. Zero-shot论文中,训练的时候只有seen classes没有unseen classes吗?如果是这样,那是如何驱动模型能够成功预测unseen classes的呢?

    也就是core idea

  5. Zero-shot论文中,检测器检测出来的内容有无限制,限制在某些类别范围内?总不能word2vec里所有类别都能检测出来吧?
    inference的时候,只提供相应数据集的base classes和novel classes对应的词向量,所以只能检测出数据集有的类别

6. 启发

6.1 core idea

在seen classes上,训练得到visual feature和semantic information的映射关系,将这种关系迁移到unseen classes上,进而能根据novel词向量,推断出他的visual feature,并正确分割

6.2 缺陷

看到这里了,麻烦点个关注呀!

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值