创新点就是特征区分网络discriminative feature network,本别叫做平滑网络Smooth Network以及边界网络Border Network。
这两个网络可以处理类内一致性以及类间区分性。最终。形成了encoder-decoder网络结构,美其名曰Discriminative Feature Network
网络结构
红线上采样 蓝线下采样 绿线不改变特征尺寸,只是信息的传递
Smooth network
语义分割通常意义上是dense prediction 问题。很多时候,在一些区域会处理不好,比如重复纹理,白墙,这种就叫做类内一致性问题,也就是说,白墙出来的就是统一的一个值,而不是坑坑洼洼的。
类内一致性问题主要是缺少内容语义上的理解。所以要加入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。
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特征从而让预测结果更加的类内一致。
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,类间特征变得更加的区分性。
Smooth Network当中,是使用softmax loss来作为榆树的。Border Network使用focal loss 来作为网络监督的。
总结:这个网络当中的Smooth network确实非常的不错。就是增加了类内一致性。可以尝试一下子。