【文献阅读】CCNet: Criss-Cross Attention for Semantic Segmentation

论文链接:https://arxiv.org/pdf/1811.11721.pdf
国内镜像:https://xxx.itp.ac.cn/pdf/1811.11721.pdf


FCN由于固定的几何结构,它们天生局限于局部的接受域和短距离的上下文信息。
全图像依赖提供了有用的上下文信息,有利于视觉理解问题。

  • 基于空洞卷积的方法从周围的几个像素点收集信息,实际上并不能生成密集的上下文信息
    Rethinking atrous convolution for semantic image segmentation
    Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution,and fully connected crfs
    Context contrasted feature and gated multiscale aggregation for scene segmentation
  • 基于池化的方法以非自适应的方式聚合上下文信息,所有图像像素都采用同构的上下文信息,不能满足不同像素需要不同上下文依赖的要求
    Pyramid scene parsing network
    Context encoding for semantic segmentation
  • 基于注意力的方法需要生成巨大的attention map来测量每个像素对之间的关系,它们在时间和空间上的复杂性都是O((H×W)×(H×W))
    Psanet: Pointwise spatial attention network for scene parsing
    Non-local neural networks
    Long short-term memory-networks for machine reading
    Attention is all you need
主要优势:
  1. GPU内存友好。与non-local block相比,提出的周期性交叉注意模块需要11×更少的GPU内存使用
  2. 计算效率高。周期的交叉注意力在计算全图依赖时,与non-local block相比减少了85%的FLOPs
  3. SOTA

用连续稀疏注意力代替non-local networks中的单层稠密注意力。
使用了两个连续的、十字交叉的注意力模块,其中每个位置只有(H+W - 1)的稀疏连接。
分解策略大大降低了时间和空间复杂度,从O((H×W)×(H×W))减少到O((H×W)×(H+W−1))

CCNet vs. Non-Local vs. GCN

在这里插入图片描述
在上下文信息聚合方面,GCN只有中心点才能感知到所有像素点的上下文信息。Non-local Network和CCNet保证一个像素在任何位置都能从所有像素中感知上下文信息。GCN可将方形卷积运算分解为与CCNet相关的水平和垂直的线性卷积运算,CCNet采用纵横交叉的方式获取上下文信息,比水平-垂直分离方式更有效。
CCNet的提出是为了模仿Non-local Network,通过一个更有效、更高效的递归交叉注意模块获取密集的上下文信息,其中不相似的特征得到的注意权重较低,而高注意权重的特征是相似的


网络设计
整体架构:

在这里插入图片描述
首先用CNN提取特征,得到特征图X;
对于给定的X,使用卷积层来获得降维的特征图H;
然后,将特征图H输入到交叉注意模块中,生成新的特征图H’,H’为其交叉路径中的每个聚合了上下文信息的像素;
为了获得更丰富、更密集的上下文信息,再次将H’输入到十字交叉注意模块中,输出H”。如此,特征图H’‘中的每个位置实际上收集了所有像素的信息;前后两个交叉的注意力模块共享相同的参数,避免添加过多的额外参数
然后,concat H’’ 和X,紧跟一个或多个卷积层,bn层和激活层;
最后,将融合的特征送入segmentation layer,来预测标签。

Criss-Cross Attention

在这里插入图片描述
输入特征图 H H H,分别用两个1x1卷积生成特征图 Q Q Q K K K { Q , K } ∈ R C ′ × W × H \{Q, K\}\in \mathbb{R}^{C^{'} \times W \times H} {Q,K}RC×W×H C ′ C^{'} C小于 C C C,减小维度。

Affinity operatioin
d i , u = Q u Ω i , u T d_{i,u}=Q_{u} \Omega_{i,u}^T di,u=QuΩi,uT
其中, Q u Q_{u} Qu是特征图 Q Q Q u u u点处的向量, Q u ∈ R C ′ Q_{u} \in \mathbb{R}^{C^{'}} QuRC Ω u \Omega_{u} Ωu是特征图 K K K上与 u u u点同行同列的一组向量, Ω u ∈ R ( H + W − 1 ) × C ′ \Omega_{u} \in \mathbb{R} ^{(H+W-1) \times C^{'}} ΩuR(H+W1)×C Ω i , u ∈ R C ′ \Omega_{i,u} \in \mathbb{R}^{C^{'}} Ωi,uRC Ω u \Omega_{u} Ωu的第 i i i个元素。

动图如下
在这里插入图片描述
此时, D ∈ R ( H + W − 1 ) × W × H D\in\mathbb{R}^{(H+W-1)\times W \times H} DR(H+W1)×W×H。接着对 D D Dchannel维做softmax,即可得到attention map A

用1x1卷积生成特征图 V V V V ∈ R C × H × W V \in \mathbb{R}^{C \times H \times W} VRC×H×W

Aggregation operation
H u ′ = ∑ i ∈ ∣ Φ u ∣ A i , u Φ i , u + H u H_{u}^{'}=\sum _{i \in |\Phi_{u}|} A_{i,u} \Phi_{i,u}+H_{u} Hu=iΦuAi,uΦi,u+Hu
其中, Φ u \Phi_{u} Φu是特征图 V V V上与 u u u点同行同列的一组向量, Φ u ∈ R ( H + W − 1 ) × C \Phi_{u} \in \mathbb{R}^{(H+W-1)\times C} ΦuR(H+W1)×C

动图如下
在这里插入图片描述

Recurrent Criss-Cross Attention (RCCA)

在第一个循环中,交叉注意以从CNN模型中提取的feature maps H作为输入,输出feature maps H’,其中H和H ‘形状相同;
在第二次循环中,交叉注意以特征图H’为输入,以特征图H’'为输出。
在这里插入图片描述
一次CCA仅能捕捉到同行同列的信息,两次就可以捕获到全图其他所有点的信息了。

A i , x , y A_{i,x,y} Ai,x,y与点 x ′ x^{'} x y ′ y^{'} y间的权重用公式表示为:
A i , x , y = f ( A , x , y , x ′ , y ′ ) A_{i,x,y}=f(A,x,y,x^{'},y^{'}) Ai,x,y=f(A,x,y,x,y)
则两次CCA的信息传递如下:
H u ′ ′ ← [ f ( A , u x , θ y , θ x , θ y ) ⋅ f ( A ′ , u x , u y , u x , θ y ) + f ( A , θ x , u y , θ x , θ y ) ⋅ f ( A ′ , u x , u y , θ x , u y ) ] H_{u}^{''} \leftarrow [f(A,u_{x},\theta_{y},\theta_{x},\theta_{y}) \cdot f(A^{'},u_{x}, u_{y},u_{x},\theta_{y})+f(A,\theta_{x},u_{y},\theta_{x},\theta_{y}) \cdot f(A^{'},u_{x},u_{y},\theta_{x},u_{y})] Hu[f(A,ux,θy,θx,θy)f(A,ux,uy,ux,θy)+f(A,θx,uy,θx,θy)f(A,ux,uy,θx,uy)]


实验结果

在这里插入图片描述
在这里插入图片描述

Cityscapes

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ADE20K

在这里插入图片描述

COCO

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值