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

本文主要是介绍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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/296154

相关文章

Java中Object类的常用方法小结

《Java中Object类的常用方法小结》JavaObject类是所有类的父类,位于java.lang包中,本文为大家整理了一些Object类的常用方法,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. public boolean equals(Object obj)2. public int ha

深入探讨Java 中的 Object 类详解(一切类的根基)

《深入探讨Java中的Object类详解(一切类的根基)》本文详细介绍了Java中的Object类,作为所有类的根类,其重要性不言而喻,文章涵盖了Object类的主要方法,如toString()... 目录1. Object 类的基本概念1.1 Object 类的定义2. Object 类的主要方法3. O

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At

时间序列|change point detection

change point detection 被称为变点检测,其基本定义是在一个序列或过程中,当某个统计特性(分布类型、分布参数)在某时间点受系统性因素而非偶然因素影响发生变化,我们就称该时间点为变点。变点识别即利用统计量或统计方法或机器学习方法将该变点位置估计出来。 Change Point Detection的类型 online 指连续观察某一随机过程,监测到变点时停止检验,不运用到

error while loading shared libraries: libnuma.so.1: cannot open shared object file:

腾讯云CentOS,安装Mysql时: 1.yum remove libnuma.so.1 2.yum install numactl.x86_64

java基础总结12-面向对象8(Object类)

1 Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承,这个类就叫Object。所以Object类是所有JAVA类的根基类,是所有JAVA类的老祖宗

A Comprehensive Survey on Graph Neural Networks笔记

一、摘要-Abstract 1、传统的深度学习模型主要处理欧几里得数据(如图像、文本),而图神经网络的出现和发展是为了有效处理和学习非欧几里得域(即图结构数据)的信息。 2、将GNN划分为四类:recurrent GNNs(RecGNN), convolutional GNNs,(GCN), graph autoencoders(GAE), and spatial–temporal GNNs(S

MACS bdgdiff: Differential peak detection based on paired four bedGraph files.

参考原文地址:[http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html](http://manpages.ubuntu.com/manpages/xenial/man1/macs2_bdgdiff.1.html) 文章目录 一、MACS bdgdiff 简介DESCRIPTION 二、用法

Neighborhood Homophily-based Graph Convolutional Network

#paper/ccfB 推荐指数: #paper/⭐ #pp/图结构学习 流程 重定义同配性指标: N H i k = ∣ N ( i , k , c m a x ) ∣ ∣ N ( i , k ) ∣ with c m a x = arg ⁡ max ⁡ c ∈ [ 1 , C ] ∣ N ( i , k , c ) ∣ NH_i^k=\frac{|\mathcal{N}(i,k,c_{