特征金字塔网络 (FPN)

特征金字塔网络 (FPN)

  特征金字塔网络 (FPN) 发表在 2017 年的 CVPR 上。
  FPN 是基于一个特征提取网络的,即是基于一个主干模型的,它可以是常见的 ResNet 或者 DenseNet 之类的网络(常见的命名方法是:主干网络-层数-FPN,例如:ResNet-101-FPN)。
  这是个万金油网络,可以用在目标检测、实例分割、姿态识别、面部识别等各种各样的应用里。文章仅仅公开几个月就有了近 100 次引用。文章题目是《用于目标识别的金字塔特征网络》,所以作者把 FPN 带入到 Faster-RCNN 中作为区域推荐网络 (RPN)。很多关键的细节在原文中都有详细的解释,为了节约时间我这里列几条重点。
  参考资料:
  http://baijiahao.baidu.com/s?id=1597136132623599006&wfr=spider&for=pc

多尺度的实现

  图像里的目标尺寸大小各种各样,数据集里的物体不可能涵盖所有的尺度,所以人们利用图像金字塔(不同分辨率的下采样)来帮助 CNN 学习。但是这样的速度太慢了,所以人们只使用单一尺度来预测,也有人会取中间结果来预测。后者和前者很像,只不过是在特征图上的。比较容易想到的方法是,在几层残差模块后面加一层转置卷积,提高分辨率,得到分割的结果,或者通过 1x1 的卷积或 GlobalPool 得到分类的结果。这种架构在有辅助信息和辅助损失函数时被大量使用。
  FPN 的作者用一种很巧妙的办法提高了上述的方法。除了侧向的连接,还加入了自上而下的连接。这样做效果非常好。作者把从上到下的结果和侧向得到的结果通过相加的办法融合到一起。这里的重点在于,低层次的特征图语义不够丰富,不能直接用于分类,而深层的特征更值得信赖。将侧向连接与自上而下的连接组合起来,就可以得到不同分辨率的的特征图,而它们都包含了原来最深层特征图的语义信息。
特征金字塔网络 (FPN)_第1张图片

模型细节

  1)金字塔
  同样尺寸的特征图属于同一级。每级最后一层输出是金字塔的特征图,比如 ResNet 第 2,3,4,5 个模块的最后一层。你可以根据需要进行调整。

  2)侧向连接
  通过 1x1 卷积并与经过上采样的从上到下连接的结果相加求和。自上而下的部分生成粗粒度特征,自下而上的部分通过侧向连接加入细粒度特征。原文的图示表达的非常明了。 原文中只是用一个简单的例子展示了 FPN 的设计之简单以及效果之可观,这不代表它不能用于更复杂的研究中。

  3)用 FPN 作为 RPN
用 FPN 的多分辨率特征取代单一分辨率的特征图,每一级上用同样的尺寸的 anchor(因为特征图尺度不同从而达到了多尺度 anchor 的效果)。金字塔的每一级都共享相似的语义水平。
  FasterRCNN - 用类似于处理图像金字塔的方法来处理 FPN。ROI通过公式来分派给特定的一级。

实验结果

  简单粗暴地在 COCO 数据集上获得了最优效果。对每一个模块都进行了单变量实验,从而证明了开头的说法。
  ResNet 后续作品中, ResNeXt, Wide-ResNet, ResNet-In-ResNet, FractcalNet … 不乏有在 imagenet 上 performance 更好的,但在实践中踩过坑后,大家仍会偏爱 ResNet。

你可能感兴趣的:(深度学习论文阅读)