FPN(Feature Pyramid Networks)网络学习

2023-11-16

1.FPN在MASK R-CNN中

从上图可以看到,FPN在MASK R-CNN中主要是应用于Featue Maps的输出。但是FPN却不是MASK R-CNN所独有的。FPN是一个独立的网络。即有无FPN都可以输出Feature Maps,但是采用FPN之后,大幅度提升了小物体检测的性能。

2.图像金字塔(image pyramid)

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。

两种类型的金字塔:

  • 高斯金字塔:用于下采样,主要的图像金字塔;
  • 拉普拉斯金字塔:用于重建图像,也就是预测残差(我的理解是,因为小图像放大,必须插入一些像素值,那这些像素值是什么才合适呢,那就得进行根据周围像素进行预测),对图像进行最大程度的还原。比如一幅小图像重建为一幅大图像。多用于图像融合。

图像金字塔有两个高频出现的名词:上采样和下采样。

  • 上采样:就是图片放大
  • 下采样:就是图片缩小

下采样(图像压缩,会丢失图像信息)步骤:

  1. 对图像进行高斯内核卷积
  2. 将所有偶数行和列去除。

3.FPN

è¿éåå¾çæè¿°

原来多数的object detection算法都是只采用顶层特征做预测,但我们知道低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略。另外虽然也有些算法(SSD)采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而本文不一样的地方在于预测是在不同特征层独立进行的。
底层特征:图像本身的客观统计特性的的表示。(图像纹理特征,颜色特征,形状特征,空间位置特征)

高层语义特征:人们对图像本身内容的定义与理解。


(a)图像金字塔,即将图像做成不同的scale,然后不同scale的图像生成对应的不同scale的特征。这种方法的缺点在于增加了时间成本。有些算法会在测试时候采用图像金字塔。 
(b)像SPP net,Fast RCNN,Faster RCNN是采用对图像进行CNN处理,featureMap尺度不断变小,在最后一个featureMap上进行predict。 
(c)像SSD(Single Shot Detector)采用这种多尺度特征融合的方式,没有上采样过程,即从网络不同层抽取不同尺度的特征做预测,这种方式不会增加额外的计算量。这种方式有其合理性,一幅图像中可能具有多个不同大小的目标,区分不同的目标可能需要不同的特征,对于简单的目标我们仅仅需要浅层的特征就可以检测到它,对于复杂的目标我们就需要利用复杂的特征来检测它。整个过程就是首先在原始图像上面进行深度卷积,然后分别在不同的特征层上面进行预测。作者认为SSD算法中没有用到足够低层的特征(在SSD中,最低层的特征是VGG网络的conv4_3),而在作者看来足够低层的特征对于检测小物体是很有帮助的。 
(d)本文作者是采用这种方式,顶层特征通过上采样和低层特征做融合,而且每层都是独立预测的。除了在多个featureMap上进行predict之位,每一个进行预测的featureMap还加入了高层的信息(高层的信息可以帮助我们准确检测目标);

 

è¿éåå¾çæè¿°

FPN的主网络采用ResNet

1*1的卷积核的主要作用是减少卷积核的个数,也就是减少了feature maps的个数,并不改变feature map的尺寸大小。

如上图所示,我们可以看到我们的图像中存在不同尺寸的目标,而不同的目标具有不同的特征,利用浅层的特征就可以将简单的目标的区分开来;利用深层的特征可以将复杂的目标区分开来;这样我们就需要这样的一个特征金字塔来完成这件事。图中我们在第1层(请看绿色标注)输出较大目标的实例分割结果,在第2层输出次大目标的实例检测结果,在第3层输出较小目标的实例分割结果。检测也是一样,我们会在第1层输出简单的目标,第2层输出较复杂的目标,第3层输出复杂的目标。


自底向上其实就是网络的前向过程。在前向过程中,feature map的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,作者将不改变feature map大小的层归为一个stage,因此每次抽取的特征都是每个stage的最后一个层输出,这样就能构成特征金字塔。 

1*1 卷积核:降维,减少卷积核的个数,也就是减少了feature map的个数
自顶向下的过程采用上采样(upsampling)进行,而横向连接则是将上采样的结果和自底向上生成的相同大小的feature map进行融合(merge)。在融合之后还会再采用3*3的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应(aliasing effect)(像素之间会出现重叠)。

4.FPN用于MASK R-CNN

原来的RPN网络是以主网络的某个卷积层输出的feature map作为输入,简单讲就是只用这一个尺度的feature map。但是现在要将FPN嵌在RPN网络中,生成不同尺度特征并融合作为RPN网络的输入。在每一个scale层,都定义了不同大小的anchor,对于P2,P3,P4,P5,P6这些层,定义anchor的大小为32^2,64^2,128^2,256^2,512^2,另外每个scale层都有3个长宽对比度:1:2,1:1,2:1。所以整个特征金字塔有15种anchor。

è¿éåå¾çæè¿°

(d)的结果并不好的原因在于在自底向上的不同层之间的semantic gaps比较大。 

(e)这样效果也不好的原因在于目标的location特征在经过多次降采样和上采样过程后变得更加不准确。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FPN(Feature Pyramid Networks)网络学习 的相关文章

  • LeetCode 2396. 严格回文的数字

    如果一个整数 n 在 b 进制下 b 为 2 到 n 2 之间的所有整数 对应的字符串 全部 都是 回文的 那么我们称这个数 n 是 严格回文 的 给你一个整数 n 如果 n 是 严格回文 的 请返回 true 否则返回 false 如果一
  • UML与面向对象

    文章目录 1 面向对象开发 1 1 理解面向对象开发 1 2 面向对象的主要概念 1 3 OO开发的优点 2 OO开发中三层设计 3 UML简介 3 1 为什么对系统建模 3 2 UML的发展 3 3 UML的构成 3 3 1 模型 图 1
  • python入门知识(七):类

    文章目录 一 面向对象语言 二 对象语言的进化 三 类的定义 一 对象 1 构造函数 init 2 实例属性 3 实例方法 4 其他方法 二 类对象 1 类属性 2 类方法 3 静态方法 四 del 方法 析构函数 和垃圾回收机制 五 ca
  • STM32F103C8T6(HAL库)驱动舵机

    1 简介 常见的舵机分为360 和180 两种 本次对180 舵机进行驱动 舵机驱动需要通过PWM信号进行驱动 本文通过定时器中的PWM信号设定使得SG90舵机进行不同角度的转动 2 PWM信号和舵机角度关系 对于舵机的驱动 需要20ms的
  • vue3+ts深入组件(四)动态组件

    一 引入 掌握程度 了解 使用Vue时 有时会遇到tab切换 如下图 1 可实现方法 1 v if 2 component动态组件 3 使用vue Router 路由切换 2 对比 第一种方法 v if 这可能是我们能最快想到的解决办法 但
  • 学习笔记:Improved Techniques for Training GANs理解

    论文链接 https arxiv org abs 1606 03498 这是一篇对GAN的训练作出改进的文章 众所周知 GAN的训练是极其不稳定的 转载请注明 1 主要内容 对GAN网络提出一些改进的体系特征和训练过程 然后把这些改进应用到

随机推荐

  • 汇聚、集群、聚合

    园区网络CSS iStack 主要特点 简单 各层设备均使用堆叠 集群技术 天然无环 无需跑其他协议来冗余备份 高效 配置简单 各层设备间使用链路聚合技术 链路利用率高 可靠 堆叠 链路聚合 各层设备形成双归接入组网 提高整网可靠性 我们所
  • 关于RAM溢出的解决方法 keil 5 L6220E:RW_IRAM1

    keil 5 L6220E RW IRAM1 在做bootloader时候遇到了这样的报错 xxxx xxxx axf Error L6220E Execution region RW IRAM1 size 60420 bytes exce
  • 数据库设计基本步骤 / 数据库设计原则

    基本步骤 按照规范设计的方法 同时考虑数据库及其应用系统开发的全过程 可以将数据库设计分为以下 6 个阶段 需求分析阶段 需求分析是数据库设计的第一步 也是整个设计过程的基础 本阶段的主要任务是对现实世界要处理的对象 公司 部门及企业 进行
  • MBED移植日记:gpio_api移植(基于STM32F107RC)

    本文是继MBED串口API移植的又一篇系列文章 前阵子忙着赶项目 移植完了却没来得及写成文章来分享 今天来补上 一来可以温故知新 二来也可以献出自己的一点微薄之力 写的不好 移植的也不一定好 请大家多多指教 本文的gpio api模块与mb
  • WPF 更改数据源时通知表格 更改List通知DataGrid

    用到集合ObservableCollection 此集合微软的解释为 动态收集数据并通知到显示的控件 无论数据是刷新 删除 增加 更新 新建Model 注意看里面的大小写 using System using System Collecti
  • Elelment-ui(登录页面开发详细方法)

    1 使用浏览器进到element ui官网 登页面开发 登录代码如下
  • 释万行上师:罕见的修行真相揭秘【全】

    辟谷 的问题 当修到一定程度 胃气充满了以后 就不需要食物了 有的是短期不吃 也有的长期不吃 我们五脏六腑的元气 都是通过胃产生的 大家都知道 我们从嘴里吃进的食物 首先是贮存到了胃里面 通过胃的研磨 胃液的消化 再输送到小肠 营养在小肠被
  • 领导看了给你加薪!python +ddt+excel 一招鲜,接口自动化测试轻松搞定,测试报告惊艳四座!

    目录 如何用 python ddt excel 实现接口自动化测试 一 准备工作 1 安装 python 环境 2 安装相关库 二 设计测试 1 编写 excel 文件 2 封装 excel 操作 3 封装 requests 请求 三 执行
  • java.lang.reflect.InvocationTargetException什么意思

    一般就是转换的问题 在SQL用别的list lt gt 接收的时候会报错
  • Financial Crisis【点双连通分量】

    题目链接 HDU 3749 你以为学了Tarjan会写几个边双就真的理解什么是双连通分量了吗 我原来真的不懂什么叫做点双BCC 不过这都没有关系 解决了这个问题之后 我终于知道了什么叫做点双连通分量了 这是一个绝对绝对经典的问题 首先讲一下
  • 时间序列分析 - ARMA/ARIMA参数估计及模型预测

    整体处理流程如下 平稳化处理 根据ADF单位根检验看序列是否平稳 对于非平稳序列可以进行差分 对数等等 对于得到的平稳序列需要检测是否为白噪声 如果是就没有必要再分析了 白噪声检验 1 由于白噪声序列期望为0 方差固定 因此会在y 0上下小
  • 菜鸟的java学习-------第一篇初识java

    初识Java 前言 做了快三年的C 了 对于C 没什么可说的 这门语言的效率比其他语言高上许多 但是这门语言及其难学 及其难以维护 开发成本很大 比如说java三个月能做成的项目 C 可能就要半年 甚至更长时间 基于C 的难开发 难维护的语
  • 解决Onedrive经常无法访问的问题

    在国内经常因为各种原因访问不了OneDrive的访问 可以通过下面的方式解决 添加两个DNS记录到hosts文件 C Windows System32 drivers etc 134 170 108 26 onedrive live com
  • PyTorch学习日志_20201031_线性模型

    日期 2020 10 31 主题 PyTorch入门 内容 学习如何构建线性模型解决问题 问题 学习时长 x 与考试成绩 y 的关系 学习时长 x 考试成绩 y 1 2 2 4 3 6 4 思路 具体代码如下 import numpy as
  • Qt控制台输入输出

    Qt控制台输入输出 在 pro 工程文件 中添加 CONFIG console include
  • 类模板与友元函数

    写在前面 学习黑马C 视频总结的知识点 一 类模板中全局函数类内实现 template
  • 关于差分信号

    对差分信 VDS 号而言 对其影响最大的因素是它们的对地阻抗是否一致 也就是对地平衡度 它们之间相对的阻抗影响并不特别重要 之间分布电容大了只会衰落信号强度 不会引入噪声和干扰 也就是对信噪比不会产生很大影响 差分信号只是使用两根信号线传输
  • File.Exists判断错误

    C File Exists判断错误 1 今天制作软件安装测试的时候发现一个问题 File Exists判断文件是否存在 明明这个文件是存在的 但是返回的确实false 跟踪代码发现还是这样 很是诡异 仔细看了一下接口说明才知道 如果没有权限
  • java中 ‘\b‘ 回退符的使用

    退格符 b b是退格符的意思 将光标回退一个字符的位置 可以结合空白字符使用达到类似删除的效果 1 回退符 b 后面没有内容 的情况 原样输出 回退符 b后面 没有内容 则原样输出 System out println x b x 回退符后
  • FPN(Feature Pyramid Networks)网络学习

    1 FPN在MASK R CNN中 从上图可以看到 FPN在MASK R CNN中主要是应用于Featue Maps的输出 但是FPN却不是MASK R CNN所独有的 FPN是一个独立的网络 即有无FPN都可以输出Feature Maps