Learning to Segment Every Thing(偏监督学习)

摘要  

  大多数实例分割算法都要求为所有的训练样本分配一个分割掩码标签。为新类别打标签是一件费时费力的事情,所以这篇文章提出了一个新的偏监督学习训练范例,使用权值迁移函数来训练拥有大量边框标注但是有很少分割标注的实例分割模型。这些改进可以让Mask R-CNN检测和分割3000个视觉概念,通过使用Visual Genome dataset的边框标注和COCO dataset的80个类别掩码标注。这个方法扩展了视觉世界的广泛概念。

1. 介绍

  目标检测现在都是准确率非常高的。实例分割受限于非常少的类别,大概只有100个目标类别。

  限制的主要原因是最先进的实例分割算法都要求精确的监督标签,而这些标签的收集很难。相比之下,边框标注是非常多的,并且很好收集。这引发了一个问题:对于所有类别没有完整的实例分割标注,却可以训练高质量的实例分割模型?带着这个动机,提出了一个偏监督实例分割任务,以及一个新的迁移学习方法来解决这个问题。 

  如下定义偏监督实例分割任务:(1)给定一个感兴趣的类别集合,这个小的集合有实例掩码标注,而其它列别仅仅有边框标注;(2)实例分割算法应该利用这个数据去拟合模型,该模型可以在所有感兴趣类别上分割所有目标实例。因为训练诗句是掩码数据和边框数据的混合,所以称该任务为偏监督学习。

  偏监督相对于弱监督训练的主要好处是,允许通过利用所有存在数据类型构建一个大规模实例分割模型,这些数据包括有大量类别的边框标注的Visual Genome以及包含少量类别的实例掩码标注的COCO。这个方法能让最先进的实例分割方法扩展到数以千计的类别中。

  为了处理偏监督实例分割,提出了一个建立在Mask R-CNN上的新迁移学习方法。Mask R-CNN非常适合这个任务,因为它将实例分割问题分解为边框检测和掩码预测两个子任务。这两个子任务的使用专用共同的头部网络训练。方法背后的直观理解是,一旦训练,边框头部的参数编码每个类别的嵌入,使得视觉信息能够传递到偏监督掩码的头部。

  通过设计一个参数化的权值迁移函数来实现这个直观理解,并训练该函数作为边框检测参数的函数来预测类别实例分割的参数。该权值迁移函数使用带有掩码标签的类作为监督在Mask R-CNN上训练。在推理的时候,该函数用于预测每个类别的实例分割参数,因此使得模型分割所有的目标类别,并且包括那些训练时候没有掩码标注的类别。

  这篇文章在两个设置上探索这个方法。首先是,使用COCO dataset来模仿偏监督实例分割任务。具体就是,将所有COCO类别集合分割成有掩码标注的子集,其余的分为只有边框标注的子集。因为COCO dataset只要80个语义上分割好的类,定量的评估是准确的且可靠的。实现结果表明,这个方法大大改善了结果。

  第二个设置是,用Visual Genome(VG) dataset训练一个大规模的有3000类别的实例分割模型。VG包含大量目标类别的边框标注,然而定量的评估是个挑战。此外,VG没有实例掩码标注。相反,使用VG提供大规模实例分割模型的定性输出。

2. 相关工作

Instance segmentation. 实例分割是高度活跃的研究领域,其中的Mask R-CNN代表了最先进的算法。这些方法都假设了一个全监督的训练场景,即所有的类别都有实例掩码标注。这片论文的目标就是释放这个假设,使得即使只有一部分类别的掩码可用也能训练模型。为了做到这点,在Mask R-CNN上构建了一个新的迁移学习方法。

Weight prediction and mask transfer learning. 替代直接学习模型参数,其它来源的先前的工作已经探索了如何预测它们。这里,设计一个模型来预测Mask R-CNN中使用的具体类别的实例分割权值,来替代直接训练它们,这在偏监督训练场景中是可行的。

  这个方法是迁移学习的一种类型,其中的知识是从一个任务帮助另一个任务获得。与这个方法最相关的是,LSDA通过域自适应步骤将整个图像分类参数装换为其它目标检测参数。LSDA可以视为将在一个图像分类任务上学习到的知识迁移到一个目标检测任务,这里考虑将从边框检测学习的知识迁移到实例分割。

Weakly supervised semantic segmentation. 先前的工作从弱监督上训练语义分割模型。这个领域的大多数工作仅仅处理语义分割不是实例分割,独立的处理每个类,并且依赖手工自底向上的方法,泛化不好。

Visual embedding. 目标类别可以通过在视觉语义空间连续的嵌入向量来建模,其中相近的向量经常是外观上或者语义本体中是相近的。类别嵌入向量可以通过自然语言处理技术获得。这个方法中,Mask R-CNN框头部的参数包含具体类别的外观信息,并且可以视为通过为边框检测训练学习到的嵌入向量。这个类别嵌入向量可以通过分享视觉相关类别之间的外观信息,使得模型中的迁移学习得以实现。

3. 学习分割每个东西

  假设$C$是想要训练实例分割模型的目标类别集合。大多数现有方法都假设$C$中的所有训练样本都有实例掩码标注。这里放宽了这个要求,而是假设$C=A∪B$,其中$A$所有类别的样本都有掩码,而$B$中的所有样本仅有边框。因为$B$中的样本关于目标任务(实例分割)都被弱标签化,所以称在强标签和弱标签结合上的训练为偏监督学习问题。注意到可以很容易将实例掩码转化为边框,所以假设边框标注也可以用于$A$中的类。

  给定一个实例分割模型,像Mask R-CNN一样有一个边框检测组件和一个掩码预测组件,提出了$Mask^{X} R-CNN$方法将模型边框检测器中的具体类别信息迁移到它的实例掩码预测器中。

3.1 使用权值迁移来预测掩码

  这个方法建立在Mask R-CNN上,因为他是一个简单的实例分割模型,也实现了最先进的结果。简短地说,Mask R-CNN可以视为是Faster R-CNN的增强,它通过添加一个小的FCN网络来实现。在推理的时候,掩码分支应用于每个检测目标为了预测一个实例级的前景分割掩码。在训练时,掩码分支与Faster R-CNN中标准边框头部并行且联合训练。

  在Mask R-CNN中,边框分支的最后一层和掩码分支的最后一层都包含具体类别参数,该参数分别用于每个类别的边框分类和实例掩码预测。替代独立学习具体类别的边框参数和掩码参数,提出使用通用的类无关的,且可以联合训练作为整个模型一部分的权值迁移函数,从边框参数来预测一个类的掩码参数。

  对于一个给定的类别$c$,假设$w^{c}_{det}$是边框头部最后一层特定类的目标检测权值,并且$w^{c}_{seg}$是掩码分支特定类掩码权值。替代将$w^{c}_{seg}$视为模型参数,使用一个通用权值预测函数Τ(·)将$w^{c}_{seg}$参数化。

$w^{c}_{seg}=Τ(w^{c}_{det};θ)$,(1)

  这的θ是类无关的学习参数。

  同样的迁移函数Τ(·)可以应用任何类别$c$,因此θ应该被设置以致于Τ(·)可以泛化到在训练时候没有掩码的类。期望泛化是可行的,因为特定类的检测权值$w^{c}_{det}$可以视为一个基于外观的类的视觉嵌入。

  可以将$Τ(·)$实现为一个小的全连接网络。图2阐明了权值迁移函数如何拟合Mask R-CNN以形成$Mask^{X} R-CNN$。从细节来看,注意到边框头部包含两种检测权值:RoI的分类权值$w^{c}_{cls}$和边框回归取值$w^{c}_{box}$。实验仅仅使用其中一种权值(例如,$w^{c}_{det}=w^{c}_{cls}\,or\,w^{c}_{det}=w^{c}_{box}$),或者使用两者的拼接(例如,$w^{c}_{det}=[w^{c}_{cls},w^{c}_{box}]$)。

3.2 训练

  在训练的时候,假设对于两种类别$A$和$B$,仅仅$A$的实例掩码标注可用,$B$的不可用,然而两者边框标注都可用。如图2所示,使用标准的边框检测损失在所有类别上$A∪B$上训练边框头部,但是仅仅使用$A$类上的掩码损失来训练掩码头部和权值迁移函数Τ(·)。给定这些损失,探索两种不同的训练步骤:阶段性训练和端到端训练。

Stage-wise training. 因为Mask R-CNN可以视为用一个掩码头部对Faster R-CNN的一个增强,所以一个可行的训练策略是将训练步骤分成检测训练(第一阶段)和分割训练(第二阶段)。在第一阶段,仅仅使用$A∪B$类别的边框标注进行训练,并且然后在第二阶段训练附加的掩码头部而保持卷积特征和边框头部不变。用这种方法,每个类的特定类检测权值$w^{c}_{det}$可以视为固定类嵌入向量,该向量在第二阶段训练时不需要更新。这个方法有益于让我们只用训练边框检测模型一次,并且然后快速为权值迁移函数评估设计选择。它也有缺点,接下来讨论。

End-to-end joint training. 对于Mask R-CNN来说,多任务训练比分开来训练每个任务会有更好的性能。上述的阶段性训练机制将检测训练和分割训练分开, 并可能导致较差的性能。因此,可以用一种端到端的方式来联合训练边框头部和掩码头部。原则上,可以直接使用$A∪B$类的边框损失和$A$类的掩码损失来反向传播训练。然而,这可能会造成在$A$和$B$之间特定类检测权值$w^{c}_{det}$的矛盾,因此仅仅对于$c\in A$的$w^{c}_{det}$通过权值迁移函数$T(·)$接收到来自掩码损失的梯度。想$w^{c}_{det}$在$A$和$B$之间为同质,以至于在$A$上训练的得到的预测$w^{c}_{seg}=Τ(w^{c}_{det};θ)$可以更好的泛化到$B$。

  为了解决这个矛盾,使用一种简单的方法:当反向传播掩码损失的时候,停止关于$w^{c}_{det}$的梯度,那就是,仅仅计算关于迁移函数参数θ的预测掩码权值$Τ(w^{c}_{det};θ)$而不是边框权值$w^{c}_{det}$的梯度。在大多数神经网络工具包中可以通过$w^{c}_{seg}=Τ(stop\_grap(w^{c}_{det});θ)$实现。

3.3 基线:类无关的掩码预测

  DeepMask表明训练一个深度模型来执行类无关的掩码预测是可行的...

3.4 扩展:融合FCN+MLP掩码头部

  Mask R-CNN中考虑两种掩码头部:(1)一种FCN头部,用一个全卷积网络来预测$M$x$M$掩码,(2)一种MLP头部,用由全连接层组成的多层感知机来预测掩码,与DeepMask更相似。在Mask R-CNN中,FCN头部生成更高的掩码AP。然而,两种设计可以互补。直观上,MLP掩码预测器可以更好地捕捉到一个目标的“要点”,而FCN掩码预测器可以更好地捕捉到细节(例如目标边界)。基于这个观察,通过融合来自类无关的MLP掩码预测器,来改进基线类无关的FCN和权值迁移函数(使用FCN)。实验将表明这个扩展将改善基线和这里的迁移方法。

  对于$K$个类当融合类无关和特定类的掩码预测时,添加两个分数到最终的$K$x$M$x$M$输出,其中类无关的掩码分数(类型1x$M$x$M$)平铺$K$次,并且通过一个sigmoid单元添加到每个掩码概率,并且调整到实际边框尺寸作为对于边框的最终实例掩码。在训练时,在$K×M×M$掩码概率上应用二元交叉熵损失。

posted @ 2018-07-31 22:07  mjl_cv  阅读(2112)  评论(0编辑  收藏  举报