常见的四种特征金字塔网络结构

常见的四种特征金字塔网络结构为什么使用特征金字塔呢 是因为 CNN 对物体的平移是保持不变的 而对于物体的尺度变换是无法处理的 所以使用特征金字塔进行处理 下面进行介绍 1 Featurizedim

为什么使用特征金字塔呢,是因为CNN对物体的平移是保持不变的,而对于物体的尺度变换是无法处理的,所以使用特征金字塔进行处理,下面进行介绍。

(a)Featurized image pyramid

常见的四种特征金字塔网络结构

对图像做一个特征金字塔,在每一个图像上做CNN,进行预测,但 计算与内存开销太大。

(b)Single feature map

常见的四种特征金字塔网络结构

对图像做一个CNN,相当于一个特征金字塔,不对图像做特征金字塔,在最高层做一个预测,但这存在感受野问题,越抽象感受野越大,对于小的特征可能检测不到,使用Single feature map的包括R-CNN、SPPNet、Fast R-CNN、Faster R-CNN、YOLOv1以及R-FCN系列。

(c) Pyramidal feature hierarchy

常见的四种特征金字塔网络结构

在每一层特征做预测,问题在于越底层FeatureMap的语义信息越薄弱,底层大scale的feature map语义信息少,虽然框出了小物体,但小物体容易被错分,使用Pyramidal feature hierarchy的包括SSD。SSD没有上采样过程,因为是在原有特征图上预测的,所以也不会增加额外的计算开销,但作者认为SSD没有用到足够底层的特征,而越底层的特征对检测小物体越有利。SSD用的最底层的特征是conv4_3

总结:上面abc这三种卷积方式都不是特征理想,那么怎么才能兼顾准确率(检测小物体)和速度(开销)呢?接下来就是FPN了。

(d) Feature Pyramid Network

常见的四种特征金字塔网络结构

特征金字塔网络相当于先进行传统的bottom-up自上而下的特征卷积(d图左侧),然后FPN试图融合左侧特征图的相邻的特征图。左侧模型叫bottom-up,右侧模型叫top-down,横向的箭头叫横向连接lateral connections。这么做的目的是因为高层的特征语义多,低层的特征语义少但位置信息多。

左侧模型特征图大小相差1倍,但像AlexNet一样,其实是每在同样大小的feature上卷积几次才进行一次池化操作,我们把在同样大小feature上的卷积称之为一个stage。d图这里画的图是每个stage的最后一个卷积层,因为每个stage的最后一层feature语义信息最多。

具体做法是两个特征层的较高层特征2倍上采样(上采样方法很多,上采样几乎都是采用内插值方法,即在原有图像像素的基础上在像素点之间采用合适的插值算法插入新的元素,总之是把feature大小扩大了一倍)。较低层特征通过1×1卷积改变一下低层特征的通道数,然后简单地把将上采样和1×1卷积后的结果对应元素相加。为什么横向连接要使用1×1卷积呢,为什么不能原地不动地拿过来呢?原来在于作者想用1×1改变通道数,以达到各个level处理结果的channel都为256-d,便于后面对加起来的特征进行分类。这段文字表述的即是下图。

常见的四种特征金字塔网络结构

FPN只是提取特征的一种方法而已,这篇论文作者的应用于实验主要是在Faster R-CNN上进行的。

如有不足,欢迎交流。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222664.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:15
下一篇 2026年3月17日 下午3:15


相关推荐

  • idea2023 永久激活码【在线注册码/序列号/破解码】

    idea2023 永久激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    69
  • unity 方向向量_二面角距离公式

    unity 方向向量_二面角距离公式在学习Unity官方案例时,发现其中用了两种求物体XZ平面旋转夹角的方法:   方法1:floatangle=Vector3.Angle(fromVector,toVector);//求出两向量之间的夹角Vector3normal=Vector3.Cross(fromVector,toVector);//叉乘求出法线向量angle*=Mathf.Sig

    2022年8月30日
    4
  • 敏捷项目管理的流程_敏捷开发项目管理方法

    敏捷项目管理的流程_敏捷开发项目管理方法引言:敏捷绝非某一种特定的开发方法,它只是一种应对快速变化的需求的一种软件开发能力。敏捷本身只包含了《敏捷软件开发宣言》和《敏捷软件的十二条原则》两份文档。敏捷的起源:敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。目前很多互联网公司都在搞或者想

    2025年6月22日
    5
  • 比太钱包使用方法及冷钱包存储方案-2

    拖更一个月的我又开始更新了。过完年,恰逢数字货币开始上涨,正好是聊聊钱包的好时候。上文说到比太钱包的冷热模式,这次接上文写冷钱包模式下的发币及公钥监控操作。先从冷钱包模式下发币说起吧:1,打开钱包,点击发送按钮。2,输入收款地址和金额,并点击发送。这里无论是输入比特币金额还是法币金额,钱包会自动换算出另一种货币金额。3,输入钱包密码,准备冷钱包签名。4,生成未签名的交易信息二维码,需使用装有对应…

    2022年4月5日
    158
  • php三个数从大到小排列_php常用的流程控制语句

    php三个数从大到小排列_php常用的流程控制语句<?php$a = rand(100,999);$b = rand(100,999);$c = rand(100,999);echo “a=”.”$a”.”<br>”;echo “b=”.”$b”.”<br>”;echo “c=”.”$c”.”<br>”;if(($a > $b ) && ($a > …

    2022年8月19日
    8
  • cacls 使用方法

    cacls 使用方法C gt cacls 显示或者修改文件的访问控制表 ACL CACLSfilenam T E C Guser perm Ruser Puser perm Duser filename 显示 ACL fileame 为文件路径 具体文件名 例 caclsc

    2026年3月18日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号