2、 DANet
本文引入注意力机制,提出了DANet(Dual attention network),该模型可以自适应地集成局部特征及其全局依赖性。具体而言,作者在传统FCN之上附加两种类型的注意力模块,它们分别模拟空间和通道维度中的语义相互依赖性。Position Attention 模块通过对所有位置的特征进行加权和,有选择地聚合每个位置的特征。无论距离如何,相似的特征都将彼此相关。同时,Channel Attention模块通过整合所有信道映射中的相关特征来选择性地强调相互依赖的信道映射。作者利用这两种注意力模块来捕获图像中的全局信息。整体结构如图5所示。
图5 DANet结构
Position Attention 模块
如图6所示,Position Attention模块的输入是一个特征图,其尺寸大小为原始图像的1/8,在这里表示为CxHxW,其中,C表示Channel数,H表示特征图的高,W表示特征图的宽。B、C、D表示的都是特征图A,然后对他们进行reshape操作,得到了三个大小为CxN的矩阵,而这三个矩阵也就对应了自注意力机制的Q、K、V。
图6 位置注意力模块和通道注意力模块的细节见(A)和(B)
首先,计算像素间的相似性矩阵,其过程就是通过QT x K,也就是(N x C)矩阵乘上(C x N)矩阵得到了大小为N x N的像素间相似性矩阵。第二,对该相似性矩阵进行softmax操作,得到每个影响该像素的相对因子。第三,将经过softmax之后的相似性矩阵与V矩阵相乘,最终得到重新编码的特征表示,其大小也是C x N。原始矩阵乘上相似性矩阵的目的是放大与其相似的像素的影响,削减与其不相似的像素的影响,也可以称之为重新编码操作。第四,将最终得到的新的特征矩阵进行reshape操作,得到大小为C x H x W的重新编码的特征图。最后,将该特征图与上层网络中抽取出的特征相加得到最终Position Attention模块的输出,其大小依旧是C x H x W。
Channel Attention 模块
如图6所示,通道注意力模块是用来挖掘图像特征图中每个通道之间的相似性关系,从而让每个通道都具有全局的语义特征。通道注意力模块的整体过程与位置注意力模块相似。输入也是大小为原始图像的1/8,具体表示为C x H x W的特征图。将C x H x W的张量reshape成C x N的矩阵,而N=H x W,因此每个通道都是由1 x N大小的向量表示的。
首先,计算像素间的相似性矩阵,其过程就是通过QT x K得到了大小为N x N的像素间相似性矩阵。第二,对该相似性矩阵进行softmax操作,得到每个影响该通道的相对因子。第三,将经过softmax之后的相似性矩阵与V矩阵相乘,得到重新编码的特征表示,其大小也是C x N。原始矩阵乘上相似性矩阵的目的是为了放大与其相似的通道的影响,削减与其不相似的通道的影响。第四,将最终得到的新的特征矩阵进行reshape操作,得到大小为C x H x W的重新编码的特征图。第五,将该特征图与上层网络中抽取出的特征相加得到最终Channel Attention模块的输出,其大小依旧是C x H x W。
最后,将两个注意力机制中提取的特征图相加,再输入到一个卷积层中,得到最终的图像分割结果。
当前SOTA!平台收录 DANet 共10个模型实现。
项目 | SOTA!平台项目详情页 |
DANet | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/danet-1 |
3、FastFCN
为了替代以FCN为基础的语义分割方法中消耗时间和消耗内存的膨胀卷积,本文提出了一种新的联合上采样模块——联合金字塔上采样(joint Pyramid upsampling, JPU)。如图7所示,该方法的主干与原始FCN相同,其中5个feature maps (Conv1−Conv5)的空间分辨率逐渐降低了2倍。引入JPU模块,该模块以后3个特征图(Conv3 ~ Conv5)为输入。然后使用多尺度上下文模块或全局上下文模块生成最终的预测结果。
图7 框架概述。本文的方法采用了与原始FCN相同的骨干网。在骨干网之后,提出了一个新颖的上采样模块,名为联合金字塔上采样(Joint Pyramid Upsampling,JPU),它将后三个特征图作为输入,生成一个高分辨率特征图。然后,采用多尺度/全局背景模块来生成最终的标签图
作者将传统的FCN的最后三层输入JPU模块中,该模块的具体过程如图8所示。首先将FCN最后的三层特征图输入一个常规卷积块中,其主要目的是降低特征维度,使所有特征维度一致可以更好的融合信息并降低计算复杂度。随后将三个特征图进行上采样得到了一个联合上采样之后的特征表示,然后通过一个多尺度语义模块来捕捉不同尺度下的特征信息(四个具有不同扩展率的可分离卷积),将其拼接起来得到了多尺度特征表示,随后将其通过一个卷积层得到最终的分割结果。
图8 JPU图示
联合上采样
给定x_l和y_l,我们需要得到一个变换ˆf(·)来近似f(·),其中ˆf(·)的计算复杂度比f(·)低得多。例如,如果f(·)是一个多层感知器(MLP),那么ˆf(·)可以被简化为一个线性变换。然后通过在高分辨率引导图像x_h上应用ˆf(·)得到高分辨率目标图像y_h,即y_h = ˆf(x_h)。给定x_l、y_l和x_h,联合上采样的定义如下:
扩张卷积
图9a给出了一维扩张卷积的图示(扩张率=2),可分为以下三个步骤:(1) 根据索引的奇偶性,将输入的特征f_in分成两组(f_in)^0和(f_in)^1;(2)用相同的卷积层处理每个特征,以得到(f_out)^0和(f_out)^1;(3)将两个产生的特征交错合并,得到输出特征f_out。
带有stride的卷积
将输入特征转化为具有较低空间分辨率的输出特征,这相当于以下两个步骤,如图9b所示:(1)用常规卷积处理输入特征f_in,得到中间特征f_m;(2)去除具有奇数索引的元素,得到f_out。
图9 扩张卷积(扩张率=2)和跨度卷积(跨度=2)
给定输入图像x,通过下述公式得到联合上采样的输出y_s:
给定x和y_s,可以得到近似于y_d的特征图y,如下所示:
上式是一个优化问题,需要迭代梯度下降来收敛。作者提出用一个CNN模块来近似优化过程。每个输入的特征图首先由一个常规的卷积块处理(图8a),其目的是:(1)生成给定x的y_m,(2)将f_m转化为一个尺寸减小的嵌入空间。因此,将所有的输入特征映射到同一空间,这使得融合效果更好,并降低了计算复杂度。然后,对生成的特征图进行上采样和串联,得到y_c(图8b)。平行采用四个具有不同扩张率(1、2、4和8)的可分离卷积,以从y_c中提取特征,其中,不同的扩张率具有不同的功能。采用扩张率为1的卷积来捕捉(y_m)^0和y_m的其余部分之间的关系,如图33中的蓝色方框所示。另外,设计扩张率为2、4和8的卷积来学习映射hˆ,将(y_m)^0转化为y_s,如图33中的绿色方框所示。因此,JPU可以从多级特征图中提取多尺度的上下文信息,从而确保更好的性能。
图10 扩张率1的卷积聚焦于(y_m)^0和y_m的其余部分,而扩张率2的卷积则聚焦于(y_m)^0和y_s
当前SOTA!平台收录 FastFCN 共2个模型实现。
项目 | SOTA!平台项目详情页 |
FastFCN |
前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/fastfcn |
4、 Gated-SCNN
Deep CNN能提取图像中的很多feature map,比如图像的纹理、颜色、形状特征。但对于分割任务来说,所需要的是根据边界和形状信息进行识别,如果信息流中包含了很多颜色、纹理,就可能会导致识别问题。针对上述问题,作者提出了双流CNN(two-stream CNN)结构,即将shape stream单独分离出来与常规的CNN进行并行操作,最后将两者学习到的特征通过ASPP进行融合处理,从而提高语义分割的性能。
如图11, 模型由三部分组成:常规流(Regular Stream)、形状流(Shape Stream)、Fusion Module。
图11 Gated-SCNN(GSCNN),这是一个用于语义分割的新的双流CNN架构,将形状信息作为一个单独的处理流。GSCNN使用一种新的门控机制来连接中间层。流之间的信息融合是通过融合模块在最后完成的。为了预测高质量的边界,利用了一个新的损失函数,以鼓励预测的语义分割掩码与ground truth边界保持一致
Regular Stream
常规流可以是任何的前馈全卷积网络,如基于ResNet的或基于VGG的语义分割网络。作者实验中采用的骨干网是Resnet101 & WideResnet,输入大小为N x 3 x H x W,输出大小为N x 3 x H/m x W/m,其中,m表示步长。
Shape Stream
将常规流第一层卷积的输出作为输入,产生的语义边界作为输出。网络架构由一些残差块与门控卷积层(GCL)交错组成的。由于我们可以从GT(Groud Truth)语义分割掩码中获得GT二值边缘,因此在输出边界上使用有监督的二值交叉熵损失来监督形状流。整个Shape Stream的输出是N x 1 x H x W大小的边缘map。
Fusion Module
将区域特征和边界特征结合起来,输出一个细化的语义分割输出。对于K个语义类的分割预测,输出一个分类分布:
f 表示像素属于每一个K类的概率。具体来说,使用一个Atrous空间金字塔池化合并边界图s(Shape stream生成的图)和r(Regular stream生成的图)。这使得我们能够保存多尺度的上下文信息。
由于估计语义分割和语义边界的任务是密切相关的,作者还设计了一个新的GCL层,以促进信息从规则流到形状流的流动。GCL是架构的核心组件,它通过过滤其他信息来帮助shape stream只处理相关信息。形状流并不包含来自常规流的特性。相反,它使用GCL来停用自己的激活,这些激活被常规流中包含的高级信息认为是不相关的。这种处理方式可以看作是两个流之间的协作,其中更强大的一个流对场景形成了更高层次的语义理解,帮助另一个流从一开始就只关注相关的部分。这使得形状流能够采用一个有效的浅层架构,以非常高的分辨率处理图像。
首先通过连接r_t和s_t得到一个注意力图α_t∈R^H×W,然后是一个归一化的1×1卷积层C_1×1,再由一个sigmoid函数σ得到:
其中,||表示特征图串联。考虑到注意力图α_t,GCL应用于s_t,作为注意力图α的一个元素的乘积,然后是残差连接和核w_t的通道加权。在每个像素(i,j),GCL计算为:
然后,将sˆt传递到形状流的下一层进行进一步处理。请注意,注意力图的计算和门控卷积都是可分的,因此可以进行端到端的反向传播。
对预测的边界图s使用标准的二元交叉熵(BCE)损失,对预测的语义分割f使用标准交叉熵(CE)损失:
当前SOTA!平台收录 Gated-SCNN 共2个模型实现。
项目 | SOTA!平台项目详情页 |
Gated-SCNN | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/gated-scnn |