论文链接:http://www.cs.utoronto.ca/~fidler/papers/sgn_iccv17.pdf
一、简介
该文章提出了SGN以完成实例分割任务,为了从像素中逐步组成目标,SGN使用了一系列的神经网络,每个神经网络都用来解决一个增加语义复杂度的子类问题。文章通过实验证明SGN有效超越了目前在Cityscapes和PASCAL VOC数据集上表现最好的方法。
二、背景
实例分割是一个同时考虑物体检测和语义分割的任务,他为图片中的每个物体生成像素级掩模。因此实例分割综合了以上两个任务的问题,要求我们把一系列像素集群成连续的组件。跨场景的遮挡和大量不同的对象进一步增加了任务的复杂性。比如说关于Cityscapes数据集的AP只有20%[1,7],这远不够。
三、相关工作
大部分的实例分割方法将该任务分为两步,先进行目标检测的到目标框和对应的类别,再在该基础上对目标框内的像素进行前景和背景的标注[2,3,4,5,6;15,16,1,29,30]。除此之外还有一些方法是使用RNN预测目标实例的多边形轮廓。在[7,8;41,40]中,他们从一张图片全面的取出大的图像片,并且训练一个CNN,使其在片内预测实例标签,随后使用一个密集条件随机场去获得全图上连贯的标签。在[9,10;33,31]中,他们使用了一个RNN来在每个时间步长上产生一个object mask,然而,由于当时间步数较大时RNN通常表现不佳,因此这些方法难以扩展到具有挑战性的多目标街道场景。最近,[11;3]通过学习一个卷及网络来预测分水岭变换的能量,它的复杂度不会受到场景中物体数量的影响。
四、论文思路
在这篇论文中,作者将实例分割任务分成许多个更易处理的小步骤,论文使用一系列神经网络通过集群方法一步步的将简单的部件组合成物体。特别的,第一个网络通过预测水平和垂直的物体断点来沿着图像的行和列聚集像素,接下来这些断点被用来创造线分割;通过发掘两个方向的信息,第二个网络将水平和垂直的线聚集到联通的部件上;最终,第三个网络将这些部件聚集成实例,从而解决了由于遮挡引起的物体分裂问题。因为这种序列结构,该网络被命名为SGN(Sequential Grouping Net-
works)。
网络结构
文章借鉴了[11,12;3,18]的方法,使用了语义分割去辨别前景像素。论文将实例分割看做是由断点构成分割线,然后进一步被组合成部件,进一步生成完整实例的一个过程。网络结构如下图1所示:
论文接下来介绍了Predicting Breakpoints、Grouping Breakpoints into Line Segments、Grouping Lines into Connected Components、Merging Fragmented Instances四个步骤。
4.1预测断点
(1)断点预测算法
文章最基本的基本单元定义为断点像素位置,在一个固定的方向上,这些断点代表了每个物体的起点或者终点。文章在横纵向上预测断点。对于横向,从左到右,一次一行地扫描图片,当一个新的实例出现时,记录这个变化点,作为起点,计算起点的数量。纵向也自上而下的进行着相同的操作。因此,当扫描到实例间的边界时,这个点会被当做起点;当扫描到某个实例与背景间的边界时,这个点会被当做终点。注意:这里与标准的边界检测不同的是,它还能够编码由前景(实例)到背景的变化方向信息。论文还经验性的引入了两个标签:实例内部标签和背景标签,使用着两个标签可以使end-point点预测更加的锋利(sharper)。因此,如上图一所示,图片上的每一个像素点都被打上了四个要素分别是&#