原文链接:https://arxiv.org/abs/1908.07678
代码:https://github.com/MendelXu/ANN.git


Non-local 是一种特别有用的语义分割技术,但也因其难以进行计算和占用GPU内存而受到批评。本文提出了Asymmetric Non-local Neural Network,其中有两个突出的组成部分:Asymmetric Pyramid Non-local Block(APNB)Asymmetric Fusion Non-local Block(AFNB)APNB利用金字塔采样模块,在不牺牲性能的前提下,极大地减少了计算和内存消耗;AFNB是由APNB演化而来的,在充分考虑了长期相关性的前提下,融合了不同层次的特征,从而大大提高了性能。

核心思路是:
只要query分支和key分支的输出保持相同的大小,Non-local的输出大小就保持不变。考虑到这一点,如果只从key分支和value分支中选取几个有代表性的点作为样本,就有可能在不牺牲性能的情况下显著降低时间复杂度。如下图所示,其中,SNS \ll N
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation


Asymmetric Non-local Neural Network

提出了APNBAFNB,其中APNB旨在减少Non-local的计算开销,AFNB提高了Non-local的学习能力,从而提高了分割性能。

重识Non-local

【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
考虑输入特征图XRC×H×WX \in \mathbb{R}^{C \times H \times W},三个1×11 \times 1卷积WϕW_{\phi}WθW_{\theta}WγW_{\gamma}用来将XX变换到不同的嵌入式空间ϕRC×H×W\phi \in \mathbb{R}^{C' \times H \times W}θRC×H×W\theta \in \mathbb{R}^{C' \times H \times W}γRC×H×W\gamma \in \mathbb{R}^{C' \times H \times W}
ϕ=Wϕ(X), θ=Wθ(X), γ=Wγ(X)\phi = W_{\phi}(X), \space \theta = W_{\theta}(X), \space \gamma = W_{\gamma}(X)
接着将他们三个flattenflattenC×NC' \times NNN为空间中总像素数,N=H×WN = H \times W相似度矩阵VRN×NV \in \mathbb{R}^{N \times N}可由矩阵乘法计算
V=ϕT×θV = \phi^T \times \theta
接着,将VV进行归一化
V=f(V)\vec{V}=f(V)
ff有三种形式,分别为softmaxsoftmaxrescalingrescalingnonenone,这里选择用softmaxsoftmax对于γ\gamma中的每个位置,都可以计算输出为
O=V×γTO=\vec{V} \times \gamma^T
其中,ORN×CO \in \mathbb{R}^{N \times C'}通过参考Non-local的设计,最终的输出为
Y=Wo(OT)+X or Y=cat(Wo(OT),X)Y = W_o(O^T) + X \space or \space Y = cat(W_o(O^T),X)
其中,WoW_o使用1×11 \times 1卷积,作为一个加权参数来调整Non-local的重要性,并且将通道维度从CC'还原为CC

Asymmetric Pyramid Nonlocal Block(APNB)
动机和分析

Non-local在两个矩阵相乘的时间复杂度为O(CN2)=O(CH2W2)O(C'N^2)=O(C'H^2W^2)。在语义分割任务中,网络的输出通常有较大的分辨率来保持细节的语义信息,NN通常很大。
一个更直接的pipelinepipeline如下
RN×C×RC×NRN×N×RN×CRN×C\mathbb{R}^{N \times C'} \times \mathbb{R}^{C' \times N}\rightarrow \mathbb{R}^{N \times N} \times \mathbb{R}^{N \times C'} \rightarrow \mathbb{R}^{N \times C'}
通过将NN变为SSSNS \ll N),输出尺寸保持不变
RN×C×RC×SRN×S×RS×CRN×C\mathbb{R}^{N \times C'} \times \mathbb{R}^{C' \times S}\rightarrow \mathbb{R}^{N \times S} \times \mathbb{R}^{S \times C'} \rightarrow \mathbb{R}^{N \times C'}
NN变为更小的SS相当于从图中采样几个有代表性的点,而不是考虑空间中所有的点,从而将计算量大大减少。

方法

【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
θ\thetaγ\gamma后,通过添加采样模块PθP_\thetaPγP_\gamma,来采样一些稀疏的锚点,得到θPRC×S\theta_P \in \mathbb{R}^{C' \times S}γPRC×S\gamma_P \in \mathbb{R}^{C' \times S},其中SS为采样锚点的个数。数学公式为
θP=Pθ(θ), γP=Pγ(γ)\theta_P = P_{\theta}(\theta),\space \gamma_P = P_{\gamma}(\gamma)
ϕ\phi与锚点θP\theta_P间的相似度矩阵VPV_P如下
VP=ϕT×θPV_P=\phi^T \times \theta_P
其中,VPV_P是一个不对称的矩阵,大小为N×SN \times S。接下来与Non-local一样进行归一化,得到VP\vec{V_P}attentionattention输出为
OP=VP×γPTO_P=\vec{V_P} \times \gamma_P^T
最终的输出YPY_P
YP=cat(Wo(OPT),X)Y_P = cat(W_o(O_P^T),X)
时间复杂度仅为O(CNS)O(C'NS),比标准Non-local中的O(CN2)O(C'N^2)小很多。

前面的工作表明,全局和多尺度对语义分割很有帮助,因此,在Non-local块中嵌入金字塔池化来增强全局表示。
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
这四个池化结果被平铺并连接起来,作为被采样的点。设置n{1,3,6,8}n \subseteq \{1,3,6,8\},则锚点的总量为
S=110=n{1,3,6,8}n2S = 110 = \sum_{n \subseteq \{1,3,6,8\}}n^2

Asymmetric Fusion Nonlocal Block(AFNB)

【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
不同层级的特征融合对语义分割有帮助,将特征融合加入到Non-local中,得到Fusion Non-local Block
标准的Non-local只有一个输入源,而FNB有两个输入源:一个高级特征图XhRCh×NhX_h\in \mathbb{R}^{C_h \times N_h}和一个低级特征图XlRCl×NlX_l \in \mathbb{R}^{C_l \times N_l}同样的,1×11 \times 1卷积WϕhW_{\phi}^hWθlW_{\theta}^lWγlW_{\gamma}^l被用来将XhX_hXlX_l变换到嵌入式空间ϕhRC×Nh\phi_h \in \mathbb{R}^{C' \times N_h}θlRC×Nl\theta_l \in \mathbb{R}^{C' \times N_l}γlRC×Nl\gamma_l \in \mathbb{R}^{C' \times N_l}
ϕh=Wϕh(Xh), θl=Wθl(Xl), γl=Wγl(Xl)\phi_h=W_{\phi}^h(X_h),\space \theta_l=W_{\theta}^l(X_l),\space \gamma_l=W_{\gamma}^l(X_l)
ϕh\phi_hθl\theta_l间的相似度矩阵VFRNh×NlV_F \in \mathbb{R}^{N_h \times N_l}
VF=ϕhT×θlV_F=\phi_h^T \times \theta_l
同样的,将VFV_F进行归一化得到VFRNh×Nl\vec{V_F} \in \mathbb{R}^{N_h \times N_l}同理输出为
OF=VF×γlTO_F=\vec{V_F} \times \gamma_l^T

YP=cat(Wo(OPT),X)Y_P = cat(W_o(O_P^T),X)

网络结构

【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation


实验结果

【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation
【文献阅读】Asymmetric Non-local Neural Networks for Semantic Segmentation

相关文章:

  • 2022-01-21
  • 2021-05-31
  • 2021-10-09
  • 2021-04-06
  • 2022-02-15
  • 2021-07-06
  • 2021-12-03
  • 2021-08-10
猜你喜欢
  • 2021-11-10
  • 2021-09-22
  • 2022-01-04
  • 2021-09-15
  • 2021-06-06
  • 2021-07-19
  • 2021-11-11
相关资源
相似解决方案