fasterRCNN论文精读及问题整理

摘要

背景介绍:
论文首先指出,当前最先进的目标检测网络依赖于区域提议算法来假设对象的位置。
之前的一些进展,如SPPnet和Fast R-CNN,已经减少了这些检测网络的运行时间,但这也暴露出了区域提议计算成为了瓶颈。

主要贡献:
作者介绍了一个区域提议网络(Region Proposal Network, RPN),它与检测网络共享全图卷积特征,从而实现了几乎无成本的区域提议。
RPN是一个全卷积网络,能够在每个位置同时预测对象边界和对象存在性得分。
RPN通过端到端的训练生成高质量的区域提议,这些提议随后被Fast R-CNN用于检测。
作者进一步将RPN和Fast R-CNN合并到一个单一网络中,通过共享它们的卷积特征,实现了“注意力”机制,即RPN部分告诉统一网络应该关注哪里。

实验结果:
对于非常深的VGG-16模型,作者的检测系统在GPU上的帧率达到了5fps(包括所有步骤),同时在PASCAL VOC 2007、2012和MS COCO数据集上实现了最先进的目标检测精度,每张图片只使用300个提议。
在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是多个赛道中第一名获胜队伍的基础。
作者还提供了代码的公开访问链接。

结论:
通过共享特征和使用RPN,作者的方法不仅提高了目标检测的准确性,而且使得系统能够以接近实时的速度运行,这对于实际应用是非常有价值的。

1.introduction
对象检测的进展:
作者指出,对象检测的最新进展是由区域提议方法(例如Selective Search)和基于区域的卷积神经网络(R-CNNs)推动的。
尽管最初开发的R-CNN在计算上非常昂贵,但通过在提议之间共享卷积(如SPPnet和Fast R-CNN)的方式,其成本已大幅降低。
Fast R-CNN通过使用非常深的网络(如VGG-16)实现了接近实时的检测速度,但如果不考虑区域提议的生成时间,这一速度仍受限于提议步骤。

区域提议的挑战:
区域提议方法通常依赖于廉价的特征和经济的推理方案,但与高效的检测网络相比,如Selective Search,其速度慢了一个数量级,CPU实现每秒处理一张图像需要2秒。
EdgeBoxes提供了提议质量和速度之间最佳的折衷方案,每张图像的处理时间为0.2秒,但区域提议步骤仍然消耗与检测网络相当的运行时间。

GPU与CPU的比较问题:
作者提到,快速的基于区域的CNN利用了GPU的优势,而研究中使用的区域提议方法通常在CPU上实现,这种运行时比较是不公平的。
作者指出,将提议计算重新实现在GPU上是一种有效的工程解决方案,但这种重新实现忽略了下游检测网络,因此错过了共享计算的重要机会。

作者的解决方案:
作者展示了一种算法上的改变——使用深度卷积神经网络计算提议,这几乎消除了检测网络计算成本中的提议计算。
作者介绍了一种新的区域提议网络(RPN),它与最先进的对象检测网络共享卷积层,通过在测试时共享卷积,计算提议的边际成本变得很小。
RPN通过在规则网格的每个位置添加一些额外的卷积层来同时回归区域边界和对象存在性得分,因此是一种全卷积网络(FCN),可以端到端地训练,专门用于生成检测提议。

RPN的设计和训练:
RPN旨在高效预测具有广泛尺度和宽高比的区域提议,避免了使用多尺度图像或滤波器的流行方法。
作者引入了新颖的“锚”框,作为多个尺度和宽高比的参考,这种方案可以看作是回归参考的金字塔,避免了枚举多尺度或宽高比的图像或滤波器。
为了将RPN与Fast R-CNN对象检测网络统一起来,作者提出了一种训练方案,该方案在区域提议任务和对象检测任务之间交替进行微调,同时保持提议固定。

实验评估和应用:
作者在PASCAL VOC检测基准上全面评估了他们的方法,RPN与Fast R-CNN结合使用时,比Selective Search与Fast R-CNN结合使用的强基线产生了更好的检测精度。
作者的方法在测试时几乎消除了Selective Search的所有计算负担,有效运行时间仅为10毫秒。
即使使用昂贵的非常深的模型,作者的检测方法在GPU上的帧率仍为5fps,是一个实用的对象检测系统。
作者还报告了在MS COCO数据集上的结果,并研究了使用COCO数据对PASCAL VOC的改进。
代码已经公开提供,RPN和Faster R-CNN的框架已经被采用并推广到其他方法,如3D对象检测、基于部分的检测、实例分割和图像字幕。
在ILSVRC和COCO 2015竞赛中,Faster R-CNN和RPN是多个赛道中第一名获胜队伍的基础,表明了这种方法不仅在成本效益上适用于实际使用,而且也是提高对象检测精度的有效方式。

2 RELATED WORK
目标提议方法:
目标提议方法的研究已经非常广泛,这些方法旨在从图像中生成可能包含目标的区域。
常用的目标提议方法包括基于超像素分组的方法(例如Selective Search、CPMC、MCG)和基于滑动窗口的方法(例如objectness in windows、EdgeBoxes)。
这些方法通常作为独立的外部模块被采用,与检测器(如R-CNN和Fast R-CNN)分开工作。

深度网络用于目标检测:
R-CNN方法通过端到端训练CNN来将提议区域分类为对象类别或背景。
R-CNN主要作为分类器,不预测对象边界,除了通过边界框回归进行细化。
R-CNN的准确性依赖于区域提议模块的性能。
有若干论文提出了使用深度网络预测对象边界框的方法,例如OverFeat和MultiBox方法。

OverFeat和MultiBox方法:
OverFeat方法通过一个全连接层来预测单个对象的边界框坐标,然后将这个全连接层转换为卷积层来检测多个类别特定的对象。
MultiBox方法从网络的最后一层全连接层生成区域提议,同时预测多个类别不可知的边界框,这是OverFeat“单一框”方式的泛化。
这些类别不可知的边界框被用作R-CNN的提议。
MultiBox提议网络应用于单个图像裁剪或多个大图像裁剪,与作者提出的全卷积方案不同。
MultiBox不共享提议和检测网络之间的特征。

共享卷积计算:
共享卷积计算的方法越来越受到关注,因为它可以提高视觉识别的效率和准确性。
OverFeat论文计算了来自图像金字塔的卷积特征,用于分类、定位和检测。
自适应尺寸池化(SPP)在共享的卷积特征图上开发,用于高效的基于区域的对象检测和语义分割。
Fast R-CNN实现了在共享卷积特征上的端到端检测器训练,并展示了引人注目的准确性和速度。

3 FASTER R-CNN
Faster R-CNN系统概述:
Faster R-CNN是一个目标检测系统,由两个主要模块组成:第一个模块是深度全卷积网络(用于生成提议区域),第二个模块是Fast R-CNN检测器(使用生成的提议区域进行目标检测)。
整个系统是一个单一的、统一的网络,用于执行目标检测任务(如图2所示)。
该系统采用了神经网络中最近流行的“注意力”机制,其中RPN模块负责告诉Fast R-CNN模块应该关注图像的哪些区域。

模块1 - 深度全卷积网络(RPN):
这个模块是一个深度全卷积网络,负责生成目标提议区域。
RPN通过在输入图像的特征图上滑动一个小网络来工作,这个小网络对每个位置生成多个区域提议。
RPN输出的是一组矩形提议区域,每个区域都有一个对象得分,表示该区域包含对象的可能性。

模块2 - Fast R-CNN检测器:
这个模块是Fast R-CNN检测器,它使用RPN生成的提议区域来执行目标检测。
Fast R-CNN检测器对每个提议区域进行分类,并预测边界框,以确定区域内的对象及其类别。
检测器利用共享的卷积特征来提高检测的效率和准确性。

特征共享和训练算法:
为了训练这两个模块,作者开发了一种算法,使得两个网络可以共享特征,这样可以减少重复计算,提高整体效率。
在第3.1节中,作者介绍了用于区域提议的网络设计和属性,包括RPN的工作原理和如何生成高质量的提议区域。
在第3.2节中,作者详细阐述了如何训练这两个模块,包括初始化、微调和端到端训练的策略,以及如何通过共享特征来优化整个系统的性能。

3.1 Region Proposal Networks
RPN的输入和输出:
RPN接受任意大小的图像作为输入,并输出一组矩形对象提议,每个提议都有一个对象存在性得分(objectness score)。
这个过程是通过一个全卷积网络(fully convolutional network)来实现的,这个网络在本节中有详细描述。

共享卷积层:
为了与Fast R-CNN对象检测网络共享计算,RPN假设两个网络共享一组公共的卷积层。
在实验中,作者研究了两种具有可共享卷积层的模型:Zeiler和Fergus模型(ZF)有5层可共享的卷积层,而Simonyan和Zisserman模型(VGG-16)有13层可共享的卷积层。

生成区域提议:
为了生成区域提议,RPN在最后一个共享卷积层输出的特征图上滑动一个小网络。
这个小网络接受输入特征图上的n×n空间窗口作为输入,并将每个滑动窗口映射到一个低维特征(对于ZF是256维,对于VGG是512维),后面跟着ReLU激活函数。
这个低维特征被输入到两个兄弟全连接层——一个用于框回归(box-regression layer,简称reg)和一个用于框分类(box-classification layer,简称cls)。

滑动窗口和感受野:
由于小网络以滑动窗口的方式操作,全连接层在所有空间位置上共享,这意味着网络可以高效地处理整个特征图。
作者在本文中使用n=3,这意味着网络的有效感受野在输入图像上相对较大(对于ZF是171像素,对于VGG是228像素)。

网络架构:
这个小网络在图3(左)中的单个位置有插图展示。
这种架构自然地通过一个n×n的卷积层,后面跟着两个兄弟1×1的卷积层来实现(分别用于reg和cls)。

注解:
igure 3 在论文中通常用于直观展示关键概念或方法。根据您提供的文本内容,Figure 3 描述了区域提议网络(RPN)的结构和输出示例。下面是对Figure 3的详细解释:

RPN结构:
图的左侧展示了RPN的示意图,它作为一个小型网络,作用在较大的卷积特征图上。这个小型网络包含一个n×n的卷积层,后面跟着两个1×1的卷积层,分别用于边界框回归(reg)和边界框分类(cls)。
这个小型网络在特征图上的每个位置都有一个实例,它们通过滑动窗口的方式覆盖整个特征图。每个n×n窗口的位置都会产生一组输出,包括预测的边界框坐标和对象存在性得分。

RPN输出示例:
图的右侧展示了使用RPN生成的提议区域在PASCAL VOC 2007测试集上的示例检测结果。
这些提议区域用不同的颜色表示,每个区域都有一个类别标签和相应的得分。得分高的颜色(如红色)表示网络对区域内存在对象的置信度较高。
这些提议区域覆盖了多种尺度和宽高比的对象,展示了RPN在生成多样化和高质量提议方面的能力。

RPN的作用:
RPN的作用是从输入图像中生成一系列可能包含目标的区域(提议),并对每个提议给出一个对象存在性得分。
这些提议随后被用作Fast R-CNN检测器的输入,检测器将在这些提议上进行分类和边界框的精确定位。

图示的重要性:
Figure 3 通过直观的方式展示了RPN如何工作以及它的输出是什么样的,这对于理解Faster R-CNN系统的工作原理至关重要。
图表还展示了RPN在实际图像上的表现,帮助读者更好地把握其在目标检测任务中的应用和效果。

3.1.1 Anchors
多个区域提议的生成:
在RPN的每个滑动窗口位置,网络会同时预测多个区域提议,这些提议的数量最多为k个。
回归层(reg)有4k个输出,用于编码k个提议框的坐标;分类层(cls)输出2k个得分,用于估计每个提议框是对象的概率。
这些提议是相对于k个参考框(即锚框)参数化的。每个锚框都位于滑动窗口的中心,并与特定的尺寸和宽高比相关联。

锚框的定义:
默认情况下,RPN使用3个尺寸和3个宽高比,因此在每个滑动窗口位置会有9个锚框(k=9)。
对于一个W×H大小的特征图(通常约2400个锚框),总共会有W×H×k个锚框。

平移不变性:
RPN的一个关键特性是平移不变性,这意味着无论对象在图像中的位置如何变化,提议框都能保持一致。
如果图像中的对象被平移,RPN能够生成相同的提议框,这是通过锚框和平移不变的性质保证的。
与此相比,MultiBox方法使用k-means生成锚框,这些锚框不具备平移不变性,因此不能保证在对象平移后生成相同的提议。

模型大小和过拟合风险:
由于RPN的平移不变性,模型的大小相对较小。在k=9的情况下,RPN的输出层有(4+2)×9维,而MultiBox的全连接输出层有(4+1)×800维。
RPN的输出层参数数量(对于VGG-16是512×(4+2)×9=2.8×104个参数)比MultiBox的输出层(对于GoogleNet是1536×(4+1)×800=6.1×106个参数)少两个数量级。
即使考虑特征投影层,RPN的提议层参数数量仍然比MultiBox少一个数量级。这使得RPN在小型数据集上(如PASCAL VOC)有更小的过拟合风险。

多尺度预测的传统方法:
有两种流行的多尺度预测方法。第一种是基于图像/特征金字塔的方法,例如在DPM(Deformable Part Models)和基于CNN(卷积神经网络)的方法中使用。
在这些方法中,图像在多个尺度上被重新调整大小,并且为每个尺度计算特征图(例如HOG(Histogram of Oriented Gradients)或深度卷积特征)。
这种方法虽然有用,但非常耗时。

使用多尺度滑动窗口:
第二种方法是在特征图上使用多个尺度(和/或宽高比)的滑动窗口。
例如,在DPM中,使用不同尺寸的滤波器(如5×7和7×5)分别训练不同宽高比的模型。如果这种方法用于处理多个尺度,可以被视为“滤波器金字塔”。
这种方法通常与第一种方法结合使用。

基于锚框的多尺度设计:
与上述两种方法相比,Faster R-CNN中基于锚框的方法建立在锚框金字塔之上,这是一种更经济高效的方法。
该方法通过参考多个尺度和宽高比的锚框来分类和回归边界框。
它仅依赖于单一尺度的图像和特征图,并使用单一尺寸的滤波器(在特征图上的滑动窗口)。

实验验证:
通过实验(如表8所示),作者展示了这种基于锚框的方案在处理多个尺度和宽高比方面的有效性。

共享特征的优势:
由于这种基于多尺度锚框的设计,Faster R-CNN可以简单地使用在单一尺度图像上计算的卷积特征,这与Fast R-CNN检测器所做的相同。
多尺度锚框的设计是实现特征共享的关键组件,它使得在不增加额外计算成本的情况下处理不同尺度的目标成为可能。

3.1.2 Loss Function
锚框的类别标签分配:
在训练RPN时,每个锚框都会被分配一个二元类别标签,表示它是否是一个对象。
有两种情况的锚框会被标记为正样本(positive):
(i) 与真实标注框(ground-truth box)有最高交并比(Intersection-over-Union, IoU)的锚框。
(ii) 与任何真实标注框的IoU重叠度高于0.7的锚框。
如果一个真实标注框与多个锚框重叠度高,则可能给多个锚框分配正样本标签。
如果锚框与所有真实标注框的IoU比率都低于0.3,则被标记为负样本(negative)。
既不属于正样本也不属于负样本的锚框在训练目标中不予考虑。

损失函数的定义:
训练RPN时使用的损失函数是一个多任务损失函数,包括分类损失和回归损失两部分。
分类损失(Lcls)是针对对象与非对象的二分类问题的对数损失。
回归损失(Lreg)使用平滑L1损失函数,这是对边界框坐标的预测进行优化的一种鲁棒损失函数。
损失函数中的∗pi 表示正样本锚框的标签,ti和ti∗ 分别表示预测的边界框坐标和对应的真实标注框坐标。
通过平衡参数λ来调整分类和回归任务之间的权重,作者默认设置λ为10,使得两部分损失大致等权重。

边界框回归:
为了从锚框到附近的真实标注框进行边界框回归,作者采用了特定的坐标参数化方法。
这种方法可以看作是从锚框到真实标注框的边界框回归,但与以往的RoI(Region of Interest)方法不同。
以往的方法在不同大小的RoI上执行边界框回归,并且回归权重对所有区域大小共享。
在Faster R-CNN中,用于回归的特征具有相同的空间尺寸(3×3),但通过学习一组不同的边界框回归器来适应不同大小的边界框。
每个回归器负责一个尺度和一个宽高比,且这些回归器之间不共享权重,这使得网络能够预测各种尺寸的边界框。

3.1.3 Training RPNs
端到端训练:
RPN可以通过反向传播和SGD进行端到端的训练,这意味着从输入层到输出层的整个网络都可以进行训练,而不需要手动特征提取或其他预处理步骤。

以图像为中心的采样策略:
训练网络时,采用以图像为中心的采样策略,即每个小批量(mini-batch)数据来自单一图像,该图像包含许多正例和负例锚框。
由于负例锚框通常比正例锚框多,如果优化所有锚框的损失函数,会导致对负例的偏好。
为了避免这种情况,作者在每个图像中随机采样256个锚框来计算一个小批量的损失函数,其中采样的正负锚框的比例最多为1:1。

正负样本的平衡:
如果一个图像中正样本锚框少于128个,作者会用负样本锚框来填充小批量,以保持正负样本的平衡。

权重初始化:
所有新层(即RPN特有的层)的权重通过从均值为零、标准差为0.01的高斯分布中随机抽取来进行初始化。
共享的卷积层则通过预训练ImageNet分类模型来进行初始化,这是标准做法。

网络层的调整:
作者对ZF网络的所有层以及VGG网络的conv3 1层及以上层进行调整,以节省内存。

学习率和优化器设置:
在PASCAL VOC数据集上,前60k小批量使用0.001的学习率,接下来的20k小批量使用0.0001的学习率。
使用0.9的动量(momentum)和0.0005的权重衰减(weight decay)来优化模型。

实现细节:
作者使用Caffe框架来实现RPN的训练过程。

3.2 Sharing Features for RPN and Fast R-CNN
特征共享的必要性:
虽然已经描述了如何训练RPN来生成区域提议,但还需要考虑如何将这些提议用于基于区域的对象检测CNN(即Fast R-CNN)。
为了避免训练两个独立的网络,需要开发一种技术来允许在RPN和Fast R-CNN之间共享卷积层。

共享特征的三种训练方法:
交替训练(Alternating training):首先训练RPN,然后使用生成的提议来训练Fast R-CNN。接着,使用经过Fast R-CNN调整的网络来初始化RPN,重复此过程。本文中的所有实验都采用了这种解决方案。
近似联合训练(Approximate joint training):在训练期间,将RPN和Fast R-CNN合并为一个网络。在每次SGD迭代中,前向传播生成区域提议,这些提议在训练Fast R-CNN检测器时被视为固定的预计算提议。反向传播与通常相同,但对于共享层,来自RPN损失和Fast R-CNN损失的反向传播信号被合并。这种方法易于实现,但忽略了关于提议框坐标的导数,因此是近似的。实验表明,这种方法可以产生接近的结果,但训练时间比交替训练减少了约25-50%。
非近似联合训练(Non-approximate joint training):理论上有效的反向传播求解器应该涉及关于框坐标的梯度。这需要一个关于框坐标可微分的RoI池化层,这个问题的解决方案可以通过“RoI warping”层来实现,但这超出了本文的范围。

四步交替训练算法:
本文采用了一种实用的四步交替训练算法来通过交替优化学习共享特征。
第一步:按照3.1.3节的描述训练RPN,使用预训练的ImageNet模型进行初始化,并针对区域提议任务进行端到端微调。
第二步:使用第一步生成的提议,训练一个独立的Fast R-CNN检测网络,该网络也由预训练的ImageNet模型初始化。此时,两个网络不共享卷积层。
第三步:使用检测网络初始化RPN训练,但固定共享的卷积层,只微调RPN特有的层。此时,两个网络开始共享卷积层。
第四步:保持共享的卷积层不变,微调Fast R-CNN的独特层。最终,两个网络共享相同的卷积层,形成一个统一的网络。

3.3 Implementation Details
单一尺度的图像处理:
作者在单一尺度的图像上训练和测试区域提议和对象检测网络,将图像重新缩放,使得图像的短边为600像素。
尽管使用图像金字塔进行多尺度特征提取可能提高准确性,但这并没有展现出良好的速度-准确性权衡。

卷积层的步长:
在重新缩放的图像上,无论是ZF(Zeiler and Fergus)模型还是VGG模型,在最后一个卷积层上的总步长为16像素,这意味着在典型的PASCAL图像(约500×375像素)上,步长约为10像素。
即使使用较大的步长,也能获得良好的结果,但使用更小的步长可能会进一步提高准确性。

锚框的尺度和宽高比:
对于锚框,作者使用了3个尺度(面积分别为1282、2562和512^2像素)和3个宽高比(1:1、1:2和2:1)。
这些超参数并非针对特定数据集精心选择,作者在下一节提供了关于它们影响的消融实验。

跨边界锚框的处理:
在训练期间,忽略所有跨越图像边界的锚框,以防止它们对损失函数产生贡献。
对于典型的1000×600像素图像,总共大约有20000个锚框。忽略跨边界锚框后,每张图像大约有6000个用于训练的锚框。
如果在训练中不排除边界跨越的异常值,它们会在目标函数中引入大量难以纠正的误差项,导致训练不收敛。

测试期间的处理:
在测试期间,仍然将完全卷积的RPN应用于整个图像。这可能会生成跨越边界的提议框,这些提议框会被裁剪到图像边界内。

非极大值抑制(NMS):
为了减少冗余,作者在基于cls得分的提议区域上采用非极大值抑制(NMS)。
NMS的IoU阈值固定为0.7,这使得每张图像大约剩下2000个提议区域。
使用NMS不会损害最终的检测准确性,但显著减少了提议的数量。在NMS之后,使用排名最高的N个提议区域进行检测。

4 EXPERIMENTS
4.1 Experiments on PASCAL VOC

评估数据集:
PASCAL VOC 2007检测基准包含大约5000张训练验证图像和5000张测试图像,涵盖20个对象类别。
作者还在PASCAL VOC 2012基准上为一些模型提供了结果。

预训练网络:
作者使用了两个预训练的网络:ZF网的“快速”版本,它包含5个卷积层和3个全连接层;以及公开的VGG-16模型,它包含13个卷积层和3个全连接层。

评估指标:
检测的平均精度均值(mean Average Precision, mAP)是主要的评估指标,因为它是对象检测的实际度量标准,而不是关注对象提议的代理指标。

区域提议方法的比较:
使用ZF网络,作者比较了使用不同区域提议方法训练和测试的Fast R-CNN结果。
通过“快速”模式的Selective Search(SS)生成大约2000个提议。
使用默认的EdgeBoxes(EB)设置,针对0.7 IoU进行调整,生成提议。
SS和EB在Fast R-CNN框架下分别达到了58.7%和58.6%的mAP。
使用RPN与Fast R-CNN结合使用,在使用最多300个提议的情况下,达到了59.9%的mAP,具有竞争力。

性能和速度的改进:
使用RPN的检测系统比使用SS或EB要快得多,这是因为卷积计算是共享的。
提议数量的减少也降低了区域级全连接层的成本(见表5)。

共享卷积层的影响:
首先,作者研究了在RPN和Fast R-CNN检测网络之间共享卷积层的效果。为此,他们在四步训练过程中止于第二步,使用独立的网络而不是共享特征的网络。
结果显示,不共享卷积层的情况下,准确度略有下降至58.7%(未共享的RPN+ZF网络,见表2)。
这种下降是因为在第三步中,使用检测器调整过的特征来微调RPN时,提议的质量得到了提升。

RPN对Fast R-CNN训练的影响:
为了解耦RPN对Fast R-CNN检测网络训练的影响,作者使用2000个SS提议和ZF网络训练了一个Fast R-CNN模型。
在测试时,固定检测器并改变使用的提议区域,以评估检测mAP。
在这些消融实验中,RPN不与检测器共享特征。
使用300个RPN提议替换SS提议进行测试时,mAP降至56.8%,这是因为训练/测试提议之间的不一致性。
这个结果作为后续比较的基线。

RPN提议的准确性:
即使在使用排名前100的RPN提议进行测试时(不使用NMS/排名),RPN仍然能够达到55.1%的mAP,表明排名最高的RPN提议是准确的。
当使用排名前6000的RPN提议(不使用NMS)进行测试时,mAP略有下降至55.2%,这表明NMS不会损害检测mAP,并且可能减少误报。

RPN的cls和reg输出的作用:
作者分别研究了RPN的cls(分类)和reg(回归)输出的作用。
如果在测试时移除cls层(因此不使用NMS/排名),则从未经评分的区域中随机采样N个提议。当N=1000时,mAP几乎不变(55.8%),但当N=100时,mAP显著下降至44.6%。
这表明cls得分对于排名最高的提议的准确性至关重要。
另一方面,如果在测试时移除reg层(使提议变为锚框),mAP降至52.1%,这表明高质量的提议主要是由于回归的边界框坐标。

更强大网络对RPN提议质量的影响:
作者还评估了更强大的网络对单独RPN提议质量的影响。
使用VGG-16训练RPN,并仍然使用上述的SS+ZF检测器。mAP从使用RPN+ZF的56.8%提高到使用RPN+VGG的59.2%。
这是一个有希望的结果,因为它表明使用VGG-16的RPN提议质量优于使用ZF的RPN。

VGG-16网络的性能:
使用RPN和VGG-16结合的方法,在不共享特征的情况下,mAP(平均精度均值)为68.5%,略高于使用Selective Search(SS)作为提议方法的基线。
这表明RPN生成的提议比SS预定义的提议更准确,因为RPN是经过积极训练的,能够从更强大的网络中受益。
当特征被共享时,即RPN和Fast R-CNN共享卷积层,检测的结果是69.9%,这比SS基线好,而且提议的计算成本几乎为零。
在PASCAL VOC 2007和2012的训练集和验证集的并集上进一步训练RPN和检测网络后,mAP提高到73.2%。

检测结果:
图5展示了在PASCAL VOC 2007测试集上的一些检测结果。
在PASCAL VOC 2012测试集上,使用RPN和VGG-16结合的方法,在VOC 2007和VOC 2012的训练集和验证集的并集上训练,mAP为70.4%。

运行时间:
表5总结了整个目标检测系统的运行时间。
使用SS作为提议方法平均耗时1-2秒,而使用VGG-16的Fast R-CNN在2000个SS提议上耗时320毫秒(如果使用SVD加速全连接层的计算,则为223毫秒)。
使用VGG-16的Faster R-CNN系统,包括提议和检测的总耗时为198毫秒。
由于共享了卷积特征,RPN单独计算额外层的时间仅为10毫秒。
由于提议数量减少(每张图像300个),区域级计算也更低。
使用ZF网络的系统帧率达到了每秒17帧。

锚框设置的敏感性:
在表8中,作者研究了锚框设置对检测性能的影响。默认情况下,使用3个尺度和3个宽高比,这在表8中达到了69.9%的平均精度均值(mAP)。
如果在每个位置只使用一个锚框,mAP会显著下降3-4%。这表明使用多个尺寸的锚框作为回归参考是一个有效的解决方案。
当使用3个尺度(仅1个宽高比)或3个宽高比(仅1个尺度)时,mAP更高,这表明在PASCAL VOC数据集上尺度和宽高比并不是独立影响检测准确性的维度。
尽管如此,系统设计中仍然采用了这两个维度,以保持系统的灵活性。

平衡参数λ的敏感性:
在表9中,作者比较了方程(1)中不同λ值对结果的影响。方程(1)是Faster R-CNN中使用的损失函数,包含了分类损失和回归损失两部分。
默认情况下,λ设置为10,这使得方程(1)中的两个项在归一化后大致等权重。
表9显示,当λ在一个数量级(1到100)范围内变化时,结果仅受到约1%的边际影响。
这表明在广泛的λ值范围内,检测结果对λ不敏感。

召回率与IoU的关系:

召回率(Recall)是衡量提议区域与真实标注区域(ground-truth boxes)重叠程度的指标。IoU是衡量两个区域重叠程度的度量,定义为两个区域交集的面积除以它们并集的面积。
在不同IoU阈值下计算召回率可以帮助理解提议方法的性能,特别是在产生较少的提议时。

召回率与检测准确性的关系:
召回率与最终的检测准确性(如mAP)只是松散相关,并不是直接的线性关系。
召回率更适用于诊断提议方法的性能,而不是直接评估其优劣。

RPN与其他方法的比较:
图4展示了使用300、1000和2000个提议时的结果,并与Selective Search(SS)和EdgeBoxes(EB)方法进行了比较。
在这些方法中,N个提议是基于它们生成的置信度排名的前N个提议。
当提议数量从2000减少到300时,RPN方法的表现仍然很稳定,这解释了为什么即使只使用300个提议,RPN也能保持较高的最终检测mAP。
之前的分析表明,这主要归功于RPN中的分类项(cls term),即RPN生成的高质量提议。

提议数量减少时的性能变化:
当提议数量减少时,SS和EB的召回率下降得比RPN更快,这表明RPN在生成少量高质量提议方面更为有效。

单阶段与双阶段检测方法:
OverFeat论文提出了一种单阶段检测方法,该方法在卷积特征图上使用滑动窗口进行回归器和分类器的操作。
OverFeat是一个单阶段、类别特定的检测流程,而Faster R-CNN是一个双阶段级联,包括类别不可知的提议和类别特定的检测。
在OverFeat中,区域级特征来自一个滑动窗口,该窗口在一个尺度金字塔上具有一个宽高比。这些特征用于同时确定对象的位置和类别。
在RPN中,特征来自正方形(3×3)滑动窗口,并预测相对于具有不同尺度和宽高比的锚框的提议。

Faster R-CNN的双阶段流程:
尽管两种方法都使用滑动窗口,但区域提议任务只是Faster R-CNN的第一阶段——后续的Fast R-CNN检测器会关注这些提议并对其进行细化。
在Faster R-CNN的第二阶段中,区域级特征是从提议框中适应性池化得到的,这些提议框更准确地覆盖了区域的特征。
作者认为这些特征可以导致更准确的检测。

系统比较:
为了比较单阶段和双阶段系统,作者通过单阶段Fast R-CNN模拟了OverFeat系统,从而也规避了其他实现细节的差异。
在这个系统中,“提议”是密集的滑动窗口,具有3个尺度(128, 256, 512)和3个宽高比(1:1, 1:2, 2:1)。
Fast R-CNN被训练来从这些滑动窗口预测类别特定的得分和回归边界框位置。
由于OverFeat系统采用了图像金字塔,作者还评估了从5个尺度提取的卷积特征。

实验结果:
表10比较了双阶段系统和两种变体的单阶段系统。
使用ZF模型的单阶段系统mAP为53.9%,比双阶段系统(58.7%)低4.8%。
这个实验证实了级联区域提议和对象检测的有效性。
类似的观察结果在其他论文中也有报告,其中用滑动窗口替换SS区域提议会导致约6%的性能下降。
作者还指出,单阶段系统速度较慢,因为它需要处理更多的提议。

4.2 Experiments on MS COCO
COCO数据集:
作者在COCO数据集上进行了实验,该数据集包含80,000张训练图像、40,000张验证图像和20,000张测试-验证图像。
使用IoU(交并比)在0.5到0.95之间的平均精度(mAP)作为评估指标,这是COCO的标准度量方法,简称为mAP@[.5, .95]。
同时,也使用了PASCAL VOC的度量方法mAP@0.5进行评估。

系统调整:
为了适应COCO数据集,作者对系统进行了一些微小的调整。
在8个GPU上训练模型,有效小批量大小(mini-batch size)对于RPN是8(每个GPU 1个),对于Fast R-CNN是16(每个GPU 2个)。
RPN和Fast R-CNN都训练了240,000次迭代,学习率初始为0.003,然后进行80,000次迭代,学习率降至0.0003。
由于小批量大小的变化,作者调整了学习率的起始值。
对于锚框,使用了3个宽高比和4个尺度(增加了642),主要是为了更好地处理数据集中的小对象。
在Fast R-CNN步骤中,负样本定义为与真实标注的最大IoU在[0, 0.5)区间内的样本,而不是[1, 2]中使用的[0.1, 0.5)。

实验结果:
表11首先报告了使用本文实现的Fast R-CNN系统的结果。在测试-验证集上,Fast R-CNN基线达到了39.3%的mAP@0.5,高于文献[2]中报告的结果。
作者推测这种差异主要是由于负样本的定义和小批量大小的变化所导致的。
此外,mAP@[.5, .95]与文献[2]中的结果相当。
使用COCO训练集训练的Faster R-CNN在测试-验证集上达到了42.1%的mAP@0.5和21.5%的mAP@[.5, .95]。
这比相同协议下的Fast R-CNN系统高出2.8%的mAP@0.5和2.2%的mAP@[.5, .95],表明RPN在提高高IoU阈值下的定位精度方面表现优异。
使用COCO训练集和验证集训练的Faster R-CNN在测试-验证集上达到了42.7%的mAP@0.5和21.9%的mAP@[.5, .95]。

测试时间:
与在PASCAL VOC上的实现相同,作者在COCO数据集上测试时仍使用300个提议,并保持单尺度(s = 600)。
测试时间大约是每张图像200毫秒。

结果展示:
图6展示了在MS COCO测试-验证集上的结果。

Faster R-CNN的优势:
Faster R-CNN从更好的特征中获益更多,这得益于RPN完全通过神经网络学习提出区域的能力。
即使当网络深度显著增加到超过100层时,这一观察仍然有效。

网络深度的增加:
仅通过将VGG-16替换为101层的残差网络(ResNet-101),Faster R-CNN系统在COCO验证集上的mAP从41.5%/21.2%(使用VGG-16)提高到48.4%/27.2%(使用ResNet-101)。

竞赛成绩:
He等人[18]通过其他与Faster R-CNN正交的改进,获得了单个模型在COCO 2015测试-验证集上的55.7%/34.9%的结果,以及集成结果的59.0%/37.4%,赢得了COCO 2015目标检测竞赛的第一名。
相同的系统[18]也在ILSVRC 2015目标检测竞赛中获得了第一名,比第二名高出8.5%的绝对优势。
RPN也是ILSVRC 2015定位和COCO 2015分割竞赛中获得第一名的参赛作品的构建块,具体细节可在文献[18]和[15]中找到。

RPN的重要性:
RPN作为Faster R-CNN的一个关键组成部分,在多个竞赛中证明了其有效性,特别是在提高目标检测和定位精度方面。

4.3 From MS COCO to PASCAL VOC
大规模数据的影响:
大规模数据集对于提升深度学习模型的性能至关重要。作者接下来研究了COCO数据集如何帮助提升在PASCAL VOC数据集上的目标检测性能。

直接评估:
作为一种简单的基线方法,作者直接将在COCO数据集上训练的检测模型评估在PASCAL VOC数据集上的性能,而没有在任何PASCAL VOC数据上进行微调。
这种评估是可行的,因为COCO中的类别是PASCAL VOC中类别的超集。在实验中忽略了COCO独有的类别,并且在softmax层仅对20个类别加上背景进行操作。
在这种设置下,PASCAL VOC 2007测试集上的mAP为76.1%(见表12),这个结果比仅在VOC07+12上训练的结果(73.2%)要好,尽管没有利用PASCAL VOC数据。

微调模型:
接着,作者在PASCAL VOC数据集上对COCO检测模型进行了微调。
在这个实验中,使用COCO模型替代了ImageNet预训练模型(用于初始化网络权重),并按照第3.2节描述的方法对Faster R-CNN系统进行了微调。
这样做使得PASCAL VOC 2007测试集上的mAP提高到了78.8%,COCO数据集的额外数据使mAP提高了5.6%。

性能提升:
表6显示,在PASCAL VOC 2007上训练的模型在每个单独的类别上都有最好的平均精度(AP)。
在PASCAL VOC 2012测试集上也观察到了类似的改进(见表12和表7)。

测试速度:
值得注意的是,即使在获得这些强大结果的同时,测试时间仍然保持在每张图像大约200毫秒。

5 CONCLUSION
高效的区域提议生成:
RPNs被提出用于高效和准确地生成区域提议,这些提议是目标检测过程中的关键步骤。
通过与下游的目标检测网络共享卷积特征,RPN使得区域提议步骤的成本大大降低,几乎不需要额外的计算开销。

统一的深度学习目标检测系统:
RPN的引入使得基于深度学习的目标检测系统能够以接近实时的帧率运行。
这种统一的系统结构简化了目标检测流程,并且能够端到端地进行训练和推理。

提升区域提议质量:
通过学习来生成区域提议,RPN不仅提高了提议的准确性,还提高了整个目标检测系统的准确性。
相比于传统的基于启发式或低效方法的区域提议,RPN生成的提议更加精确,更有利于后续的检测任务。

整体目标检测准确性的提升:
由于RPN生成的区域提议质量更高,这直接导致了整体目标检测准确性的提升。
准确的区域提议使得检测网络能够更有效地聚焦于可能包含目标的区域,从而减少了在无关区域上的计算浪费。

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值