CCNet: Criss-Cross Attention for Semantic Segmentation阅读笔记

0摘要:
Criss_Cross用于捕捉上下文信息,上下文信息可以用于远程依赖。使用新颖的criss_cross attention module,每个像素都可以取得它周围像素的信息。CCNet有如下几个好处:
1)GPU内存友好。与非本地块相比,循环纵横交叉注意模块所需的GPU内存使用量减少了11倍。
2)高计算效率。在计算远程依存关系时,反复出现的纵横交错注意力将FLOP减少了非本地块的大约85%。
3)最先进的性能。我们对流行的语义分段基准(包括Cityscapes,ADE20K和实例分段基准COCO)进行了广泛的实验。

1介绍:
FCN由于其结构,很难捕捉好全局的信息,导致其结果不太好。后来又有空洞卷积和金字塔模块以及带有金字塔池化的PSPNet来获得上下文信息。然而,空洞卷积使用的方法仅仅取得了他周围一部分的信息,无法得到他周围所有的上下文信息。同时,这些基于池化的方法以非自适应的方式聚合上下文信息,并且所有图像像素均采用同类上下文信息,这不能满足不同像素需要不同上下文依赖的要求。
为了生成密集的像素级上下文信息,PSANet学会通过预测的注意力图来汇总每个位置的上下文信息。非本地网络利用自我关注机制,该机制可以使任何位置的单个特征感知所有其他位置的特征,从而产生更多的逐像素功率表示。这里,特征图中的每个位置都通过自适应预测的注意力图与所有其他位置相连,从而收集了各种范围的上下文信息,请参见图1(a)。然而,这些基于注意力的方法需要生成巨大的注意力图来测量每个像素对的关系,其时间和空间复杂度均为O((H×W)×(H×W)),其中H×W捐赠输入要素地图的空间尺寸。由于输入特征图在语义分割任务中始终具有高分辨率,因此基于自我注意的方法具有较高的计算复杂度,并占用大量GPU内存。
我们发现[32]所采用的当前的非局部运算可以用两个连续的交叉运算来替代,其中每个特征映射中的每个位置仅具有稀疏连接(H + W − 1)。这激励我们提出纵横交错的关注模块,以在水平和垂直方向上汇总远程像素级上下文信息。通过串行堆叠两个纵横交错的注意力模块,它可以从所有像素收集上下文信息。分解极大地降低了从O((H×W)×(H×W))到O((H×W)×(H + W − 1))的时间和空间复杂性。
具体而言,我们的纵横交错注意模块能够在纵横交错的路径上收集附近和远方的各种信息。如图1所示,非本地模块和纵横交叉注意模块都以空间大小H×W馈送输入特征图,以分别生成注意图(上部分支)和自适应特征图(下部分支)。然后,采用加权和作为聚合方式。在纵横交叉注意模块中,特征图上的每个位置(例如蓝色)都通过预测的稀疏注意图与位于同一行和同一列中的其他位置连接。此外,我们提出了循环交叉注意模块以捕获所有像素的长距离依赖关系。局部特征仅传递给纵横交错的关注模块一次,该模块收集水平和垂直方向的上下文信息。纵横交错注意模块的输出特征图将馈入下一个纵横交错注意模块。第二个特征图中的每个位置(例如红色)都会从所有其他位置收集信息,以增强像素级表示。所有纵横交错的注意模块共享参数,以减少额外的参数。我们的纵横交错注意力模块可以插入到名为CCNet的任何完全卷积神经网络中,以便以端到端的方式进行细分。
1.我们在这项工作中提出了一个新颖的纵横交错注意模块,可以利用该模块以更有效的方式从远程依赖项中捕获上下文信息。
2.我们通过利用两个经常出现的纵横交错的关注模块,建议CCNet,在基于细分的基准(包括Cityscapes,ADE20K和MSCOCO)上取得领先的性能。

2相关工作:介绍了一些以前相关的方法,略。

3方法:
在本节中,我们给出了用于语义分割的拟议的CrissCross网络(CCNet)的详细信息。首先,我们将首先介绍我们的网络的总体框架。然后,我们将介绍纵横交错的注意力模块,该模块捕获水平和垂直方向的远程上下文信息。最后,为了捕获密集的全局上下文信息,我们提出了循环交叉注意模块。
3.1 整体
网络结构如图2所示。输入图像经过深度卷积神经网络(DCNN)传递,该深度卷积神经网络以完全卷积的方式设计[6],然后生成特征图X。我们表示空间大小X为H×W。为了保留更多细节并有效地生成密集的特征图,我们删除了最后两个下采样操作,并在随后的卷积层中使用了扩展卷积,从而扩大了输出特征图的宽度/高度X到输入图像的1/8。
然后在使用一个卷积来降低维度得到H,然后将H 放到CCA(criss-cross attention)模块中得到H’,此时H’只是取得了同行同列的上下文信息,我们还需要对H’进行一次CCA操作。两个CCA模块使用相同的参数,避免引入太多参数。我们将这两个连着的CCA模块称为RCCA(recurrent criss-cross attention)模块。
然后,我们将密集的上下文特征H’‘与局部表示特征X连接起来。紧接着是一层或数个具有批处理归一化和激活以进行特征融合的卷积层。最后,将融合的特征馈入分割层以生成最终的分割图。
在这里插入图片描述
3.2 CCA模块
对于H ∈RC×W×H,CCA模块首先使用两个1*1卷积得到Q和K,{Q,K} ∈ RC’×W×H.,其中C’<C。
进一步,我们创建特征图A ∈ R(H+W−1)×W×H,使用Affinity操作。对于Q中的每一个位置u,我们的到向量Qu∈ RC‘。同时,我们通过从K中与u同行或者同列的像素中提取特征,得到Ωu。Ωu∈ R(H+W−1)×C’. Ωi,u∈ RC‘是前者的第i个元素。Affinity操作可以如下定义:
在这里插入图片描述
diu表示Qu和Ωiu的连接程度。 i = [1, …,|Ωu|], D ∈R(H+W−1)×W×H。然后我们对D使用SOFTMAX操作得到A。
然后在H上应用另一个具有1×1滤波器的卷积层,以生成V∈RC×W×H进行特征自适应。在特征图V的空间维度上的每个位置u,我们都可以得到向量Vu∈RC和集合Φu∈R(H + W-1)×C。 V中处于同一行或同一列且位置为u的特征向量的集合Φuis集合。远程上下文信息由聚合操作收集:
在这里插入图片描述
其中H’u表示输出特征图H’∈RC×W×H位置u中的特征向量。 A∈R(H+W-1)WH Au = H+w-1 Aiu:在通道i和A中的位置u处有一个标量值。将上下文信息添加到局部特征H中以增强局部特征并增强按像素表示。因此,它具有广泛的上下文视图,并根据空间注意力图选择性地聚合上下文。该特征表示实现了共同的收获,并且在语义分割方面更加强大。
整体结构图如下所示:
在这里插入图片描述
3.3 RCCA
尽管CCA模块可以捕获水平和垂直方向的远程上下文信息,但像素与像素周围之间的连接仍然稀疏。获取密集的上下文信息以进行语义分割是有帮助的。为了实现这一点,我们基于上述的CCA模块引入了RCCA模块。RCCA可以展开为R个循环。在第一个循环中,CCA模块将从CNN模型中提取的特征地图H作为输入,并将特征地图H‘作为输出,其中H和H’具有相同的形状。在第二个循环中,CCA将H’作为输入特征图,H’‘作为输出特征图。如图2所示,RCCA模块具有两个循环(R = 2),足以从所有像素中获取远程依存关系,以生成具有密集且丰富的上下文信息的新特征图。
A和A‘分别作为循环1和循环2中的特征图。由于我们只对上下文信息的空间维度而不是通道维度感兴趣,因此可以将具有1×1滤镜的卷积层视为相同的连接。另外,从位置x0,y0到权重Ai,x,y的映射函数定义为Ai,x,y = f(A,x,y,x0,y0)。对于特征图H’‘上的任何位置u和特征图H上的任何位置θ,如果R = 2,则存在连接。一种情况是u和θ在同一行或同一列中:

在这里插入图片描述
其中←是附加操作。另一种情况是u和θ不在同一行和同一列中。图4显示了上下文信息在空间维度上的传播路径:
在这里插入图片描述
注:第二个公式的计算方法如下:
1.取相同X轴的P和相同Y轴的Q。
2.计算P = f(A,θx,μy,θx,θy)*Hθ Q = f(A,μx,θy,θx,θy)*Hθ
3.计算H’’ =f(A’,μx,μy,θx,μy) P+f(A‘,μx,μy,μx,θy)Q ,最后得到正确答案。

通常,我们的RCCA模块弥补了CCA无法从所有像素获取密集上下文信息的不足。与CCA模块相比,RCCA模块(R = 2)不会带来额外的参数,并且可以以较小的计算增量为代价实现更好的性能。循环交叉注意模块也是一个独立的模块,可以在任何阶段插入任何CNN体系结构,并以端到端的方式进行优化。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值