;嘿嘿嘿,昨天抽空又读了一篇,读完这篇我得去看源码了,fighting!!!
论文:Gated-SCNN: Gated Shape CNNs for Semantic Segmentation(2019年滴)
一.Abstract
图像分割的数据集包括颜色,形状和文本信息,但是现存的最优的网络架构都是将所有信息直接输入给网络,但由于数据集的形式是多样的,所以这样的处理当然不是最佳的。所以这篇文章就提出two-stream CNN架构,让它们去处理不同的信息。two-stream包括shape stream 和regular stream,二者处理的侧重点 不同,shape stream处理的是和边界相关的信息,regular stream和之前CNN的架构是相似的,二者是并行的,是相互协作的关系。接下来介绍一下其网络架构。
二.网络架构
从图1就可以看到该网络有two-stream,分别是regular stream和shape stream。regular stream可以是任意的主干架构,如Resnet-50,Resnet-101,WideResnet等。而regular stream是一系列残差和GCL(Gated Conv Layer)的组合,且其输入有两个,分别是regular stream第一层的输出和原图的梯度。其后,ASPP会以多尺度融合的方式结合二者输出特征图信息,最后输出两个损失函数,其中用二交叉熵预测边界图的损失函数(dualtask loss),用标准交叉熵预测语义分割(segmentation loss)。注意:该网络包含两个输入,即原图和原图的梯度。
三.细节分析
如何让shape stream只处理和边界相关的信息?
本文的方法就是精心设计GCL结构且利用本地监督来让shape stream只处理和边界相关的信息。GCL的目的就是确保该部分只处理和边界相关的信息,具体GCL为什么可以达到这个目的可以接下来再说。
多任务学习的误差函数长啥样?
该误差函数包括BCE(binary cross entropy)和CE(cross entropy)。λ1,λ2是二者的权重。加帽s是预测的真值边框,加帽y是预测的真值语义标签。注意:如图1所示,BCE监督的是shape stream还没有送到ASPP前的边界图!所以BCE更新的是two-stream的参数,而CE更新的是所有的参数,包括ASPP滴。
dual task regularizer? (双任务的正则化)
最后的输出结构是得到two-stream的误差函数,为了不过拟合,在误差函数中依旧加入正则化项。输出代表某个pixel是否属于某张图片的某个类别,它可以由输出图片的空间倒数计算得到:
当然,数据集中会存在一个真值,真值和预测值之间的差的绝对值可以用来当正则化项,其中P+代表的是真值和预测值二者非零pixel的坐标:
就经验来说,我们肯定是希望在和边界真值之间存在差异的pixel被惩罚,而避免不是边界的pixel被惩罚。所以在上面的正则项中利用的是边界预测和在边界区域的语义分割的二元性。
和上面分析相似,我们利用来自shape stream的边界预测去确保边界预测和预测的语义之间的额连续性(也存在一些小问题,过后知晓更新):
最后的正则化项可以前二者合二为一,其中的λ3,λ4都是超参数:
GCL(gated convolutional layer)?
GCL是本架构的一个核心成分,帮助shape stream只处理和边界相关的信息而滤除其他的信息。且要注意的一点就是shape stream并不会整合来自regular 的信息。
在论文中,是将不同层的regular stream和shape stream的特征图进行concatenate,然后通过1x1的标准卷积,最后通过sigmoid函数得到attenion map。如下图所式,其中||就是concatenate操作!:
得到attention map之后,GCL用于将shape stream的输出特征图st和attention map (at)的元素点积,卷积之后通过一次残差网络且通道加权值为wt,最后GCL计算如下所示:
注意:α可以被当做是attention map,它用很重要的边界信息去给区域进行加权!(这个后期看代码会了再来补充哈!)
至此,该网络的小心思好像差不多了,再细节的地方估计还是得啃代码!看完我肯定还得做笔记!待续.......