为什么使用特征金字塔呢,是因为CNN对物体的平移是保持不变的,而对于物体的尺度变换是无法处理的;而且高层的语义信息较丰富,但经过多层特征提取和压缩,缺少对于小尺度的细节信息,所以使用特征金字塔进行处理,下面进行介绍。
对图像做一个特征金字塔,在每一个图像上做CNN,进行预测,但 计算与内存开销太大。
对图像做一个CNN,相当于一个特征金字塔,不对图像做特征金字塔,在最高层做一个预测,但这存在感受野问题,越抽象感受野越大,对于小的特征可能检测不到,使用Single feature map的包括R-CNN、SPPNet、Fast R-CNN、Faster R-CNN、YOLOv1以及R-FCN系列。
在每一层特征做预测,问题在于越底层FeatureMap的语义信息越薄弱,底层大scale的feature map语义信息少,虽然框出了小物体,但小物体容易被错分,使用Pyramidal feature hierarchy的包括SSD。SSD没有上采样过程,因为是在原有特征图上预测的,所以也不会增加额外的计算开销,但作者认为SSD没有用到足够底层的特征,而越底层的特征对检测小物体越有利。SSD用的最底层的特征是conv4_3。
总结:上面abc这三种卷积方式都不是特征理想,那么怎么才能兼顾**准确率(检测小物体)和速度(开销)**呢?接下来就是FPN了。
为了解决以上三种结构的不足之处,这篇论文提出了FPN,即使每一层不同尺度的特征图都具有较强的语义信息。
这种网络结构,能够在增加较少计算量的前提下融合低分辨率语义信息较强的特征图和高分辨率语义信息较弱但空间信息丰富的特征图。
其实在这篇论文之前,也有人提到得出一张既具有高分辨率又具有较强语义信息的特征图进行预测,但FPN的独特之处在于,它是在以特征金字塔为基础结构上,对每一层级的特征图分别进行预测。
特征金字塔网络相当于
左侧模型叫bottom-up,右侧模型叫top-down,横向的箭头叫横向连接lateral connections。
这么做的目的是因为高层的特征语义多,低层的特征语义少但位置信息多。
左侧模型特征图大小相差1倍,但像AlexNet一样,其实是每在同样大小的feature上卷积几次才进行一次池化操作,我们把在同样大小feature上的卷积称之为一个stage。d图这里画的图是每个stage的最后一个卷积层,因为每个stage的最后一层feature语义信息最多。
具体做法是
下图中 右侧不是每个都predict,其实是把各个up后的各个特征图concate在一起在接prediect分支
FPN只是提取特征的一种方法而已,可以用在各种网络结构中,各种任务上。
此模型backbone是resnet18+fpn结构,只展示fpn结构部分
更详细的可参考:知乎讲解
本文发布于:2024-02-04 21:15:28,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170716577959673.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |