目标检测系列:CARAFE: Content-Aware ReAssembly of FEatures

Index

  • 前言
  • 方法
    • Kernel Prediction Module
      • Channel Compressor
      • Content Encoder
      • Kernel Normalizer
    • Content-aware Reassebly Module
  • 应用
  • 结果

论文:https://arxiv.org/abs/1905.02188
代码暂时还没有开源

前言

这篇文章是主要重点放在了上采样操作上,特征上采样在很多工作例如目标检测的FPN的构建,图像分割中Decoder都是一个比较重要的操作。而目前常用的上采样主要有2种,一种是双线性插值,但是双线性插值只考虑到了相邻的亚像素空间,因此没法获取充足的语义信息;另一种就是反(转置)卷积Deconvolution,通过卷积层来实现维度的扩大,但是反卷积对整个图像用同样的卷积,限制了对局部变化的相应,另外还带来巨大的参数,使得计算非常低效。

于是提出了一种新的上采样算子CARAFE,这有几个优点:

  • Large receptive field:需要具有较大的感受野,这样才能更好地利用周围的信息。
  • Content-aware:上采样核应该和特征图的语义信息相关,基于输入内容进行上采样。
  • Lightweight:不能引入过多的参数和计算量,需要保持轻量化。

运用这个算子在一些baseline上,对于目标检测、语义分割以及实例分割都有了直接的提升,并且计算仍然十分高效。

方法

这个上采样算子主要如下图,由2个模块组成,一个是Kernel Prediction Module,另一个是Content-aware Reassembly Module
目标检测系列:CARAFE: Content-Aware ReAssembly of FEatures_第1张图片

Kernel Prediction Module

这个模块的作用就是生成一个重组的卷积核,首先是通道压缩,减少了参数,然后是一个Content Encoder来根据生成重组核,最后通过softmax来归一化。

Channel Compressor

通道压缩比较简单,就不多说了,主要就是通过1x1卷积将原来的C个通道压缩到Cm,这样参数和计算量更少。

Content Encoder

这个部分首先是通过卷积层来生成一个重组核,这个卷积层卷积核大小k是设定的,可以调整感受野的大小,不过一般选择kup - 2。生成新的特征图(H,W,Cup)

Cup=delta^2 x kup^2

之后重新调整成(delta x H,delta x W,kup^2),
也就是reshape一下。

Kernel Normalizer

这个也没什么好说的,就是softmax激活,是的每个kup x kup 的重组核总和为1。

是在通道维度上softmax。

Content-aware Reassebly Module

这个就是将原来的输入特征图,选择一个kup邻域,然后和重组核求内积就得到了新的特征图。

例如kup=5,要求得新的特征图(2H,2W)的某一个位置(i‘,j’),就先在原始的输入特征图上找(i,j),i,j就是i’(j’)/delta向下取整,之后将特征图上(i,j)周围5邻域的子区域提取出来,重组核的(i’,j’)的位置reshape成5 x 5,那么新的特征图上的(i’,j’)就是这两个5x5的矩阵的内积。
重组核对于每个通道都是不变的,可以理解为重组核复制channel次。

应用

之后证明了CARAFE可以应用在目标检测、实例分割、语义分割以及图像修复,
比较熟悉的也就是FPN了,放一张图,
目标检测系列:CARAFE: Content-Aware ReAssembly of FEatures_第2张图片

结果

这个上采样算子的提升效果还是很明显的,并且参数以及计算量也不大。
目标检测系列:CARAFE: Content-Aware ReAssembly of FEatures_第3张图片
目标检测系列:CARAFE: Content-Aware ReAssembly of FEatures_第4张图片

你可能感兴趣的:(笔记)