CNN中的上采样方法

对于人体姿态估计、语义分割等高分辨率的任务,许多网络设计中采用了encoder-decoder模式。在decoding部分,需要对特征图进行上采样,本文归纳了几种不同的上采样方法。


双线性插值

插值问题实际上是一种拟合问题。

所谓插值就是用 x’ 某个领域内的函数值按照一定规则拟合出一个函数,再在其中查找 f(x’) 的值。

在这里插入图片描述
双线性插值(bilinear upsampling)是其中一种非常简单的拟合方式。
在这里插入图片描述
对 srcImage 中某个邻域内进行插值,从而得到 dstImage 中某个像素值。

在这里插入图片描述

虽然插值计算速度快,但这种插值的“感受野”是local的,只能看见相邻的四个像素点,在上采样过程中不可避免地产生细节信息损失。且双线性插值没有参数可以学习


转置卷积

deconvolution / transposed convolution / fractionally strided convolution(反卷积/转置卷积)。

卷积操作可以展开看作一个矩阵乘法,下面介绍一个简单的例子。
在这里插入图片描述
输入图片可以从左到右、由上至下展开为一个 16 × 1 16 \times 1 16×1 的向量 X X X,则kernel对应的卷积可以表达为一个 4 × 16 4 \times 16 4×16稀疏矩阵 C C C:
( w 0 , 0 w 0 , 1 w 0 , 2 0 w 1 , 0 w 1 , 1 w 1 , 2 0 w 2 , 0 w 2 , 1 w 2 , 2 0 0 0 0 0 0 w 0 , 0 w 0 , 1 w 0 , 2 0 w 1 , 0 w 1 , 1 w 1 , 2 0 w 2 , 0 w 2 , 1 w 2 , 2 0 0 0 0 0 0 0 0 w 0 , 0 w 0 , 1 w 0 , 2 0 w 1 , 0 w 1 , 1 w 1 , 2 0 w 2 , 0 w 2 , 1 w 2 , 2 0 0 0 0 0 0 w 0 , 0 w 0 , 1 w 0 , 2 0 w 1 , 0 w 1 , 1 w 1 , 2 0 w 2 , 0 w 2 , 1 w 2 , 2 ) \left(\begin{array}{cccccccccccccccc}w_{0,0} & w_{0,1} & w_{0,2} & 0 & w_{1,0} & w_{1,1} & w_{1,2} & 0 & w_{2,0} & w_{2,1} & w_{2,2} & 0 & 0 & 0 & 0 & 0 \\ 0 & w_{0,0} & w_{0,1} & w_{0,2} & 0 & w_{1,0} & w_{1,1} & w_{1,2} & 0 & w_{2,0} & w_{2,1} & w_{2,2} & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & w_{0,0} & w_{0,1} & w_{0,2} & 0 & w_{1,0} & w_{1,1} & w_{1,2} & 0 & w_{2,0} & w_{2,1} & w_{2,2} & 0 \\ 0 & 0 & 0 & 0 & 0 & w_{0,0} & w_{0,1} & w_{0,2} & 0 & w_{1,0} & w_{1,1} & w_{1,2} & 0 & w_{2,0} & w_{2,1} & w_{2,2}\end{array}\right) w0,0000w0,1w0,000w0,2w0,1000w0,200w1,00w0,00w1,1w1,0w0,1w0,0w1,2w1,1w0,2w0,10w1,20w0,2w2,00w1,00w2,1w2,0w1,1w1,0w2,2w2,1w1,2w1,10w2,20w1,200w2,0000w2,1w2,000w2,2w2,1000w2,2
则输出特征图 Y = C X Y = CX Y=CX,是一个 4 × 1 4\times1 4×1的向量。

以Y为输入,X为输出的逆过程,就是我们所说的转置卷积。 X = ( C T ) ′ Y X = (C^T)'Y X=(CT)Y保持了卷积时的连接模式connectivity pattern

在这里插入图片描述
我们总是可以用一个直接的卷积(direct conv)来模拟转置卷积的过程。其缺点是需要在输入图中加上多行/列的零,实现效率低。

对于上述例子,我们可以对2*2输入图片进行zero-padding,再卷积,注意观察下图,仍然保持了连接模式。

在这里插入图片描述
对不同的卷积参数,有不同的转换方式。具体情况可以看参考文献 A guide to convolution arithmetic for deep learning

Pytorch中的转置卷积就是根据这种direct conv的方式来定义的。文档

在语义分割任务中,结合Unpooling层,可以更好地恢复空间位置信息。
在这里插入图片描述
在这里插入图片描述


Dense Upsampling Convolution (DUC)

在这里插入图片描述
h × w × c h \times w \times c h×w×c --> h × w × ( d 2 × L ) h \times w \times\left(d^{2} \times L\right) h×w×(d2×L) --> H × W × L H \times W \times L H×W×L
先增加channel,再reshape到需要的上采样大小。方法来自《Understanding Convolution for Semantic Segmentation》


空洞卷积

Dilated/Atrous Convolution (膨胀卷积/空洞卷积),就是在标准卷积核中注入空洞(0),使感受野增大。

标准卷积
空洞卷积 dilation rate=2

空洞卷积常在语义分割等需要保持空间信息的高分辨率网络中被用到,取代传统的pooling和strided convolution。保持特征图分辨率,同时获得更大的FOV(field-of-view),以获取全局信息。避免了encoder-decoder架构中信息的损失。

在这里插入图片描述
gridding problem:避免在连续的空洞卷积中选择相同的dilation rate,否则会导致感受野不连续,丢失local信息。


参考资料

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CNN的下采样函数通常被称为池化函数,它的作用是减小特征图的尺寸,从而减小模型的计算复杂度和内存消耗。在卷积神经网络,通过不断的卷积操作,可以提取出越来越复杂的特征,但同时也增加了特征图的尺寸,这会导致训练过程需要更多的计算资源。因此,我们可以通过对特征图进行下采样,来减小特征图的尺寸,从而降低模型的计算复杂度和内存消耗。另外,下采样函数还可以增强模型的鲁棒性,减少过拟合的风险。常见的下采样函数包括最大池化和平均池化。 ### 回答2: CNN下采样函数的作用是减小输入特征图的尺寸,同时减少参数数量,提高模型的计算效率和泛化能力。 在CNN,下采样函数通常由池化层来实现。常见的下采样方式有最大池化(Max Pooling)和平均池化(Average Pooling)两种。 下采样函数主要有以下几个作用: 1. 特征压缩:通过减小输入特征图的尺寸,可以将输入的空间信息进行压缩,从而减少模型参数的数量。这对于大型深度神经网络非常重要,因为过多的参数会导致计算资源的浪费和过拟合的问题。 2. 位置不变性:下采样函数在特征图上进行滑动操作,每个操作窗口内的特征都经过池化运算得到相应的输出。因此,无论物体出现在图像的哪个位置,池化层可以保证提取到相应特征的位置不变性,这对于物体分类任务非常有帮助。 3. 抗噪能力:下采样函数能够一定程度上减小输入特征图的噪声。通过将输入区域内的特征值进行汇总操作,可以抑制噪声对模型的干扰,提高模型的鲁棒性。 总而言之,CNN下采样函数的作用是通过压缩特征图、减少参数数量、提高计算效率、增强位置不变性和抗噪能力等方面,为模型的特征提取和模型整体性能的提升做出贡献。 ### 回答3: CNN (Convolutional Neural Network) 下采样函数的作用是在卷积层后面的网络结构,通过减少特征图(feature map)的尺寸和数量来降低计算复杂度。下采样也被称为池化(Pooling)操作。 下采样函数通常通过滑动窗口的方式,对每个窗口的特征值进行汇聚操作,将窗口内的特征值合并为一个较小的值。常见的下采样方式包括最大池化(Max Pooling)和平均池化(Average Pooling)。 下采样函数的作用主要有以下几点: 1. 降低维度:由于卷积层会增加特征图的数量,每个特征图的尺寸也会增大。而使用下采样函数可以减小特征图的尺寸,从而降低整个网络的参数数量和计算复杂度,使得网络更快速地进行训练和推理。 2. 提取主要特征:下采样函数可以保留窗口内最重要的特征值,而滤除冗余信息。通过提取主要特征,下采样函数可以有助于网络更好地学习和理解图像的关键特征,提高网络对不同样本的泛化能力。 3. 平移不变性:下采样函数使用的池化操作采样的特征在整个特征图上具有平移不变性。即无论是在左上角还是右下角出现的相同特征,在进行下采样后,它们可以被合并为同一个特征,从而使模型更具鲁棒性。 总结而言,CNN下采样函数的作用是通过降低特征图的尺寸和数量,减少参数数量和计算复杂度,同时提取主要特征和增强平移不变性,以改善网络的性能和泛化能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值