特征金字塔:FPN 原理及其PyTorch实现

2020-06-25 674点热度 1人点赞

为了增强语义性,传统的物体检测模型通常只在深度卷积网络的最后一个特征图上进行后续操作,而这一层对应的下采样率(图像缩小的倍数)通常又比较大,如16、32,造成小物体在特征图上的有效信息较少,小物体检测性能会急剧下降,这个问题也被成为多尺度问题。

解决多尺度问题的关键在于如何提取多尺度的特征。传统的方法有图像金字塔(Image Pyramid),主要思路是将输入图片做成多个尺度,不同尺度的图像生成不同尺度的特征,这个方法简单而有效,大量使用在了COCO等竞赛上,但缺点是非常耗时,计算量也很大。

从前面内容可以知道,卷积神经网络不同层的大小与语义信息不同,本身就类似一个金字塔结构。2017年的FPN(Feature Pyramid Network)方法融合了不同层的特征,较好地改善了多尺度检测问题。

FPN的总体架构如图1所示,主要包含自下而上网络、自上而下网络、横向连接与卷积融合4个部分。

图1

自下而上:最左侧为普通的卷积网络,默认使用ResNet结构,用作提取语义信息。C1代表了ResNet的前几个卷积与池化层,而C2至C5分别为不同的ResNet卷积组,这些卷积组包含了多个Bottleneck结构,组内的特征图大小相同,组间大小递增。

自上而下:首先对C5进行1*1卷积降低通道数得到P5,然后依次进行上采样得到P4、P3和P2,目的是得到与C4、C3与C2长度相同的特征,以方便下一步进行逐元素相加。这里采用2倍最临近上采样,即直接对临近元素进行复制,而非线性插值。

横向连接(Lateral Connection):目的是为了将上采样后的高语义特征与浅层的定位细节特征进行融合。高语义特征经过上采样后,其长宽与对应的浅层特征相同,而通道数固定为256,依次需要对底层特征C2至C4进行1*1卷积使得其通道数变为256,然后两者进行逐元素相加得到P4、P3与P2.由于C1的特征图尺寸大且语义信息不足,因此没有把C1放到横向连接中。

隐藏内容需要支付:¥6

未经允许不得转载!特征金字塔:FPN 原理及其PyTorch实现

本文地址:https://ai.52learn.online/1009

站长邮箱:ai52learn@foxmail.com