Abstract

实例分割对于建模和注释来说都是一项具有挑战性的任务。由于注释成本高,建模变得更加困难,因为监督的数量有限。我们的目标是利用大量的检测监督来提高现有实例分割模型的准确性。我们提出了ShapeProp,它学习激活对象检测中的显著区域,并通过迭代可学习的消息传递模块将这些区域传播到整个实例。ShapeProp可以从更多的包围框监督中受益,以更准确地定位实例,并利用来自大量实例的特征激活来实现更准确的分割。我们在三个数据集(MS COCO, PASCAL VOC和BDD100k)上使用基于两阶段(Mask R-CNN)和单阶段(RetinaMask)模型的不同监督设置广泛评估了ShapeProp。结果表明,我们的方法表现为半监督实例分割的states-of-the-art。

1. Introduction Instance

由于深度卷积网络和新数据集的可用性,实例分割方法[13,3,25]最近取得了巨大的成功[5,32]。这些方法可广泛应用于关键点检测和三维长方体拟合等领域。然而,收集这些精细的注释需要非常昂贵的人力,这阻碍了现有框架在更大的数据上学习。这一困难限制了我们在实例分割问题上的进一步研究。

一种可能的解决方案是使用大量廉价的包围框注释来缓解分割监管的不足。一些著作[15,20]探讨了如何在弱监督下推广到未见类别。然而,分割模块通常只能从精细分割监督中获得像素信息。尽管更多的box-level监督可以改善目标定位,但如何利用box中的pixel-level信息仍然没有得到很好的理解。

半监督实例分割是对先前文献[16,20]中的“部分监督实例分割”的推广,该文献假设代价高昂的掩码注释可用于类别的子集。我们将其称为分类半监督,也考虑了一种现实的图像半监督,其中只有一部分图像具有掩码。类别和图像半监督侧重于类间和类内泛化。请注意,对于所有对象实例都可以使用便宜得多的边界框注释。

半监督实例分割是对现有实例分割框架的挑战。目前的单阶段(例如,RetinaMask[10])或两阶段(例如,Mask R-CNN家族[13,25])实例分割框架并没有充分利用现有的监督。它们通常使用一个检测头和一个分割头分别从box和mask监督中学习。因此分割头并没有明显受益于丰富的box注释,因为每个框都是一个粗粒度的表示,它没有指定对象的形状。此外,分割头需要高级语义来预测像素级标签,当只有有限的掩码可用时,很难充分捕获数据分布。

我们的目标是学习从box和mask注释中定位和分割对象。我们提出了一个轻量级网络模块ShapeProp,它可以扩展现有的实例分割框架,利用box-level实例监督进行半监督实例分割。ShapeProp利用隐藏在box和mask注释中的形状先验信息来提高现有实例分割框架的准确性和泛化,如图1所示。ShapeProp可以从丰富的box监督中学习特定于实例的显著性,并从有限的分割注释中建模特定于实例的像素之间的潜在关系。


图1:ShapeProp联合学习丰富但粗粒度的box和精细但数量有限的mask来提取形状表示,在mask头部之前提供强大的形状先验,以提高分割精度和泛化。

ShapeProp从box检测输出中提取实例的显著区域。然后,它将显著区域传播到中间形状表示,称为形状激活,它指定了详细的实例形状范围,如图2所示。形状激活指示潜在的对象形状并提供形状先验。然后我们将其与区域特征融合,然后进行最终的实例分割预测。


图2:提取形状表示的可视化。以前的方法使用box或mask监督来提取形状先验,而我们的方法联合学习盒子和蒙版来提取形状表示。

2. Related Work

实例分割

实例分割是计算机视觉中的一项基本任务,大致可以分为基于检测的方法和基于分组的方法。基于检测的方法[11,6,12,21,4,13]在常用的基准测试中占据了最先进的性能,例如COCO[22]。它们通常遵循多任务学习范式,其中骨干网络首先提取空间特征并生成一组候选区域,区域建议网络[30]或密集锚框[10]。然后用检测头和分割头(由卷积-relu层组成)对被检测box区域内的特征进行裁剪,进而进行精确的box和分割mask预测;基于分组的方法[19,2,7,26,24,1,18]将实例分割视为自下而上的分组问题。虽然实例分割任务已经取得了很大的进展,但这些工作大多需要对所有对象进行手工注释实例mask的形式进行强有力的监督,这限制了它们在大规模数据集上的应用。

弱监督实例分割

弱标签学习方法试图通过弱监督形式的学习来打破这种限制。[17]利用了这样一种思想,即给定目标对象的边界框,可以从基于分组的分割算法(如GrabCut[31])获得伪掩码标签。Pham等[28]研究了使用边界检测器然后分组的开集实例分割。Zhou等[33,34]通过利用分类网络的类峰值响应来解决弱监督实例分割问题。虽然有效,但这些方法没有利用现有的实例掩码标签来实现更好的性能。

基于有限的mask注释进行学习

与弱监督设置相反[17,33],一些最近的方法解决了部分监督设置,其中在训练时只有框标签(而不是mask标签)可用于类别的子集。模型需要在测试时对这些类别进行实例分割,这需要较强的泛化能力。MaskX R-CNN[15]通过学习从box检测分支预测mask分割分支的权重来解决这个问题。这种迁移学习方法比类别不相关训练有显著改善;然而,与完全监督方法的性能差距仍然很大。

此外,它只解决了类间泛化问题,而忽略了类内泛化(即来已知mask类别的新实例)。ShapeMask[20]基于一个强大的假设,即来自现有掩码注释的形状基可以作为规范形状并推广到未见的类别。ShapeMask使用有限的掩码注释来提取先验知识,以帮助分割。尽管这种方法很有效,但它从有限的掩码注释中提取了类不相关的形状,而忽略了丰富的框注释,我们认为这些框注释可以提供信息丰富的实例特定的显著性。

在本文中,我们解决了半监督实例分割问题,包括类别的半监督设置(即部分监督设置)和图像的半监督设置,即只有一小部分图像具有掩码。这两个设置分别侧重于类间泛化和类内泛化。换句话说,我们的模型既适用于不可见类别的对象,也适用于可见类别的新对象。

3. Method

在本节中,我们首先回顾基于检测的实例分割框架,以提高它们的准确性和泛化性。然后,我们介绍了提出的ShapeProp方法,通过从多个实例统计学习特定实例显著性的过程开始,然后设计将显著性传播到一个良好广义的形状表示,称为形状激活。最后,我们讨论了如何将形状激活集成到实例分割框架中。ShapeProp的整体架构如图3所示。


图3:总体框架。ShapeProp为每个box检测激活一个显著性图,并传播对象外观条件下的显著性,以生成一个良好概括的形状表示,即形状激活,它提供了强大的形状,以提高分割精度和泛化。

3.1. Learning Saliency Propagation

Activating Saliency

尽管单个box注释没有为每个像素指定标签,但它们包含关于对象外观的信息,并为边界框内的所有像素提供一个弱标签。在看了大量的例子后,我们仍然可以从弱监管中学习到像素级的标签统计。这也在多实例学习(MIL)的背景下进行了研究。MIL[27]是弱监督学习的一种形式,其中训练实例被安排在称为包的集合中,并且为整个包而不是单个实例提供标签。注意,在我们的上下文中,我们将每个box视为一包(bag)像素。

我们首先从实例分割框架输出的box检测结果 B = { b 1 , b 2 , … , b N } B = \{b_1, b_2,…, b_N\} B={b1​,b2​,…,bN​}构造positive bags和negative bags,其中 b i = ( x , y , w , h , c ) b_i = (x, y, w, h, c) bi​=(x,y,w,h,c),其代表为第 i i i个检测, N N N为图像中被检测对象的数量。 ( x , y , w , h ) (x, y, w, h) (x,y,w,h)为包围框的预测坐标, c c c是K个预定义对象类别的预测类标签,例如,汽车、狗和人。其中,bags被定义为box检测 b i b_i bi​内的一组像素。每个实例(即像素) x j x_j xj​对应一个二进制标签 y j y_j yj​,表示像素是否在 b i b_i bi​检测到的对象的掩码中。我们遵循标准的MIL假设,即所有negative bags只包含negative实例,而positive bags包含至少一个positive实例:


对于每个类别 c c c,我们使用box注释 G c G^c Gc并基于IoU阈值 t t t将 B c B^c Bc划分为positibe bags P c = { p 1 , p 2 , … , p u } P^c = \{p_1, p_2,…, p_u\} Pc={p1​,p2​,…,pu​}和negative bags N c = { n 1 , n 2 , … , n v } N^c = \{n_1, n_2,…, n_v\} Nc={n1​,n2​,…,nv​}


我们这样做是因为正样本必须包含部分对象(即positive bags),因为IoU是高的。负样本与对象不对齐(低IoU),因此所有像素都被认为无效(即negative bags)。注意,这与之前利用MIL在图像中发现特定类别的响应以进行语义分割[29]的工作不同。我们提取特定于对象的响应用于实例分割。

我们构建了一个弱学习器 F F F,它是一个轻量级模块,包含几个conv-relu层。对于每个样本 p i p_i pi​, F F F基于对应的区域特征预测一个映射 M ∈ R h × w M∈R^{h×w} M∈Rh×w。与使用像素级的ground truth相比,我们使用来自box的bag-level标签来学习 F F F:


其中 L L L是损失, θ θ θ是 F F F中的可学习参数, σ σ σ是二维平均算子,如Avg2D, ω ω ω是区域特征池化算子,如ROIAlign。 F F F的学习积累了一些bags的实例,统计收集像素级信息,预测的 M M M突出了图像中每个被检测物体的显著区域,为后续的mask head提供了丰富的形状先验信息,如图4所示。


图4:从丰富的粗粒度框注释中学习特定于实例的显著性。我们将box检测划分为bag-level标签(即包含实例或不包含实例),并在统计上学习弱学习器,从而得到每个对象的sailency图。

Propagating Saliency

使用MIL获得的对象特定区域响应 M M M只突出显著的区域,我们进一步设计了一个传播步骤,利用现有的有限mask注释,并从不完整的对象区域响应中恢复完整的对象范围。其动机是利用像素之间的关系来估计从box中获得的显著区域的物体形状。我们没有将其视为一个像素级的分类问题,而是学习如何在潜在特征空间的深层像素之间传播信息。学习预测节点之间的边缘(即深度像素)来进行传播,而不是节点的标签,对于只有有限mask注释的情况更有效。原因在于,像素级分类依赖于高级语义,因此需要足够的监督来捕获不同的数据分布。同时,像素之间的关系,即两个像素是否属于同一个物体,可以更可靠地推断出低级语义,如颜色相似,纹理光滑。直观地说,模型不需要识别香蕉的语义类别,但仍然可以通过将颜色相似的像素分组来分割香蕉的范围。

显著性传播被实现为潜在空间消息传递过程。如图5所示,我们首先使用conv块(即conv-relu层)将实例显著图 M ∈ R H × W M∈R^{H×W} M∈RH×W编码为潜在特征 M ∈ R C × H × W M∈R^{C×H×W} M∈RC×H×W,其中C是通道维度(例如,16)。编码作用是从 M M M中提取特征,同时使后续传递的信息对噪声更加鲁棒。


图5:显著性传播。我们学习以实例外观为条件预测像素之间的潜在关系,并利用迭代信息传递将显著性传播到中间形状表示,称为形状激活。

对于每个通道 M i M_i Mi​,我们将深度像素视为节点,并学习在空间相邻节点之间传播信息。基于 b b b的外观特征,我们使用conv块来预测节点 W ∈ R C × ( r × r ) × ( H × W ) W∈R^{C×(r×r)×(H×W)} W∈RC×(r×r)×(H×W)之间的传播权值,其中 r r r是窗口大小(例如,3)。然后对学习到的传播权值 W W W进行归一化和shuffle,构造位置特定的核 K i , u , v ∈ R r × r K_{i,u,v}∈R^{r×r} Ki,u,v​∈Rr×r,其中 i i i是通道维度, ( u , v ) (u, v) (u,v)是空间位置,并且 ∑ ( p , q ) K i , u , v p , q = 1 \sum _{(p,q)} K_{i,u,v}^{p,q}=1 ∑(p,q)​Ki,u,vp,q​=1。传播是一个迭代的过程。在每一步中,我们使用 K K K来更新潜在特征:


其中 M i ( u , v ) M_i^{(u,v)} Mi(u,v)​是第 i i i个通道的 ( u , v ) (u,v) (u,v)位置的特征值, N N N是 ( u , v ) (u,v) (u,v)的相邻位置集合。我们迭代 m a x ( H , W ) max(H,W) max(H,W)步,以保证信息可以扩散到所有位置,并且每个节点都可以吸收所有其他节点的信息。这种迭代过程不会引入大量的计算开销,因为区域特征的空间大小通常非常小(例如,14),并且我们高效的GPU实现同时计算所有检测的信息传递。

最后,我们使用卷积层将更新的潜在特征解码回单个通道映射,称为形状激活,它结合来自box和mask注释的形状信息并指定对象的范围。形状激活作为一种中间形状表示,在随后的mask预测(即mask head)之前提供强形状先验。在训练过程中,我们使用二进制交叉熵来计算重建损失相对于GT mask。对于半监督设置,我们只计算有掩码注释的图像的小子集中的损失。注意,显著性传播的学习是一种类别不相关的方式,这允许它从所有现有的mask中积累知识,并有效地泛化到新的类别。

3.2. Intergrating Shape Representation

我们将学习到的形状激活 S S S集成到现有的实例分割框架中,在输入mask head之前将其与输入RoI特征连接。额外的输入通道提供了物体可能形状的强先验信息;这样可以大大简化mask预测的学习任务,即像素级分类,并使mask head专注于捕获精细的详细信息。实验表明,形状激活引导的分割不仅显著提高了泛化能力(在COCO的部分监督设置上提高了10.8%的AP),而且在mask注释足够的情况下也有利于分割质量(在COCO的完全监督设置上提高了1.4%的AP75)。

4. Experiments

我们在流行的实例分割基准上评估了提出的ShapeProp方法,包括COCO [22], PASCAL-VOC[9]和BDD100K[32]。我们按照前人的评估协议[13,16,20],报告了小型/中型/大型对象的标准指标,即mask AP、AP50、AP75和AP。

在第4.1节中,我们在分类的半监督设置(即先前文献[16,20]中的“部分监督”设置)上测试了我们的方法。与baseline相比的显著改进(AP为10.8%)和最新的结果表明,ShapeProp能够从有限的mask中学习并推广到未知的类别。在第4.2节中,我们对BDD100K进行基准测试,其中只有一个图像子集具有掩码注释。我们用ShapeProp增强了单阶段和两阶段实例分割框架[10,13],并在baseline上显示了一致的改进。这表明了ShapeProp类内泛化的有效性。我们进一步表明,我们的方法可以改进使用数据集的全掩码注释训练的强基线。在第4.3节中,统计分析表明,ShapeProp可以学习高质量的形状表示。最后,我们进行了消融研究,以进一步研究我们的模型设计。

4.1. Generalization to unseen categories

实验设置

实验设置如下[15,20]。我们将COCO的80个类别分为VOC(20)和non VOC(60)。VOC类别也出现在PASCAL VOC[8]中。在训练时,模型可以访问所有类别的box,但mask只来自VOC或Non-VOC类别。性能上限由oracle模型设置,该模型可以访问所有类别的mask。在本节中,我们的训练集是COCO train2017,与其他方法的比较是在val2017 Non-VOC/VOC上进行的。

我们通过将ShapeProp模块插入代表性的Mask R-CNN框架[13]来构建模型。为了跨类别求值,我们使用类不相关设置,将所有对象类视为前景类。我们通过ResNet50-FPN和ResNet101-FPN[14, 23]两个主干来实现模型。我们使用相同的训练参数作为baseline。

数值结果

从表1可以看出,配备了ShapeProp的Mask R-CNN显著提高了基线(例如,non-voc→voc, 34.4% vs 23.9%, voc→non-voc, 30.4% vs 19.2%)。我们的ResNet50-FPN骨干网模型优于最先进的ShapeMask[20],它建立在更强大的骨干网(ResNet101-FPN)上。我们的ShapeProp模块通过充分利用box和mask注释的形状知识来改进分割;因此,它也可以受益于深度学习的其他进展,即更强的主干。切换到ResNet101-FPN主干可以在这些基准测试中获得最佳结果(例如,比最先进的ShapeMask[20]高出2.2%)。


表1:COCO2017的分类半监督设置的性能,该设置侧重于类间泛化。在顶部,non-voc→voc意味着“在不含voc类别mask的情况下训练,在含voc 类别下进行测试”,反之亦然。将ShapeProp模块配备为类不可知 Mask R-CNN, AP提高了10.8,比ShapeMask高出2.2 AP,这有力地证明了ShapeProp可以显著提高现有模型的准确性和泛化性。

用更少的数据进行泛化

为了用更少的训练数据进一步验证ShapeProp的泛化能力,我们仅使用1/10、1/50、1/100的数据在全类别上训练基于ResNet50-FPN的模型。如图6所示,我们的方法可以很好地概括到训练数据的1/100,并且它始终优于基线(Mask R-CNN没有ShapeProp)。

定性的结果

图7给出了定性的例子(从non voc→voc设置)。在第二行中可以看到,baseline没有分割出新的类别“bicycle”,因为在训练中没有这个类别的mask。但是,在baseline中添加ShapeProp可以显著提高分割质量。在底部一行中还可以看到Mask R-CNN预测了“cow”实例的一个错误的Mask。相比之下,ShapeProp模型正确分割。

4.2. Generalization to novel instances

实验设置

我们进一步对BDD100K数据集[32]进行了基准测试,这是最大、最多样化的驾驶视频数据集。由于标记详细的实例分割需要大量的人力,所以只有BDD100K的一个子集提供mask注释。数据集很自然地符合我们的半监督设置。我们将BDD100K实例分割和检测的标注融合在一起,构建一个包含67k张带框标注的图像的数据,其中7k张有掩码标注。我们在BDD100K的val. set (1k图像)上测试模型。

我们通过将提出的ShapeProp模块插入到两个具有代表性的基于检测的实例分割框架中来构建模型,即Mask R-CNN(两阶段方法)和RetinaMask(单阶段方法)。我们将其与联合学习版的Mask R-CNN进行比较。它从所有图像中学习,仅在mask注释可用时计算mask head的损失。我们还比较了Grabcut Mask R-CNN[17]和Progressive Mask R-CNN,它们使用Grabcut后处理和预训练的注释器模型从box注释中获得伪mask。所有模型都基于ResNet-50 FPN骨干,并通过标准SGD优化进行训练,LR为0.01,batch size为12。

数值结果

如表2所示,当更多的框注释可用时,单阶段和两阶段baseline的mask AP都有显著改善,即Mask RCNN (24.5 vs 21.6)和RetinaMask (24.4 vs 20.0)。然而,使用Grabcut伪掩模训练的模型表现比baseline更差,说明Grabcut的形状表示质量还不够好。从表2中可以看出,本文提出的ShapeProp模块架起了box和mask的学习桥梁,进一步提高了模型的分割能力(26.2% vs 24.5%)。这表明,ShapeProp可以有效地利用隐藏在注释中的形状先验来提高分割质量。此外,从表3中可以看出,配备ShapeProp还改善了在全监督设置下训练的strong baseline,在训练过程中所有mask都可用。这表明,即使mask足够,充分利用注释也可以提高分割质量。

推理时间

提出的ShapeProp模块是构建在卷积块之上的轻量级模块。显著性传播的信息传递操作以matrix dot的形式有效地实现。因此,整个ShapeProp模块不会引入复杂的计算开销(在2080 Ti上为0.35 vs 0.39 s/img)。


表2:BDD100K的图像型半监督设置的性能,该设置侧重于类内泛化。ShapeProp提高了单阶段(RetinaMask)和两阶段(Mask R-CNN)框架的准确性和泛化。


表3:全监督设置下的比较。ShapeProp-augmented模型持续改进AP。

Learning Saliency Propagation for Semi-Supervised Instance Segmentation相关推荐

  1. Weakly Supervised Instance Segmentation using Class Peak Response

    据说是第一篇关于图像级实例分割的文章... 看了很多关于这篇文章的博客和知乎,总觉得他们没有写清楚最关键的几个问题:例如,怎么从局部极大值点中筛选出峰值?怎么从MCG等传统图像处理方法获得的图像边缘中 ...

  2. Weakly Supervised Instance Segmentation using the Bounding Box Tightness Prior 论文笔记

    Weakly Supervised Instance Segmentation using the Bounding Box Tightness Prior 论文笔记 一.摘要 二.引言 三.相关工作 ...

  3. (NeurIPS 2019) Learning Object Bounding Boxes for 3D Instance Segmentation on Point Clouds

    Abstract 我们提出了一种新颖的.概念上简单的通用框架,用于在3D点云上进行实例分割.我们的方法称为3D-BoNet,遵循每点多层感知器(MLP)的简单设计理念.该框架直接回归点云中所有实例的3 ...

  4. Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images

    Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images 摘要 1. Introd ...

  5. 3D Instance Segmentation via Multi-Task Metric Learning

    Abstract 我们提出了一种新方法,用于密集3D体素网格的实例标签分割.我们的目标是使用深度传感器或多视图立体方法获取的体积场景表示,并使用语义3D重建或场景完成方法进行处理.主要任务是学习有关单 ...

  6. Weakly Supervised Semantic Segmentation list

    Weakly Supervised Semantic Segmentation list 文章转自Github:https://github.com/JackieZhangdx/WeakSupervi ...

  7. CVPR2021 BoxInst High-Performance Instance Segmentation with Box Annotations

    目录 BoxInst: High-Performance Instance Segmentation with Box Annotations 创新点 Introduction method LOSS ...

  8. 【文献翻译CVPR2022】SoftGroup for 3D Instance Segmentation on Point Clouds

    点云三维实例分割的软分组 目录 点云三维实例分割的软分组 摘要 1 简介 2 相关工作 3 方法 3.1 逐点预测网络 3.2 软分组 3.3 自上而下的精细化 3.4 多任务学习 4 实验 4.1 ...

  9. 【论文阅读】Weakly Supervised Learning of Instance Segmentation with Inter-pixel Relations

    一篇经典的弱监督分割论文,发表在CVPR2019上面 论文标题: Weakly Supervised Learning of Instance Segmentation with Inter-pixe ...

最新文章

  1. Unity中创建本地多人游戏完整案例视频教程 Learn To Create A Local Multiplayer Game In Unity
  2. 怎样写一个增广矩阵到txt文件中
  3. c盘哪些文件可以删除_Win7下C盘哪些文件可以删除?
  4. kafka消息存储原理及查询机制
  5. 算法移植优化(四)c++11 多线程
  6. mysql 的日常管理软件_MySQL常用的日常管理工具
  7. 关于组装电脑装win10不得不说的小故事
  8. 彻底搞定 Java 注解
  9. IPV6之VRRP典型组网配置案例
  10. 【七日阅书】1.注重实效《程序员修炼之道—从小工到专家》
  11. 关于项目管理的一些个人见解
  12. ckplayer6.8修改logo
  13. b站谈服务器崩溃后其他站点,B站服务器崩溃后,蒙古上单和陈睿一起上了热搜...
  14. python帝国cms_用python 发 帝国cms 文章
  15. 基于Android的医院预约挂号系统
  16. EasyExcel简单使用学习
  17. 2015/10/17偶得
  18. getc与fgetc的区别
  19. C++版本OpenCv教程(四十三)直线拟合
  20. VS2019中,解决“错误CS0006:未能找到元数据文件”

热门文章

  1. 手机数字雨_cmd命令如何实现数字雨的效果
  2. 多路选择器——Verilog HDL语言
  3. 最大全1子矩阵的两种解法(例题:City Game HDU - 1505)
  4. 滤波器基础03——Sallen-Key滤波器、多反馈滤波器与Bainter陷波器
  5. The first day。
  6. Centos8 安装node
  7. 中国电信光猫路由模式端口映射问题记录
  8. FreeRTOS软件定时器 基于STM32
  9. c语言堆、栈、数据段、代码段、bss段的疑惑
  10. matlab发送mavlink消息