《CCNet:Criss-Cross Attention for Semantic Segmentation》论文笔记

参考代码:CCNet

1. 概述

导读:CNN网络中较大范围的依赖(long-range dependencies)可以捕捉到很多有用的上下文信息,这个特性在图像理解任务中具有重要作用(如分割)。文章在参考non-local设计理念的基础上使用在像素点位置十字交叉的方式进行attention操作,用以获取丰富的上下文信息,提出由CCA模块构建的CCNet(criss-cross Network)。文章的方法相比之前的non-local具有如下两个优点:
1)相比non-local在显存上的开销更小,之间差距差了11倍;
2)在计算开销上,相比non-local减少了85%的计算量;
文章的方法在Cityscapes和ADE20K数据集上mIoU分别达到了81.4和45.22。

文章网络attention模块设计的思路很大程度上是来自于non-local方法,文中在其基础上对计算效率和显存占用做了优化。下图是一个典型的non-local的计算流程图:
在这里插入图片描述
其在分辨率为 ( H ∗ W ) (H*W) (HW)下计算量可以大体描述为 O ( ( H ∗ W ) ∗ ( H ∗ W ) ) O((H*W)*(H*W)) O((HW)(HW))。对此文章使用十字型采样的方式减少对应的资源消耗,但是为了弥补简单十字型采样带来的表达不足,文章使用了参数共享的堆叠方式,从而得到下图中的attention计算流程:
在这里插入图片描述
则经过十字型采样之后整个的计算量大体变为了 O ( ( W + H − 1 ) ∗ H ∗ W ) O((W+H-1)*H*W) O((W+H1)HW)

在下表中比较了在相同baseline下non-local和CCA模块的性能比较,见下表所示:
在这里插入图片描述

2. 方法设计

2.1 网络结构

文章的整体网络结构比较简单,具体见下图所示:
在这里插入图片描述
输入的图像首先经过一个带有dilation convolution的卷积得到特征图 X X X(其stride=8),之后经过一个channel采样的卷积通道数下采样得到特征图 H H H,之后经过两个权值共享的CCA模块得到经过优化的特征图,之后送入后面的分割头得到最后的分割结果。

2.2 CCA模块

文章的CCA模块其具体结构见下图所示:
在这里插入图片描述
输入的特征图表示为 H ∈ R C ∗ W ∗ H H\in R^{C*W*H} HRCWH,之后分别经过两个 1 ∗ 1 1*1 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值