【深度学习】FPN(特征金字塔):Feature Pyramid Networks for Object Detection
提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论。
博文目录
前言
特征金字塔是处理多尺度物体检测问题的一个基础组成部分,论文中主要解决了在处理物体多尺度变化时目标检测算法检测不足的问题,通过构造一种独特的特征金字塔来避免图像金字塔的计算量过高的问题,同时能较好的处理物体检测中的多尺度变化问题。
一、FPN论文
1.论文信息
- 论文名称: Feature Pyramid Networks for Object Detection
- 发表时间: 2016 Computer Vision and Pattern Recognition
- 下载地址: https://arxiv.org/pdf/1612.03144.pdf
- github地址: https://github.com/unsky/FPN
2 内容简介
如何识别物体大范围的尺度变化是计算机视觉中的一个基本问题,因为在卷积过程中会出现小目标特征消失的现象。
- Featurized image pyramid(图像金字塔): 将图像缩放为不同的尺度,然后在不同尺度的图像上生成对应的特征,并在此基础上进行预测。缺点在于增加了计算和时间成本,效率低。
- Single feature map(单个高层特征图): 在最终输出的特征图上进行预测,仅采用网络最后一层的输出特征。缺点在于小目标、不同遮挡程度目标检测能力差。
- Pyramidal feature hierarchy(金字塔型特征层级): 没有上采样过程的多尺度特征预测,从网络不同层抽取不同尺度的特征做预测,不会增加额外的计算量。缺点在于精度较低。
- Feature Pyramid Network(特征金字塔): 高层特征通过上采样和低层特征做融合,对不同网络层的输出特征进行了融合,并在融合后的特征图上分别进行预测。相比前面几种方案精度更高。
3.FPN结构详解
概括为一句话:自底向上,自顶向下,横向连接。
- step1(自底向上): 使用基础网络(ResNet等)作为骨干网络(backbone),对输入图像中逐层提取特征,特征图的分辨率逐渐降低,按照输出特征图分辨率大小划分为不同的阶段(stage),相邻俩个阶段的特征图,后一个阶段相对于前一个阶段特征图尺度缩小一半,通道数则增加一倍;
- step2(自顶向下): 后一阶段的高层特征图上采样(up-sampling,通常采用2倍邻近插值算法),使其分辨率尺寸与前一阶段的低层特征图相匹配,;
- step3(横向连接): 前一个阶段的低层特征图进行1x1卷积操作,保证与后一个阶段经过上采样的高层特征图通道数保持一致,通过逐元素相加将低层特征图的高分辨率信息与高层特征图的丰富语义信息融合。
二、代码解析
提示:具体代码解析将在具体的目标检测算法中详细展现,后续会做补充。
总结
在目标检测任务重,待检测的目标尺寸存在十分明显的差异(多尺度变化检测问题),因此论文提出了特征金字塔的网络结构,在只增加极小计算量的前提下,有效解决物体检测中的多尺度变化问题。