FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)

1 feature map的计算

以feature map的大小区分conv1 conv2 … 在conv1或conv2中feature map的大小是不变的,从conv1到conv2的某种操作feature map大小才会改变。
以VGG16为例,padding=0的池化操作改变feature map大小。
实际上在卷积或池化后:
feature map size = output size
n filters = n channels = n feature map(n=64,128,256,512,1024…)

FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第1张图片
一个input image:WxH=224x224的RGB,c=3或k=3的三通道图像,经过Conv1_1feature map的大小为224x224,通道的改变即为卷积核的个数变化。

c:图像通道数 w:图像宽度 h:图像高度 FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第2张图片

公式:W=H=(n+2p-f)/s+1
FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第3张图片

2 feature map特征融合

一个自底向上的线路,一个自顶向下的线路,横向连接(lateral connection)
FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第4张图片

  • 自底向上其实就是网络的前向过程(上图左)
    在前向过程中,feature map的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,作者将不改变feature map大小的层归为一个stage,因此每次抽取的特征都是每个stage的最后一个层输出,这样就能构成特征金字塔。
  • 自顶向下的过程采用上采样(upsampling)进行(上图右)
    而横向连接则是将上采样的结果自底向上生成的相同大小的feature map进行融合(merge)。在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应(aliasing effect)。

并假设生成的feature map结果是P2,P3,P4,P5,和原来自底向上的卷积结果C2,C3,C4,C5一一对应。

  • resnet网络结构
    FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第5张图片
    FPN的详细参考:https://blog.csdn.net/u014380165/article/details/72890275/

3 特征融合(merge)代码说明(数值上叠加)

高层特征x上采样+y
FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第6张图片
FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第7张图片

4 FPN的代码说明

特征融合(merge)说的是上层和下层的融合,feature map的联合预测——FPN特征金字塔目标检测涉及一个多尺度的问题,p2,p3,p4,p5,p6是不同的尺度,p6——>p2检测由大到小的物体。(高层特征检测大物体,低层特征检测小物体)
feature map的预测关键是找到合适的(尺度)。
FPN及其feature map特征融合(CVPR2016:Feature Pyramid Networks for Object Detection)_第8张图片
项目地址:https://github.com/jwyang/fpn.pytorch/blob/master/lib/model/fpn/fpn.py

你可能感兴趣的:(experiment)