Faster R-CNN:Towards Real-Time Object Dtection with Region Proposal Networks论文理解
Abstract
原文重点:
- In this work, we introduce a Region Proposal Network(RPN) that shares full-image convolutional features with the detection network, thus enabling nearly cost-free region proposals.
- An RPN is a fully convolutional network that simultaneously predicts object bounds and objectness scores at each position.
- We further merge RPN and Fast R-CNN into a single network by sharing their convolutional features-using the recently popular terminology of neural networks with “attention” mechanisms, the RPN component tells the unified network where to look.
本文介绍了区域提出网络(RPN),该网络与检测网络共享全图像的卷积特征,使近乎零成本的区域提出成为可能。RPN是一个全卷积网络,可以同时在每个位置预测目标边界和目标分数。我们将RPN和Fast R-CNN通过共享卷积特征进一步合并为一个单一的网络——使用最近流行的具有“注意力”机制的神经网络术语,RPN组件告诉统一网络在哪里寻找。
1. Introduction
将花费在区域提议上的时间忽略不计,Fast R-CNN利用非常深的网络实现了接近实时的速率。现在,区域提出是最新的检测系统中测试时间的计算瓶颈。
我们的观察是,基于区域的检测器所使用的卷积特征映射,如Fast R-CNN,也可以用于生成区域提议。在这些卷积特征之上,我们通过添加一些额外的卷积层来构建RPN,这些卷积层同时在规则网格上的每个位置上回归区域边界和目标分数。因此RPN是一种全卷积网络(FCN)[7],可以针对生成检测区域建议的任务进行端到端的训练。
RPN旨在有效预测具有广泛尺度和长宽比的区域提议。与使用图像金字塔(图1,a)或滤波器金字塔(图1,b)的流行方法[8],[9],[1]相比,我们引入新的“锚”盒作为多种尺度和长宽比的参考。我们的方案可以被认为是回归参考金字塔(图1,c),它避免了枚举多种比例或长宽比的图像或滤波器。这个模型在使用单尺度图像进行训练和测试时运行良好,从而有利于运行速度。
为了将RPN与Fast R-CNN 2]目标检测网络相结合,我们提出了一种训练方案,在微调区域提议任务和微调目标检测之间进行交替,同时保持区域提议的固定。该方案快速收敛,并产生两个任务之间共享的具有卷积特征的统一网络。
2. Related Work
- Object Proposals
广泛使用的目标提议方法包括基于超像素分组(例如,Selective Search,CPMC,MCG)和那些基于滑动窗口的方法(例如objectness in windows,EdgeBoxes)。目标提议方法被采用为独立于检测器(例如,选择性搜索目标检测器,R-CNN和Fast R-CNN)的外部模块。 - Deep Networks for Object Detection
R-CNN:端到端地对CNN进行训练,将提议区域分类为目标类别或背景。R-CNN主要作为分类器,并不能预测目标边界。其准确度取决于区域提议模块的性能。
OverFeat:训练一个全连接层来预测假定单个目标定位任务的边界框坐标。然后将全连接层变成卷积层,用于检测多个类别的目标。
MultiBox:从网络中生成区域提议,网络最后的全连接层同时预测多个类别不相关的边界框,并推广到OverFeat的“单边界框”方式。这些类别不可知的边界框框被用作R-CNN的提议区域[5]。与我们的全卷积方案相比,MultiBox提议网络适用于单张裁剪图像或多张大型裁剪图像(例如224×224)。MultiBox在提议区域和检测网络之间不共享特征。
DeepMask:是为学习分割提议区域而开发的。
3. Faster R-CNN
Faster R-CNN由两个模块组成。第一个模块是提议区域的深度全卷积网络,第二个模块是使用提议区域的Fast R-CNN检测器[2]。整个系统是一个单个的,统一的目标检测网络(图2)。使用最近流行的“注意力”[31]机制的神经网络术语,RPN模块告诉Fast R-CNN模块在哪里寻找。
3.1 Region Proposal Networks
为了生成区域提议,我们在最后的共享卷积层输出的卷积特征映射上滑动一个小网络。这个小网络将输入卷积特征映射的n×n空间窗口作为输入。每个滑动窗口映射到一个低维特征(ZF为256维,VGG为512维,后面是ReLU[33])。这个特征被输入到两个子全连接层——一个边界框回归层(reg)和一个边界框分类层(cls)。在本文中,我们使用n=3,注意输入图像上的有效感受野是大的(ZF和VGG分别为171和228个像素)。图3(左)显示了这个小型网络的一个位置。请注意,因为小网络以滑动窗口方式运行,所有空间位置共享全连接层。这种架构通过一个n×n卷积层,后面是两个子1×1卷积层(分别用于reg和cls)自然地实现。
3.1.1 Anchors
在每个滑动窗口位置,我们同时预测多个区域提议,其中每个位置可能提议的最大数目表示为k。因此,reg层具有4k个输出,编码k个边界框的坐标,cls层输出2k个分数,估计每个提议是目标或不是目标的概率。相对于我们称之为锚点的k个参考边界框,k个提议是参数化的。锚点位于所讨论的滑动窗口的中心,并与一个尺度和长宽比相关(图3左)。默认情况下,我们使用3个尺度和3个长宽比,在每个滑动位置产生k=9个锚点。对于大小为W×H(通常约为2400)的卷积特征映射,总共有WHk个锚点。
Translation-Invariant Anchors平移不变的锚点
Multi-Scale Anchors as Regression References多尺度锚点作为回归参考
3.1.2 Loss Function
在计算Loss值之前,作者设置了anchors的标定方法.正样本标定规则:
- 如果Anchor对应的reference box与ground truth的IoU值最大,标记为正样本;
- 如果Anchor对应的reference box与ground truth的IoU>0.7,标记为正样本.事实上,采用第2个规则基本上可以找到足够的正样本,但是对于一些极端情况,例如所有的Anchor对应的reference box与groud truth的IoU不大于0.7,可以采用第一种规则生成.
- 负样本标定规则:如果Anchor对应的reference box与ground truth的IoU<0.3,标记为负样本.
- 剩下的既不是正样本也不是负样本,不用于最终训练.
- 训练RPN的Loss是有classification loss (即softmax loss)和regression loss (即L1 loss)按一定比重组成的.
3.1.3 Training RPNs
RPN训练设置:
- 在训练RPN时,一个Mini-batch是由一幅图像中任意选取的256个proposal组成的,其中正负样本的比例为1:1.
- 如果正样本不足128,则多用一些负样本以满足有256个Proposal可以用于训练,反之亦然.
- 训练RPN时,与VGG共有的层参数可以直接拷贝经ImageNet训练得到的模型中的参数;剩下没有的层参数用标准差=0.01的高斯分布初始化.