[DL]深度学习_Feature Pyramid Network

news2024/9/24 23:24:05

FPN结构详解 

一、概念介绍

        Feature Pyramid Network (FPN)是一种用于目标检测和语义分割的神经网络架构。它的目标是解决在处理不同尺度的图像时,信息丢失和语义细节模糊的问题。

        FPN的核心思想是通过在网络中添加一组横向连接来构建多尺度特征金字塔。这些横向连接将底层的高分辨率特征与高层的低分辨率特征进行融合,以捕捉不同尺度的语义信息。融合后的特征金字塔可用于检测和分割任务中的多尺度目标识别。

        具体来说,FPN在主干网络(如ResNet)中的每个阶段添加一个横向连接,以便从高层到底层传递信息。这些连接可以通过上采样或卷积操作来进行特征融合和调整分辨率。最后,通过在FPN上构建特定的任务头部网络(如分类器或分割器),可以实现目标的检测和分割。

        FPN的优点是能够有效地解决多尺度的问题,提高目标检测和语义分割的性能。它已经在许多计算机视觉任务中取得了显著的成果,并被广泛应用于许多最先进的目标检测和分割算法中。

 二、结构详解

1、对比试验 

        图(a)是一个特征图像金字塔结构,常用于传统图像处理。 对于要检测不同尺度目标的时候,将图片首先缩放到不同的尺度,针对每个尺度图片,依次通过算法进行预测。此时会面临一个问题,生成多少个尺度就需要预测多少次,效率低下。

        图(b)是Faster R-CNN采用的一种方式,将图片通过骨干网络提取得到最终的特征图,在最终的特征图上进行预测,但是这种方式对于小目标检测效果不是很好。

        图(c)是SSD算法采用的方式,将图片输入到骨干网络,此时会在骨干网络正向传播中得到的不同的特征图上分别进行预测。

        图(d)为FPN特征金字塔结构,与图(c)进行简单的对比,可以看出,特征金字塔结构并不是简单的在骨干网络得到的不同特征图上进行预测,而是将不同特征图上的特征进行融合,然后再融合之后的特征图上再进行预测。

2、特征图融合

        需要将不同尺度特征图进行融合,不同的特征图构建时,都是以2的整数倍进行选取,这是因为分类网络中的骨干网络缩放特征图时都是以2的整数倍进行缩放的。

        针对每一个骨干网络上的特征图都先用1x1的卷积层进行处理,目的是为了之后进行特征图融合,调整骨干网络中不同特征图的通道数。

        在高层次特征图与低层次特征图进行融合时,因为高层的特征图的大小在骨干网络正向传播时会缩小为低一层特征图的一半,所以在融合之前需要将高层特征图进行2倍上采样,正好与低一层特征图大小相同,低一层特征图又经过1x1卷积之后与高层特征图统一了通道数,可以进行特征图融合操作。

        2倍上采样通过邻近插值算法。

notes:

        邻近插值算法是一种简单且常用的上采样方法,它通过复制最近邻像素的值来增加特征图的尺寸。

        邻近插值算法的基本思想是对于每个新像素,找到与其最接近的原始像素,并将其值赋给新像素。这种方法不涉及任何计算或插值操作,因此计算效率很高,适合用于快速的上采样需求。

具体实现上,邻近插值算法可以通过以下步骤进行:

  1. 根据上采样的倍数,计算新特征图的尺寸。
  2. 对于新特征图中的每个像素,找到与其最接近的原始特征图的位置。
  3. 将原始特征图中最接近的像素值赋给新特征图中的对应像素。

        例如,假设有一个大小为4x4的低分辨率特征图,需要将其上采样为8x8的高分辨率特征图。那么,对于高分辨率特征图中的每个像素,可以找到最接近的原始特征图像素的位置,并将其值赋给新特征图。这样就完成了邻近插值算法的上采样过程。

        虽然邻近插值算法简单高效,但它可能会导致一些细节信息的损失,因为它只是简单地复制最接近的像素值。因此,对于一些对细节信息要求较高的任务,如图像分割或图像生成,可能需要使用更复杂的上采样方法,如转置卷积。

3、结构详解 

         选取ResNet-50作为骨干网络,结合FPN结构。主干网络输入图像尺寸为[640x640x3]。对于C2、C3、C4、C5得到的特征图分别通过1x1的卷积层调整通道数,之后从C5到C2通过上采样操作进行融合。在所得到的新的特征图之后,再分别接上一个3x3卷积层,对融合后的特征图进一步融合,依次得到P2、P3、P4、P5,原论文给的一个描述,会在P5的基础上进行最大池化下采样得到P6。

notes:

        需要注意的是P6只用于区域生成网络RPN部分。RPN生成Proposal预选框时候,会在P2、P3、P4、P5、P6特征图上进行预测,但是在Fast R-CNN部分中,只会在P2、P3、P4、P5上进行预测。

        在Faster R-CNN是在预测特征图上通过RPN网络生成得到一系列的Proposal预选框,然后将Proposal预选框映射到特征图上,然后将映射的这部分特征输入到Fast R-CNN部分得到最终预测结果。

        在FPN结构中,首先通过RPN结构在P2、P3、P4、P5、P6上进行预测Proposal预选框,然后将预测得到的Proposal预选框映射到P2、P3、P4、P5上,然后通过Fast R-CNN部分得到最终预测结果。

4、不同尺度预测 

        由于在RPN网络中生成了多个预测特征层,所以可以在不同的预测特征层上,分别针对不同尺度的目标进行预测。在Faster R-CNN上,只有一个预测特征层,所以是在这一个预测特征层上生成不同面积不同比例的anchor。但是在FPN上,不同预测特征层可以针对不同尺度的目标。 

        随着卷积池化等操作之后,细节信息会丢失。P2相对较为底层的预测特征层,会保留更多的底层细节信息,更适合预测小目标。会将面积为32^{2},比例为1:2,1:1,2:1的anchor在P2上生成。针对P3使用面积64^{2},P4使用面积128^{2},P5使用面积256^{2},P6使用面积512^{2},比例都为1:2,1:1,2:1的anchor。这也是与Faster R-CNN不一样的地方。

        在不同的特征预测层上共用同一个RPN和Fast R-CNN,和分别在不同的特征预测层上用不同的RPN和Fast R-CNN的情况下,检测精度并无差异。所以为了减少网络训练参数,可以在不同特征预测层上共享RPN预测头和Fast R-CNN模块。在RPN部分,P2到P6使用同一个模块,而Fast R-CNN部分,P2到P5使用同一模块。

5、Proposal映射到预测特征层

k=\left \lfloor k_{0}+\log _{2}(\sqrt{wh}/224) \right \rfloor

  • k为应该对应的预测特征值的层数,对应P2到P5,数值为2到5
  • k_{0}设置为4
  • w为RPN预测得到的Proposal在原图上的宽度
  • h为RPN预测得到的Proposal在原图上的高度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1380410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

01循环算法

1.求小数点的某一位&#xff0c;且超出float和double的精度问题 【题目描述】 分数a/b化为小数后&#xff0c;小数点后第n位的数字是多少&#xff1f; 【输入】 三个正整数a&#xff0c;b&#xff0c;n&#xff0c;相邻两个数之间用单个空格隔开。0<a<b<100&#…

RK3568驱动指南|第十二篇 GPIO子系统-第134章 三级节点操作函数实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC&#xff0c;采用22nm制程工艺&#xff0c;搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码&#xff0c;支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU&#xff0c;可用于轻量级人工…

Redis:原理速成+项目实战——Redis实战14(BitMap实现用户签到功能)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Redis&#xff1a;原理速成项目实战——Redis实战13&#xff08;GEO实现附近商铺、滚动分页查询&#xff09; &#x1f4da;订阅…

【AI的未来 - AI Agent系列】【MetaGPT】0. 你的第一个MetaGPT程序

《MetaGPT智能体开发入门》开课&#xff0c;跟着课程&#xff0c;学习MetaGPT智能体开发。 0. 安装MetaGPT 请确保你的系统已安装Python 3.9。你可以通过以下命令进行检查&#xff1a; python3 --version下面是具体的安装命令&#xff1a; 安装命令 pip install metagpt如…

ZooKeeper 实战(四) Curator Watch事件监听

文章目录 ZooKeeper 实战(四) Curator Watch事件监听0.前言1.Watch 事件监听概念2.NodeCache2.1.全参构造器参数2.2.代码DEMO2.3.日志输出 3.PathChildrenCache3.1.全参构造器参数3.2.子节点监听时间类型3.2.代码DEMO 4.TreeCache4.1.构造器参数4.2.代码DEMO4.3.日志输出 ZooKe…

Flink standalone集群部署配置

文章目录 简介软件依赖部署方案二、安装1.下载并解压2.ssh免密登录3.修改配置文件3.启动集群4.访问 Web UI 简介 Flink独立模式&#xff08;Standalone&#xff09;是部署 Flink 最基本也是最简单的方式&#xff1a;所需要的所有 Flink 组件&#xff0c; 都只是操作系统上运行…

别再为创业失败找借口了!否则你永远无法创业成功!2024适合上班族的创业,2024个人创业做什么

每当聊起创业&#xff0c;很多人嘴上都很积极&#xff0c;行动都很低迷&#xff0c;事后就开始找各种理由开始否定创业这个路&#xff0c;要么就是大环境不好&#xff0c;要么就是行业太差&#xff0c;还有就是竞争太多&#xff0c;反正不会是自己的能力太差。 其实创业没有你想…

Postgres 中文周报:Postgres Weekly 537 期

本周报由 Cloudberry Database 社区编译自英文版《Postgres Weekly》&#xff0c;译文较原文有所调整。 推荐博文 &#x1f3c6; PostgreSQL: The DBMS of the Year 2023 PostgreSQL 荣获 DB-Engines 网站 2023 年度 DBMS 冠军。DB-Engines 收集了 480 款数据库系统信息并跟踪…

各版本 操作系统 对 .NET Framework 与 .NET Core 支持

有两种类型的受支持版本&#xff1a;长期支持 (LTS) 版本和标准期限支持 (STS) 版本。 所有版本的质量都是一样的。 唯一的区别是支持的时间长短。 LTS 版本可获得为期三年的免费支持和补丁。 STS 版本可获得 18 个月的免费支持和修补程序。 有关详细信息&#xff0c;请参阅 .N…

2024年美国大学生数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

mac 上 ssh: connect to host localhost port 22: Connection refused

1。 问题 在搭建hadoop环境的时候 发现ssh localhost 在报错 2. 解决 打开系统设置 -> 共享 -> -> 在左边服务中选择 远程登录 注意红框这些选项慎重选择&#xff01;&#xff01;&#xff01; 修改后&#xff0c;在终端再次 ssh localhost 发现登录成功了 如果…

SkipList 的索引过程,能否越两级搜索

“SkipList 的索引过程&#xff0c;能否越两级搜索&#xff1f;” 昨天&#xff0c;一个工作 7 年的粉丝&#xff0c;去某外包公司面试&#xff0c;被问到这个问题不知道该怎么回答。 今天正好有空&#xff0c;给大家分享一下这个问题的回答思路。 对了&#xff0c;这个问题…

【保姆级教程】【YOLOv8替换主干网络】【1】使用efficientViT替换YOLOV8主干网络结构

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

08-微服务链路追踪案例

4.4.1&#xff1a;环境说明 dubbo provider: 192.168.58.153 dubbo consumer: 192.168.58.154 zookeeper: 192.168.58.1554.4.2: zookeeper 部署 ~$ apt install openjdk-11-jdk -y ~$ wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.3/apache-zookeeper-3.8.3-bin.…

【计算机组成原理】指令流水线的三种冒险情况(Hazards)

冒险 在计算机架构中&#xff0c;流水线冒险是指在指令流水线的执行过程中由于数据相关性或控制相关性而导致的一种性能问题。指令流水线是将指令执行过程划分为多个阶段&#xff0c;这样可以同时处理多条指令&#xff0c;从而提高指令执行的效率。然而&#xff0c;流水线执行…

新版云进销存ERP销售库存仓库员工管理系统源码

新版云进销存ERP销售库存仓库员工管理系统源码 系统介绍&#xff1a;2022版本,带合同报价单打印&#xff0c;修复子账号不显示新加客户的BUG&#xff0c;还有其他方面的优化。 简单方便。 功能强大&#xff0c;系统采用phpMYSQL开发&#xff0c;B/S架构&#xff0c;方便随地使用…

怎么找微信服务器的IP地址

首先&#xff0c;让微信客户端在PC端运行&#xff0c;在任务管理器->详细信息中&#xff0c;找到WeChat.exe的进程&#xff0c;找到PID 就是微信进程的ID号&#xff0c;如下图所示&#xff1a; 打开一个命令行窗口&#xff0c;cmd或者powershell窗口都可以&#xff0c;输入…

互联网医院系统|北京线上问诊|线上问诊系统功能解析

随着科技的不断发展&#xff0c;线上问诊系统作为一种快速、便捷的医疗服务方式在近年来越来越受欢迎。本文将重点介绍线上问诊系统的开发功能及其优势&#xff0c;帮助读者更好地了解这一医疗服务方式的价值和好处。 一、线上问诊系统的开发功能&#xff1a; 1、患者注册与登…

【2023年度回顾】让我们在新的一年继续努力前行

每当我们在努力的时候都会想&#xff1a;为什么我要努力&#xff1f;躺着不舒服吗&#xff1f; 大家好&#xff01;我是命运之光&#xff0c;一名普普通通的计算机科学与技术专业的大三学生。 &#x1f4d5;回顾一下整个2023年 因为我有每天发朋友圈的习惯&#xff0c;所以这一…

二分搜索边界问题的简单结论

引言 二分搜索是一个说简单也很简单&#xff08;代码很固定&#xff0c;也没几行&#xff09;&#xff0c;说难也很难&#xff08;边界问题可能会让人想不太清楚&#xff09;。 事实上&#xff0c;边界问题也是是算法题中普遍存在的难点。 这篇文章讲两个简单的结论&#xff0…