Abstract
全景分割是一个具有挑战性的课题, 它需要为每个像素分配一个类别标签, 并同时对每个对象实例进行分割。传统上, 现有的方法使用两个独立的模型, 而不共享功能, 这使得管道的实现效率低下。此外, 通常采用启发式方法将结果合并。但是, 在合并过程中, 如果没有足够的上下文信息, 则很难确定对象实例之间的重叠关系。为了解决这些问题, 我们提出了一种新的全景分割端到端Occlusion Aware Network (OANet), 它可以高效、有效地预测单个网络中的实例和语义分割。此外, 我们还引入了一个新的空间排序模块来处理预测实例之间的遮挡问题。通过大量的实验验证了该方法的性能, 并在 COCO 全景基准上取得了有希望的结果。
1. Introduction
全景分割 [18] 是一个新的具有挑战性的主题。目标是为每个像素分配一个类别标签, 并对图像中的每个对象实例进行分段。在这个任务中, 语义分割被用来预测无定形区域 (noted Stuff), 而实例分割 [14] 解决可数对象 (noted Thing)。因此, 该任务可以提供更全面的场景信息, 并可广泛应用于自动驾驶和场景分析。
以前的全景分割算法 [18] 通常包含三个分离的组件: 实例分割块、语义分割块和合并块, 如图 1 (a) 所示。通常在这些算法中, 实例和内容分割块是独立的, 没有任何功能共享。这将导致明显的计算开销。此外, 由于模型的分离, 这些算法必须将相应的分离预测与后处理合并。但是, 如果没有事物之间的上下文信息between the stuff and thing, 合并过程将面临实例和事物之间重叠关系的挑战。正如上面提到的, 有了三个独立的部分, 很难将这种复杂的管道应用到工业应用中。
在本文中, 我们提出了一个新的端到端算法, 如图 1 (b) 所示。据我们所知, 这是第一个可以在端到端管道中处理上述问题的算法。更具体地说, 我们将语义分割和实例分割合并到一个网络中, 该网络共享主干功能, 但对这两个任务应用不同的head分支。在训练阶段, 主干功能将通过stuff和thing监管的累积损失进行优化, 而head branches只会对具体任务进行微调。
为了解决对象实例之间的重叠关系问题, 我们还引入了一种新的算法--空间排序模块(Spatial Ranking Module.)。本模块学习排名分数, 并提供符合实例的排序
总的来说, 我们总结了我们的算法的贡献如下:
·我们是第一个提出一个端到端遮挡感知管道的全景分割问题。
·我们引入了一个新的空间排序模块来解决重叠关系的模糊性, 这在全景分割问题中普遍存在。
·我们在 COCO 全景分割数据集上获得最先进的性能。
2. Related Work
2.1. Instance Segmentation
目前有两个主要的实例分割框架, 包括proposal-based的方法和segmentation-based的方法。proposal-based的方法 [8、14、24、25、28、29、33] 首先生成对象检测边界框, 然后对每个框执行mask预测以进行实例分割。这些方法与目标检测算法密切相关, 如 Fast/Faster R-cNN 和 SPPNet [12, 15, 36]。在这一框架下, 由于对不同实例的独立性预测, 提出了重叠问题。也就是说, 当被多个mask覆盖时, 像素可能会分配给错误的类别。segmentation-based的方法使用语义分割网络来预测像素类, 并通过解码对象边界 [19] 或the custom field [2, 9, 27] 来获取每个实例掩码。最后, 它们使用自下而上的分组机制来生成对象实例。利用 RNN 方法在 [35、37、46] 中一次预测每个实例的掩码。
2.2. Semantic Segmentation
语义分割得到了广泛的研究, 近年来提出了许多新的方法。在强大的深层神经网络 [16、21、39、40] 的驱动下, FCN [30] 成功地将深度学习应用于pixel-by-pixel图像语义分割, 将图像分类网络的全连接层替换为卷积层。
编码器解码器结构, 如 UNet [1, 38, 42, 43, 47] 可以逐步恢复分辨率, 并捕获更多的对象细节。Global Convolutional Network [34] 提出了大的核方法来缓解分类与定位之间的矛盾。DFN [43] 设计了一个通道注意块来选择特征图。DeepLab [4, 6] 和 PSPNet [48] 使用aspp或空间金字塔池来获得多尺度的上下文。[44] 的方法使用膨胀卷积来扩大视野。在 [5, 13, 41] 中, 多尺度特征被用来获得足够的接受场。
相关数据集也在不断丰富和扩大。目前, 有公共数据集, 如 VOC [11], 城市景观 [7], ADE20K [49], Mapillary Vistas [32] 和 COCO 东西 [3]。
2.3. Panoptic Segmentation
在 [18] 中首次提出了视板分割任务, 而这一任务的研究工作并不多。[22] 提出了一种共同执行语义和实例分割的弱监督模型。它对 "事物" 类使用弱边界框批注, 对 "事物" 类使用图像级标记。JSIS-Net [10] 提出一个单一的网络与instance segmentation head [14] 和the pyramid stuff segmentation head [48], 跟随启发式合并两种输出。李等人 [23] 提出 AUNet, 可以利用proposal and mask level attention , 并获得更好的背景结果。
2.4. Multi-task learning
全景分割也可以作为多任务学习问题来处理。二个不同的任务可以通过策略一起被训练 [17, 31]。UberNet [20] 在单个网络中联合处理低、中和高级视觉任务, 包括边界检测、语义分割和正常估计。Zamir 等人 [45] 构建了一个名为taskonomy的有向图, 它可以有效地测量和利用不同视觉任务之间的相关性。它可以避免重复学习, 并能够用更少的数据进行学习。
3. Proposed End-to-end Framework
我们的算法的概述如图2所示。我们的算法有三个主要组成部分:
1) stuff分支预测整个输入的内容分割。
2) instance分支提供实例分割预测。
3) 空间排名模块为每个实例生成排名分数。
3.1. End-to-end Network Architecture
我们使用 FPN [26] 作为端到端网络的主干体系结构。例如, 分割, 我们采用原来的mask R-NNN [14] 作为我们的网络框架。我们应用自上而下的路径和横向连接来获取feature map。然后, 附加了一个3x3 卷积层, 得到 RPN 特征图。之后, 我们应用 Roi align[14] 层提取object proposal features, 并得到三个预测: 建议分类分数、建议边界框坐标和建议实例掩码。
对于语义分割, RPN 要素图上堆叠了两个3x3 卷积层。为了进行多尺度特征提取, 我们将这些层与后面的一个3x3 卷积层和1x1 卷积层连接在一起。图3显示了内容分支的详细信息。在训练过程中, 我们同时对语义分割和实例分割进行监督, 因为辅助object信息可以为stuff预测提供对象上下文。在推断中, 我们只提取stuff预测并将其归一化为概率。
为了突破训练过程中的信息流障碍, 提高整个管道的效率, 我们分享了两个分支的骨干网的特点。这里提出的问题可以分为两部分: 1) feature map上的共享细粒度, 2) instance loss和stuff loss之间的平衡。在实践中, 我们发现, 随着更多的特征图共享, 我们可以获得更好的性能。因此, 我们共享要素映射, 直到skipconnection layers, 即 RPN 头之前的3x3 卷积层, 如图3所示
对于两个监督的平衡, 我们首先提出了方程1中的多重损失。实例分支包含5个损失: L rpn cls 是 RPN 对象损失, L rpn bbox 是 RPN 边界框损失, Lcls 是分类损失, Lbbox 是对象边界框回归损失, 而 L mask是掩码的平均二进制交叉熵损失预测。作为事物分支, 只有一个名为 Lseg (stuff + object) 的语义分割loss。超参数用于损失平衡, 稍后将讨论。Lsrm 表示空间排名模块的丢失函数, 将在下一节中介绍。
3.2. Spatial Ranking Module
现代实例分割框架通常基于对象检测网络与附加mask预测分支, 如mask RCNN [14], 它通常基于 FPN [26]。一般来说, 当前的对象检测框架不考虑不同类之间的重叠问题, 因为流行的指标不受此问题的影响, 例如 ap 和 AR。然而, 在全景分割任务中, 由于一个图像中的像素数是固定的, 因此必须解决重叠问题, 或者特别是一个像素的多个分配。
通常, 检测分数用于按降序对实例进行排序, 然后根据分数降序的规则将其分配到stuff(k*k*num_class的图里面)。然而, 这种启发式算法在实践中很容易失败。例如, 让我们考虑一个戴领带的人, 如图7所示。由于人员类比 COCO 数据集中的领带类更频繁, 其检测分数往往高于领带边界框。因此, 通过上面的简单规则, 领带实例由人员实例覆盖, 并导致性能下降。
我们能不能通过全景注释来缓解这种现象?也就是说, 如果我们强迫网络在领带的位置上用一个洞学习人的注解, 我们能避免上述情况吗?如表3所示, 我们使用上述注释进行实验, 但只找到衰减的性能。因此, 此方法目前不适用。
针对这一问题, 我们采用了一种类似语义的方法, 提出了一种简单而有效的处理遮挡问题的算法, 称为空间排序模块。如图4所示, 我们首先将实例分割的结果映射到输入大小的张量。feature map映射的维度是class的数量, 不同类别的实例映射到相应的通道。实例张量初始化为零, 映射值设置为1(每个像素用0 1表示,0代表该像素不属于该类,1反之)。然后, 我们在张量之后追加大核卷积 [34], 以获得排名分数图。最后, 我们使用pixel-wise交叉熵损失来优化排名评分图, 如公式2所示。Spa 表示输出排名评分图, Slabel 表示相应的非重叠语义标签。
在得到排名分数图之后, 我们将每个实例对象的排名分数计算为公式3。这里, Si; j; cls 表示类 cls (i; j) 中的排名分数值, 请注意 si; j; cls 已归一化为概率分布。mi; j 是掩码指示器, 表示像素 (i; j) 是否属于实例。整个实例 Pobjs 的排名分数是根据掩码中像素排名分数的平均值计算的。
让我们通过我们提出的空间排名模块重新考虑上面提到的示例。当我们将人掩码和绑定掩码转发到此模块时, 我们使用公式3获得这两个对象的空间排名分数。在排名得分中, 前一种方法中的排序规则可能更可靠, 性能也会提高, 如下一节中的实验所示。
4. Experiments
4.1. Dataset and Evaluation Metrics
数据集: 我们在 COCO 全景分割数据集上进行所有实验 [18]。此数据集包含118K 用于训练的图像、用于验证的5k 图像、用于该内容的80个类别上的注释和用于内容的53个类。我们只使用培训图像进行模型培训和验证集测试。最后, 我们将测试开发结果提交给 COCO 2018 全景分割排行榜。
评估指标: 我们使用 [18] 中定义的标准评估指标, 称为 "全景质量 (PQ)"。它包含两个因素: 1) 分割质量 (SQ) 测量所有类别的质量, 2) 检测质量 (DQ) 仅测量实例类。PQ、SQ 和 DQ 的数学构造在公式5中表示, 其中 p 和 g 是预测和地面真相, TP、FP、FN 表示真阳性、假阳性和假阴性。很容易发现, SQ 是匹配实例归一化的常用均值 IOU 度量, DQ 可以看作是一种检测精度的形式。匹配阈值设置为 0.5, 即如果预测和地面真相的像素 IOU 大于 0.5, 则认为预测匹配, 否则不匹配。对于材料类, 图像中的每个内容类都被视为一个实例, 无论它的形状如何
4.2. Implementation Details
我们选择在imagenet上预培训的 Resnet-50 [16] 进行ablation studies。我们使用 SGD 作为动量为0.9 和权重衰减0.0001 的优化算法。The multi-stage learning rate policy with warm up strategy(采用具有热身策略的多阶段学习率政策 [33],下面有解释)。也就是说, 在前 2000次迭代中, 我们通过将学习率从0.002 提高到0.02 来使用线性渐变补偿策略。60000次迭代以后,在接下来的20000次迭代中, 我们将学习率降低到 0.002迭代, 并进剩下的20000次迭代将其设置为 0:0002;上千次迭代。输入的批处理大小设置为 16, 这意味着每个 GPU 在一次迭代中消耗两个图像。有关其他详情, 我们采用了 Mask-rncn 的经验 [14]。
除了对我们网络的两个分支进行培训外, 还应该更多关注空间排名模块。在训练过程中, 监督标签是相应的非重叠语义标签, 并将其作为语义分割网络进行训练。我们将忽略的非冲突像素设置为强制网络对冲突区域的关注。
在推理过程中, 我们将每个图像的最大框数设置为 100, 将连接的内容区域的最小区域设置为 4,900。至于空间排名模块, 由于我们现在没有ground truth, 实例分支的输出将通过这个模块来解决重叠问题。
4.3. Ablation Study on Network Structure
在本小节中, 我们将重点介绍端到端网络设计的属性。以下是三个问题: 损失平衡参数、东西分支的对象上下文和两个分支的共享模式。为了避免实验的笛卡尔乘积, 我们只修改了特定的参数, 并对其他参数进行了优化控制。
损失平衡问题来自于物质分支和实例分支的梯度不接近的现实。我们对两个分支相对于主干的最后一个要素图的平均梯度进行统计, 其中为公平起见, 将超参数设置为1。
如图5所示, 从stuff brunch的梯度主导惩罚信号是简短而清晰的。因此, 我们得到了方程1中的一个超参数来平衡梯度。我们用 lamda属于[0:2; 0:2; 0:2; 0:2; 0:2; 1:0] 进行实验。为了搜索效率, 间隔不均匀。如表1所总结的, = 0:25 是最佳选择。请注意, 如果我们设置 = 1, 这意味着语义和实例模型像单独训练的分支, 则网络无法通过我们的默认学习速率策略进行聚合。
对象上下文是实例分割中的一种自然选择。虽然我们只希望从这个分支中得到东西的预测, 但缺乏对象监督会在ground truth留下孔洞, 导致物体周围的上下文不连续。因此, 我们进行了一对比较实验, 其中所有133个类别都是监督的, 另一个是在53个类的培训。表2中的结果显示了与对象上下文的整体 PQ 相比的0.5个改进。
共享feature是我们网络设计的关键点。共享的好处有两个部分: 1) 两个分支可以从其他监控信号中吸收有用的信息; 2) 如果只计算一次共享网络, 计算资源就可以节省。为了研究共享要素的粒度, 我们进行了两个实验, 其中浅共享模型仅共享主干要素, 深度共享模型在 RPN 头之前进一步共享要素图, 如图3所示。表4显示了不同设置之间的比较, 深度共享模型在 PQ 上的性能比单独的训练基线高出0.7%。图6显示了共享功能的可视化。
4.4. Ablation Study on Spatial Ranking Module
在无重叠批注的监督下, 解决对象排名问题是一个简单的想法。在这里, 我们处理了全景ground truth, 并提取了实例分割的非重叠注释。表3的第三行给出了这个想法的结果。不幸的是, 仅仅替换实例接地事实并不有助于提高性能, 并可能反向降低对象的准确性和召回率。这种现象可能源于 COCO 中的大多数对象不满足重叠问题, 而强迫网络学习不重叠会影响整体性能。