分割向:Learning to segment everything

同样是来自FAIR之作。

摘要

现有实例分割方法需要所有的训练实例都被标记。然而标记这些实例的成本是很大的。本篇文章的目的是提出一种新的偏监督训练方法以及一种全新的权重迁移函数。文章实现了在一个所有类别都被打上了bbox框但是只有其中一小部分有mask标注的数据集上进行训练的目标。这一贡献使得我们能够训练Mask R-CNN使用来自于Visual Genome数据集中的对于3000个visual concepts的box标注以及COCO数据集中80个类别的mask标注达到了识别和分割VG中3000个visual concepts的目标。


Introduction

实例分割目前能达到的分割类别数大概只有100种类别。相对于mask annotation而言,bbox annotation的成本是很低的。因此我们提出一个疑问:当我们的数据集中并没有包括完整类别的mask annotation时,我们是否可以训练出高质量的实例分割模型呢?带着这一motivation,作者们提出了一种偏监督实例分割任务,并且提出了一种新型的迁移学习方法来解决它。

所谓的偏监督实例分割任务定义如下:(1)给定一些我们感兴趣的类别的数据集,其中一小部分有mask annotation,其余的类别只有bbox annotation;(2)这一实例分割算法可以达到只用(1)中所给数据实现所有感兴趣类别的分割的目的。之所以称之为偏监督实例分割任务,是因为我们的训练数据集是强标记样本(有mask)和弱标记样本(只有box)的混合。

作者提出的偏监督实例分割方法最大的好处是它使得我们可以同时使用现有存在的数据集,比如有着大规模类别的bbox annotation的Visual Genome和有着一小部分类别的mask annotation的COCO,来训练一个大规模的实例分割模型。

为了解决偏监督实例分割问题,我们基于Mask R-CNN提出了一种新的迁移学习的方法。作者选择Mask R-CNN的原因也是因为它将实例分割任务分成了目标识别和mask预测两个子任务。处理这些子任务都是通过共同训练网络的head部分实现的。我们的灵感来源于我们认为,一旦训练之后,bbox head的参数对每一个类别都进行了一个编码,因此可以实现对那一类别的视觉信息迁移到偏监督mask head的效果。

我们对这种直觉的实现方式是设计一个参数化的权重迁移函数,我们对其进行训练来预测一个类别的实例分割参数,它是bbox识别参数的函数。这一权重迁移函数可以用有mask annotation的类别作为supervision,在Mask R-CNN中进行端对端的训练。在inference的时候,权重迁移函数被用来预测每一类别的实例分割参数,使得模型可以对所有目标类别进行分割,即使是训练集中没有mask annotation 的那些。

我们设定了两种评价方法。首先用COCO数据集来作为一个有着高质量annotation和评价标准的数据集进行了一个偏监督实例分割的模拟。具体而言,我们将完整的COCO类别分为一个有mask annotation的子集以及一个只有box annotation 的子集。由于COCO数据集本身只包含80种类别,因此评价标准既精确又可靠。实验结果表明我们的方法在mask AP值上相较于baseline提升了40%。

第二种评价方法是,我们在VG数据集上训练一个大规模的实例分割模型。VG数据集对于大多数目标类别都有bbox annotation,但是有质量的评价是比较困难的,因为很多类别都有重叠,此外,annotation并非exhaustive,这使得精确度和召回率都很难测量。另外,VG没有instance mask。


Related Work

实例分割 目前的实例分割方法都假设我们位于一个全监督训练的背景下,即在训练过程中,对于我们所有感兴趣的类别我们都有mask annotation。我们的方法的重点是放宽这一假设,使得在我们只有一小部分类别有mask annotation的情况下同样能进行训练。

权重预测和迁移学习 作者设计了一个模型来预测Mask R-CNN中要使用到的类别明确的权重参数,而非直接对它们进行训练。

弱监督语义分割 早先的工作是通过弱监督来训练语义分割模型的。在Constrained convolutional neural networks for weakly supervised segmentation中通过使用image-level的标签以及目标大小限制,而其他方法则用box作为监督来实现期望最大化(Weakly and semi-supervised learning of a DCNN for semantic image segmentation.)或者在proposal生成和训练之间进行迭代(Exploiting bounding boxes to supervise convolutional networks for semantic segmentation)。Whats the point: Semantic segmentation with point supervision中使用了点监督和目标潜在性。这个领域处理的大多是语义分割的问题,对每个类别分别处理,并且对那些手动生成得并不是很好的自底向上的建议依赖性较强。我们的工作是对这些方法的补充,因为我们探索到了一种不依赖于自底向上的分割,而是通过训练一个小类别子集的分割模型实现的。

视觉嵌入 我们可以通过在视觉-语义空间内的连续“嵌入”向量对目标类别进行建模,其中邻近的向量在形状和语义实体论上很相近。类别嵌入向量可以通过自然语言处理技术获得(比如word2vec和GloVe)。在我们的工作中,Mask R-CNN的box head的参数包括已知类别的形状信息,并且我们可以将其看作可以通过训练目标定位任务来学习到的嵌入向量。类别嵌入向量使得我们可以在那些视觉上看起来近似的类别之间通过共享外表信息来实现迁移学习模型。在实验中,我们还同基于NLP的GloVe嵌入进行了比较。


Learning to segment ereything

将C定义为目标类别集合,我们希望用它来训练一个实例分割模型。大多数现有方法都假设C中所有训练样本都有mask annotation。但是我们放宽这一假设,并且假设C = A ∪ B,其中A中的类别都有mask annotation,而B中只有bbox annotation。我们将这种训练称作偏监督学习问题。注意到将mask annotation转换成bbox是很容易的,因此我们假设对A中所有类别都有bbox annotation。作者将他们带有权重迁移函数的、基于Mask R-CNN的新网络称为Mask_X R-CNN。

3.1 Mask prediction using weight transfer

作者选择Mask R-CNN作为基础模型,是因为它是目前state-of-the-art的分割模型。

在Mask R-CNN中,bbox分支和mask分支的最后一层都包含用来进行bbox分类和mask预测的category-specific的参数,这些参数都是对于某一特定类别的。在作者的方法中,并非独立地对bbox参数和mask参数进行学习,而是用一个可以同时进行训练的权重迁移函数从bbox参数中预测mask参数。

权重迁移函数的表示方法如下:


其中c代表某一类别,w(seg)代表这一类别的mask参数,w(det)代表这一类别的bbox参数,/theta的设置需要使得对那些即使在训练中没有出现mask annotation的类别也能很好地泛化。权重迁移函数T可以通过一个小的FCN实现。注意到bbox head中包含两种参数,分别是分类参数和回归参数。在实际试验中,作者分别对只包含这两种参数中的任意一种以及同时包含两种参数进行了实验。

3.2 Training


实际训练过程中,假定两个数据集A和B,其中A包含mask annotation,而B只包含bbox annotation。从上图中可以看到,在对bbox head进行训练的时候,box loss是针对A、B两个数据集计算的,而对T和mask head进行训练时,mask loss是只在数据集A上进行计算的。在损失函数如此定义的情况下,作者提出了两种训练流程:stage-wise training和end-to-end training。

Stage-wise training 由于Mask R-CNN可以看做是在Faster R-CNN的基础上添加了一个mask head,因此一个潜在的训练策略是将训练分为检测训练(第一阶段)和分割训练(第二阶段)。在第一阶段,只用A和B两个数据集中共有的类别的bbox annotation对Faster R-CNN进行训练,第二阶段我们会固定卷积特征和bbox head的参数对mask head进行训练。这样,每一个类别的定位参数就可以看做是固定的嵌入向量,因此在训练的第二阶段我们就不需要对它们进行更新。这种方法的实际意义是,我们可以一次就训练了box detection模型,并且在之后逐渐对不同的权重迁移函数进行评估。这种方法的缺点随后将会提到。

End-to-end joint training 从Mask R-CNN中我们可以看到,同时训练相比于分别训练对于模型的表现情况有很大的提升。上面提到的训练方法将detection训练和和分割训练分开,可能会导致不那么理想的结果。因此我们想要通过一种端对端的方式,同时对bbox head和mask head进行训练。理论上我们可以用A与B的并集的box损失以及A上的mask损失来进行反向传播。但是这样可能会导致集合A、B之间




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值