R-FCN: Object Detection via Region-based Fully Convolutional Networks(2016.6)

文章目录
- Abstract
- Introduction
- 当前最先进目标检测存在的问题
- 针对上述问题,我们提出...
- Our approach
- Overview
- Backbone architecture
- Position-sensitive score maps & Position-sensitive RoI pooling
- Related Work
- Experiments
- Conclusion
原文链接
源代码
Abstract
我们提出了基于区域的全卷积网络,用于准确高效的目标检测。与之前基于区域的检测器(如Fast/Faster R-CNN[6,18])相比,我们的基于区域的检测器是完全卷积的,几乎所有的计算都是在整个图像上共享的。为了实现这一目标,我们提出了位置敏感分数映射*,以解决图像分类中的平移不变性和目标检测中的平移方差之间的困境**。因此,我们的方法可以自然地采用全卷积图像分类器骨架,例如最新的残差网络(ResNets)[9],用于对象检测。我们在PASCAL VOC数据集上展示了与101层ResNet的竞争结果(例如,2007年集上的83.6% mAP)。同时,我们的结果是在每幅图像170ms的测试时间速度下实现的,比faster R-CNN快2.5-20倍
Introduction
当前最先进目标检测存在的问题
用于目标检测的流行的深度网络家族(Fast R-CNN、Faster R-CNN、SPPnet)可以通过感兴趣区域**(RoI)池化层分为两个子网络**:
(i)独立于roi的共享的“完全卷积”子网,以及(ii)不共享计算的roi智能子网
最先进的图像分类网络,如ResNets (ResNets)[9]和GoogLeNets[24,26],在设计上是完全卷积的
然而这种解决方案的检测精度相当低,与网络的优越分类精度不匹配
为了解决这个问题,在ResNet论文[9]中,Faster R-CNN检测器[18]的RoI池层被不自然地插入到两组卷积层之间——这创建了一个更深的RoI智能子网,提高了准确性,但代价是由于未共享每个RoI的计算而降低了速度

我们认为,上述非自然设计是由于增加图像分类的平移不变性与关于目标检测的平移方差的两难境地造成的
针对上述问题,我们提出…
在本文中,我们开发了一种称为基于区域的全卷积网络(R-FCN)的目标检测框架,我们的网络由共享的、全卷积的架构组成,就像FCN一样。为了将平移方差整合到FCN中,我们使用一组专门的卷积层作为FCN输出,构建了一组位置敏感的分数映射,整个体系结构是端到端学习的
Our approach
Overview

区域生成网络(RPN)[18]提出候选RoI,然后将其应用于得分图。所有可学习的权重层都是卷积的,并在整个图像上计算,每个RoI的计算成本可以忽略不计。最后一个卷积层为每个类别生成k^2个位置敏感分数映射库,因此具有具有C个对象类别(+1为背景)会有k² (C +1) - 通道个输出层。k²个分数映射对应于描述相对位置的k × k空间网格。例如,使用k×k = 3×3, 9个分数映射编码{左上、中上、右上、…,右下}的对象类别。R-FCN以位置敏感的RoI池化层结束,这一层聚集了最后一个卷积层的输出,并为每个RoI生成分数,我们的位置敏感RoI层进行了选择性池化,每个k × k箱只聚合了k × k个分数图库中的一个分数图的响应,通过端到端训练,这个RoI层引导最后一个卷积层学习专门的位置敏感分数映射

R-FCN用于目标检测的关键思想(上图):在这个例子中,有k × k = 3 × 3个由全卷积网络生成的位置敏感分数图。对于RoI中的每一个k × k个箱,池化只在k²个地图中的一个上执行(用不同的颜色标记)
Backbone architecture
本文中R-FCN的化身基于ResNet-101[9],但其他网络[10,23]也适用。ResNet-101有100个卷积层,然后是全局平均池化和1000类fc层。我们去掉了平均池化层和fc层,只使用卷积层来计算特征映射。我们使用[9]作者发布的ResNet-101,在ImageNet[20]上进行预训练。ResNet-101中的最后一个卷积块是2048-d,我们附加了一个随机初始化的1024-d 1 × 1卷积层来降维(准确地说,这将表1中的深度增加了1)。然后我们应用k²(C +1)通道卷积层来生成分数图
Position-sensitive score maps & Position-sensitive RoI pooling
为了显式地将位置信息编码到每个RoI中,我们通过规则网格将每个RoI矩形划分为k × k个箱,对于大小为w×h的RoI矩形,bin的大小为≈w/k
× h/k,在我们的方法中,最后一个卷积层被构造为每个类别生成k²个分数图
r c (i,j)是c -类在(i,j) - bin中的集合响应,z i,j,c是k²(c + 1)个分数图中的一个分数图,(x 0,y 0)表示RoI的左上角,n是bin中的像素数,Θ表示网络的所有可学习参数
Related Work
R-CNN b[7]已经证明了在深度网络中使用区域提议的有效性[27,28]。R-CNN对裁剪和扭曲区域上的卷积网络进行评估,计算不在区域之间共享(表1)。SPPnet[8]、Fast R-CNN[6]和Faster R-CNN[18]是“半卷积”的,其中一个卷积子网络对整个图像执行共享计算,另一个子网络对单个区域进行评估。有一些物体检测器可以被认为是“完全卷积”模型。OverFeat[21]通过在共享卷积特征映射上滑动多尺度窗口来检测对象
Experiments







Conclusion
我们提出了基于区域的全卷积网络,这是一种简单、准确、高效的目标检测框架。我们的系统自然采用了最先进的图像分类主干,如ResNets,它在设计上是完全卷积的。我们的方法达到了与Faster R-CNN相媲美的精度,但在训练和推理过程中都要快得多
相关文章:
R-FCN: Object Detection via Region-based Fully Convolutional Networks(2016.6)
文章目录 AbstractIntroduction当前最先进目标检测存在的问题针对上述问题,我们提出... Our approachOverviewBackbone architecturePosition-sensitive score maps & Position-sensitive RoI pooling Related WorkExperimentsConclusion 原文链接 源代码 Abstr…...
Linux服务器部署Spring Boot项目的一些shell命令脚本
1.启动jar包的命令(根据jar包数量创建,并指定相对应的jar包) nohup java -server -Xms64m -Xmx128m -jar 项目jar包的名称.jar --spring.profiles.activeprod > 记录jar包的日志.log 2>&1 &可以写在start.sh文件里(…...
Youtube DNN:Deep Neural Networks for YouTube Recommendations
1.介绍 本文主要解决的三个挑战: 大规模的推荐场景,能够支持分布式训练和提供有效率的服务。不断更新的新物料。稀疏的用户行为,包含大量的噪声。 2.推荐系统 文章包含推荐系统的两阶段模型:召回和排序。 召回网络根据用户的历…...
Python 入门基础知识点有哪些?
Python是一种高级的、解释性的、面向对象的、动态类型语言,它在机器学习、数据分析、Web开发、科学计算等领域都有广泛的应用。下面是Python入门基础知识点的详细介绍。 1、变量和数据类型 在Python中,可以使用变量来存储数据。Python的数据类型包括整…...
【每日一题】补档 CF487B. Strip | 数据结构杂烩 -> 单调队列 | 困难
题目内容 原题链接 给定一个长度为 n n n 的数组,将这个数组进行拆分成若干个连续子数组, 使得每个子数组的最大值减去最小值小于等于 s s s , 且每个子数组的长度大于等于 l e n len len 。 问最少可以拆分成多少个连续子数组࿰…...
向量数据库和普通关系型数据库的区别,LAXCUS支持哪种数据库?
这是一位Laxcus用户在后台的提问,贴出来供大家参考: 1. 向量数据库与传统的关系型数据库主要有以下几个区别: 数据类型:向量数据库专门用于存储和查询向量数据,而传统数据库可以存储各种类型的数据,如文本…...
操作系统 --- 存储器管理
一、简答题 1.存储器管理的基本任务,是为多道程序的并发执行提供良好的存储器环境。请问好的存储器环境”应包含哪几个方面? 答: 2.内存保护是否可以完全由软件实现?为什么? 答:内存保护的主要任务是确保每…...
Python selenium无界面headless
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 …...
JavaScript 中的负无穷大是什么?
在 JavaScript 中,负无穷大表示为 -Infinity。它是一个特殊的数值,用于表示比任何实数都要小的值。 负无穷大用于表示超出数值范围的情况,例如在进行数学计算时发生了溢出或出现了无法表示的结果。它可以通过将负无穷大赋值给变量或通过某些…...
2023年十大地推和网推拉新app推广接单平台,一手单渠道
做地推最重要的一定是找好项目,找好项目最关键的一定是地推app接任务平台,所以这十大靠谱的地推拉新接单平台,都是我们精心筛选的,2023年从事地推和网推拉新作业。 1:聚量推客 “聚量推客”汇聚了众多市场上有的和没有…...
mybatis-plus的进阶使用
文章目录 自定义xml的sql脚本配置mybaits的全局配置文件mybatis-plus优化,指定select数据库乐观锁mybatis-plus实现数据库乐观锁mybatis-plus实现逻辑删除 自定义xml的sql脚本 这里的使用和mybatis一样 编写mapper.xml文件 <?xml version"1.0" enc…...
centos安装vim编辑器
第一步检查centos的vim编辑器包是否完整 rpm -qa|grep vim //查看Vim编辑器需要安装的四个包是否完整 第二步:一般安装vim编辑器需要一下四个安装包,缺失了之后可对应下载 vim-minimal-7.4.160-2.el7.x86_64vim-common-7.4.160-4.el7.x86_64 v…...
PostgreSQL InvalidMessage Cache 同步机制
文章目录 背景InvalidMessages 基本类型InvalidMessages 数据结构概览共享内存 的 "ring-buffer" 结构Backend 本地的 InvalidMessages管理SharedInvalCatalogMsgSharedInvalCatcacheMsgSharedInvalRelcacheMsgSharedInvalSnapshotMsgSharedInvalSmgrMsgSharedInvalR…...
C#,数值计算——Globals的计算方法与源程序
1 文本格式 using System; using System.Text; namespace Legalsoft.Truffer { public static partial class Globals { //const int FLT_RADIX 2; //const int DBL_MANT_DIG 53; //const int INT_DIGITS 32; //const float FLT_…...
腾讯云香港服务器轻量24元一个月性能测试
腾讯云香港轻量应用服务器优惠价格24元一个月,一年288元,以前是30M峰值带宽,现在是20M峰值带宽,阿腾云atengyun.com分享腾讯云香港轻量应用服务器性能测评,包括香港轻量服务器配置价格表、CPU性能和CN2网络延迟测试&am…...
深度学习之基于YoloV8的行人跌倒目标检测系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、行人跌倒目标检测系统四. 总结 一项目简介 世界老龄化趋势日益严重,现代化的生活习惯又使得大多数老人独居,统计数据表…...
Seata入门系列【16】XA模式入门案例
1 前言 在之前,我们试过了AT、TCC 模式,Seata 还支持XA 模式。 2 XA 协议 XA协议由Tuxedo首先提出的,并交给X/Open组织,作为资源管理器(数据库)与事务管理器的接口标准。Oracle、Informix、DB2和Sybase等…...
高级深入--day44
Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。 pip install scrapy-redis Scrapy-redis提供了下面四种组件&a…...
Apache Doris (四十八): Doris表结构变更-替换表
🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录...
消息认证码--数字签名--证书
6. 消息认证码—>保证数据的完整性 "消息认证码 --- 消息被正确传送了吗?"6.1 什么是消息认证码 Alice 和 Bob 的故事 像以前一样,我们还是从一个Alice和Bob的故事开始讲起。不过,这一次Alice和Bob分别是两家银行,Alice银行通…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
