论文:Learning to segment every thing



Abstract

提出一个新的半监督训练框架和一个权重转移函数,完成对具有 box 标注但是只有少量 mask 标注的多类别数据集进行实例分割。

1.  Introduction

实例分割函数需要高质量的标注,这些标注的类别目前只有大约100类,使得实例分割现在只是丰富的视觉世界中的一隅。

能否不需要对所有的类都具有 mask 标注来完成高质量的实例分割任务呢,为此我们提出了半监督学习和迁移函数。

半监督学习的形式如下:1)提供一个数据集,其中小部分类具有 mask 标注,其他类只有 box 标注。2)实例分割函数需要使用上述数据,完成对所有类别的实例分割。

半监督和弱监督的区别?

为完成如上的半监督学习,我们还提出来了一个转移函数。在 Mask R-CNN 中,实例分割任务被分为 bounding box object detection maskprediction 两个分支。转移函数背后的经验是,训练好的每一类 bounding box 分支的参数可以转化为那一类用来进行 mask 任务的视觉信息。

Weight 转移函数用来实现上述目的,用 bounding box detection parameters 来预测instancesegmentation parameters

在两种设置下探究我们的方法。第一种,在具有高质量标注和评价标准的COCO 数据集上实验,具体的,将 COCO 数据集分成两部分,一部分有 mask annotations,另一部分,只有 bounding boxannotation。第二种,在具有 3000 类别的 VG 数据集上,VG 数据集具有大量类别的 bounding box 标注但是大部分类的标注具有语义重叠的问题,标注也不详尽,而且,VG 没有 mask 标注。

2.  Related Work

Instancesegmentation 是一个很活跃的研究领域,Mask R-CNN 是目前最好的方法。现阶段优秀的算法都使用完全监督的方法,所有的类都具有 mask 标注。我们的方法想要放宽这个限制,在少量 mask 的标注上也可以完成模型的训练。

Weightprediction and task transfer learning,并非直接学习到模型的参数,而是从其他 sources 中预测得到。例如[8],图像分类器从一个 zero-shot 类别的自然语言描述来预测得到。[38]使用一个回归网络从 few-shot 例子中得到分类器weight。同样在[27]中,从单个物体的分类weight 中获得两个组成成分的分类weight。我们将会预测得到 class-specific 实例分割weight,而不是直接训练得到,实际,半监督也不可能训练得到。

我们的方法也是一种迁移学习,从一个任务到另一个任务,和我们的工作最相似的是 LSDA[17],通过一个域适应过程(domainadaptation production从全图的分类参数迁移到目标检测参数。

Weaklysupervised semantic segmentation,之前的工作使用弱监督来进行语义分割。[30]中使用图像级别的标注和物体尺寸的限制条件来进行分割。其他的由使用box 来当做监督信息[29][4]。点监督[3]。大部分工作都是语义分割,而不是实例分割,而且比较依赖于人工标注的bottom-up proposals

GrabCut完成了从bounding box 提取前景分割结果来实现弱监督的实例分割,但是我们希望利用所有存在的标签数据而不是人为的限制它。

Visualembeddings目标类别可以通过视觉语义空间中的连续 ‘embedding’ 向量建模,在视觉语义空间中,相近的向量往往在外观和语义本体上更接近。可以通过自然语言处理技术(word2vecGloVe)从视觉外观信息中获得类别 embedding 向量。在我们的工作中,Mask R-CNN box 分支包含 class-specific 外观信息,可以将之视为bounding box 目标检测任务学习到的 embedding 向量。类embedding向量可以在视觉相关类中通过共享外观信息实现迁移学习。

3. Learning to Segment EveryThing

将数据集 C ( 是目标类别的集合) 分为 A B 两类,A 类中的例子具有 mask 标记,B 类中的例子只有bounding box. 已知从 mask 可以转化为bounding box,我们假设 A 类中从bounding box 也可以转化为 mask.

我们从 Mask R-CNN 修改得到MaskX R-CNN

3.1 Mask Prediction Using Weight Transfer

Mask R-CNN boxmask 分支的最后一层都包含 category-specific 参数来对每一类进行分类和分割。我们使用一个和类无关的weight转移函数 T 来得到类的mask 参数。对于一个给定的类别cWcdecbox 分支的最后一层 class-specific weightsWcsegmask 分支的class-specific mask weights

Wcseg = TWcdec;θ)                                                      1

T*)是转移函数,θ是类无关参数,所以相同的转移函数可以应用到所有的类上。该函数由 FCN 实现。

3.2 Training

如图2所示,我们使用所有的类进行bounding box 训练,只在A类中进行 maskT*)的训练,我们探索了两种不同的训练方式。

Stage-wisetraining.先在所有的类中进行 box 训练,然后固定卷积层和box部分,进行mask部分训练。这个方法可以一次训练好box部分后快速的进行转移函数的实验。但是,这种方法对实验的结果有损害。

End-to-end joint training, 联合训练比分两个 stage 效果要好,但是联合训练在更新Wcdec的时候有差异,因为只有A 类会在 T 中有 mask loss,只有 A 类的Wcdec 会获得梯度。为解决上述问题,我们在后向传播mask loss的时候,停止计算Wcdec的梯度,即在mask分支不更新Wcdec,只更新θ

3.3 Baseline : Class-Agnostic Mask Prediction

DeepMask[32] 证明训练一个类无关的mask prediction是可能的。在Mask R-CNN也得到相同的结果,只在mask质量上得到很小的损失。所以我们把 class-agnostic FCN maskprediction head当做baseline

3.4 Extension: Fused FCN + MLP Mask Heads

Mask R-CNNmask分支有两种方式,一种是FCN,一种是MLP,其中FCN效果更好。然而这两种方式可能是互补的,MLP擅长获得‘gist of an objectFCN更关注细节(例如边界)。我们融合这两种方法(转移函数为FCN,mask branch为MLP)来提高 baseline 和转移函数。

当融合class-agnostic(MLP)  class-specific mask prediction(Transfer func) 时,将class-agnostic mask score 1*M*M 复制 K 次,和 class-specific K*M*M 相加,然后使用 sigmoid 单元转化为每一类的 mask 概率,然后 resize 到实际的 bounding box 的大小来当做最后的实例 mask

4.Experiments on COCO

COCO数据集上评价我们的模型,因为COCO数据集不大但是有80类非常详尽的mask标记,允许进行高质量的评价。

4.1 Evaluation Protocol and Baselines

COCO数据集分成A,B两部分,考虑两种方式,120(voc) /60(non-voc)2)随机分类

Implementation detail. 对每一类,在detection head中都有一个 1024-d ROI 分类参数向量 Wccls,一个4096-d bounding box 回归参数向量Wcbox,在mask head中都有一个256-d 的分割参数向量Wcseg,输出的mask的分辨率是M*M=28*28,模型的超参数和Mask R-CNN 的一样。

Baseline and oracle. 我们的方法是 FCN或者FCN+MLP两种结构的类无关mask prediction。这里分割的参数Wcseg并不是从Wcdec预测得到的,而是训练得到的。把这个当做baseline,我们在 4.3 会比较我们的方法和无监督或者弱监督的方法。

我们也提出了一个‘oracle’模型,在所有的A,B类上都有mask标签来训练,MaskR-CNN,这是我们半监督学习表现的上限。

4.2 Ablation Experiments

Input to T(*). 1)对每一类的随机高斯向量,2)对每一类使用GloVe vecotr得到的NLP-based word embedding3Mask R-CNN box head classifier weight4Mask R-CNN box regression weight5)上两种的相加。下面表1表明,后三种优于前两种。在A类上所有的方法都稍稍优于oracle方法,这表明我们的transfer函数没有损害监督学习上的类的任何信息。

Structure of T(*).探究了T*)的各种结构,层数和激活函数的选择,结果如下表所示。实验结果显示 2-layer FCN with LeakyReLU得到最好的结果。

Comparison of random A/B splits.除了将数据分成vocnon-voc,我们还进行了随机分割,结果显示在下图中。结果显示,A类中的每一类的样本数量越多,转移函数在B类上的表现就越好。

Impact of the MLP mask branch.比较了融合了MLP 的结果,实验表明FCNMLP是互补的。

Effect of end-to-end training.目前为止所有的实验都是分阶段训练的,接下来的实验验证了端到端的学习可以提高模型的效果,但是如果不截断Wcdec梯度的回传,并不会提高。

4.3 Results and Comparison of Our Full Method

比较了我们的 fully Maskx R-CNN方法(Mask R-CNN with “transfer+MLP”Tcls+box2-layer,LeakyRelu;class-agnostic baseline ;end-to-end )和无监督,半监督方法。

5. Large-Scale Instance Segmentation

VG 数据集和COCO 数据集上进行大尺度实例分割训练,采用分阶段训练的方式,在VG数据集上进行Faster R-CNN训练来检测3000类,之后在COCO数据集上进行mask以及转移函数的学习。

我们的大尺度实例分割模型有一些有意思的结果。首先,它可以学习到抽象的概念,例如影子,路。这些一般都很难分割。其次,因为只是简单的使用了VG数据的前两千类,有一些概念比东西更像东西,例如,模型倾向于分割一个独立的树,当一个检测到的树更像森林时,分割就会困难。最后,模型可以分割整个物体以及其上的部件,例如冰箱上的把手。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值