论文链接: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
主要优势:
- GPU内存友好。与non-local block相比,提出的周期性交叉注意模块需要11×更少的GPU内存使用
- 计算效率高。周期的交叉注意力在计算全图依赖时,与non-local block相比减少了85%的FLOPs
- 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
输入特征图,分别用两个1x1卷积生成特征图和,,小于,减小维度。
Affinity operatioin:
其中,是特征图上点处的向量,;是特征图上与点同行同列的一组向量,,是的第个元素。
动图如下:
此时,。接着对在channel维做softmax,即可得到attention map A。
用1x1卷积生成特征图,。
Aggregation operation:
其中,是特征图上与点同行同列的一组向量,。
动图如下:
Recurrent Criss-Cross Attention (RCCA)
在第一个循环中,交叉注意以从CNN模型中提取的feature maps H作为输入,输出feature maps H’,其中H和H ‘形状相同;
在第二次循环中,交叉注意以特征图H’为输入,以特征图H’'为输出。
一次CCA仅能捕捉到同行同列的信息,两次就可以捕获到全图其他所有点的信息了。
将与点、间的权重用公式表示为:
则两次CCA的信息传递如下: