Octave

作者: haoshengup | 来源:发表于2019-08-16 19:06 被阅读0次

  在自然图片中,图片信息可以分为低频和高频两个部分,而且高频部分用来表征细节,低频部分表征整体的轮廓结果。同样地,卷积特征图也可以划分成类似的结构。在这篇文章中,我们提出octave来完成这个工作。其实,octave的实现和现在经常使用的多尺度方法很像,而且这是一种可以即插即用的方法,直接取代vanilla卷积,而不用做任何调整。

1、introduction

  如图所示,自然图片可以分成低频和高频两个部分,同样地,我们把卷积的特征图也做类似的划分。划分之后,代表低频的那部分特征图可以通过压缩临近位置的信息来减少空间冗余。通过d图可以看出,octave可以有效的减少内存和计算资源的消耗。而且,低频的卷积拥有更大的感受野,因此可以提高识别的效果。
  我们的贡献可以总结为如下几点:
  (1)我们提出了将卷积特征图分割成不同频率的方法,而在不同的频率上分别执行卷积。对于低频图,由于分辨率较小,因此可以节省存储和计算资源,而且由于感受野增大,可以获得更多的上下文信息。
  (2)我们设计了一个即插即用的octave卷积,而且octave在实际计算中的执行速度很快。
  (3)我们将octave应用在图片和视频任务的一系列CNN的backbone中,都取得了很好的效果。

3.1 octave feature representation

  空间频率模型提出,一副自然图片可以分解为低频和高频两个部分。类似地,我们可以假设,在卷积特征图中存在着一个低频子集,而且这个子集包含了一些空间的冗余信息。
  通常情况下,我们用X∈Rc×h×w来代表一个卷积层,其中h:高度,w:宽度,c:通道。然后,把X拆成两个部分{XH, XL}分别代表高频和低频子集,其中XHR(1-α)c×h×wXLRαc×h/2×w/2α\in [0,1]代表低频部分所占的比例。

3.2 octave convlution

  因为XHXL分辨率的不同,使用vanilla卷积不能直接实现,所以很自然的一个想法便是上采样低频部分XL,然后将其和高频部分XH相连接,进而执行卷积操作。但是,这样会增加额外的计算和存储消耗。
  下面来看一下octave convlution是如何实现的。
  我们设计的目标是:既要让低频和高频部分能够分别高效的执行,同时还要让这两部分进行有效的信息交互。
  X:输入的tensor,Y:输出的tensor,其中X={XH, XL},Y={YH, YL},而且YH = YH→H + YL→HYL = YL→L + YH→L。显然, YH→HYL→L代表高频、低频部分的内部信息更新,而YL→HYH→L代表高频和低频之间的信息交换。

  为了计算上面的公式,我们把权重w也拆分成两个部分:w = [wH, wL],它们分别对应XH, XL。而且每一部分又可以进行细分:wH = [wH→H , wL→H],wL = [wL→L , wH→L],具体如图所示:

  下面,对于高频部分YH展示一下具体的计算过程。
  对于特征图上的任意一点(p, q)来说,YHp,q = YH→Hp,q + YL→Hp,q,其中YH→Hp,q为普通卷积,YL→Hp,q则是对XL上采样的结果进行卷积(and for the inter frequency communication we can fold the up-sampling over the feature tensor XL into the convolution, removing the need of explicitly computing and storing the up-sampled feature maps as follows)。公式如下:


  其中,⌊.⌋表示向下取整。
(ps:不知道这里是不是我的理解错误,通过上面的公式和作者的语言描述,L→H的做法是:先在低频上进行上采样,然后进行卷积。如果是这样的话,那么就会增加计算量,其实这也是作者在3.2一开始提到的问题。而正确的做法应该是先卷积,然后进行上采样,实际上,在3.3部分,作者给的另外一个公式也是先卷积然后上采样。)
  同样地,对于低频的特征图,我们使用普通的卷积来进行内部信息更新。而对于频率间的信息交换,我们可以先将XH进行下采样,然后将结果和wH→L进行卷积,公式如下:

  在上面的公式中可以看到,在对XH进行下采样的时候,做了半步的偏移处理,这样是为了保持下采样的结果和原始输入数据的对齐。实际上,我们在下采样的时候有两种方法可以选择,一个是通过卷积的方法:(2 * p + i, 2 * q + j);另一种方法是对相邻的4个元素进行池化操作:(2 * p + 0.5 + i, 2 * q + 0.5 + j)。

  从上图中可以看出,如果采用卷积的方法,那么会出现对齐偏移的问题。所以,我们这里采用平均池化的方法来实现下采样。
  octave卷积的一个特点是:低频的特征图具有较大的感受野,这让我们可以从图像中相隔较远的位置来提取上下文信息,而这可以帮助我们提高识别的效果。

3.3 Implementation Details

  根据上文的假设,我们可以有如下公式:Y = {YH, YL},其中,
  YH = f(XH; wH→H) + upsample( f(XL; wL→H), 2),
  YL = f(XL; wL→L) + f(pool(XH, 2); wH→L)。
  其中,f(x; w)代表卷积操作,upsample(x, k)是采用最临近插值方法进行的k倍上采样,pool(x, k)是核为k×k,步长为k的平均池化操作。

  Integrating OctConv into backbone networks

  octconv卷积的反向传播过程可以和vanilla卷积完美融合,因此octconv卷积可以直接用于任何一个卷积网络而不需要做特别调整。
  但是,为了把vanilla的特征图表征转化为多频率表征,在第一个octconv卷积层,我们需要做如下设置:αin = 0,αout = α。在这种情况下,实际上是取消了低频率的输入路径。这样操作的结果就是,octconv卷积只剩下两条路径(H→H, H→L)。
  为了把多频率特征表征反传到vanilla卷积,在最后一个octconv卷积层,我们需要设置αout = 0。在这种情况下,实际上是取消了低频率的输出路径,而输出一整个分辨率特征图(即:高频部分)。

相关文章

网友评论

      本文标题:Octave

      本文链接:https://www.haomeiwen.com/subject/dhkzjctx.html