【Feature Pyramid Networks for Object Detection】

Feature Pyramid Networks for Object Detection

    • 摘要
    • 引言
    • 2 相关工作
    • 3 FPN
    • 4 应用

摘要

特征金字塔是识别系统中用于检测不同尺度对象的基本组件。但是,最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们在计算和内存方面都很密集。在这篇论文中,我们利用深度卷积网络的固有多尺度、金字塔层次结构来构建特征金字塔,额外的成本几乎可以忽略不计。我们开发了一种自顶向下的架构,通过横向连接来构建所有尺度的高级语义特征图。这种架构被称为特征金字塔网络(FPN),在多个应用中作为通用特征提取器显示出显著的改进。在基本的Faster R-CNN系统中使用FPN,我们的方法在COCO检测基准上实现了最先进的单模型结果,无需任何额外的技巧,超过了所有现有的单模型条目,包括COCO 2016挑战赛的获胜者。此外,我们的方法可以在GPU上以6 FPS的速度运行,因此是一种实用且准确的多尺度对象检测解决方案。代码将公开提供。

引言

识别不同尺度的物体是计算机视觉中的一个基本挑战。基于图像金字塔构建的特征金字塔(简称为特征化图像金字塔)构成了一种标准解决方案的基础【1】(图1(a))。这些金字塔在某种意义上是尺度不变的,因为物体的尺度变化可以通过在金字塔中移动其层级来抵消。直观上,这一特性使得模型能够通过在不同位置和金字塔层级上扫描,检测出各种尺度范围内的物体。

在手工设计特征的时代,特征化图像金字塔被广泛使用【5,25】。它们是如此关键,以至于像DPM【7】这样的目标检测器需要密集的尺度采样(例如,每个倍频有10个尺度)才能取得良好的效果。在识别任务中,手工设计的特征已经很大程度上被深度卷积网络(ConvNets)计算的特征所取代【19,20】。除了能够表示更高级别的语义外,ConvNets还对尺度变化更具鲁棒性,从而有助于通过单一输入尺度的特征进行识别【15,11,29】(图1(b))。但即便具备这种鲁棒性,金字塔仍然是获得最准确结果所必需的。在最近的ImageNet【33】和COCO【21】检测挑战中,所有顶尖的参赛作品都使用了特征化图像金字塔的多尺度测试(例如【16,35】)。对图像金字塔的每一层进行特征化的主要优势在于,它生成了一个多尺度特征表示,其中所有层级都具有较强的语义,包括高分辨率层级。
在这里插入图片描述
图1. (a) 使用图像金字塔构建特征金字塔。特征是在每个图像尺度上独立计算的,这样做速度较慢。(b) 近期的检测系统选择仅使用单一尺度特征进行快速检测。© 另一种方法是重用ConvNet计算出的金字塔特征层级,将其视为特征化的图像金字塔。(d) 我们提出的特征金字塔网络(FPN)与(b)和©一样快速,但更加准确。在此图中,特征图由蓝色轮廓表示,较粗的轮廓表示语义上更强的特征。

尽管如此,对图像金字塔的每一层进行特征化仍然存在明显的局限性。推理时间显著增加(例如,增加四倍【11】),这使得这种方法在实际应用中变得不切实际。此外,在图像金字塔上端到端训练深度网络在内存方面也是不可行的,因此如果使用图像金字塔,它们只在测试时使用【15,11,16,35】,这在训练和测试时间推理之间造成了不一致性。出于这些原因,Fast R-CNN和Faster R-CNN【11,29】在默认设置下选择不使用特征化图像金字塔。

然而,图像金字塔并不是计算多尺度特征表示的唯一方法。深度卷积网络(ConvNet)逐层计算特征层次结构,随着子采样层的引入,特征层次结构具有固有的多尺度、金字塔形状。这种网络内部的特征层次结构生成了不同空间分辨率的特征图,但由于深度不同而引入了巨大的语义差异。高分辨率特征图具有低级特征,这些特征会削弱其在目标识别中的表示能力。

单次检测器 (SSD) [22] 是首次尝试将卷积网络(ConvNet)的金字塔特征层次结构视为特征化图像金字塔的工作之一(图1©)。理想情况下,SSD风格的金字塔将重用在前

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

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

相关文章

LeetCode经典题之876、143 题解及延伸

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 …

paddleocr查看标注好的数据错误信息

字符计数 import os import json from collections import Counter# 按字符计数 label_dir"/Users/thy/Downloads/chinese20240613" zi_ls[] with open(os.path.join(label_dir,"Label.txt")) as f:linesf.readlines()for line in lines:line line.strip…

Java面试题:聚簇索引和非聚簇索引

聚簇索引和非聚簇索引 聚簇索引(聚集索引) 将数据的存储和索引放在一块,索引结构的叶子节点保存了行数据 索引字段必须存在,且只能存在一个 非聚集索引(二级索引) 将数据和索引分开存储,索引结构的叶子节点关联的是对应的主键 索引字段可以存在多个 索引的选取规则 如果…

【学习】常用的分类网络

1. LeNet 提出时间:1998年最新版本:原始版本使用的数据集格式:MNIST(28x28灰度图像)优点: 结构简单,易于理解和实现。对于小规模图像数据集(如MNIST)有很好的表现。缺点…

豆瓣高分项目管理书籍推荐

📬豆瓣网站上有很多项目管理领域的书籍获得了较高的评分,以下是一些高分项目管理书籍的精选列表,发出来跟大家分享一下: 《项目管理知识体系指南(PMBOK指南)》 【内容简介】这本书是美国项目管理协会&…

opencv检测图片上七种颜色,分辨颜色和对应位置

opencv检测图片上七种颜色,分辨颜色和对应位置 读取图片:使用cv2.imread()函数读取目标图片。 转换颜色空间:通常在HSV颜色空间中进行颜色检测,因为HSV颜色空间更适合描述颜色的属性。 定义颜色范围:为七种颜色定义…

RabbitMQ 修改默认密码

RabbitMQ的一些常用命令 #启动rabbitmq service rabbitmq-server start# 查看rabbitMQ的运行状态 service rabbitmq-server status# 开启rabbitMQ的后台管理插件 rabbitmq-plugins enable rabbitmq_management # 重启RabbitMQ服务 service rabbitmq-server restart RabbitMQ的…

AcWing 797:差分 ← 一维差分模板题

【题目来源】https://www.acwing.com/problem/content/799/【题目描述】 输入一个长度为 n 的整数序列。 接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。 请你输出进行完所有操作后的序列。【输入格式】 第一…

富格林:正规操作实现稳健出金

富格林认为,当下的金融市场,投资者进行理财都会特别关注盈利效率高的产品,而近年来兴起的现货黄金,其高效的盈利效率吸引着大批朋友关注。不过,要想在这盈利出金,就得学习掌握正规的交易策略。下面富格林将…

onnx模型修改:去掉Dropout层

文章目录 尝试1:强行设置dropout层train mode为False尝试2:找到onnx模型中的dropout, train mode设置为False尝试3:直接删除dropout层,连接其输入输出结语 最近训练模型使用了tinyvit,性能挺强的: 但是导出…

超细毛搭配超宽设计,一款更呵护牙龈的牙刷

牙龈敏感的时候,刷牙特别难受,最近试了试惠百施(EBISU)65孔宽头软毛牙刷,感觉它的口腔护理体验很不错。这款牙刷的设计独特,采用宽头设计,一次就能刷两排牙齿,极大地提高了清洁效率。…

RS232自由转Profinet协议网关模块连接1200PLC与扫码枪通讯及手动清零案例

一、RS232和Profinet这两种通讯接口的特点和应用场景: RS232是一种串行通讯接口标准,常用于连接计算机和外部设备,传输速率较低但稳定可靠。Profinet则是一种工业以太网通讯协议,具有高速、实时性强的特点,适用于工业…

C/C++语言通过动态链表实现按需内存分配和使用(Linux Ubuntu 24.04环境)

我认为比较理想的内存使用方式应该实现这几个特性: 1. 分配一块能满足大多数情况下需求的内存,比如80%的情况下都不需要再次分配内存。 2. 对另外20%需要较多内存的情况,可以通过动态链表按需追加新的内存块。 3. 要对总共消耗的内存有一个…

【C语言】解决C语言报错:Dangling Pointer

文章目录 简介什么是Dangling PointerDangling Pointer的常见原因如何检测和调试Dangling Pointer解决Dangling Pointer的最佳实践详细实例解析示例1:释放内存后未将指针置为NULL示例2:返回指向局部变量的指针示例3:指针悬空后继续使用示例4&…

引领未来:AI Native与物联网(IoT)的革命性融合

引领未来:AI Native与物联网(IoT)的革命性融合 在数字化转型的浪潮中,AI Native作为一种新兴的软件开发模式,正逐渐成为推动技术创新的核心力量。与此同时,物联网(IoT)技术通过连接物理世界与数字世界,不断扩展其应用…

自编码器笔记

编码器解码器自编码器 先压缩特征,再通过特征还原。 判断还原的和原来的是否相等 encode data 在一个“潜在空间”里。它的用途是“深度学习”的核心-学习数据的特征并简化数据表示形式以寻找模式。 变分自编码器: 1. 首先、假设输入数据是符合正态分布…

tiny-redis 项目可能的问题

https://build-your-own.org/redis/ 事件循环怎么实现的 首先我将连接包装为一个 Connect 类,它包含了 socket fd,读写缓冲区,连接状态(这个连接是发送数据还是接收数据)等成员属性 我会在全局维护一个从 socket fd…

003 选择排序

文章目录 先挑最值,再把剩下的挑最值,再把剩下的挑最值。。。 -- 排序函数 function selectionSort(arr) -- 外层循环,从数组的第一个元素开始,对每个元素进行排序 for i 1, #arr do -- 假设当前位置的元素是最小的 local …

LCR 060. 前 K 个高频元素

给定一个整数数组 nums 和一个整数 k &#xff0c;请返回其中出现频率前 k 高的元素。可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2] 示例 2: 输入: nums [1], k 1 输出: [1] 提示&#xff1a; 1 < nums.length < 105k 的取值范…

【SQL Server点滴积累】Setup SQL Server 2008 Database Mirror (二)

【SQL Server点滴积累】Setup SQL Server 2008 Database Mirror (一)-CSDN博客今天分享SQL Server 2008 R2搭建数据库镜像(Database Mirror)https://blog.csdn.net/ncutyb123/article/details/139749117?spm1001.2014.3001.5501本篇Blog基于以上Blog步骤进行SQL Server 2008 R…