Criss-Cross Attention for Semantic Segmentation
论 文名称:CCNet: Criss-Cross Attention for Semantic Segmentation
作者:Zilong Huang,Xinggang Wang Yun,chao Wei,Lichao Huang,Wenyu Liu,Thomas S. Huang
摘要
上下文信息在视觉理解问题中至关重要,譬如语义分割和目标检测;
本文提出了一种十字交叉的网络(Criss-Cross Net)以非常高效的方式获取完整的图像上下文信息:
- 对每个像素使用一个十字注意力模块聚集其路径上所有像素的上下文信息;
- 通过循环操作,每个像素最终都可以捕获完整的图像相关性;
- 提出了一种类别一致性损失来增强模块的表现。
CCNet 具有一下优势:
- 显存友好:相较于 Non-Local 减少显存占用 11 倍
- 计算高效:循环十字注意力减少 Non-Local 约 85% 的计算量
- SOTA
- Achieve the mIoU scores of 81.9%, 45.76% and 55.47% on the Cityscapes test set, the ADE20K validation set and the LIP validation set respectively
介绍
- 当前 FCN 在语义分割任务取得了显著进展,但是由于固定的几何结构,分割精度局限于 FCN局部感受野所能提供的短程感受野,目前已有相当多的工作致力于弥补 FCN 的不足,相关工作看论文。
- 密集 预测任务实际上需要高分辨率的特征映射,因此 Non-Local 的方法往往计算复杂度高,并且占用大量显存,因此设想使用几个连续的稀疏连通图(sparsely-connected graphs)来替换常见的单个密集连通图( densely-connected graph),提出 CCNet 使用稀疏连接来代替 Non-Local 的密集连接。
- 为了推动循环十字注意力学习更多的特征,引入了类别一致损失(category consistent loss)来增强 CCNet,其强制网络将每个像素映射到特征空间的 n 维向量,使属于同一类别的像素的特征向量靠得更近。
方法
CCNet 可能是受到之前将卷积运算分解为水平和垂直的 GCN 以及建模全局依赖性的 Non-Local,CCNet 使用的十字注意力相较于分解更具优势,拥有比 Non-Local 小的多得计算量。
文中认为 CCNet 是一种图神经网络,特征图中的每个像素都可以被视作一个节点,利用节点间的关系(上下文信息)来生成更好的节点特征。
最后,提出了同时利用时间和空间上下文信息的 3D 十字注意模块。
网络结构
整体流程如下:
- 对于给定的 ,使用卷积层获得降维的特征映射 ;
- 会输入十字注意力模块以生成新的特征映射 ,其中每个像素都聚集了垂直和水平方向的信息;
- 进行一次循环,将 输入十字注意力,得到 ,其中每个像素实际上都聚集了所有像素的信息;
- 将 与局部特征表示 进行 ;
- 由后续的网络进行分割。
Criss-Cross Attention

主要流程如下:
-
使用 卷积进行降维得到 ;
-
通过Affinity操作生成注意力图 ,其中:
-
对于 空间维度上的的每一个位置 ,我们可以得到一个向量 ;
-
同时,我们在 上得到一个集合 ,其代表着位置 的同一行或同一 列;
-
令 表示 的第 个元素,Affinity操作可以表示为:
其用来表示两者之间的相关性,最终我们可以得到
-
最终在通道维度上对 使用 ,即可得到注意力图 ,需要注意的是,这里的通道维度代表的是 这个维度,其表示某个位置像素与其垂直水平方向上像素的相关性。
-
-
另一方面,依旧使用 卷积生成 ,我们可以获得一个向量