相关论文 non local 操作
-
要点:
criss-cross attention module 获得上下文信息
循环操作, 每一个像素可以获得全图信息 -
优势:
与non-local 操作相比,少了85%的浮点运算,
与non-local 操作相比,GPU占用率时1/11
state of the art -
现存问题
Due to the fixed geometric structures, they are inherently limited to local receptive fields and short-range contextual information.导致全卷积神经网络没有足够的上下文信息 -
现存解决方案:
- ASPP
不足:从周围像素获取信息,不能获得dense contextual information - 金字塔池化
均等的上下文信息被所有像素所采纳,不符合不同的像素有不同的依赖 -
non local 操作
O((H × W ) × (H × W )) in time and space
- ASPP
-
网络结构
(1)基本结构
特征提取网络,去除最后两个下采样层以后获得原图1/8大小的特征图 X
对 X 降维 获得特征图 H
将特征图 H 输入 第一个 criss-cross attention (CCA) module 得到 H’, H’ 将水平,竖直方向的远距离上下文信息进行聚合.
特征图 H’ 输入到第二个CCA,得到H’’,这一步操作将收集到每一个像素的信息
连接 X H’’ 送入多个带bn和**函数的卷积层以及分割层
(2)Criss-Cross Attention
首先对输入的特征图H进行两个1x1卷积,得到两个特征图Q,K. Q,K的通道数小于H
得到Q,K之后,通过Affinity operation 得到attention map:
H 通道数为C Q,K通道数为C’
Affinity operation
对于特征图Q的每一个位置u,我们可以得到一个向量 Qu(维度等于Q的通道数)
对于位置u,我们可以在特征图K上得到一个集合 Ωu, 对应的是和K中和u在同一行或者同一列上的向量的集合,i指的是 Ωu中的第i个元素
Affinity 操作
d i,u 衡量了 Ωui 和 Qu的相似度
最后 对于每个位置u,我们可以得到其与同行/列的 H+W −1 个位置的相关性
针对整个特征图(H+W ) 我们可以得到 (H+W −1)×W ×H 维的相关性矩阵,对于这个矩阵进行softmax操作得到attention map A
Aggregation operation
以上得到的是每个位置 与 其同行同列的相关性 接下来就是针对原输入特征图, 特征图上的每一个位置=十字区域的加权(权重来源于attention map)
先对H进行1*1 卷积,保留通道数C 得到特征图V
Hu’ 是输出特征图在u位置的输出, Aiu表示的是对于位置u,第i个通道的值(也就是十字中i对应的位置的权重), Φi u指的是V的十字通道中对应的第i个vector
循环再来一次 得到全局的attention