Feature Pyramid Network

Python 作者:大表哥 2022-05-02 05:23:22

在语义分割算法 U-Net,以及人体姿态估计 Hourglass Networks,都有不同分辨率特征融合,既 Encode-Decode。准确来说 FPN 不是第一个不同层特征融合的网络,但是第一个在目标检测使用多尺度特征融合的方法。

CNN 的设计中,网络的深度和 down sample 是一对矛盾体。网络较为浅,特征提取不充分。网络较深,可以提取较大感受野,随之 down sample 过大,小目标的检测性能显著降低,同时由于 CNN 的平移不变形,丢失位置信息。而对于卷积神经网络而言,不同深度对应着不同层次的语义特征,浅层网络分辨率高,学的更多是细节特征,深层网络分辨率低,学的更多是语义特征。

在 FPN 之前,存在图 1(a)(b)(c)等特征处理方式。图 1(a) featurized image pyramids 使用多尺度训练和测试方式, 即对在不同 scale 图像提取不同层次特征。One-stage SSD 采用图1(c)Pyramidal feature hierarchy,既分层特征预测目标,让不同 level 特征学习同样的语义信息。FPN 提出一种不同分辨率特征融合的方式,即每个分辨率的 feature map和和上采样的低分辨率特征 element-wise 相加,使得不同层次的特征增强。由于此方式只在网络基础上做跨层连接和 element-wise 相加,增加计算量较少,同时性能改善卓越,已经成为目标检测领域的标配。


图 1 FPN 与其他特征提取方式 图 1 FPN 与其他特征提取方式

FPN 包括 bottom-up pathway、Top-down pathway 和 lateral connections 三部分。bottom-up pathway:计算分层级计算不同分辨率特征。论文采用 ResNet 作为 backbone,提取{C1,C2,C3,C4,C5}5 个分层特征,只取{C2,C3,C4,C5}四个 stage 构成特征金字塔,相对于图像的分辨率下采样为{4,8,16,32}。由于 C1 占用内存较大,故移除。Top-down pathway:从 C5 开始,通过最近邻方法把特征图上采样 2 倍得到 C5’,C4 通过1x1 卷积调整通道数得到C4’, C5’和 C4’分辨率相同,可以直接逐元素相加。如此迭代实现 C3,C2 的特征融合。Top-down 逐步增强小目标信息。lateral connection:得到每个相加的特征图,论文再次用 3*3 的卷积处理,得到最后的特征图{P2,P3,P4,P5}。

ROIpooling 选择:不同尺度的 ROI,使用不同特征层作为 ROI pooling 层的输入,大尺度ROI 可选择 P5 层;小尺度 ROI 的特征层可以选择 P4。那怎么判断 ROI 改用那个层的输出呢?论文使用改进的公式计算:

roi_level=min(5,max(2,4+log2(sqrt(w*h)/(224/sqrt(image_area)))))

224*224 是 ImageNet 的标准输入,k0 是基准值,设置为 5,代表 P5 层的输出(原图大小就用 P5 层),w 和 h 是 ROI 区域的长和宽,image_area 是输入图片面积,roi_level 既为选择的 ROI 层。

关注公众号:拾黑(shiheibook)了解更多

友情链接:

下软件就上简单下载站:https://www.jdsec.com/
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接