不同特征层特点:
- 低层特征:语义信息较少,目标位置明确
- 高层特征:语义信息丰富,目标位置粗略
FPN特点:
预测在不同的特征层独立进行,顶层特征上采样和低层特征做融合。
算法大致结构如下图所示:一个自底向上的线路(Bottom-up pathway),一个自顶向下的线路(Top-down pathway),横向连接(Lateral connection)
- 自底向上: 即网络的前向过程,将不改变feature map大小的层归为一个stage,论文中以抽取每个stage的最后一个层为例,构成特征金字塔。
- 自顶向下: 首先最顶层特征只进行1*1卷积,得到一个指定通道数的顶层特征,然后对其进行上采样 (上采样的方法有很多种,例如:直接对临近元素复制实现2倍最近邻上采样、先对原feature map进行边界扩充再进行卷积、对原feature map进行空洞卷积等),并将上采样的结果和自底向上生成的对应相同大小的feature map进行融合;再将融合的结果进行上采样,与自底向上生成的对应相同大小的feature map进行融合;如此反复进行,直到将所有想要融合的特征融合完毕。
- 横向连接: 图中的放大区域,即融合(merge)的过程。这里的融合不是进行通道拼接,而是借助于图中所示的1x1卷积(不改变feature map的尺寸大小)使二者通道数一致,在此基础上每个对应通道进行对应元素相加。特别地,这样还使得最后生成的特征金字塔(即上图中的右边一列)在每个特征尺度具有相同的通道数,通道数的多少取决于1x1卷积的作用结果。
在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应(aliasing effect)。