论文阅读|FPN

时间:2019-10-20
本文章向大家介绍论文阅读|FPN,主要包括论文阅读|FPN使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

概要

利用特征金字塔检测不同尺度的目标是一种基本的方法,但很多目标检测器都避免使用特征金字塔,因为特征金字塔这种表示方法计算速度代价比较大。作者提出了一种内在多尺度,金字塔层级的表示结构,能够构造高级语义特征的不同尺度表示,并且增加了较少的代价,称为FPN特征金字塔。所谓的内在多尺度是在不同的层级上去预测,而不是融合不同层级的feature map然后去预测;而高级语义特征的不同尺度表示,我认为是因为每一层都有上一层的特征的融合,所以每一层的feature map也有一定的高级语义的表达能力,同时还保留着低级别的特征。

对于多尺度目标的表示,有上述四种方法。

a是特征化的图像金字塔,这种方式比较慢。论文中 These pyramids are scale-invariant in the sense that an object's scale change is offset by shifting its level in the pyramid,我的理解是这里的object表示的是同类别的不同尺度的目标,这些目标有大有小,较大的目标在高层次的feature map中的表示应该和较小的目标在低层次的feature map中的表示是形同的,所以就可以说这个金字塔是尺度不变的。

b是常见的单一feature map的预测,能够表示高级的语义信息,而且具有一定的尺度不变性,而且比上一种更快,但不能具有更鲁棒的尺度不变性。

c作者称为金字塔化的特征层级表示,就是从不同层级的feature map中去直接预测,与作者提出的很相近

d是作者所提出的方案,比较快而且也比较准确。

结构框架

FPN是一种自顶向下的结构,它不只是将top层上采样然后横向融合对应自底向上的一层,而是在融合之前,将自底向上中的对应层经过了1个1x1conv减少通道数 ,然后再进行的融合,后面结果表明这个lateral层很有必要;自顶向下经过迭代之后还不是最终的feature map,将各层feature map再经过一个3x3conv(目的是减少上采样的混叠效应,不太理解?)得到最终图中蓝框的feature maps,图中越蓝的框表示那一层有较强的语义信息。

应用

作者将FPN分别应用于rpn以及fast rcnn。

rpn,对于FPN的每一level都经过1个3x3conv和两个1x1conv,在这里所有一个共享参数,就是在rpn head时,每一level的特征都经过相同的层,比非共享表现好一点,而且时间更少,这说明金字塔各层次的feature map有相似的语义级别。rpn实际上就是按照feature map的每一个点去滑动anchor生成多个anchor,只不过之前是在一个feature map上去滑动窗口,anchor有面积纵横比的区别,area(32,64,128,256,512)5种,根据纵横比(0.5,1,2)3种,在feature map的每个点上有15种不同的anchor。而运用了fpn之后,area分别对应于5个level的feature map,每一level又有上面3种纵横比,也就是在每一level的feature map上的每个点上变成只有3个anchor。没用fpn之前通过不同area的anchor来捕获不同尺度的目标,而fpn有不同尺度的feature map则可以再不同的level上捕获不同尺度的目标特征。

fast cnn, 主要的区别在于ROI pooling不在是在一个feature map上而是在多level的feature maps上。对于从rpn得到的Bbox它是怎么确定level的呢?根据下面公式确定

k0 = 4 表示如果wh = 224时,它应该map到level4,这个224是ImageNet标准的预训练的图片大小,fasterCNN中采用C4作为单feature map输出,因此这里k0取为4。因为从rpn得到的Bbox有不同的area,所以就会被map到不同的level,进行roipooling,ROIpooling固定输出7x7,经过两个fc层,最后进行最终分类以及回归

实验

数据集:coco

RPN vs FPN

lateral是使用横向的层,top-down是自顶向下迭代融合生成各level。

Fast R-CNN vs FPN

Faster R-CNN vs FPN

总结

FPN主要是提供了一个多尺度特征表示的方法,称之为特征金字塔,主要就是将高层特征上采样加上经过lateral的下层特征得到具体的一层,然后自顶向下依次构造,各层经过分别处理后得到最终的多level feature maps。

深层的卷积神经网络虽然有着更丰富的语义表达,具有有限的尺度不变性,因此需要多尺度的特征表示来弥补,这对于目标检测以及分割等任务都是有益的。

参考

https://blog.csdn.net/voxel_grid/article/details/79275637

https://www.jianshu.com/p/973b243b75d8

原文地址:https://www.cnblogs.com/QuintinLiu/p/11705966.html