Introduction

特征融合的方法很多.如果数学化地表示,大体可以分为以下几种:

  • KNN融合CNN cnn特征融合_图像分类: KNN融合CNN cnn特征融合_深度学习_02KNN融合CNN cnn特征融合_KNN融合CNN_03表示两个特征图,KNN融合CNN cnn特征融合_图像分类_04表示元素级相加. 代表如ResNet、FPN
  • KNN融合CNN cnn特征融合_卷积神经网络_05 .KNN融合CNN cnn特征融合_计算机视觉_06表示张量 拼接操作。 代表如GoogleNet、U-Net
  • KNN融合CNN cnn特征融合_计算机视觉_07. KNN融合CNN cnn特征融合_图像分类_08是注意力函数。这里表示自注意力机制。代表如SENet、 CBAM、Non-local
  • KNN融合CNN cnn特征融合_卷积神经网络_09. 同样是将注意力机制作用在一个特征图上,而权重信息来源于对方。代表如GAU
  • KNN融合CNN cnn特征融合_图像分类_10. 软注意力机制的一种,对特征图进行加权平均。代表如HighwayNetworks
  • KNN融合CNN cnn特征融合_卷积神经网络_11. 代表如SA
  • KNN融合CNN cnn特征融合_卷积神经网络_12,代表如SKNet

X+Y

ResNet

X concat Y

GoogleNet

X+G(Y)Y

SENet[1]

SENet使用了通道注意力的模块。

KNN融合CNN cnn特征融合_KNN融合CNN_13

给定特征图KNN融合CNN cnn特征融合_图像分类_14。通道注意力模块中的权重KNN融合CNN cnn特征融合_KNN融合CNN_15可表示为:
KNN融合CNN cnn特征融合_计算机视觉_16
其中,KNN融合CNN cnn特征融合_深度学习_17是全局池化层,KNN融合CNN cnn特征融合_KNN融合CNN_18是BN层,KNN融合CNN cnn特征融合_图像分类_19是ReLU层,KNN融合CNN cnn特征融合_计算机视觉_20是全连接层,KNN融合CNN cnn特征融合_深度学习_21,r是通道缩减倍数。

CBAM[2]

SE模块将特征图中所有位置的权重浓缩为一个实数值,忽略了不同位置间的差异,且更容易关注大目标而忽略小目标。 CBAM(Convolutional Block Attention Module)在通道注意力之后又加上了空间注意力。

KNN融合CNN cnn特征融合_深度学习_22


这里仅介绍空间注意力模块。空间注意力是以通道为单位进行最大和平均池化,并将两者的结果进行concat,之后再一个卷积降成1wh的特征图空间权重,再将该权重和输入特征进行点积。

权重KNN融合CNN cnn特征融合_深度学习_23的数学表达形式为:

KNN融合CNN cnn特征融合_计算机视觉_24

其中KNN融合CNN cnn特征融合_计算机视觉_25是通道上的平均池化,KNN融合CNN cnn特征融合_图像分类_26是通道上的最大池化,KNN融合CNN cnn特征融合_计算机视觉_20是卷积层。

Non-local[3]

Non-local是为视频分类设计的一个模块,去掉时间维度也可应用到2D图像上。CBAM用卷积生成点的权重值,视野狭窄。而Non-local能捕获全局信息。

KNN融合CNN cnn特征融合_计算机视觉_28


图中的乘号表示矩阵相乘。先使用3个1x1x1卷积压缩特征图,其中KNN融合CNN cnn特征融合_卷积神经网络_29KNN融合CNN cnn特征融合_计算机视觉_30分支用来计算每个点与其它所有点的相关系数,用softmax归一化为权重,乘以KNN融合CNN cnn特征融合_KNN融合CNN_31分支得到拥有全局信息的结果,然后用1x1x1卷积恢复通道数。为了方便插入任何一个网络,将其作为一个residual分支。

同样是对全局信息建模,Non-local相较于全连接层少了很多参数,其核心的计算点与点之间相关系数的部分甚至不需要参数。不过仍然存在计算时间长的问题。

G(Y)X+Y

GAU[4]

PAN是一个为图像分割设计的网络,其使用的GAU(Global Attention Upsample)模块,如下图所示

KNN融合CNN cnn特征融合_深度学习_32


GAU出现在网络的decoder部分。其中Y是高层特征图,X是底层特征图。高层特征采用了Global Pooling得到权重,底层特征经过一个卷积层实现与高层特征相同数量的map,乘以权重后再和高层相加。

作者认为,decoder部分主要任务是恢复目标类别的像素位置,而高层特征含有丰富的类别信息能够指导底层特征。

G(X)X+(1-G(X))Y

Highway Networks[5]

Highway Network是2015年提出来的,时间上早于ResNet。想要解决的问题就是如何训练深度网络。其解决方案是基于LSTM的门控机制。特征融合公式可表示为:

KNN融合CNN cnn特征融合_图像分类_33

它和residual模块比较相似:

KNN融合CNN cnn特征融合_计算机视觉_34

下图体现了二者结构上的差别。图a是residual模块,图c是Highway

KNN融合CNN cnn特征融合_计算机视觉_35

G(X,Y)X+(1-G(X,Y))Y

SKNet[6]

SK(Selective kernel )模块的作用是自适应调整感受野。

KNN融合CNN cnn特征融合_深度学习_36


模块分为三个部分。Split部分 分别经过3x3卷积和5x5卷积,产生不同感受野的特征图,可看作X和Y。Fuse部分和SE模块类似,区别是最后恢复成两个不同的通道权重。Select部分将X和Y的权重做个Softmax然后加权融合。

由于SK模块的加入提高了模型的复杂度,为了降低参数量作者使用了分组卷积,以及用3x3的带孔卷积替换5x5卷积。

Remarks

  • 公式的KNN融合CNN cnn特征融合_KNN融合CNN_03可以表示成KNN融合CNN cnn特征融合_计算机视觉_38KNN融合CNN cnn特征融合_KNN融合CNN_39,KNN融合CNN cnn特征融合_图像分类_40KNN融合CNN cnn特征融合_深度学习_41表示一系列CNN操作。意思是KNN融合CNN cnn特征融合_KNN融合CNN_03要么直接来源于KNN融合CNN cnn特征融合_深度学习_02,如ResNet, 要么和KNN融合CNN cnn特征融合_深度学习_02有共同的祖先,如GoogleNet。反之亦可。
  • 公式中只体现了两个特征图的融合,可拓展至多个特征图,如DenseNet。
  • KNN融合CNN cnn特征融合_图像分类_08相较于普通的网络层多了元素点乘的操作,在Non-local中还多了矩阵相乘操作。其具体提取的信息也不同,比如通道、空间、时序、全局、局部等,抑或是它们之间的排列组合,篇幅有限相关的算法不一一写出。