FPN vs FCN

Posted 会飞的毛毛虫_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FPN vs FCN相关的知识,希望对你有一定的参考价值。

综述

  • 一般来说,FCN结构的Neck只有一个卷积层,用于将backbone上的特征图宽度对齐,对齐后的特征图没有任何的交互。FCN-Style的检测器代表为:SSD,YOLOv1,YOLOv2。

  • 而FPN结构一般包括了一个侧向连接,将backbone上的特征图宽度对齐后,对高层特征图进行上采样,通过element-wise add的方式进行融合,最后所有融合后的特征图再进行一次卷积。

  • FPN的其他变种核心在于定义了差异化的特征融合方式。FPN-Style的代表有RetinaNet,FCOS。

二者差别

  • 精度:从所有论文来看,FPN-Style的精度都要高于FCN-Style,当年FPN的提出就是为了取代FCN。
  • 速度和内存消耗:FCN-Style要更有优势,因为FPN需要把中间的特征图都保留下来,因此内存上是消耗更多的。
  • 使用场景:虽然学术界已经把FCN-Style抛弃了,但是工业界项目落地的时候依然扮演着重要的角色。当算力和延迟不是问题的时候,可以直接选用FPN-Style。当需要算法更快但是可以容忍部分精度损失的时候可以选用FCN-Style。
  • 下图中,黑色区域表示输入图像,红色的点表示不同层级特征图感受野中心的分布,绿色表示目标物的框。正方形的框在两个特征图上均有命中,而细长条的框仅仅只在第一个特征图上有命中,只有命中了才会当成正样本训练,才能让网络学习到该学习的东西。我们可以得到一个很重要的结论:条状目标物的命中率和其短边长度有关系,而需要的感受野的大小和长边长度有关系。这时候对网络的要求就是:既要命中多,又要感受野大。感受野中心步长比较小时需要堆叠更多的卷积层,增加大量的计算,这就导致FCN-Style不再具有速度快的优势。而FPN-Style可以解决上述矛盾又不会引入过大的计算量。因此:方形目标和FCN-Style配对,条状目标和FPN-Style配对。

以上是关于FPN vs FCN的主要内容,如果未能解决你的问题,请参考以下文章

fcn cascade rcnn

paper-list

Object Detection

图像分割技术及经典实例分割网络Mask R-CNN(含基于Keras Python源码定义)

目标检测论文整理

fcn+caffe+siftflow实验记录