本文提出的判别特征网络(Discriminative Feature Network/DFN)包含两个子网络 Smooth Network 和 Border Network,它有效解决了绝大多数现有语义分割方法面临的类内不一致(intra-class inconsistency)与类间无差别(inter-class indistinction)问题。
intra-class inconsistency:类内不一致。这表示一个区域内,有着相同的语义标签,但是预测结果有所不同。(如下图第一行)
inter-class indistinction:类别之间模型不清晰。这表示两个相邻的区域,有着类似的外表,但是语义标签不同。(如下图第二行)
上图第二列是 FCN 模型的输出;第三列是本文方法的输出。第一行中,图中牛的左下角被识别为其他类,这属于类内不一致问题。第二行中,电脑主机上的蓝光及黑色机壳与显示器相似,因此难以区分,这属于类间无差别问题。
为解决上述两个挑战,本文从一个更加宏观的角度重新思考语义分割,将其看作一项把一致的语义标签分配给一类物体而不是每个单一像素的任务。这就需要把每个类别的像素看作一个整体,进而同时兼顾类内一致(intra-class consistency)与类间差别(inter-class variation)。这意味任务需要判别特征,所以本文提出一个全新的判别特征网络(DFN) 以学习特征表征。
DFN 有两个组件:Smooth Network 和 Border Network。Smooth Network 用来解决类内不一致问题,从而需要学习一个鲁棒特征表征,为此本文主要考虑两个关键因素。一方面,需要多尺度和全局语境特征编码局部和全局信息。比如,由于缺乏足够的语境信息,图 1(a) 中的白色小图像块经常无法预测正确的类别;另一方面,随着引入多尺度语境,对于一定尺度的物体来说,特征具有不同程度的判别力,其中一些可能预测假标签。因此,有必要选择高效的判别特征。正是出于上述两方面的考虑,Smooth Network 展现为 U 形结构,以抓取不同尺度的语境信息,并通过全局平均池化抓取全局语境。此外,本文还提出通道注意力模块(CAB),利用高层特征逐阶段地指导低层特征的选择。
Border Network 负责区分外观相似但标签不同的相邻图像块。大多数现有方法把语义分割看作一种密集识别问题,无法明确建模类间关系。以图 1(d) 为例,如果越来越多的全局语境整合进分类过程,相邻于显示器的电脑主机由于外观相似很容易被误认是显示器。因此,明确地使用语义边界指导特征的学习非常重要,这可以增强特征两边的变化。训练时,作者把语义边界损失整合进 Border Network 以学习判别特征,增大类间差别。
Smooth network
类内一致性问题主要是缺少内容语义上的理解。所以要加入global average pooling ,它里面蕴含着全局内容信息。然而,纵使全局内容有着高度丰富的语义信息,它也不是万能的,因为它没有空间信息,spatial information。所以,我们需要多尺度的接收视角receptive view以及语义内容信息context来refine得到spatial information。
然而,问题是不同尺度的接受视角会产生不同程度的discrimination特征从而带来结果的不连续性。因此,我们需要选择更多的discriminative特征,对于一个种类的物体预测出一个恒定且平滑的语义标签。
网络中,使用ResNet作为基本的识别model。根据特征这个model分为五个stage,每个不同的stage都有不同的识别能力,这样就可能破坏了连续性了。在比较浅的stage,网络会获取更加精细的空间信息,然而,它就在语义一致性上面比较欠缺,因为比较小的感受野同时也没有空间内容spatial context的指导。
而在比较深的stage当中,就有较强的语义一致性能力,因为感受野大,然而,此类预测也是空间上的粗预测。
总的来说,浅层有着更加准确且精细的空间预测spatial prediction,深层具有更加丰富的语义信息。所以我们要将它们的优势结合起来。用Smooth网络来利用深层网络当中的一致性来指导浅层。从而获取比较好的结果
今语义分割领域,分两类,一类“Backbone-Style”,如PSPNet以及Deeplab v3.它嵌入了不同尺度的语义信息从而提升了网络的一致性,如pyramid spatial pooling module以及atrous spatial pyramid pooling module。另外一种是“Encoder-Decoder-style”。比如说RefineNet。此类网络利用不同stage当中的多尺度内容,这些内容缺少强一致性的全局信息。此外,当网络combine领域stage的特征时,只是在通道数上面进行累加而忽视了不同stage的变化的一致性。为了解决此类问题,global average pooling 层应运而生,有了它,可以将其作为一个guidance从而产生一个特别强的一致性约束consistency constraint。Smooth Network主要解决类内不一致性问题。
文中认为类内不一致性问题主要来自Context 的缺乏。需要引入Multi-scale Context 和Global Context;但是,不同阶段的特征虽然带来了Multi-scale Context,与此同时也带来了不同的判别能力;因此,需要对这些具有不同判别力的特征进行筛选,这就诞生了其中核心的设计 Channel Attention Block(CAB)
Chnnel Attention Block是为了增强这个一致性而产生的。它可以结合相邻的stage的特征并得到一个channel attention vector、这个high stage的特征提供了一个很强的一致性约束,同时low stage的特征带来不同的discrimination information。这样,channel attention vector 能够自主的选择discriminative features。
黄色块代表着low stage当中的特征,红色块代表着high stage。concat相邻stage的特征来构成一个权重向量weight vector。蓝色的越深代表着权重值的越大。
Channel attention block:
Channel Attention Block(CAB)是产生特征权重的,从而增强了一致性。FCN结构,卷积操作最后输出一个score map,给每一个像素都分配一个类别的可能性,最后的结果就是每个特征映射通道的加权相加值。
不同stage的特征有着不同程度的discrimination,这就导致了预测结果的不同的consistency。为了得到类内一致性的预测结果。应当提取discriminatative 的特征然后抑制indiscriminative特征。因此,权重值应运而生。权重相当于CAB的特征选择。有了这样的选择之后,可以使得网络得到disceiminative特征从而让预测结果更加的类内一致。
Refinement residual block(RRB)
优化残差模块:特征网络中每个阶段的特征图都经过RRB 。该模块的第一个组件是一个1×1卷积层,作者将通道数统一到512。同时,它可以整合所有通道的信息。接着是一个基本的残差块,可以优化特征图。此外,受ResNet的启发,这个block还可以增强每个阶段的识别能力。
Border Network
语义分割任务中,同样的区域有着不同的种类会让网络非常的困惑。因此,需要扩大特征之间的差异性。我们采用语义边界的理论来指导特征的学习。为了提取准确的语义边界,我们用更加详尽的语义边界来作为监督约束。这样使得网络具有更加多更加强的类间区别能力。因此,Border Network是可以用来增强特征的类间区别能力的。
特征网络有不同的stage。low stage 特征有更加细节的信息,high stage特征由更强大的语义信息。我们需要更多更精确的semantic boundary(准确的说就是需要更加多更加精确的样本)。Border Network能够同时从low stage当中得到准确的边缘信息以及从high stage当中得到更多的语义信息。high stage当中的语义信息能够refine low stage当中的细节边缘信息。
总的来说,网络框架,使用pre-trained的ResNet来作为一个基础网络,Smooth Network当中,通过添加global average pooling layer 来获取很强的consistency。接着利用channel attention block 来改变通道之间的权重进一步增强了consistency。同时,Border Network,有了尽可能多的语义边缘监督,从而网络获取一个很准确的语义边缘使得特征更加的具有区分性。有了两个子网络的帮助。类内特征变得更加的consistent,类间特征变得更加的区分性。
使用了预训练的ResNet作为网络主干。
在Smooth NetWork:顶端使用了一个全局池化层捕获全局信息。使用channel attention block来改变权重。 除了最终的全局池化,其他所有stage都使用softmax loss来做深度监督学习。
在Border Network上,使用语义边界监督,网络获得更为精准的边界,得到的mask也更具区分度。使用focal loss来监督学习。